论文地址:DMPNet
受方向,透视变形,文本大小、颜色、尺度差异性等因素的影响,偶然场景文本检测是一项极具挑战性的任务。一般情况下,对文本的检测都是使用矩形框,但是这会带来背景噪声,产生不必要的重叠甚至信息的丢失。为此,论文提出一种基于CNN的方法,使用更紧密的四边形来对文字进行检测。首先,论文使用四边形滑动窗口来对文本进行粗略的检测,并提出一种共享的蒙特卡洛方法来对多边形面积进行快速而精确的计算,然后基于一种序贯协议确定四个点的顺序,并回归最终的四边形预测结果。此外,论文还提出了一种 smooth Ln 损失函数,其比 L2 和 smooth L1 更具鲁棒性和稳定性。
论文保留了传统的水平滑动窗口,并根据先验的文本固有形状特征在其中设置了若干四边形窗口:在正方形窗口内增加两个45度的矩形窗;在长矩形窗内增加两个长平行四边形窗口;在高矩形窗内增加两个高平行四边形窗口。其与SSD所使用的水平滑窗比较如图所示:
在计算滑动窗口与ground truth之间的重叠区域时,论文提出了一种共享的蒙特卡洛方法,其包含两个步骤:
(1)首先,在ground truth的外接矩形内均匀采10000个点,则ground truth的面积为重叠点在所有点中的比例乘以外接矩形的面积。在此步骤中,为了共享计算,所有ground truth内的点都被存储下来。
(2)当滑窗的外接矩形与ground truth的外接矩形不相交时,滑窗与ground truth的重叠区域为空,不需要进行计算。当其相交时,可用(1)中的方法计算滑窗的面积,而重叠区域的面积则为重叠点在所有ground truth点中的比例乘以外接矩形(我觉得这里应该是ground truth才对)的面积。这一步可以使用GPU并行计算,可以令一个线程负责计算一个滑窗与ground truth的重叠区域,这样便可以在短时间内处理成千上万个滑窗。
在判断点是否在多边形内时,论文使用的算法为crossing number algorithm,其原理可参考论文《The point in polygon problem for arbitrary polygons》,或even-odd rule algorithm,其原理可参考论文《A correct even-odd algorithm for the point-in-polygon (pip) problem for complex polygons》。
对于水平的矩形框,只需要预测两个对角点的位置即可唯一确定该矩形,但对于任意的四边形,则需要同时预测四个角点的坐标。
为了统一角点的顺序,论文提出了一种序贯协议。其示意如图所示:
其包含四步:(1)以横坐标最小的点为第一个点。当两个点的横坐标均为最小时,以它们中纵坐标最小的点为第一个点;(2)连接第一个点与其它三个点,以斜率为中间值的点为第三个点;(3)以处于bigger side的点为第二个点,剩下一个点为第四个点;(4)比较对角线的斜率,以斜率较大、横坐标较小的点为新的第一个点,若斜率为正无穷,则以纵坐标较小的点为新的第一个点,然后重新确定其余三个点。
在回归四个角点的坐标时,论文是通过回归其到外接矩形中心点的相对位置完成的,参数包括闭包矩形中心点的坐标和8个长度 (x,y,w1,h1,w2,h2,w3,h3,w4,h4) :
其中 wi 、 hi 可以为负值。之所以不直接预测四个角点的坐标,而是预测十个值,是因为角点坐标不包含相对信息,在实际学习过程中难以训练。
受Faster RCNN的启发,论文设定最终的回归目标为:
此即将四边形滑窗映射到ground truth的函数。
Faster RCNN使用的损失函数为 smooth L1 ,其比RCNN所使用的 L2 loss对离群点的敏感性要弱,但其仍然不够稳定,在训练过程中,回归线可能由于小的调整产生巨大的跳变,而在大的调整下可能只有微弱的变化。为此论文提出了一种 smooth Ln 损失函数,其表达式为:
论文所提出的方法在ICDAR 2015 Competition Challenge 4 “Incidental Scene Text”中取得了state-of-the-art的结果:
总的来说,论文所提出的算法能以四边形的方式对文字进行检测,减少了背景噪声的影响。由于算法所使用的四边形滑动窗口是事先设定好的,更深入的研究可以从设计自适应的四边形滑动窗口入手。