碎纸片拼接复原问题研究文档格式.docx
- 文档编号:22544076
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:16
- 大小:297.06KB
碎纸片拼接复原问题研究文档格式.docx
《碎纸片拼接复原问题研究文档格式.docx》由会员分享,可在线阅读,更多相关《碎纸片拼接复原问题研究文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
关键字:
碎片复原、TSP、误差评估匹配、基线误差、人工干预
一、问题重述
破碎文件的拼接复原工作在传统上主要需由人工完成,准确率较高,但效率很低。
特别是当碎片数量巨大,人工拼接很难在短时间内完成任务。
随着计算机技术的发展,人们试图开发碎纸片的自动拼接技术,以提高拼接复原效率。
请讨论以下问题:
1.对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸片拼接复原模型和算法,并针对附件1、附件2给出的中、英文各一页文件的碎片数据进行拼接复原。
如果复原过程需要人工干预,请写出干预方式及干预的时间节点。
复原结果以图片形式及表格形式表达。
2.对于碎纸机既纵切又横切的情形,请设计碎纸片拼接复原模型和算法,并针对附件3、附件4给出的中、英文各一页文件的碎片数据进行拼接复原。
3.上述所给碎片数据均为单面打印文件,从现实情形出发,还可能有双面打印文件的碎纸片拼接复原问题需要解决。
请尝试设计相应的碎纸片拼接复原模型与算法,并就附件5的碎片数据给出拼接复原结果。
二、问题分析
破碎文件的拼接复原工作,传统人工处理准确率高,但是效率低。
随着计算机技术的发展,本问题试图寻找碎纸片的自动拼接方法。
本文的碎片均为矩形,且大小一样,这就给碎片的拼接带来了困难,因为难以利用碎片的轮廓信息,从而只能利用碎片边缘的图像像素信息来进行拼接。
对于问题一,给出了纵切的19条碎纸片,碎片为1980*72,总切线的像素点较多,并且碎纸片的数量较少,从效率出发,可以直接考虑纵切条上的像素统计信息。
为了衡量匹配程度,需要建立误差评估函数。
本文考虑采用TSP模型,将碎纸片作为节点,将误差评估函数的值作为节点之间的权值,寻找最优解。
在本问题的情况下,中英文的差别并无太大影响。
对于问题二,由于给出的数据是横纵切的中英文碎片,碎片大小为180*72,各208张。
因为碎纸片的数量较多,直接匹配则为NP问题中的无法用多项式解决的问题,所以先将行分组匹配完成后再把各行拼接起来。
本问题主要解决:
1)如何正确高效分组;
2)如何准确高效拼接。
考虑到中文和英文在字形和印刷结构上的不同,需要定义不同的特征向量去描述中文和英文的碎纸片上的信息。
文字各行的位置和间距将作为重要的分组依据。
在问题一的基础上,由于每个碎纸片的边缘像素较少,为了充分利用包含信息,误差评估函数的定义将会比问题一中更加细化。
行之间的拼接将会利用边缘像素和间距匹配。
在本问题中,中英文
的基线选择方法将会有很大不同。
对于问题三,在问题二的基础上,加入了正反面信息,碎纸片的形状并没有改变。
因此,需要在问题二的误差评估函数的基础上,
综合考虑正反面的匹配误差。
分组的方法与行间的拼接方式与问题二基本相同。
综上所述,本问题可以看做是TSP问题,碎纸片为节点,误差评估函数值为边的权值,寻求最优解的问题。
三、模型假设
1.假设需要复原的碎片是来自同一张纸,且对于该张纸具有完备性。
2.假设同一页中,文字的种类、行间距和段落分布情况是相同的。
四、模型建立与求解
文件碎片拼接主要有两类不同的技术标准:
(1)ReconstructionofStripShreddedTextDocuments(RSSTD)
碎片的长度和原始文件的长度相等,同时所有碎纸片都是等宽的长方形。
(2)ReconstructionofCross-cutShreddedTextDocument(RCCSTD)
所有的文件碎片都是长方形且大小相等,但其长度小于原始文件的长度。
问题一为典型的RSSTD问题,我们通过分析碎纸片文字的行特征,建立了一种基于匹配度的求解模型,下面就对该模型的建立进行详细的讨论。
5.1问题1——基于匹配度的RSSTD问题研究
为了便于对图像数据进行分析,我们首先需要对其进行数字化处理以及文字行特征的提取,而后再建立基于匹配度的模型。
5.1.1图像数字化处理
图像的数字化处理主要包括以下几个方面:
(1)二值化处理
由于纵切碎纸片的长度特征(碎片长度与原始文件长度相等),其边缘像素点信息量丰富。
因此我们采取二值化而非灰度对图像进行了处理,进一步简化了算法的复杂度,得到每条碎片像素大小为721980(长宽),像素点值取{0,1},其中0和1分别表示颜色的黑与白。
(2)edge矩阵的建立
edge[i,j]为192的矩阵,储存每一条碎片的边缘像素点信息。
其中i表示碎片的编号,j=0表示左侧边缘像素点信息,j=1表示右侧边缘像素点信息。
例如,edge[0,0]储存001号碎片左侧边缘像素点信息。
(3)count矩阵的建立
根据edge[i,j]矩阵,我们可以计算得到一个192的count[i,j]矩阵,该矩阵储存每一条碎片边缘取值为0的像素点的数量。
例如,count[0,0]=350表示001号碎片左侧边缘共有350个黑色像素点。
(4)shredwithblankleft的选取
根据count矩阵,若edge[i,0]=0,那么我们就认为该碎片在原始文件中处于类、行间距和段落分布情况是相同的。
最左端,即为选取的shredwithblankleft。
(5)碎片行特征的提取
由于原始文件文字行特征明显,因此我们需要提取碎片的行特征(其具体的原因见匹配度的定义)。
首先确定碎片顶端取值为0的像素点的位置,以此作水平线为上边界,依次向下取w为行宽(这里取w=40pixels以保证能容纳每一个文字)直至下边缘,得到每条碎片的行数为{n1,n2,…,n19};
然后取n=max{n1,n2,…,n19}作为最终确定的行数,并以该条碎片的行化方式为标准对每一条碎片进行行化;
最终每一条碎片被划分为28行。
每条碎片维护着以下的特征数据表:
表1碎片i特征数据表
k123„2728
nklni1lni2lni3l„ni27lni28l
nkrni1rni2rni3r„ni27rni28r
其中,k为行号;
nkl为第k行左侧边缘取值为0的像素点的数量,nkr为第k行右侧边缘取值为0的像素点的数量;
nikl为第i条碎片第k行左侧边缘取值为0的像素点的数量。
5.1.2匹配度的定义
为了衡量两个碎片之间的匹配程度,我们定义匹配度Mij作为评价的标准,其计算公式如下:
其中,n为总的行数(如28n);
ijkm表示碎片i和碎片j第k行之间的匹配度;
ijM表示碎片i和碎片j之间的匹配度。
这里我们不选择通过统计碎片边缘总黑色像素点的数量来计算两碎片之间的匹配度,而是通过计算两碎片行匹配度来间接计算其匹配度,原因在于:
1若以总的边缘黑色像素点计算匹配度,行与行之间的差异性无法体现,匹配结果误差过大;
②通过行匹配度计算碎片之间的匹配程度,更加充分的挖掘了碎片边缘的信息,更为精确。
5.1.3.1模型的建立
根据匹配度的定义,我们可以计算得到19个碎片两两之间边缘的匹配度,现可将问题化简为:
已知起始碎片和其他碎片之间的匹配度,寻找一序列使得碎片之间总的匹配度达到最大。
如右图所示:
(1)为简化问题,我们引入空白碎片0,同样可计算得到空白碎片与其他碎片的匹配度;
(2)
(2)其中节点表示碎片,有向线段长度表示费用wij,且wij=1-Mij,箭头所指方向表示前一条碎片右侧边缘到后一条碎片左侧边缘。
如①→②表示1
号的碎片右侧边缘与2号碎片左侧边缘的费用;
(3)现要求寻找一条回路遍历所有的节点使得费用达到最小。
通过分析,可以发现这是一典型的TSP问题。
为解决上述问题,我们建立模型如下:
假设图中存在Hamilton回路,有n个节点,图中(i,j)边的权重为wij,设决策变量为xij=1说明弧(i,j)进入到Hamilton回路中,则线性规划模型可表达[6]为:
求解该问题就是求解该线性规划问题的最优解。
5.1.3.2模型的求解
为了进一步求解上述模型,我们设计的算法如右图所示:
(1)将所有碎片放入地址池中;
(2)选出左侧全为白色像素点的碎片作为基准碎片,记为si,并将其从碎片池中剔除;
(3)依次计算si右侧边缘与地址池中其他碎片sj左侧边缘的匹配度Mij;
(4)选择匹配度最大的碎片st作为碎片si的右侧碎片,并将其记为si,从碎片池中剔除该碎片;
(5)重复(3)~(4)步直至碎片池为空。
由于该算法使用统计量构建匹配度,很好的避免了中英文之间的差异性,适用性较好,在实际的应用中都收到了很好的效果。
最终可以得到附件1与附件2中碎片的正确序列如下所示:
通过求解结果发现,我们利用贪心策略求解得到了全局最优解,原因在于匹配度的定义较好。
同时由于碎片两侧提供的信息量大,很好的避免了中英文之间的差异性。
若碎片规格变小,信息量减少,中英文之间差异性的讨论显得十分有必要。
5.2问题2——基于误差评估的RCCSTD问题研究
由于中英文的字存在显著的差异性,对算法的设计有很大影响,因此我们需要对它们进行具体的讨论。
如右图所示,我们可以分析得到如下的差异性特征:
(1)中英文的字行存在显著的差异性,中文字结构复杂,笔画繁多,无法确定固定的基准线;
(2)英文字印刷格式固定,一般为“四线三格”的形式,容易通过基准线来确定具体字母的位置信息。
基于以上分析,我们需要针对中英文设计不同的模型进行碎纸片的拼接复原。
下面首先建立文字的拼接复原模型。
5.2.1基于误差评估的汉字拼接模型
5.2.1.1碎片的逐行分组
(1)逐行分组原因分析
首先参考问题一中的算法提取位于原始文件左右边界位置的22块碎片,以此为基础将所有碎片分为22组,而非按列分组或分为11组,主要原因如下:
1若按列分组,由于碎片上下边缘信息量少,分组误差较大,不可取;
2若以原始文件左侧边缘的11块碎片为基础将所有碎片分为11组,可能存在以下的问题:
如右图所示,014块碎片为原始文件的左侧边缘碎片,128块碎片为其右侧碎片。
但由于014块碎片处于一自然段的开始位置,上半部分基本为空白,而128块碎片上半部分信息丰富,两者匹配失败率高,很可能导致该组元素个数为0。
因此我们将碎片分为22组,同时考虑左侧边缘与右侧边缘的信息,分组效率高且准确率高。
(2)分组标准的确定
我们确立四个参数dtb,dbb,dtw,dbw其意义如右图所示。
其中dtb,dbb代表由上下边缘至中间像素点由黑过度到白的距离;
dtw,dbw代表上下边缘至中间像素点由白过度到黑的距离。
根据上述定义,对于每一幅图像,首先判断其上下边缘的过度情况,由此可以确定上下边缘的两个参数。
那么我们认为若两个碎片具有相同的参数,如同样为dtb和dbw,同时相同参数之间的差值不超过4pixels,即:
那么,我们认为两碎片在同一组内。
最终可以得到分组情况如下表所示:
由上表可知,由于某些碎片的特殊性,仍不能归入任何一组。
这些碎片有1,15,17,27,30,33,58,80,81,83,86,95,105,114,117,132,133,156,165,170,178,198,200,202。
我们可以将他们放入碎片池中,这一部分碎片后续将进行单独的处理。
5.2.1.2组内碎片匹配算法的设计
评价两块碎片拼接的好坏程度,我们用误差评估函数来描述。
由题可知,每页被分为了1119个碎片,每个碎片具有同样的规格。
那么,就有ijhh,表示两碎片的高度相等。
我们定义误差评估函数(,)hcij为:
其中,每个像素点以8位数值表示,有:
如上图所示,我们将一碎片边缘等分为三分。
在考虑像素点y时,对其邻域y+1,y+2,y-1,y-2共5个像素点进行分析,并赋予不同的权重,那么可以分别计算得到三段的误差评估函数为123(,),(,),(,)hhhcijcijcij。
参考问题一,设计组内匹配算法如下:
(1)将组内碎片以及剩余未分组的碎片放入碎片池中;
(2)以左侧全为白色像素点的碎片为基准碎片,记为si,并将其从碎片池中剔除;
(3)依次计算si右侧边缘与地址池中其他碎片sj左侧边缘的误差评估值123(,),(,),(,)hhhcijcijcij;
(4)依次计算碎片si与池中其他碎片sj的相对误差:
[1]
其中,j表示当前比较的碎片,j为碎片池中其他的碎片,k表示上下三段,如123,,h1h2h3;
(5)选取相对偏差最小的碎片,且
时,将该碎片作为碎片si的右侧碎片,并记该碎片为si,将其从碎片池中删除;
(6)重复(3)~(5)步18次直至结束。
12~22组可以根据同样的算法进行碎片的拼接复原。
在此过程中由于最小相对误差的碎片存在多个,计算机很难进行取舍。
因此,在程序中,我们设计了人机交互的界面,当遇到此类情况时,通过人工干预的方式来选择最佳的碎片。
最后,可以得到22个拼接好的片段。
5.2.1.3组间片段的匹配
组间片段的匹配,我们主要依据以下两点原则:
(1)若两个片段在同一行,那么两个片段内碎片的数量应当互补(和为19);
(2)以一个片段为基础,计算其与右侧片段的相对偏差,相对偏差越小,匹配程度越高。
根据以上原则,最终可以得到左右两侧片段按行匹配的结果如下图所示:
5.2.1.4行间匹配类似于组内碎片匹配的算法,通过计算行片段之间上下边缘的误差评估值
,最终可以得到行片段的正确序列。
行误差评估值[2]的计算公式如下:
5.3问题三——Two-SidesRCCSTD问题研究
通过对问题三的分析,发现问题的解决方案基本与问题二类似,但针对正反碎片的特点,对问题二中的算法做了进一步的改进。
5.3.1基于问题二算法的改进
(1)边缘基准碎片的选择。
由于一个碎片存在正反面的信息,因此在选择边缘基准碎片时,需要考虑正反面两侧边缘留白的情况。
若某一碎片正反面两侧均有留白,说明该碎片为边缘基准碎片;
相反则不是。
这样可以选取到22组边缘基准碎片对(即一碎片的正反面)。
(2)分组标准的确定。
在问题二中,我们通过分析不同碎片基准线之间的差异性来判断两块碎片是否在同一行。
而对于正反的碎片,可获取的信息更多。
因此采取下述标准进行分组:
若(a1,b1)为左侧基准碎片,(a2,b2)为右侧比较碎片,那么有右图所示的两种比较方式。
同问题二的基准线误差计算方式,可以得到两组数据:
其中,
表示在第一种情况下匹配,上下面基准线的差值;
表示在第二种情况下匹配,上下面基准线的差值。
为了便于比较,我们作如下的简化:
对于每一次匹配可以得到一组数据
那么,在分组过程中,依次取碎片分别与22组边缘基准碎片做匹配,得到22组共44个数据
取其中的最小值对应的碎片即可将其归入相应的组。
同时可判断匹配的方式,即:
选取1il表示为第一种匹配方式,选取2il表示为第二种匹配方式。
这样可以将所有碎片分为22组,一些未归入任何组的碎片可放入地址池中。
(3)组内匹配算法的改进。
对于同一组内的碎片,我们同样可以以误差评估函数
来衡量两个碎片之间匹配程度。
不同的是在匹配的过程中,我们可以计算得到上下两面的误差值分别为
为了便于比较,同样以
来作为衡量匹配程度的标准。
越小,匹配度越好,即可作为被匹配碎片的右侧碎片。
这样,可以得到22组碎片片段。
行间匹配的改进。
利用问题二中行间匹配的算法,计算上下面的误差评估值的综合指标,
,
最终可以拼接复原得到原始文件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 纸片 拼接 复原 问题 研究