East:An Efficient and Accurate Scene Text Detector阅读及应用

本站访问次数:

East是旷视科技2017年发表的论文,针对于场景文本检测。与较早的rcnn,ctpn不同之处个人认为主要在于East以目标检测来做。目标即为检测文本框。因此,East网络也可以轻易的扩展到其他目标检测任务上。我主要在改进版的East基础上做手机号码检测与识别,以及之前的基于yolo的水印检测。

Overview

East的检测流程如图所示,类似于maskRCNN,一个分支做像素级语义分割(二分类(文本框与背景)此处的像素级可能不太准确,因为East并没有恢复到输入的分辨率),另一个分支做box的回归。然后NMS得到最终的目标框。

网络结构

  • 采用PVA net做特征提取, 然后又是标准的语义分割步骤,上采样以及跨层连接实现高层特征与低层特征融合。对于为什么没有恢复到原始大小,个人认为是否是若恢复原始尺寸,单个像素预测文本不太准(若输入为512*512,输出层为128*128,此时输出层一个像素对应来原图的4个像素)。
  • 对于网络的输出,首先输出单通道的score-map,每个点是否属于文本的概率。对于box回归,作者设计了两种方式,一种是RBOX,二是QUAD。

    RBOX:d1,d2,d3,d4,r。分别代表每个像素点到文本框各个边的距离,r代表预测的旋转角度。

    QUAD:(x1,y1;x2,y2;x3,y3;x4,y4)。这种方式为每个像素点直接预测框的四个坐标(难度大)。

    label 生成

如图中a所示,首先对人工的框进行缩放消除人工误差。对于像素级分割则生成b中所示的GT。生成以最小面积覆盖区域的旋转矩形,并计算每个像素点到旋转举行四条边的距离放到四个通道里。以及旋转角度为一个通道。

损失函数

对于像素级分割采用平衡交叉熵损失,对于RBOX作者设计了IOU损失以及角度的cosine损失,QUAD在采用了smoothed L1损失。

advancedEAST

East对长文本检测效果欠佳(个人认为是由于文本跨度太长会导致中间部分像素预测不准)。在East的基础上,网上的大神对East的输出结构进行了改进。

特征提取器没有太大的影响。作者主要修改了输出层,修改为7通道的输出。如下图:

此时做box的回归预测不再是所有像素参与,仅使用边界像素去预测相邻的两个坐标。输出层分别是1位score map, 是否在文本框内;2位vertex code,是否属于文本框边界像素以及是头还是尾;4位geo,是边界像素可以预测的2个顶点坐标。所有像素构成了文本框形状,然后只用边界像素去预测回归顶点坐标。边界像素定义为黄色和绿色框内部所有像素,是用所有的边界像素预测值的加权平均来预测头或尾的短边两端的两个顶点。头和尾部分边界像素分别预测2个顶点,最后得到4个顶点坐标。

advancedEAST后处理过程:

  • 1.由预测矩阵根据配置阈值得出激活像素集合
  • 2.左右邻接像素集合生成region list集合
  • 3.上下邻接region list组成region group(文本框激活区域)集合
  • 4.遍历每个region group,生成其头和尾边界像素集合,
  • 5.根据头和尾边界像素预测的到顶点Delta值与该边界像素坐标值计算顶点坐标,每个顶点的所有预测值的加权平均值作为最后的预测坐标值,并输出score

应用

  • 1. 水印检测。训练集为算法合成水印,测试集为真实水印。水印召回接近90%,非水印图片检测为水印图片率为2%。待改进训练方式以及尝试加入attention机制。

  • 2.下一步手机号码检测识别。

参考: