【论文解读】【文字检测】PixelLink
PixelLink: Detecting Scene Text via Instance Segmentation
作者:
一、Overview
1.1 拟解决的问题:
- 文本实例距离非常近的情况,语义分割无法分开两个实例
1.2 算法简介
- 预测包含两个部分:1)文本/非文本;2)连接预测
- 受到SegLink的启发,与其不同的是:PixelLink仅仅关注像素及其临近的8个像素是否在同一文本实例内,如果在的化就是正样本,否则为负
- 然后使用这两个部分的预测来生成Connected Components
- 最后使用OpenCV的minAreaRect方法来生成bbox
二、算法介绍
如图2,PixelLink使用实例分割来检测文本,预测文本像素并使用预测的links连接起来。bbox直接通过这些分割结果来生成
2.1 网络架构
- 遵循SDD和SegLink的架构,使用VGG16做backbone,并将fc6和fc7修改为conv6和conv7
- 如图3,整个模型的header分成两个部分;1)文本/非文本预测,2通道;2)link预测8*2=16通道。二者的预测均使用softmax
- 作者实现了两种特征提取架构:1)PixelLink+VGG16 2s {conv22, conv33, conv43, conv53, fc7},分辨率为原始输入的1/2;2)PixelLink+VGG16 4s {conv33,conv43, conv53, fc7},分辨率为原始输入的1/4
2.2 Linking Pixels Together
- 注意:给定两个相邻的正像素,当两个方向的连接的预测中的一个以上为正时,就执行连接
- 连接的实现使用disjoint-set并查集来实现
2.3 提取Bbox
- 使用OpenCV的minAreaRect提取bbox, 输出为任意方向的矩形
- 这就是PixelLink与基于回归的文本检测算法的不同,其边界框直接从分割结果获得
2.4 分割后的过滤
- IC15中过滤了宽度低于10个像素或者面积小于300的bbox。通过计算训练阶段的第99分位点得出
三、优化
3.1 GT生成
- 文本区域被标记为正像素
- 如果存在交叠文本,则只有两个文本框的非交叠部分为正,其他为负
- 给定一个像素及其8个邻像素,只有当他们属于一个文本实例才会被设为正,否则为负样本
3.2 损失函数
- 训练loss包含两个部分,像素loss和连接loss,如公式(1),其中
-- 连接oss仅计算正像素
-- 由于像素loss比连接loss重要,因此λ设置为2.0
1)Loss on Pixels
- 不同文本之间的尺寸变化大,直接使用分类loss对小尺寸文本框不公平,因此提出Instance-Balanced Cross-Entropy Loss,计算公式如公式(2),使得同一图片的不同实例损失相同
- 使用OHEM在线负样本挖掘设置正负样本比例1:r
- 总的loss公式如公式(3)
2)Loss on Links
- 正负link损失分别计算,其中W代表OHEM的比例
- link损失的计算公式如公式(4),rsum代表reduce sum
3.3 数据增强
- 类似SSD,并增加一个随机旋转步骤
四、可视化效果