【摘 要】破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。传统上,拼接复原工作需由人工完成,准确率较高,但效率很低。针对规则碎纸片的拼接,本文基于中文文章试对文字特征进行探究,针对不同情况建立了逐步递进的模型,用现实问题进行验证结合人工干预,效果较为良好。

【关键词】碎纸片拼接;文字特征;旅行商问题

1 研究背景与意义

传统的拼接复原工作需要由人工完成,虽然准确率较高,但效率很低,不适合运用于大量拼接。随着计算机技术的发展,破碎纸片的自动拼接技术运用而生,使其在司法物证复原、历史文献修复以及军事情报获取等领域获得更加广泛、便捷的应用。但是,目前研究较多的自动化拼接一般都是利用碎片边缘的面积特征、尖点特征、尖角特征等几何特征,探索与之相匹配的相邻碎纸片进行拼接。这种基于边界形状的拼接方法并不适用于边缘形状相似的碎纸片。由于规则碎片其每一片碎片的大小、形状都是相同的,因此,利用形状、轮廓进行拼接不是很实际。通常情况下,文档是被手或者碎纸机撕碎的。其中手撕的文件将会产生不规则的碎纸片。而一种碎纸机将文件切成成条状,在这种情况下,产生的文档被称为条形文档。当然也有从水平和垂直方向来进行的碎纸机,这种类型的机器就会产生正交分解文档。关于重建的问题,这些文件可以被认为是一个特殊的拼图。给定N碎片,每个二进制位图的大小都是W×H像素,并假设碎片放在正确的方向,重构分解文档就是找到这些碎片的正确定位使得它们组成原始文档。在重建条形文档的这个问题所能参考的研究很少。Prandtstetter和Raidl提出邻域搜索方法,它使用一个特定的变量的方法来重建文件,涉及用户在过程中进行人工干预从而提高正确率。Ukovich等人提出了一个算法重建条形粉碎文件,特别重视使用MPEG7描述符的可能性。如Marques和Freitas使用边界颜色和利用最近邻算法来计算对应的特征向量之间的欧几里得距离等特征。

通过建立的模型,我们能够研究利用计算机进行不规则和规则碎片的拼接,帮助人们快速地获得大致的拼接结果。在此基础上,再加以人工干预,更快得到拼接的结果,提高拼接的速率和正确率。

2 碎纸片拼接模型的建立

中文规则碎纸片的拼接模型:

在对碎纸片进行了二值化处理之后,我们试着建立一个碎纸片拼接的数学模型来解决这个问题。在此之前,我们先给出模型的基本假设:

假设一:整张纸张切割完整,碎片内没有丢失部分像素并且在切割之后所得碎纸片都全等;

假设二:字与字之间的行间距都是相等的,没有发生突变的行为。

在建立模型之前,我们需要看一下实际的问题:对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸片拼接复原模型和算法,并针对附件1给出的中文文件的碎片数据进行拼接复原。如果复原过程需要人工干预,请写出干预方式及干预的时间节点。复原结果以图片形式及表格形式表达。①

除去文字本身,我们可以把每张碎纸片看出只有黑白两种颜色的图像。通常遇到这种情景的图像可以用二值法来表示图像。一幅二值图像[3]的二维矩阵仅有{0,1}两个值构成,“0”代表黑色,“1”代表白色。将图像中的像素点分别用{0,1}表示,把文字图像数字化,便于拼接修复。二值图像通常用于文字,线条图的扫描识别OCR,本文尝试运用二值图像修复碎纸片。

本文定义每个像素点的颜色δ,1≤i,j≤1980,其中:

δ=1,像素颜色为白色0,像素颜色为有色

在中文文章中,我们一般会在文章的四周留下页边距,则完整的文章周围应该全是白色,用{0,1}表示文章的边界处应该全为1。那么在寻找边界纸片时,我们是否可以认为:当碎纸片的某条边界全为1时,此碎纸片可能位于文章的边界处。

(1)建立E矩阵

为了存储碎纸片的边缘特征,我们建立一个19×n的矩阵E。其中i表示碎片的编号,当表示左侧的像素点时j=1,当表示右侧的信息时j=2。例如,E储存001号碎片左侧边缘像素点信息。

(2)建立S 矩阵

根据已经建立的E矩阵,我们通过计算得到一个19×2的S[i,j]矩阵,这个矩阵储存的是每一条碎片边缘取值为0 的像素点(即为黑色的像素)的数量。例如,S[i,j]=350表示 001号碎片的左侧边缘有350个黑色像素点。

(3)选取 shred with white left

根据S矩阵,若S[i,1]=0,即在这个碎片的最左端没有任何的像素点,那么我们就认为该碎片在原始文件中处最左端,即为选取的shred with white left。

(4)提取碎片的行特征

