弯曲矫正技术概述
一、背景
电子文档由于更容易存档、编辑、签名和共享,越来越多的文档需电子化,随着高质量摄像头在手机等移动设备上的普及,利用移动设备对文档进行数字化采集已经非常普遍。通过图像校正与图像质量提升,移动设备采集的文档图像质量甚至可以与专用的文档扫描仪相当。然而,文档总是由于纸张几何形状和捕获条件不受控制而形变。这阻碍了形变图像的信息提取,降低可读性,对数据增强和下游任务如 OCR 识别、版面分析与还原等任务增加难度。
二、方法概述
为解决文档弯曲矫正问题,学术界已有多种方案。一类是利用多目相机,结构光或者激光雷达等设备对文档进行扫描,获得文档表面的 3D 结构信息,进而对文档校正展平。这类方法一般可以得到比较好的校正效果,但依赖专用设备的特点限制了其使用场景。
还有一类是利用显式的几何模型以适应形变文档曲面,这类方法完全依靠图像信息以及文档形变的先验知识对图像进行校正。这类方法一般需要进行文字行或者表格线的检测,并假设曲面符合特定的几何约束,如曲面是柱面。这类方法可以在普通的移动设备上实现,但是其校正效果受文字行检测准确度的限制,对文档版式比较敏感,无法处理存在大量图表的文档,且误检的文字行有可能会对校正造成严重干扰。
还有一类基于优化的方法,利用损失函数缓慢迭代优化以获得形变矫正结果,但时间较长不适合实时应用。
最近,数据驱动的方法已经流行起来。这些方法训练一个形变矫正神经网络,学习形变场,从而得到类似扫描的结果。这样的网络可以实现实时矫正。Das 等人使用 CNN 检测文档的折痕并进行分割文件分成多个块进行矫正。Xing 等人 应用 CNN 估计文档变形和相机姿态以进行校正。Ramanna 等人通过利用 pix2pixhd 网络去除文档的卷曲和几何失真。
然而,这些方法仅适用于简单变形和单调背景。Ma 等人 提出了一个堆叠的 U-Net,它经过训练端到端预测翘曲的前向映射。 由于生成的数据集与真实世界的图像有很大不同,[15]对其进行了训练在真实世界的图像上测试时,数据集的泛化能力较差。Das 等人认为当合成训练数据集仅使用 2D 变形进行训练时,弯曲矫正模型并不总是表现良好,因此他们创建了一个 Doc3D 数据集,该数据集具有多种类型的像素级文档图像偏移场,同时使用真实世界文档和渲染软件。
同时,提出了一种去扭曲网络和细化网络来校正文档图像的几何和阴影。李等人 在 3D 空间中生成训练数据集,并使用渲染引擎获得更精细、更逼真的失真文档图像细节。他们提出了基于图像块(patch)的学习方法,并通过在梯度域中的处理将 patch 结果拼接到校正后的文档中,以及用于去除阴影的光照校正网络。与之前的方法相比,这些文献更关心生成的训练数据集和真实世界测试数据集之间的差异,并专注于生成更真实的训练数据集以提高真实世界图像的泛化能力。尽管这些结果令人惊叹,但深度神经网络的学习和表达能力并未得到充分探索。
二、合合方案
我们将弯曲矫正问题定义如下:
其中 u 是形变场,S(Source)是弯曲图,T(Target)是平整图。一个理想的空间变换(spatial transformation)需要有两个衡量标准,及相似度和正则项,一方面我们期望弯曲样本变换后与目标(平整样本)越相似越好,图像相似性有很多种标准,常见的有相关系数(Correlation Coefficient, CC)、归一化的相关系数(NCC)、互信息(Mutual Information, MI)、均方误差(MSE)等。
另一方面,我们也希望这个变换是空间上平滑且连续的,这样能保证变换遵循物理模型,存在连续可逆的变换,使得我们的变换在数据合成等方面有更广泛的应用。和相似度损失函数类似,正则项在网络里也有多种实现方式,一种是通过对位移场直接进行空间梯度惩罚,一种则是通过对速度场进行约束后再通过积分层得到最终形变场,还有一种则是在训练过程中通过循环损失函数来实现。
形变矫正网络可以是 encoder-decoder 类似结构,由于惩罚项如果直接施加在位移场上,大位移场景模型的矫正能力就会降低,有方案通过多次迭代矫正过程位移场来实现大形变。
我们则参考配准中的流模型(fluid model),用速度场来建模形变场,并通过积分层来实现最终的形变场。事实上,位移场也可以被视作是轨迹固定的流场(直线)。 对于不同的正则项, 在大部分情况下,直线轨迹并不是最优解。直线轨迹得到的正则项的值很多情况下会更大点。 作为对比,引入速度场在这种情形下实现了更多的自由度。 如果你对这一块感到困惑,可以想象连接世界地图上两个地方的最短路径, 大部分情况下都不是直线[Ref]。速度场求解可转换为如下问题,其中 L 是对速度场施加的正则项。
空间变换网络一开始提出时只是简单用作仿射变换等,后来采用了采样网格的方式使得它功能更加强大。对于大小为[W, H]的二维图像来说,其位移场大小为[W, H, 2]。位移场表示每个像素在各个方向(x,y 轴)的位移。空间变换网络会根据位移场生成一个归一化后的采样网格,然后用该网络对图像进行采样,就得到了矫正后的图像。
版权声明: 本文为 InfoQ 作者【合合技术团队】的原创文章。
原文链接:【http://xie.infoq.cn/article/a2135192c42247d6c7da2bf40】。文章转载请联系作者。
评论