碎纸片的拼接复原数学建模二等奖论文.docx

上传人:b****6 文档编号:3459846 上传时间:2022-11-23 格式:DOCX 页数:49 大小:1.37MB
下载 相关 举报
碎纸片的拼接复原数学建模二等奖论文.docx_第1页
第1页 / 共49页
碎纸片的拼接复原数学建模二等奖论文.docx_第2页
第2页 / 共49页
碎纸片的拼接复原数学建模二等奖论文.docx_第3页
第3页 / 共49页
碎纸片的拼接复原数学建模二等奖论文.docx_第4页
第4页 / 共49页
碎纸片的拼接复原数学建模二等奖论文.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

碎纸片的拼接复原数学建模二等奖论文.docx

《碎纸片的拼接复原数学建模二等奖论文.docx》由会员分享,可在线阅读,更多相关《碎纸片的拼接复原数学建模二等奖论文.docx(49页珍藏版)》请在冰豆网上搜索。

碎纸片的拼接复原数学建模二等奖论文.docx

碎纸片的拼接复原数学建模二等奖论文

碎纸片的拼接复原

摘要

破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。

但是人工完成效率很低,所以引入计算机复原,计算机虽然准确率不及人工高,但是可以大大减轻工作强度。

本论文主要是对纸张形状为矩形切割规范并且纸张上的文字标准的碎纸片的拼接复原的研究。

问题一:

首先根据图片的灰度矩阵找出第一张(最左侧)图片,根据小差值优先匹配依次排出相邻图片。

碎纸片复原后的顺序如附件一、二所示。

问题二:

首先根据图片的灰度矩阵最左侧n列灰度值求和最大,可找出第一列(最左侧)图片,共11张。

根据“行间”的位置特征作为凝聚点进行聚类分析,将所有图片分为11类,即11行。

应用小差值优先匹配将这每行的图片进行拼接,得到11个行图片,再次应用小差值优先匹配把这11个行图片拼接成完整的图片。

碎纸片复原后的顺序如附件三、四所示。

问题三:

同问题二方法一致,找出第一列(最左侧)图片(正反两面共有22张图片),将这些“行间”的位置特征作为凝聚点进行聚类分析,所有的图片分为11“大行”,将这些图片配对的正反面进行上边缘“粘接”处理,按照小差值优先匹配将这每行的粘接形成的19图片(如图一所示)进行拼接,得到11个行图片之后,再次应用小差值优先匹配把这11个行图片拼接成完整的图片。

碎纸片复原后的顺序如附件五所示。

观察上述三个问题的处理方法可知,三个问题的解决办法主干思想完全相同,都是小差值优先匹配解决,并且清晰简练。

但是由于问题的逐渐深入和复杂程度的增加,仅靠这一个简单的方法并不能在实际中解决问题,于是增加约束条件减小搜索范围,如:

找出“行间”位置,并作为凝聚点进行聚类分析,然后就可以很大程度上减小出错的概率。

关键词:

聚类分析、MATLABR2012a、小差值优先匹配、灰度矩阵

 

1、问题重述

破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。

传统上,拼接复原工作需由人工完成,准确率较高,但效率很低。

特别是当碎片数量巨大,人工拼接很难在短时间内完成任务。

随着计算机技术的发展,人们试图开发碎纸片的自动拼接技术,以提高拼接复原效率。

请讨论以下问题:

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

如果复原过程需要人工干预,请写出干预方式及干预的时间节点。

复原结果以图片形式及表格形式表达(见【结果表达格式说明】)。

(2).对于碎纸机既纵切又横切的情形,请设计碎纸片拼接复原模型和算法,并针对附件3、附件4给出的中、英文各一页文件的碎片数据进行拼接复原。

如果复原过程需要人工干预,请写出干预方式及干预的时间节点。

复原结果表达要求同上。

(3).上述所给碎片数据均为单面打印文件,从现实情形出发,还可能有双面打印文件的碎纸片拼接复原问题需要解决。

附件5给出的是一页英文印刷文字双面打印文件的碎片数据。

请尝试设计相应的碎纸片拼接复原模型与算法,并就附件5的碎片数据给出拼接复原结果,结果表达要求同上。

2、问题分析

