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