通常OCR中,文字检测都是由目标检测继承而来,目标检测大多都是基于先验框的(anchor base),近期出现的no-anchor模式本质上也是基于先验框的。anchor-base模式在目标检测衍生到OCR领域就有很多缺陷,比如:倾斜(或扭曲)文字检测不准、过长文字串检测不全、过短文字串容易遗漏、距离较近的无法分开等缺点。近期,渐进式扩展网络(PSENet)横空出世,以另一种思路解决了这些问题,下面我们来梳理一下该模型,不妥之处敬请指正。
模型概述
PSENet是一种新的实例分割网络,它有两方面的优势。 首先,psenet作为一种基于分割的方法,能够对任意形状的文本进行定位.其次,该模型提出了一种渐进的尺度扩展算法,该算法可以成功地识别相邻文本实例(该算法在下文会详细介绍)。
整体框架
如上图所示该模型主干网络使用ResNet系列(可以根据自己需要调整),输入图像维度为:[B,3,H,W],通过下采样,特征融合,上采样,最后得到得到与原图片尺寸相同的输出F,维度大小为:[B,C,H,W],其中C的大小为确定的kernel_num,这里记为n, 这样就得到最终的S1...Sn图片,然后利用广度优先算法从S1开始,到Sn结束,获取到最终的文本连通域。其中连通域的数量在S1中就已经确定,S1是预测的图片中目标文字的核心区域(并不是全部范围)。
算法介绍
该论文提出了渐进式尺度扩展算法,我们将每个文本实例分配给多个预测的分割区域,记作S1......Sn。我们将这些分割区域表示为本文中的“核”,并且对于一个文本实例,有几个对应的内核。每个内核与原始的整个文本实例共享相似的形状,并且它们都位于相同的中心点但在比例上不同。这些“核“对应的Ground Truth的产生流程如下:
如上图所示:(a)中pi为第i个核,pn是第n个核,di为pi与pn边缘之间的距离;(b)为最原始的文本区域;©为产生的多个分割区域。
如何得到分割实例对应的label呢?为了依次获得例如图©中的缩小的掩模,我们利用Vatti clipping algorithm来缩小原来的多边形pn的di像素,并得到缩小多边形pi (见图(a))。随后,每个缩小的多边形pi被转换成一个0/1的二进制掩码,用于分割标签的Ground Truth。我们将这些Ground Truth分别表示为G1.....Gn。从数学上讲,如果我们认为比例是ri,那么pn与pi之间的范围di可以计算为:
di=Perimeter(pn)Area(pn)(1−ri2)
其中Area(pn)为多边形pn的面积,Perimeter(pn)为多边形pn的周长,ri为pn与pi之间的比例。
ri的计算如下:
ri=1−n−1(1−m)∗(n−i)
其中m为缩小比例,取值范围在(0, 1];n为文本分割实例的数量,即”核“的数量。
对于预测的n个分割实例S1......Sn,为了得到最终的检测结果,我们采用了渐进的尺度扩展算法。 它基于广度优先搜索(BFS), 由三个步骤组成:
- 从具有最小尺度的核S1开始(在此步骤中可以区分实例,不同实例有不同的连通域);
- 通过逐步在较大的核中加入更多的像素来扩展它们的区域;
- 完成直到发现最大的核。
该算法的伪代码如下:
该算法的具体图解如下:
由于正常情况下非文本区域远大于文本区域,所以使用二分类的交叉熵损失会使得结果更加偏向于非文本区域,因此该模型中使用了dice coefficient。定义如下:
D(Si,Gi)=∑x,ySi,x,y2+∑x,yGi,x,y22∗∑x,y(Si,x,y∗Gi,x,y)
Sx,y为预测实例中像素点(x, y)的值,Gx,y为label中像素点(x, y)的值。
该模型定义了新的损失函数,损失计算如下:
L=λLc+(1−λ)Ls
Lc为文本区域分类损失,Ls为收缩文本实例损失,计算方式如下:
Lc=1−D(Sn∗M,Gn∗M)Ls=1−n−11(i=1∑n−1D(Si∗W,Gi∗W))W={1 if Sn,x,y>=0.50 otherwise
M的取值采用在线难例挖掘(online hard example miniing,OHEM)的方式生成,也是一个0/1的掩码。OHEM算法的核心思想是根据输入样本的损失进行筛选,筛选出难例,表示对分类和检测影响较大的样本,然后将筛选得到的这些样本应用在随机梯度下降中训练。具体到该模型中,选取所有正样本(主要是正样本本来就偏少,所以就全取)以及困难样本,过滤掉easy的负样本。被选中的像素点取值为1,未选中的取值为0。
最后说一些感受,OCR中文本检测本人用过YOLO、CTPN、PSENet。对于这三个模型的感受是,YOLO和CTPN的检测速度较快,PSENet的检测速度稍慢,YOLO对于长文本或短文本的很容易出现缺损或丢失的情况,CPTN在长短文本方面效果好一些,但是文本对齐效果不理想,PSENet在检测效果方面是碾压了前两者的。PSENet不仅适应任意角度的文本检测,而且对近距离文本分割效果更好。