分析本问题可知,第一问是解决此类问题的基本方法,第二问及第三问相比第一问逐渐变得复杂,但主要解决思路与第一问相同,只是在第一问的基础上需要应用其他方法缩小搜索范围,但主体方法并未改变。

针对问题一:

对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸片拼接复原模型和算法。

在MATLAB软件[1][2]中应用imread函数读取附件一及附件二中的图片,可以获得相应的灰度矩阵,从矩阵中可以清楚地看到图片中每个像素的灰度值。

观察图片边缘及灰度矩阵边缘可以得出:

图片被切割后会在这张图片被切割两侧生成相似的两个列矩阵,可以猜测这两个列矩阵相似程度越高则这两张图片可以拼接复原的概率就越大。

为表示两列矩阵的相似程度,对这两列矩阵进行对应行相减取绝对值最后求和,所求得的和越小两矩阵越相似即复原概率越大。

最左边一张图片的最左侧全为空白,即最左侧矩阵所有行求和值最大,可以得到最左侧的图片,然后可以拼接出整张图片。

针对问题二:

对于碎纸机既纵切又横切的情形,请设计碎纸片拼接复原模型和算法。

方法一:

应用第一问中的小差值优先匹配,求出所有图片边缘矩阵的对应行相减取绝对值最后求和,然后逐个比较,此时会发现由于图片小且图片中字数较少,灰度矩阵所给出的信息就会比较少,并且应用小差值优先匹配所求和会有大量数值相差不是很大图片出现,出现过多的候选项,这会对判断哪张图片可以复原产生很大的影响,甚至会出现无法选择,因为部分图片是正好没有切割文字,此时计算机是无法判断哪张可以复原的,就需要对方法一进行补充提供更多的约束条件或是进行人工干预,所以得出了以下的方法二。

方法二:

此方法主体方法也是应用小差值优先匹配,针对上述出现过多的候选项情况,观察附件三及附件四中的图片会发现,虽然所给的图片小且文字数目少,但是观察可知这些图片全部大小一致但是“行间”(两行文字之间的空白处)所出现的位置是不同的,记录这几行的位置,将其余图片所生成的矩阵对比,若特殊的几行出现在相同的位置,则可将这些图片分为一“大行”(这些图片的行间距出现的位置相同)。

然后将“大行”内的图片应用第一问中的小差值优先匹配进行拼接,可将这些行拼出。

紧接着人工干预将所得的行分为11行(如果所得到的行多余11行),最后将这是11行转置成11列,按照第一问的方法进行即可拼出完整的图片。

针对问题三:

该问题比第二问更复杂,但是更贴合于实际情况,即实用性很强。

仔细观察附件5中的图片,可以观察到,每张图片的a面和b面,“行间”所处的位置是相同的。

这样,可以“行间”所处的位置进行聚类,聚为11类,同第二问方法一样,先分行,然后再每行拼接出来,转置成列,应用小差值优先匹配将这11列拼接,即可得出完整图片。

但是行分完后,猜测每行有英语碎纸片,由于英文字母本身所能获得的信息量较少,且每行的图片过多,在按照第二种方法处理时,会出现过多接近值,甚至会出现错误排列,

再仔细观察及阅读题意可以得出,一行图片的正面确定且结果正确时,反面是自然形成的,这样就只用到了一面数据量,若此时将两张图片的正反面以上边缘相接展开,形成高度是原高两倍的行图片,这样就会同时应用到正反两面的边缘数据,提高筛选时的准确率。

同理,在每一行都拼完后,在进行“大行”相拼的时候,可以将这个行的正反两面以右边缘相接展开,又会形成长度是原长两倍的行,也同时应用到正反两面的边缘数据提高筛选时的准确率。

 

得到图形如一所示:

…a

…a(b)

…a(b)

…a(b)

…a(b)

…b

…b(a)

…b(a)

…b(a)

…b(a)

图一(正反面粘接)

按照如上图片正反连接在一起后应用小差值优先匹配加以适当的人工干预,拼出完整行图片。

这样可以确定11张行图片,将这11张图片转置成11个列图片,之后再次应用小差值优先匹配拼出完整图片。

3、模型假设

(1)假设所有复原图片中位于同一面的文字的行间距相同。

(2)假设页面上的文字全部是统一字体且页面排版相同。

(3)假设页面整洁干净无黑点等干扰项。

