您的位置:首页 > 其它

CNN+LSTM深度学习文字检测

2017-03-22 09:18 225 查看
最近看到论文Detecting Text in Natural Image with Connectionist Text Proposal Network

这是作者的主页

http://www.whuang.org/

论文的阅读可以看下这边博客:

http://www.cnblogs.com/lillylin/p/6277061.html

对文字的检测效果挺不错的,就把它移到了windows平台上。在我的笔记本上cpu模式下大概要10s,gpu模式大概800ms吧。先看下论文运行的效果。



—-



整体效果还是挺好的,作者提供的代码没有对倾斜进行处理,我对检测完的结果稍微做了倾斜角度判断。

网络结构



这是作者论文提供的图片。其中side-refinement并没有提供相应的代码,就不做分析了。

1: 输入为3*600(h)*900(w),首先vgg-16提取特征,到conv5-3时,大小为512*38*57。

2: im2col层 512*38*57 ->4608 * 38 * 57 其中4608为(512*9 (3*3卷积展开))

3 : 而后的lstm层 57*38*4608 ->57*38*128 reverse-lstm同样得到的是57*38*128。(双向lstm没有去研 究,但我个人理解应该是左边的结果对右边会产生影响,同样右边也会对左边产生影响,有空再去看)

merge后得到了最终lstm_output的结果 256* 38 * 57

4: fc层 得到512*38*57 fc不再展开,就是一个256*512的矩阵参数

5:rpn_cls_score层得到置信度 512*38*57 ->20*38*57

其中20 = 10 * 2 其中10为10个尺度 同样为512*20的参数,kernel_size为1的卷积层

6:rpn_bbox_pre层 得到偏移 512*38*57 ->20*38*57。同样是十个尺度 2 * 10 * 38 * 57

因为38*57每个点每个scale的固定位置我们是知道的。而它与真实位置的偏移只需两个值便可以得到。

假设固定位置中点( Cx,Cy) 。 高度Ch。实际位置中点(x,y) 高度h

则log(h/Ch)作为一个值

(y-Cy) / Ch作为一个值

20 * 38 * 57 便是10个尺度下得到的这两个值。有了这两个值,我们便能知道真实的文本框位置了。

对检测结果的处理

检测完得到很多个宽度固定(16)的矩形框 conf>0.7



对得到的矩形框进行nms处理



按照作者提供的条件规则,对小矩形框进行连接,得到文本行

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