system: [SYSTEM]

user: 2. 单面英文双向切割的碎纸片的拼接复原算法 本节针对双向切割的单面英文碎纸片的情况，设计拼接复原算法。设单/双面文本文件被横向平均分割成 份，纵向平均切割成 份，则碎纸片的总个数为 份。 2.1. 预处理 这些碎纸片在Matlab软件下，皆有唯一对应的矩阵 。为了使得矩阵的计算存储快捷，我们将数值矩阵转换成相应的稀疏矩阵，即令 。此时，矩阵中的元素“0”代表“白色”，“255”代表“黑色”。本文中的矩阵 皆作该处理。 Principle 1：任意两张列相邻的碎纸片，其相邻的两个向量中，黑色像素灰度值以及分布位置相近。例如，给定碎片 ，其最右边的列向量为 ；其余纸片为 ，其最左边的列向量为 。记 ，则模板碎片与 左右相邻的可能性最大。 Principle 2：处于同一行的碎纸片，具有相似的空白行间距特征，构成英文字母的黑色像素具有分布特征。 Principle 3：任意两张行相邻的横切碎纸片，也具有两种相似特征。具体的，若给定模板碎片 的最后一行向量为零向量(图像中的表现为空白行)，且该碎片底端的零向量共有 行，而与之相邻的碎纸片的顶端前 行也为零向量，根据空白行间距 固定的特征， ；另一方面，若 的最后一行 不为零向量，其余纸片为 及其最上边的行向量为 ，若 ，则指定的横切碎片与待拼接的横切碎片 上下相邻的可能性最大。 2.2. 同行碎纸片的聚类 本节，我们将 块纸片，先按行聚类，即聚成 类，每类包含 块纸片。通过观察，我们发现同行的英文碎纸片具有两种几何特征。首先构成文字的黑色像素的规律分布。同行英文字母的黑色像素，在该行的某些固定行高位置处出现频率较高。其次是基于空白的行间距，同行碎纸片的行间距所占的高度范围是基本相同的。结合这两种几何特征，我们来设计英文碎纸片的聚类算法。 2.2.1. 聚类原则 首先对碎纸片矩阵 作横向求和，得到的向量称为横向求和向量 ，横向求和向量中的第 个元素 表示矩阵 的第 行的元素之和。我们发现如果两个碎纸片位于同一行，那么碎纸片对应的两个横向求和向量中峰值出现的位置重合程度就越高(见图1与图2)，图1与图2所对应的碎纸片来自于2013年全国大学生数学建模B题提供的附件4的081.bmp和077.bmp。 本文将同行碎纸片中位置重合频率较高处的峰值称为必然峰值，而每行英文字母基本都有五个必然峰值。本文选取图1与图2所对应的两张碎纸片图像，并在图中标出每行字母中五个必然峰值所在位置(见图3)。图3也证实了同行碎片中必然峰值的重合性。本文将横向求和向量 中剩余的峰值称为“偶然峰值”，它们在同行碎纸片中各横向求和向量 中的出现具有偶然性。必然峰值在其形状特征上，表现为该峰值很大且很凸出；而偶然峰值的形状特征则是很小且很平缓。为了区别对待两种峰值情况，我们引入“峰值权数”的概念。这里，我们所说的“峰值”，取横向求和向量元素中的“极值”之意，本文假设“峰值”元素不小于其前三个和后三个元素。 定义1：设某模板碎片有 个峰值， 表示峰值权数向量，记 。其中 表示第 个峰值的峰值权数： (1) 图1. 图片081.bmp的横向求和图像 图2. 图片077.bmp的横向求和图像 图3. 五个必然峰值出现的位置(081.bmp， 077.bmp) 其中， 表示模板碎片的横向求和向量，而第 个峰值在横向求和向量 中的位置用 表示，即 表示第 个峰值的大小，同时称 为峰值位置向量。 由于 为峰值，由(1)式， ，因此，该定义有意义。下面，我们以模板碎纸片的峰值权数为参照，计算其余待聚类碎片与模板碎纸片的峰值位置重合处的峰值权数之和。 定义2：如果待聚类的碎片 与模板碎片 在某些相同位置处皆出现了峰值，则重合的位置所形成的重合位置集合记为 ，称 为待聚类碎片 的重合峰值权数之和。 由定义2可知，衡量待聚类碎片 与模板碎片 位于同一类的可能性的大小，就是衡量基于峰值重合位置集合 所对应的峰值权数之和的大小，若 ，则表示待聚类碎片 与模板碎片处于同一行可能性最大。 此外，处于同一行的碎纸片，还具有相同的空白行间距特征。为了利用这一几何特征，我们引入了行间距权数 。其定义如下。 定义3：令 为模板碎片中空白间距的像素行之和，待聚类碎片 本身在模板碎片 的空白间距范围内的空白像素行之和为 ，则待聚类碎片 的行间距权数定义为 (2) 从定义3可以看出， ，且 的值越大，则待聚类碎片 的空白行特征与模板碎片的空白行特征的相似性越好。 定义4：待聚类碎片 与模板碎片 位于同一类的可信度大小定义为 。 显然，综合了重合峰值权数之和 和行间距权数 所得到的聚类可信度 越大，则该碎片与模板碎片是同一类的可能性就越高。由于 和 的数量级不同，差别很大，因此，我们以 和 相乘的方式来可信度。 2.2.2. 模板碎片的更新 在聚类过程中，搜索拼接一个新碎片，往往要依赖于一个指定的模板碎片。如果模板碎片选取不当(横向求和向量中信息量较少)，筛选出的结果就会差强人意，此外还会引起连锁反应，导致后续筛选的碎片都出错。反过来想，如果一个模板中包含的碎片个数越多，则其所体现的峰值信息与行间距信息也就越全面，聚类过程中产生误差的可能性也越小。因此，我们所采取的改进方法是，指定模板碎片 后，根据聚类可信度 筛选出碎片 ，并且还要将 纳入到模板碎片中，即将[ ， ]作为新模板碎片，这样就可以使得下一次聚类时，新模板的峰值权数和行间距权数更加精确，再次聚类筛选所得的结果也更加准确。我们可将聚类算法归纳如下。 2.3. 类碎片序列的列拼接 当 个碎纸片都被聚类之后，就形成了 个类碎片序列，每个序列中有 个碎纸片。接下来，本文会将每个类碎片序列进行列拼接复原，拼接复原完成后的每类的碎片序列就可以作为一个完整的横切碎片。 若两碎纸片左右是相邻的，则前一个碎纸片右边一列的像素与后一个碎纸片左边一列的像素向量，在相邻行高位置处的黑色像素灰度值是渐进变化的。这个几何特点在数值上表现为，切缝边缘的两个列向量在相同高度上的非零数值元素(即黑色像素)的大小变化是“渐进的”。为此本文引入边缘差异度 ，其定义如下： 其中 为向量的 范数， 为指定碎片， 是待聚类碎片，而 则表示待拼接碎片 与指定碎片 的边缘差异度。而待聚类碎片中边缘相似度最大的碎片，即边缘差异度 最小的碎片。所以指定碎片 的邻接碎片 ，定义如下： 通过该1-范数最小差异模型就可以得到指定碎片 的邻接碎片 。为了放大误差的效果，本文还对1-范数最小差异模型进行了优化，即引入Jffreys & Matusita距离 [ 6 ] ，此时向量 的边缘差异度 定义如下： 类碎片序列的列拼接算法归纳如下。 2.4. 横切碎片的行拼接 同行的类碎片序列按序拼接复原后就形成了一个完整的横切碎片 。所以在整个拼接复原流程中，对横切碎片的拼接就成为了最后一步。横切碎片的拼接复原基于两个准则，其一就是1-范数最小相似模型，其二则是行间距固定的几何特征。如果指定横切碎片 的底端有黑色像素，则可以使用优化后的1-范数最小相似模型搜索拼接邻接碎片。如果横切碎片 的底端为空白行，则利用该碎片底端空白行距 与相邻碎片顶端空白行距 之和与行间距 相等的几何特征，即 来完成横切碎片的拼接复原。该算法归纳如下。 Table 1 The results of row-clustering of single-sized text fil T 1 2 3 4 5 6 7 8 9 10 11 初始模板 002 006 005 019 001 015 007 008 003 009 000 p 16 19 17 17 19 18 18 18 18 18 19 q 84% 100% 89% 89% 100% 94% 94% 94% 94% 94% 100% 表1. 单面行聚类序列统计表