(4)第一列文字距离纸张左边缘的距离大于两相邻文字间的距离。

 

4、符号说明及名词定义

符号说明:

k:

第k张图片

n:

图片具有n行

I:

两张图片边缘拼接能力,值越小,越容易拼接。

第k张图片所对应的灰度矩阵。

;

矩阵的第i行第j列所对应的元素。

名词定义:

“行间”:

相邻两行文字之间固定存在的空白区域,即文字排版时所设计的隔开每行的空白区域。

它与这行中是否存在文字无关。

小差值优先匹配:

在n张图片中取出每张图片的最左和最右侧的两个列灰度矩阵,然后任一两张图片进行下列运算:

第一张图片的最右侧矩阵与第二张图片的最左侧灰度矩阵对应行相减,取绝对值最后求和,这个值越小,表明这两张图片边缘灰度值越接近,即两张图片的边缘小差值优先匹配,拼接的概率越大。

5、模型建立与求解

5.1第一问模型建立与求解:

对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸片拼接复原模型和算法。

在MATLAB软件中应用imread函数[1][2]读取附件一中的19张图片,得到19个灰度矩阵

建立目标函数为:

····························································

(1)

按算法如下:

(1)找出第一张图片:

·······························

(2)

因为一张完整纸张上的字体第一列都会距离页面最左端有一定的距离以方便阅读和美观,所有最左边的图片最左端会对应一列全白,即所生成的矩阵第一列全为255,此时对该矩阵所有行求和会得到最大值504900。

应用以上结论,对所有图片的灰度矩阵第一列进行求和,所得值最大的即为最左边一张照片,即

对所有图片的灰度矩阵第一列进行求最大值的结果为第008张图片为最左边一张图片。

(2)找出第k张照片:

·······························(3)

观察图片边缘及灰度矩阵边缘可以得出:

图片被切割后会在这张图片被切割两侧生成两个相似的列矩阵,即这两个列矩阵相似程度越高则这两张图片可以拼接复原的概率就越大,这里将此方法命名为小差值优先匹配。

为比较图片边缘相似程度,将所有图片的最左侧及最右侧矩阵取出,即

对这两列矩阵进行对应行相减取绝对值最后求和,所求得的和越小两矩阵越相似,即匹配概率越大,即

(k=2)。

[3]此时和最小的即为第2张图片。

以此类推,应用程序1即可求出第3、4、5……19张图片。

顺序如表格一所示:

8

14

12

15

3

10

2

16

1

4

5

9

13

18

11

7

17

0

6

表格一

(3)MATLAB拼接19张图片

由程序2所求出图片顺序在MATLAB中用imtool函数[4]将图片按顺序合并。

完整图片的排列顺序即完整图如附件一所示。

第一问中的英文图片按上述

(1)

(2)(3)操作即可得出合并后的图片。

完整图片的排列顺序即完整图如表格二所示。

表格二

3

6

2

7

15

18

11

0

5

1

9

13

10

8

12

14

17

16

4

运行程序二即为按照上述步骤操作后得出的完整图片。

5.2第二问模型建立与求解:

对于碎纸机既纵切又横切的情形,请设计碎纸片拼接复原模型和算法,并针对附件3、附件4给出的中、英文各一页文件的碎片数据进行拼接复原。

根据第一问模型改进后建立第二问目标函数为:

·······························(4)

要解决这个问题,要将这些碎纸片首先按照一定特征聚类,缩小搜索范围,应用到的这种方法叫做聚类分析。

5.2.1聚类分析[5]:

聚类分析(clusteranalysis)是一组将研究对象分为相对同质的群组(clusters)的统计分析技术。

聚类分析区别于分类分析(classificationanalysis),后者是有监督的学习。

选取若干个样品作为凝聚点,计算每个样品和凝聚点的距离,进行初始分类,然后根据初始分类计算其重心,再进行第二次分类,一直到所有样品不再调整为止。

动态聚类法计算简单,分类迅速,占用计算机内存少,特别是当样品数较大时,采用动态聚类法比较有利;但动态聚类法的分类结果与最初凝聚点的选择有关,有较大的不确定性。

聚类过程如图二所示:

 

图二

本题中所应用到的聚类方法为:

