碎纸片拼接问题B
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
贪婪算法2:从右到左,依次选择距离最小的一片拼接。
贪婪算法3:每次选择所有邻接距离最小的两片拼接。
图论方法:以每个碎片为顶点,按照碎片两两之间的距离 定义一个有向权图。将拼接次序问题转化为求TSP问题。 再利用TSP问题的算法求解。
规划方法:将每一行的碎片依次编号为 1,2,, N . 定义两碎片之间的有向距离为 cij 。
1. 对于给定的来自同一页印刷文字文件的碎纸机破碎纸 片(仅纵切),建立碎纸片拼接复原模型和算法,并针 对附件1、附件2给出的中、英文各一页文件的碎片数据 进行拼接复原。如果复原过程需要人工干预,请写出干 预方式及干预的时间节点。复原结果以图片形式及表格 形式表达 。
附
附
件
件
1
2
2. 对于碎纸机既纵切又横切的情形,请设计碎纸片拼接 复原模型和算法,并针对附件3、附件4给出的中、英文 各一页文件的碎片数据进行拼接复原。如果复原过程需 要人工干预,请写出干预方式及干预的时间节点。复原 结果表达要求同上。
方法2:聚类算法:主要方法,效果好。
• 计算 Ai 的行和,得到一个特征向量 ri 。定义适当的 向量相似度指标,对 ri 进行相似度计算,然后对所有 碎片进行聚类,得到分行结果。
几种相似度度量指标:
欧式距离倒数: dij
|| ri
1 rj
||
夹角余弦:
cos ij
||
ri
riT rj || || rj
(1)确定决策变量
令
xi, j
1, 0,
第 j 张纸片放在第 i 行 否则
(2)确定目标函数: 以碎片分组后的总相似度最大为目标。
max z
cij xij
ij
(3)确定约束条件
M
xij
1, j 1,2,, M (N 1)
•每张碎片必在某一行
s.t.
i 1 MN M
xijwenku.baidu.com
N
1, i
令
xi,k
1,
0,
第 i 块碎片在第 k 个位置上 否则
min
N 1 N N
z
cij xi,k x j,k1
k1 i1 j1, ji
s.t.
N i1
xi,k
1,k
1,2,, N
xi,k 0或1
计算结果:
第三步:行间排序
利用行距等信息,或利用内容排序。
3、总结
• 思路:是否有全局最优的思想。
i1 j1
MN
xi, j,k 1, i 1,2,, M; j 1,2,, N
k 1
缺点: • 整数规划问题不易求解;规模增大,
计算量指数增加。 • 整体效果依赖于差异度指标,容易出错。
方法二:分组确定碎纸片的位置。
基本思路: 三步走,分行,行内排序,行间排序。
第一步:分行
方法1:直接利用行距信息分组。 普遍做法,精度略差(尤其是英文), 成功率80%左右,技术含量不足。
1,2,, M
•每行有N-1张碎片
j1
xij 0 或1
第二步:行内排序
距离定义:欧式距离、夹角余弦、相关系数、像素阵列 分布的距离
行内排序算法:
贪婪算法1:从左到右,依次选择距离最小的一片拼接。 步骤: 1)先确定左边第一张。 2)选择和当前已拼好的碎纸片中最右边的一张距离最小 的纸片,将其拼接上。 3)重复步骤2),直到这一行的所有碎片都拼好。
如何确定碎纸片的位置?
方法一:一次性确定所有碎纸片的位置。 方法二:分组确定碎纸片的位置。 方法三:逐一确定碎纸片的位置。
方法一:一次性确定所有碎纸片的位置。 目标函数:所有碎片的左右和上下差异度指标值 之和。
min
M N 1 MN MN
z
ck ,l xi, j,k xi, j1,l
3. 上述所给碎片数据均为单面打印文件,从现实情形出 发,还可能有双面打印文件的碎纸片拼接复原问题需要 解决。附件5给出的是一页英文印刷文字双面打印文件的 碎片数据。请尝试设计相应的碎纸片拼接复原模型与算 法,并就附件5的碎片数据给出拼接复原结果,结果表达 要求同上。
附件3 附件4
二、建模分析
(1)审题:找出关键语句
k 1
数学模型:
min
M N 1 MN MN
z
ck ,l xi, j,k xi, j1,l
i1 j1 k1 l1,l k
M 1 N MN MN
dk ,l xi, j,k xi1, j,l
i1 j1 k1 l 1,lk
MN
s.t.
xi, j,k 1, k 1,2,, MN
目标:开发碎纸片的自动拼接技术,以提高拼接复原效率。
任务:1. 对于给定的来自同一页印刷文字文件的碎纸机破 碎纸片(仅纵切),建立碎纸片拼接复原模型和算法。如 果复原过程需要人工干预,请写出干预方式及干预的时间 节点。
2. 对于碎纸机既纵切又横切的情形,请设计碎纸片拼接 复原模型和算法。 3. 双面打印文件的碎纸片拼接复原问题。尝试设计相应 的碎纸片拼接复原模型与算法。
怎么利用这些信息?
1)只利用纸片的边缘信息。 2)利用整张纸片的信息。 分析:显然,能从图片中找到的信息越多,计算可能 就越准确。但是从中能找到哪些信息呢? 例:行距、中心位置、文字所在行… …
差异度指标:
令 ci, j 表示碎片 i 和 j 左右拼接( i 左 j 右)的差异度 指标值,令 di, j 表示碎片 i 和 j 上下拼接( i 上 j 下) 的差异度指标值。
||
相关系数:
ij
cov(ri , rj ) 1
i j
分行结果统计:附件3,每页纸切成11×19张碎片
方法3:规划算法
• 假设每一行的最左边一块可以人工识别出来,依次记为 pi (i 1,2,,11) ,其它碎片记为 q j,每一个 q j 与 pi 的相似度记为 cij ,则可以求解如下规划问题来分组。
• 特征信息:分行时如何利用像素点信息?是否用 到文字结构信息?是否考虑多种信息,并通过比 较选取合适信息?
• 算法:算法与模型是否一致?算法描述是否清楚、 准确?
• 人工干预:干预方式和干预时间节点是否明确表 述?
存在问题:
i1 j1 k1 l1,l k
M 1 N MN MN
dk ,l xi, j,k xi1, j,l
i1 j1 k1 l 1,lk
约束条件: (1)每个碎片只能放在一个位置上。
MN
xi, j,k 1, k 1,2,, MN
i1 j1
(2)每个位置上也只能放置一张碎片。
MN
xi, j,k 1, i 1,2,, M; j 1,2,, N
• 将纸片依次编号为 1,2,……,MN,则可令
xi, j,k
10,,
第k张纸片放在第i 行第 j列 否则
i 1,2,, M; j 1,2,, N ; k 1,2,, MN
效果:如何衡量一个拼接方案的效果?
分析:如果所有纸片都正确拼接了,那么应该使得和 其有关的某些指标达到最优。
问题:构造什么样的指标?
可能的方案:
(1)整体的文字拼接正确度;
不易衡量。
(2)纸片两两之间的拼接正确度。
•如何计算纸片两两之间的拼接正确度? 分析:假设纸片 i 和 j 拼接在一起,i 左 j 右,则 应该可以计算出一个相关的正确度指标。
怎么计算?
• 利用什么信息计算? 利用Matlab 软件读取碎片,生成相对应的灰度值 数字矩阵 Ai 。
碎纸片的拼接复原
1、问题介绍 2、建模分析 3、总结
一、问题介绍: 碎纸片的拼接复原( 2013B题) 破碎文件的拼接在司法物证复原、历史文献修复以
及军事情报获取等领域都有着重要的应用。传统上,拼 接复原工作需由人工完成,准确率较高,但效率很低。 特别是当碎片数量巨大,人工拼接很难在短时间内完成 任务。随着计算机技术的发展,人们试图开发碎纸片的 自动拼接技术,以提高拼接复原效率。请讨论以下问题:
(2)主要任务
•如何拼接复原一组碎纸片? •怎样自动完成拼接?
(1)如何拼接完成一组碎纸片?
初步分析:将所有的纸片都放在正确的位置上。
位置: (1)如何描述一张纸片的位置? (2)如何判断一张纸片应该在哪个位置? 效果:如何衡量一个拼接方案的效果?
纸片位置的表示: 已知一张纸被切割成了M行、N 列,则每张纸片可 用其所在的行、列编号来表示其位置。