每天一道面试题:简述CTPN算法的主要步骤

本公众号由哥大,清华,复旦,中科大多名研究生共同创建,主要更新最新AI顶会快速解读和Pytorch编程,金融大数据与量化投资。如果您喜欢的话请关注我们公众号回复python,有大量学习资源赠送,谢谢!欢迎加微信号:uft-uft进群交流,记得备注知乎+所在学校或企业。

weixin.qq.com/r/Bik6IiT (二维码自动识别)


u.wechat.com/MK2C3qQoAk (二维码自动识别)



CTPN算法是自然场景图像文本检测的经典算法:





整个检测分六步:

第一步:将图片输入,用VGG16的前5个Conv stage(到conv5)得到feature map(W*H*C)。将图片标注好的坐标rois输入,得到在feature map中对应的坐标。

第二步:在Conv5的feature map的每个位置上取3*3*C的窗口的特征,这些特征将用于预测该位置k个anchor对应的类别信息,位置信息。C是指通道数,512

备注:k个anchor的设置如下:宽度都是16像素,高度从11~273像素变化(每次乘以1.4)

第三步:将每一行的所有窗口对应的3*3*C的特征(W*3*3*C)输入BiLSTM中,得到W*512的输出,并将RNN的W*512输入到512维的fc层。

(具体实现过程:输入N*H*(W*512)维,所以第一个参数是512,然后循环128次,得到2560*128个结果(2560是自己定出来的),再反向lstm一次,得到2560*128个结果,则总共2560*256。再做一次全连接层,共256*512维,所以2560*256矩阵乘以256*512矩阵,得到2560*512矩阵,故第三个参数为512)

备注:RNN类型:BLSTM(双向LSTM),每个LSTM有128个隐含层

RNN输入:每个滑动窗口的3*3*C的特征(可以拉成一列),同一行的窗口的特征形成一个序列

RNN输出:每个窗口对应256维特征

第四步:fc层特征输入两个分类或者回归层中。

第二个2k scores 表示的是k个anchor的类别信息(是字符或不是字符),并赋予标签rpn_cls_score。

第一个4k vertical coordinate是用来回归k个anchor的位置信息,并赋予标签rpn_bbox_pred,分别是四个坐标值。此时将4k个vertical coordinate 与第一步得到的坐标做回归。

第五步:给每个anchor上标签,并计算真值,以及内部权重和外部权重。最终得到rpn_cls_score,gt_boxes,gt_ishard,dontcare_areas,im_info并记录不同的损失函数用于下一次学习。

第六步:将上一部得到的score进行softmax,并得到0-1之间的得分,然后利用reshape将shape从(1,H,W,A*2)变为(1,H,W*A,2).

往期精品文章

AI顶会论文快速解读|将金融领域中的CVaR作为目标策略来定制对话模型

AI顶会论文详细解读|对抗训练解决开放式生成式对话

AI顶会论文详细解读|深度强化学习之基于对话交互的学习对话

AI顶会论文快速解读|控制具体化程度的闲聊对话系统

精美PPT快速熟悉RNN与LSTM,附tensorflow教程代码(回复PPT有资源放送)

每天三分钟之Pytorch编程-1:为何选择你?

每天三分钟之Pytorch编程-2:一起来搭积木吧

每天三分钟之Pytorch编程-3:没事就来炼丹吧

每天三分钟之Pytorch编程-4:来搭建个翻译系统吧(1)

每天三分钟之Pytorch编程-4:来搭建个翻译系统吧(2)

每天三分钟之Pytorch编程-4:来搭建个翻译系统吧(3)


推荐一个公众号

下公众号专注于机器学习(主要包含但不限于深度学习)相关知识分享,其中涉及自然语言处理以及图像处理前沿论文等,欢迎大家关注交流。


weixin.qq.com/r/kDqmvp- (二维码自动识别)




编辑于 2018-11-11