最短距离法,此论文中,为便于理解,将最短距离理解为灰度值接近,即两边缘小差值优先匹配,记为小差值优先匹配。

以下用

表示样品

之间距离,用

表示类

之间的距离。

定义类

之间的距离为两类最近样品的距离,即

·······························(4)

设类

合并成一个新类记为

,则任一类

的距离是:

·······························(5)

最短距离法聚类的步骤如下:

(1)定义样品之间距离,计算样品两两距离,得一距离阵记为

,开始每个样品自成一类,显然这时

(2)找出

的非对角线最小元素,设为

,则将

合并成一个新类,记为

,即

(3)给出计算新类与其它类的距离公式:

·······························(6)

中第p、q行及p、q列用上面公式并成一个新行新列,新行新列对应

,所得到的矩阵记为

(4)对

重复上述对

(2)、(3)两步得

;如此下去,直到所有的元素并成一类为止。

如果某一步

中非对角线最小的元素不止一个,则对应这些最小元素的类可以同时合并。

最短距离法也可用于指标(变量)分类,分类时可以用距离,也可以用相似系数。

但用相似系数时应找最大的元素并类,也就是把公式

中的min换成max。

按算法解决步骤如下:

5.2.2对于碎纸机既纵切又横切的情形,请设计碎纸片拼接复原模型和算法,观察附件三中的图片,可以发现这些图片存在以下两个规律:

(1)一些图片的整个左端有很大一部分空白,初步参测这几张图片为整张图片的第一列。

将附件三中的209张图片用MATLAB用imread函数读出209个灰度矩阵,因为这些图片的整个左端有很大一部分空白,所以这几张图片前11列都是灰度值255,对这11列所有的元素进行求和可得255*11*180=504900,然后对所有图片的前11列求和[7][8],并筛选出数值为504900的所有图片,

······························(7)

并将这些图片作为第一列。

筛选结果如下

007、014、029、038、049、061、071、089、、094、125、168(.bmp)这11张图片构成了完整图片的第一列。

(2)这209图片全部大小一致但是行间距(两行文字之间的空白)所出现的位置是不同的,“行间”出现的位置不同且只有固定的几种。

表现在灰度矩阵中就是整个同一行的图片会出现相同的某几行数值全为255,对这些矩阵进行行求和,利用MATLAB将值为19*255=4854的行记为1[9],值小于4854的记为0,可以清晰的得出“行间”的位置,在此处记录两个完整的“行间”,利用这些位置特征将这209张图片分为11类,即11“大行”。

MATLAB实现分“大行”过程:

将附件3中求出的209图片,全部进行每行求和,并利用MATLAB将值为19*255=4854的行记为1,值小于4854的记为0,可以得出这209张图片的“行间”位置记录矩阵。

将以上11张图片的“行间”位置作为参考,利用这些图片分成11行。

由于图片较小从中能获取的数据量较少,所以再用小差值优先匹配后会的发现拼错的概率比较大,所以在此对模型进行改进,同上,找出图片最右侧一列,然后从右往左开始拼接,最后将这两列图片合并选取各种准确的排列,如此,可以降低排列出错的概率。

(3)对这11行中的19张图片,进行行方向上的拼接。

应用上述聚类分析最短距离分析中提出的小差值优先匹配进行拼接,由于纸片较小可以获得的信息量非常少,尽管已经将范围缩小到19张,但是仍然会出现拼接错误出现如下图一所示情况:

 

图一

然后,按照上述方法找出最右侧图片,从右往左拼接图片如图二所示

图二

观察可以看出图一图二均出现了四处拼接错误,但两张可以拼出完整的一行,即此时需要进行人工干预,干预方式:

比较两张图片,排出正确的顺序。

后面生成的图片中有少量会出现错误,干预方式及干预时间与上述图片相似,这里不再重复叙述

(4)对折11张“行纸片”进行列方向上的拼接。

对这是一个行纸片转置又形成11个列纸片,再次应用小差值优先匹配,即可将这11列纸片拼接为完整的一张纸。

完整图片的排列顺序即完整图如附件三所示。

运行程序四即为按照上述步骤操作后得出的完整图片。

(5)附件4中的英文纸片重复上述步骤

(1)

