精力有限,笔者只练习完成了问题一和问题·
碎纸复原模型与算法
摘要
本文主要围绕碎纸片拼接问题,建立了边界匹配距离模型,匹配TSP模型并设计出一维碎纸复原,二维碎纸复原的具体算法,并借助MATLAB成功解决了碎纸复原问题。
针对问题一,首先本文先对碎纸进行数字化处理得到象素矩阵并进行二值化处理,然后通过依据碎片左右侧边缘的文本特征建立了边界匹配模型,计算得到碎片之间的列匹配度和匹配距离。将碎片复原问题转换成了匹配TSP模型,并采用最邻近算法对模型进行求解。通过MATLAB编程实现了算法求解过程,得到了正确的碎片拼接序列并复原了原始纸张图片。
针对问题二,首先文本分别对中文和英文的碎片特征进行了提取,并根据特征创建了不同的特征列向量构建方式。其次,文本采用瓦尔德聚类分析法对计算出来的特征列向量进行分簇,总共分成了11个簇,每个簇中特征列向量数量都在19个左右。分簇完成之后需要进行人工干预检查,将分配错误的碎片特征列向量从簇中剥离出来放到正确的簇中,以免影响后序匹配。最后,本文采用了与问题一相同的匹配TSP模型和最邻近算法依次求解出簇内碎片和簇间行级碎片的拼接序列。值得注意的是进行簇内碎片拼接和簇间行级碎片拼接时都不能完全保证拼接序列完全正确,都需要进行人工干预检查调整出正确拼接序列。
关键词:碎纸复原算法,TSP,瓦尔德聚类分析法,最临近算法
一、问题重述
破碎纸张文件的拼接在历史文献修复,司法物证的复原以及军事情报截取等众多领域都有着重要应用。传统上破碎纸张复原工作都是由人工完成的,其准确率较高但效率极低,需要花费很多人力。特别是在当纸张碎片数量特别多时,人工的传统拼接方法很难在短时间内完成。人们试图借用计算机技术开发碎片纸张的自动拼接技术,以提高破碎文件复原效率。
问题1:对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸片拼接复原模型和算法,并针对附件1、附件2给出的中、英文各一页文件的碎片数据进行拼接复原。如果复原过程需要人工干预,请写出干预方式及干预的时间节点。复原结果以图片形式及表格形式表达。
问题2:对于碎纸机既纵切又横切的情形,请设计碎纸片拼接复原模型和算法,并针对附件3、附件4给出的中、英文各一页文件的碎片数据进行拼接复原。如果复原过程需要人工干预,请写出干预方式及干预的时间节点。复原结果表达要求同上。
二、问题分析
破碎文件的复原传统上的做法是人工肉眼观察一个碎纸张边缘的字迹,猜测或理解可能对应的是哪个字,然后在其他碎纸张上相同位置做同样的操作,接着进行比对。这种做法准确率高但效率很低,尤其是当碎纸片数量很大的时候。随着计算机技术的迅速发展,由于计算机具有计算量大,计算速度快等特点,上述识别、匹配等一系列重复工作可以借助计算机进行实现。
对于问题一,已给出了纵切的19张碎纸片,且碎纸片的大小一致,可以用计算机读取得到19个碎纸片的灰度值矩阵,然后再转化为0-1二值矩阵。由于只考虑单面纵切,借鉴传统复原的思路只需关注每个矩阵的第一列和最后一列,计算不同矩阵之间的匹配距离,建立边界匹配模型和匹配TSP模型,找到匹配距离最短的两个矩阵,然后复原出碎片的原始序列,完成问题一的求解。
对于问题二,相较于问题一而言,此题加入了横向切割,碎片数量剧增并且单个碎片所获取得信息量骤减,因此可能会出现一个碎片与其他多张碎片的匹配距离都很小的情况。可以考虑根据每个碎片的灰度条向量使用瓦尔德(ward)聚类分析方法将这些碎片分成若干簇,每个簇中的碎片具有相同的矩阵特征向量。由于中文和英文字体的差异性,构建碎片矩阵特征向量方法不一样。考虑到每个簇分得的碎片数量可能不相同,此时需要人工干预保证每个簇中的碎片个数相同。分簇完成之后可以类比问题一的求解方法,簇内碎片根据第一列和最后一列计算矩阵匹配距离,然后建立TSP模型复原出纵向碎片的原始序列,接着再求出簇与簇之间的匹配距离,得到横向碎片的原始序列。这样以来,即可全部求出原始序列,完成问题二的求解。
三、模型假设
1.假设需要复原的碎片来自于同一张纸,即碎片复原之后可以拼接出完整的一张纸。
2.假设所有的碎片大小一致,均是同一规格大小的长方形碎片,并且复原后的纸张也是长方形形状。
3.假设同一页纸上的内容文字段落格式,字形,字号,行间距,语言等文本样式是一致的。
4.假设切割后的图片无磨损,无噪,即无影响计算机错误读取碎片的灰度信息的因素。
5.假设无论是横向切割还是纵向切割其切割线均是相互平行的。
6.假设被切割的纸张为纯白色,无其他颜色的污染,纸张上只有中文或英文,没有图片。
7.假设附件所给出的图片没有经过90度或180度旋转。
后面文章请查阅链接
链接:https://pan.baidu.com/s/1m24V6MbjLRDNUitLLZl8oQ?pwd=vfqq
提取码:vfqq