02 文本检测(一)-CTPN

1 CTPN的背景

CTPN是在ECCV 2016提出的一种文字检测算法。CTPN结合CNN与LSTM深度网络,能有效的检测出复杂场景下横向分布的文字。

2 CTPN的原理

2.1 网络结构在这里插入图片描述

CTPN 用到了 CNN 和 双向LSTM 的网络结构:
(1) CNN使用了VGG16进行图像的特征提取。
(2)双向LSTM对序列各元素前后的联系进行学习。
(3)最后为一个全连接层输出要预测的参数

2.2 竖直Anchor定位文字位置

Faster RCNN用来检测文字时采用的是一个大框,未考虑文本长条型的特性。
而CTPN通过“分治法”的思想,采用了一组(10个) 等宽度的竖向Anchors,用于定位文字位置。
Anchor宽高为:
在这里插入图片描述CTPN为全连接层feature map的每一个点都配备10个上述Anchors。
在这里插入图片描述这样设置Anchors是为了:
(1)保证在水平方向上,Anchor覆盖原图每个点且不相互重叠。
(2)不同文本在竖直方向上高度差距很大,所以设置Anchors高度为11-283,用于覆盖不同高度的文本目标。

获得Anchor后,与Faster R-CNN类似,CTPN会做如下处理:
(1)Softmax判断Anchor中是否包含文本,即选出Softmax score大的正Anchor。
(2)Bounding box regression修正包含文本的Anchor的中心y坐标高度
注意,与Faster R-CNN不同的是,这里Bounding box regression不修正Anchor中心x坐标和宽度。具体回归方式如下:
在这里插入图片描述其中, v = (vc, vh)是回归预测的坐标, v = (vc*, vh*)是Ground Truth,cya和 ha 是Anchor的中心y坐标和高度。
Anchor经过上述Softmax和y方向bounding box regeression处理后,会获得下图所示的一组竖直条状text proposal。后续只需要将这些text proposal用文本线构造算法连接在一起即可获得文本位置。
全连接层FC输出我们要预测的参数:2K个纵向坐标y,2k个分数,k个x的水平偏移量。
其中x为偏移量,用于精修文本框的左右边缘部分。
在这里插入图片描述

2.3 构造文本行

构造文本行的算法主要思想就是,每两个相近的anchor组成一个pair,然后合并不同的pair直到无法再合并,这就构成了一个文本区域。
判断两个anchor(不在同一列)组成pair的条件:
(1)两个anchor的中心点在水平方向上的距离小于50像素
(2)两个anchor在垂直方向上的重叠程度大于阈值0.7

2.4 损失函数

CTPN 的 loss 分为三部分:
(1)预测每个 anchor 是否包含文本区域的classification loss;
(2)文本区域中每个 anchor 的中心y坐标cy与高度h的regression loss;
(3)文本区域两侧 anchor 的中心x坐标cx 的regression loss。

3 CTPN的优缺点

3.1 优点

(1)采用一组竖直Anchor定位文字位置,将文本检测任务转换为一连串小尺度文本框的检测。
(2)采用CNN与双向LSTM想结合的方式,CNN用于提取图像特征,LSTM用于提取序列前后关系特征。
(3)Side-refinement(边界优化)提升文本框边界预测精准度。

3.2 缺点

对于非水平的文本的检测效果并不好。

猜你喜欢

转载自blog.csdn.net/weixin_42454048/article/details/114444748
02
今日推荐