根据观察,原始图像的文字特征较为明显,尤其是行特征,因此我们采取提取碎片的行特征的形式(具体的我们在下面阐述)。首先我们需要确定一个上界,确定依次向下取w为行宽(调整结果发现取 w=40 pixels 可以较好的保证能容纳每一个 文字,也不至于太宽)直至下边缘,得到每条碎片的行数为{n,n,…,n};然后取n=max{n,n,…,n}确定为最终的行数,然后以该条碎片的行化方式为基准,来对每一条碎片进行行化,最终每一条碎片被划分为 28 行。

(5)匹配度的建立

基于上述的分析和操作过程,得到的S矩阵已经提取了一个碎纸片边缘蕴含的大部分文字信息。据此我们建立两个碎纸片的匹配度,其计算公式如下所示:

这里的n就是上文的总行数,而m表示碎片i和碎片j第k行之间的匹配度;M表示碎片i和碎片j之间的匹配度。我们之所以不采用全部像素点进行匹配的原因是因为无法体现行之间的差别,会造成部分信息的流失,影响匹配质量。

(6)数学模型的建立

根据上述定义的匹配度,我们可以计算得到19个矩阵两两匹配的匹配度,所以拼接碎纸片的问题就演变成下列模型的求解:寻求一个序列,使得这个序列的匹配度在所有序列中最大。如右图1所示:

这是一个典型的TSP问题,权值就是我们上部分求出的匹配度,所以

(1)用图中的节点表示碎片,其中的有向线段w,且w=1-M,箭头的由A指向B就是将A的右边缘和B的左边缘进行匹配的费用。

(3)现需要寻找一条回路遍历所有的节点使得总费用最小。回路的开端是我们之前寻找的shred with white left。

总结整个过程,图中(i,j)边的权重为w,设决策变量为x=1说明弧(i,j)已经在当前的Hamilton回路中,则线性规划模型可表达我们给出下列的线性规划方程:

(7)模型的求解

模型的求解过程如下所示:

1)将所有碎片放入地址池中组成集合Q;

2)选取shred with white left作为基准碎片,记为S,记录下编号,然后将其从Q中剔除;

3)分别计算S右侧边缘与Q其他碎片S左侧边缘的匹配度M;

4)选取使得M最大的那个碎片S作为S的右侧碎片,记录下编号,从Q中剔除S后令i=t;

5)重复过程3)-4)使得Q为空集;

由此过程得到的编号序列即为所求的最终解。

现在将此算法应用于2.2.1开头所提的问题,得到如下序列。

利用matlab设计程序得到下列的拼接图像,考虑其清晰度,利用photoshop进行了更为清楚的还原,原文是苏轼的《题淮山楼》,具体如下所示。

图2 Matlab拼接

(8)模型分析

此模型在碎纸片边缘信息量较为丰富之时,应用效果令人满意。此次进行19张碎片的复原,耗时简短,复原效果能达到100%,完全不需要人工干预。此模型同样试用于单进行横向切割的碎纸片复原。

当边缘信息量减少,即碎纸片的数量变多,切割的方式变得复杂时,模型的满意度就会下降,可能会需要人工干预。当边缘信息量继续减少,模型的求解会变得繁琐,导致人工干预的大量增加。

【参考文献】

[1]司守奎,孙玺菁.数学建模算法和应用[M].北京:国防工业出版社,2011,8:193-206.

[2]姜启源,谢金星,叶俊.数学模型[M].北京:高等教育出版社,1987,04:13-16.

[3]占君,张倩,满谦,等.MATLAB函数查询手册[M].北京:机械工业出版社,2011,1:19-20,74-152.

[4]Christian Schauer, Matthias Prandtstetter, and Günther R.Raidl. A Memetic Algorithm for Reconstructing Cross-Cut Shredded Text Documents[J]. Institute of Computer Graphics and Algorithms Vienna University of Technology, Vienna, Austria.

[5]Johannes Perl, Markus Diem, Florian Kleber, and Robert Sablatnig. Strip Shredded Document Reconstruction Using Optical Character Recognition[C]//Imagingfor Crime Detection and Prevention 2011(ICDP 2011), 4th International Conference on, pages 1-6, nov. 2011.

[6]Azzam Sleit・Yacoub Massad.An alternative clustering approach for reconstructing cross cut shredded text documents[J]. Telecommun Syst(2013).

注释:

①2013高教社杯全国大学生数学建模竞赛B题.

