ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CTPN理论学习笔记

2022-03-31 01:31:06  阅读:231  来源: 互联网

标签:笔记 regression 学习 算法 LSTM 文本 Anchor CTPN


https://zhuanlan.zhihu.com/p/34757009 https://zhuanlan.zhihu.com/p/51383402

 [CRNN]

https://zhuanlan.zhihu.com/p/43534801

介绍

 

  • CTPN是在ECCV 2016提出的一种文字检测算法。
    • CTPN <------ Faster RCNN【也就是接引入LSTM】
    • CNN作用是:提取感受野内的空间信息;
    • LSTM作用是:学习序列特征;
    • 双向LSTM=2个相反方向的LSTM相连。【比单项更为优秀,可以做双向预测,即后验预测】

 

网络结构

 

 

conv5 feature map

  • 取一点周围的9个点,每一个点都做处理:9*H*W,每个通道都要做。

为何使用双向LSTM?

  • 我的手机坏了,我打算____一部新手机。

如何通过FC层输出产生图中的Text proposals?

  • CTPN=“空间 + 序列”,在"FC"卷积层后接入RPN网络。这里的RPN与Faster R-CNN类似。
  • 左边分支用于bounding box regression回归。由于fc feature map每个点配备了10个Anchor,同时只回归中心y坐标与高度2个值,所以rpn_bboxp_red有20个channels。
  • 右边分支用于Softmax分类其Anchor的类别。

 

如何通过Text proposals确定最终的文本位置,即文本线构造算法?

竖直Anchor定位文字位置

  • 由于CTPN针对的是横向排列的文字检测,所以其采用了一组(10个)等宽度的Anchors,用于定位文字位置。Anchor宽高为:

  • 由于CTPN采用VGG16模型提取特征,那么conv5 feature map的宽高都是输入Image的宽高的
  • 同时FC与conv5 width和height都相等。【恢复图像尺寸】
  • CTPN为fc feature map每一个点都配备10个上述Anchors。好处
    • 保证在 方向上,Anchor覆盖原图每个点且不相互重叠。【因为宽度相同,每个点之间的宽度保证不重叠】
    • 不同文本在 方向上高度差距很大,所以设置Anchors高度为11-283,用于覆盖不同高度的文本目标。

  • Anchor尺寸对应原图尺寸,就不需要回归到很大的位置,只需要小范围调整。
  • bbox只修正Anchor的中心y坐标和高度,不修正Anchor的X坐标和宽度。【???】

  • 其中, 是回归预测的坐标, 是Ground Truth, 是Anchor的中心y坐标和高度。

效果

  • Anchor经过上述Softmax和 方向bounding box regeression处理后,会获得图7所示的一组竖直条状text proposal。后续只需要将这些text proposal用文本线构造算法连接在一起即可获得文本位置。

文本线构造算法

  • 已经获得了图所示的一串或多串text proposal,接下来就要采用文本线构造办法,把这些text proposal连接成一个文本检测框
  • 假设某张图有图所示的2个text proposal,即蓝色和红色2组Anchor,CTPN采用如下算法构造文本线:
    • 按照水平 坐标排序Anchor。
    • 按照规则依次计算每个Anchor ,组成
    • 通过 建立一个Connect graph,最终获得文本检测框。

细节

文本线构造算法通过如下方式建立每个Anchor

正向寻找:

  1. 沿水平正方向,寻找和 水平距离小于50像素的候选Anchor(每个Anchor宽16像素,也就是最多正向找再反向寻找:

     

    1. 沿水平负方向,寻找和 水平距离小于50的候选Anchor
    2. 从候选Anchor中,挑出与 竖直方向 的Anchor
    3. 挑出符合条件2中Softmax score最大的

    最后对比 :

    1. 如果 ,则这是一个最长连接,那么设置
    2. 如果 ,说明这不是一个最长的连接(即该连接肯定包含在另外一个更长的连接中)。

    举例说明

    Anchor已经按照 顺序排列好,并具有图中的Softmax score(这里的score是随便给出的,只用于说明文本线构造算法):

    1. ,向前寻找50像素,满足 且score最大的是 ,即 反向寻找,满足 且score最大的是 ,即 。由于 是最长连接,那么设置
    2. 正向寻找得到 反向寻找得到 ,但是 ,即 不是最长连接,包含在 中。
  2. ,所以Anchor index 0->3->7组成一个文本,即蓝色文本区域。
  3. ,所以Anchor index 6->10->12组成另外一个文本,即红色文本区域。

这样就通过Text proposals确定了文本检测框。

损失函数

  1. Anchor Softmax loss:该Loss用于监督学习每个Anchor中是否包含文本 表示是否是Groud truth。
  2. Anchor y coord regression loss:该Loss用于监督学习每个包含样本的Anchor的Bouding box regression y方向offset,类似于Smooth L1 loss。其中 中判定为有文本的Anchor,或者与Groud truth vertical IoU>0.5。
  3. Anchor x coord regression loss:该Loss用于监督学习每个包含文本的Anchor的Bouding box regression x方向offset,与y方向同理。前两个Loss存在的必要性很明确,但这个Loss有何作用作者没有解释(从训练和测试的实际效果看,作用不大)

  • 在Bounding box regression的训练过程中,其实

     

     

    总结

    • 有LSTM,对水平文本识别效果好。
    • 由于Anchor设定尺寸原因,仅能检测水平文字,对倾斜文字检测效果不好。
    • 对LSTM的训练,容易造成梯度爆炸。

     

     

标签:笔记,regression,学习,算法,LSTM,文本,Anchor,CTPN
来源: https://www.cnblogs.com/starc/p/16080003.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有