热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

场景文字检测之CTPN

论文:DetectingTextinNaturalImagewithConnectionistTextProposalNetworkGithub(caffe版本):https:gi

论文:Detecting Text in Natural Image with Connectionist Text Proposal Network

Github(caffe版本):https://github.com/tianzhi0549/CTPN

Github(tensorflow版本):https://github.com/eragonruan/text-detection-ctpn

 

整体框架:


(1)首先一张图片经过VGG16基础网络,在conv5_3层引出,一共经过4个pooling操作,所以此时的conv5的大小为原图的1/16,维度为b*h*w*c(c=512)。

(2)在featuremap conv5上,由一个3*3的滑动窗口进行width方向的滑动。每一个3*3*c的向量会经过BLSTM转化为256维的向量。然后一共w个这样的向量,维度为b*h*w*c(c=256)。

(3)经过一个512维度的全连接层,维度变化为b*h*w*c(c=512)。

(4)这里k为anchor的个数,一共包含10个anchor,即k=10,从11-273像素,每次乘以1.4。该阶段分别输出垂直回归的中心点偏移和高度的偏移(vertical coordinates),维度为b*h*w*c*k(c=2,k=10),每个anchor回归的框的得分(score),维度为b*h*w*c*k(c=2),边框边缘的左右偏移值(side-refinement),维度为b*h*w*c*k(c=1)。

 

CTPN核心思想:

如上图所示,左面为传统RPN预测的框,右面为CTPN的框。由于RPN中anchor感受野的问题,不可能有一个anchor可以像传统的人车物检测那样覆盖了整行的文本。因此CTPN提出了宽度固定为16个像素的anchor策略。然后再将所有anchor预测结果进行NMS合并。

整体的思想还是非常novel的。

 

LOSS:


CTPN整体包含了3个loss,分类的Ls,边框回归的Lv,边框左右的回归的偏移Lo。

Ls为传统的softmax_cross_entropy_loss,其中,i表示所有预测的anchor中的第i个,Si_hat={0,1},Ns为归一化参数,表示所有的anchor的总和。

Lv使用的smooth_L1_loss,其中,j表示所有IOU>0.5的anchor中的第j个,Nv为归一化参数,表示所有的anchor和groudtruth的IOU>0.5的anchor数总和。λ1为多任务的平衡参数,λ1=1.0。


参数v的解释如上面的式子。实际需要预测的数值就是vc和vh,groundtruth为vc_hat和vh_hat。vc表示了实际的中心坐标和anchor中心的偏移,然后和anchor高度的比值,一句话说,就是,相对于anchor的中心坐标的归一化偏移量。同理,vh表示了归一化后的高度的伸缩量。

在实际预测的时候,只需要将式子反过来算,就可以算出cy和h,也就是最终的边框的中心坐标和高度。

Lo也是使用的smooth_L1_loss,其中,k表示边界anchor中的第k个,即预测和groundtruth相距32个像素的边界anchor的集合。Nv为归一化参数,表示所有边界anchor数总和。λ1为多任务的平衡参数,λ1=2.0。

o表示在x方向的归一化的偏移量。cx表示anchor的中心,Xside表示预测的中心。

如上图,红色的表示有side-refinement的结果,黄色为没有side-refinement的结果。可以看出经过side-refinement操作,可以使得边界更准确。

双向LSTM:


上图第一行表示没有使用BLSTM,第二行表示使用了BLSTM,可以看出,BLSTM可以起到将断开的区域连接起来的效果。并且使得边界更加准确。

 

总结:

优点:

CTPN对于检测的边框在上下左右4个点上都比较准确,这点比EAST要好。

 

缺点:

(1)CTPN只可以检测水平方向的文本,竖直方向的话就会出现一个字一个字断开的想象。倾斜角度的话需要修改后处理anchor的连接方式,但是应该会引入新的问题。

(2)CTPN由于涉及到anchor合并的问题,何时合并,何时断开,这是一个问题。程序使用的是水平50个像素内合并,垂直IOU>0.7合并。或许由于BLSTM的引入,导致断开这个环节变差。所以对于双栏,三栏的这种文本,ctpn会都当做一个框处理,有时也会分开处理,总之不像EAST效果好。




推荐阅读
author-avatar
卢-lydia09
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有