(2)(3(4),即可得出复原后的图片。

完整图片的排列顺序即完整图如表格三和表格四所示。

表格三

49

54

65

143

186

2

57

192

178

118

190

95

11

22

129

28

91

188

144

61

19

78

67

69

99

162

96

131

79

63

116

163

72

6

177

20

52

36

168

100

76

62

142

30

41

23

147

191

50

179

120

86

195

26

1

87

18

38

148

46

161

24

35

81

189

122

103

130

193

88

167

25

8

9

105

74

14

128

3

159

82

199

135

12

73

160

203

169

134

39

31

51

107

115

176

94

34

84

183

90

47

121

42

124

144

77

112

149

97

136

164

127

58

43

125

13

182

109

197

16

184

110

187

66

106

150

21

173

157

181

204

139

145

29

64

111

201

5

92

180

48

37

75

55

44

206

10

104

98

172

171

59

7

208

138

158

126

68

175

45

174

0

137

53

56

93

153

70

166

32

196

71

156

83

132

200

17

80

33

202

198

15

133

170

205

85

152

165

27

60

89

146

102

154

114

40

151

207

155

140

185

108

117

4

101

113

194

119

123

表格四

191

075

011

154

190

184

002

104

180

064

106

004

149

032

204

065

039

067

147

201

148

170

196

198

094

113

164

078

103

091

080

101

026

100

006

017

028

146

086

051

107

029

040

158

186

098

024

117

150

005

059

058

092

030

037

046

127

019

194

093

141

088

121

126

105

155

114

176

182

151

022

057

202

071

165

082

159

139

001

129

063

138

153

053

038

123

120

175

085

050

160

187

097

203

031

020

041

108

116

136

073

036

207

135

015

076

043

199

045

173

079

161

179

143

208

021

007

049

061

119

033

142

168

062

169

054

192

133

118

189

162

197

112

070

084

060

014

068

174

137

195

008

047

172

156

196

023

099

122

090

185

109

132

181

095

069

167

163

166

188

111

144

206

003

130

034

013

110

025

027

178

171

042

066

205

010

157

074

145

083

134

055

018

056

035

016

009

183

152

044

081

077

128

200

131

052

125

140

193

087

089

048

072

012

177

124

000

102

115

运行程序五即为按照上述步骤操作后得出的完整图片。

(见附录)

5.3第三问模型建立与求解:

上述所给碎片数据均为单面打印文件,从现实情形出发,还可能有双面打印文件的碎纸片拼接复原问题需要解决。

附件5给出的是一页英文印刷文字双面打印文件的碎片数据。

请尝试设计相应的碎纸片拼接复原模型与算法

根据前两问的模型改进优化后建立第三问目标函数:

······························(8)

·····························(9)

)·····················(10)

·························(11)

该问题比第二问更复杂,但是更贴合于实际情况,所以实用性很强。

仔细观察附件5中的图片,可以观察到,每张图片的a面和b面,“行间”所处的位置是相同的,对每一张图片的a、b面读取灰度矩阵,对比可知“行间”出现的位置相同。

即在不知正反面的情况下,可先将正反面分为同一行。

按算法解决步骤如下:

(1)找出最左侧一列的图片

观察附件。

所有最左边的图片最左端会对应一列全白,即所生成的矩阵通过灰度矩阵图可知最多前11列全为255,此时对该矩阵所有行求和会得到最大值504900。

应用以上结论,对所有图片的灰度矩阵第一列进行求和,所得值最大的即为最左边一列照片

(2)所以在进行聚类分析的时候可以先将这些“行间”相同的图片分为一“大行”。

MATLAB实现分“大行”过程:

将附件5中求出的518图片,全部进行灰度矩阵每行求和,并利用MATLAB将值为19*255=4854的行记为1,值小于4854的记为0,可以得出这508张图片的“行间”位置记录矩阵。

(1)中求出的最左侧的11个图片的“行间”位置作为凝聚点,聚类分析将所有的图片分成11“大行”,每行包含19X2=38张图片。

这38张图片“行间”位置是相同的,并且这38张包括19张正反面。

将每一张图片的正反面通过上边缘粘接就会形成一个二倍高的纸片,这样就会从边缘获取更多的信息量。

(3)每一“大行”的拼接

应用上述聚类分析最短距离分析中提出的小差值优先匹配进行拼接,依次即可排出11个行图片。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1