matlab彩色碎片拼接与复原_碎片拼接复原技术研究相关推荐

  1. matlab彩色碎片拼接与复原_碎片拼接复原建模

    对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切) ,建立碎纸片 拼接复原模型和算法,并针对附件 1.附件 2 给出的中.英文各一页文件的碎片数据进 行...... B题碎纸片的拼接复原_数学 ...

  2. 3d怎么把两个面拼接在一起_视频拼接怎么做?如何将多段视频拼接在一起?

    视频拼接是一项比较简单的视频剪辑操作,最近同事艾琳娜来问我怎么把视频拼接在一起,才发现其实百度搜索到的方法都比较麻烦,要么就是需要付费,所以今天给大家介绍一个免费的视频拼接软件,大家可以试试用呀! 视 ...

  3. matlab旋转机械转子故障信号仿真,旋转机械转子不对中故障诊断技术研究解说.docx...

    石家庄铁道大学毕业论文 旋转机械转子不对中故障诊断技术研究Study on Fault Diagnosis for Rotor Misalignmentof Rotating Machinery 20 ...

  4. led拼接屏报价_液晶拼接屏与led显示屏的区别在哪?

    在目前的大屏显示产品中,液晶拼接屏和led显示屏是两种比较普遍的产品,拼接大屏是通过单个液晶拼接单元拼接而成的显示大屏,而led显示屏则是通过发光二极管组成密集点阵组成图像显示,我们通常听到的P1.P ...

  5. 直扩同步的跟踪 matlab,基于FPGA的猝发式直扩载波同步技术研究与实现

    在高动态环境中,由于载波多普勒频移和收发端时钟漂移等因素的存在,直扩接收机必须通过载波同步才能在接收端消除频差并重构载波相位,以实现相干解调.在传统的载波同步技术中,锁频环具有较大的捕获带宽但频率跟踪 ...

  6. 松尾环 matlab,猝发式直扩信号数字化接收机载波同步技术研究

    [Abstract] Spread spectrum communication technology is widely used in the military communicationfiel ...

  7. 论文摘记_《雷达有源干扰技术研究》

    文章目录 雷达干扰的难点 压制干扰 && 欺骗干扰 两类干扰方式的优缺点 压制干扰 噪声调制干扰使用原因 噪声调幅 噪声调频 噪声调相 小结 欺骗干扰 多普勒闪烁 速度拖引 时域频域调 ...

  8. 密集假目标 Matlab,基于盲源分离的抗密集假目标干扰技术研究.pdf

    基于盲源分离的抗密集假目标干扰技术研究.pdf Vol. 42 ,No. 2 火力与指挥控制 第42 卷 第2 期 Feb ,20 17 Fire Control & Command Cont ...

  9. rust大油田分解机_油田除垢技术研究进展

    孙赫1,陈颖* 1,钱慧娟2 (1. 东北石油大学 化学化工学院,黑龙江 大庆 ;2. 大庆师范学院 化学系,黑龙江 大庆 ) 摘 要:介绍了现在采油技术中存在的关键问题,即结垢问题.简单阐述了结垢的 ...

最新文章

  1. win10 远程ubuntu
  2. MAT之GRNN/PNN:基于GRNN、PNN两神经网络实现并比较鸢尾花(iris数据集)种类识别正确率、各个模型运行时间对比
  3. linux系统管理员的家目录是,最新linux网络操作系统与实训 课后习题答案汇编...
  4. Hbase万亿级存储性能优化总结:配置项、hdfs、zookeeper、jvm参数等
  5. Nodejs【单机】多进程模式集群
  6. TypeError: 'numpy.ndarray' object is not callable
  7. 【C语言重点难点精讲】C语言内存管理
  8. 虚拟机安装mysql_linux虚拟机中安装MySQL
  9. VB 窗体实现文件拖拽获取路径方法
  10. c语言程序设计第三版朱立华主编课后答案,C语言程序设计习题解析与实验指导...
  11. windows 搭建HTTP文件服务器(Nginx 方式)
  12. ecshop mysql密码忘记_ECSHOP后台密码忘记了怎么办
  13. 耿建超英语语法---陈述句(1)
  14. vue:无法加载文件..
  15. WireShark的过滤语法
  16. css图片锯齿,CSS 锯齿实现
  17. 小程序实现漂亮的个人中心版面
  18. 统计学(二)之一般线性模型(一)
  19. 国考证监会计算机考试真题
  20. 车联网V-2X智能汽车驾驶

热门文章

  1. 【15】数据可视化:基于 Echarts + Vue 实现的大屏范例 - 世界人口统计大屏
  2. C#--字符串常量池
  3. linux 时间 偏差,【转】Linux系统时间偏差的纠正 adjtimex
  4. 如何通过命令行使用Wisdom RESTClient?
  5. python_continue语句
  6. 女生适不适合做程序员
  7. mysql中判断字段是否包含数字或者是否为纯数字
  8. 教你用 Python 看遍女神视界,美女咋越看越精神呢~(内含完整源码)
  9. 常见PCB表面处理工艺简介
  10. Python绘制三维图像实例