TextBoxes++论文解读

最近拜读了白翔老师等的巨著TextBoxes++,现给出我看完论文之后的理解,和大家一起研究研究,小女子才疏学浅,如有错误,请多多指教,望不要嫌弃!(没有大片时间来写,可能需要一段时间完成)

大家知道我们所知道的目标检测检测的目标框默认是矩形框,常见的物体检测,这种矩形框检测可能对物体识别的影响不是很大,但在图像中文字检测识别来说,检测非矩形框的文字区域对后面的识别是非常重要的,这篇论文就是给出了任意四边形(或者倾斜矩形)的文字区域检测方法,该方法是基于SSD实现的,要想理解该论文,建议先看懂Faster RCNN、SSD等(先理论,后代码,在理解上有点点区别,建议都要看)。下面正式开始这篇论文的解读:

摘要:

场景文本检测是场景文字识别中不可或缺的一步,也是具有挑战性的一步;与一般物体检测相比,难点在于场景中的文字方向多变、多种比例、字小;该论文提出了TextBoxes++,检测任意方向的场景文本,具有很高的accuracy和efficiency: 在1024*1024的ICDAR 2015上 f-measure = 0.817 且速度上达到11.6 fps,........(作者给出的源码:https://github.com/MhLiao/TextBoxes_plusplus)

Introduction、Related works:

TextBoxes++

A. 概要:

TextBoxes++建立在一个端对端的全卷积网络上,能够检测任意方向的文本,实在SSD的基础上改进的。该论文通过四边形或者倾斜的矩形(oriented rectangles)来表示图像中文本区域,在SSD的各个输出层后面通过预测回归(edefalut boxs------类似Faster RCNN中的anchor-----到四边形或倾斜的矩形)从而检测任意方向的文本区域。另外:该论文中使用了密集的default box来更好的检测文本,并且由于文本区域的特点,使用了长卷积核来更好的提取文本特征。

B_1. 网络结构

如上图(盗的,不重要*_*),和SSD类似,使用VGG作为base_network,将fc6、fc7都换成卷积层,再在后面加上几个卷积层,我们知道SSD在6个不同的卷积层的feature maps上做检测从而达到检测不同尺度的物体的目的,这里类似(具体做法,在各个输出卷积层后面连接一个用于检测的卷积层并输出各个default box的类别----这里是包含text的概率-----以及box位置偏置信息)。

B_2 .  default box ( 本文最重要的地方 )

TextBoxes++最重要的部分就是text-box layer (  就是6个卷积的feature map后加上的用于检测的卷积层;和SSD的区别在于: 1、卷积核大小由 3*3 变为3*5;2、SSD的输出是每个box的类别信息以及4个位置偏置信息(x,y,w,h,就可以计算真实box(矩形)位置),而这里类别信息就1个类别, 位置输出为14或11,原因在后面讲 )。

Text-box layer在feature map的基础上预测每个box的文本存在概率(text presence)和box信息,位置信息输出包括:倾斜的矩形框\left \{ q \right \}(或者四边形\left \{ r \right \}),以及包含倾斜矩形的最小的水平方向的矩形框\left \{ b \right \};通过预测每个default box(水平方向矩形)到四边形等的回归信息得到到。

首先,假设b_{0}=\left \{ x_{0},y_{0},w_{0},h_{0}} \right \}表示default box,相对应的四边形表示方法为:q_{0}=\left ( x_{01}^{q}, y_{01}^{q}, x_{02}^{q}, y_{02}^{q}, x_{03}^{q} ,y_{03}^{q}, x_{04}^{q}, y_{04}^{q}\right )(便于后面IOU),倾斜的矩形表示为:r_{0}=\left ( x_{01}^{r}, y_{01}^{r},x_{02}^{r},y_{02}^{r},h_{0}^{r}\right ),其中,\left (x _{0},y _{0} \right )是default box的中心点,\left ( w_{0} ,h_{0}}\right )是default box的宽度和高度,四边形和矩形表示的计算方法如下:

x_{01}^{q}=x_{0}-w_{0}/2, y_{01}^{q}=y_{0}-h_{0}/2,      四边形左上角坐标

x_{02}^{q}=x_{0}+w_{0}/2, y_{02}^{q}=y_{0}-h_{0}/2,      四边形右上角坐标

x_{03}^{q}=x_{0}+w_{0}/2, y_{03}^{q}=y_{0}+h_{0}/2,      四边形右下角坐标

x_{01}^{q}=x_{0}-w_{0}/2, y_{01}^{q}=y_{0}+h_{0}/2,      四边形左下角坐标

 

x_{01}^{r}=x_{0}-w_{0}/2, y_{01}^{r}=y_{0}-h_{0}/2,      倾斜矩形左上角坐标

x_{02}^{r}=x_{0}+w_{0}/2, y_{02}^{r}=y_{0}-h_{0}/2,      倾斜矩形右上角坐标

h_{0}^{r}=h_{0}    倾斜矩形高度

然后,在每个feature map后的text-box layer将预测每个box上的文本存在概率以及位置偏置(offsets, 至于为什么是偏置,而不是直接坐标点的值,这个我将会在另一片博客中解释---------Faster RCNN论文及代码解释),如果检测四边形,输出值为:\left ( \bigtriangleup x, \bigtriangleup y,\bigtriangleup w,\bigtriangleup h, \bigtriangleup x_{1},\bigtriangleup y_{1}, \bigtriangleup x_{2},\bigtriangleup y_{2}, \bigtriangleup x_{3},\bigtriangleup y_{3}, \bigtriangleup x_{4},\bigtriangleup y_{4},c\right ),检测倾斜矩形时,输出值为:\left ( \bigtriangleup x, \bigtriangleup y,\bigtriangleup w,\bigtriangleup h, \bigtriangleup x_{1},\bigtriangleup y_{1},\bigtriangleup x_{2},\bigtriangleup y_{2},\bigtriangleup h^{r},c\right )。则, 检测到的最小矩形和四边形(或倾斜矩形)为:

x =x_{0}+w_{0}\bigtriangleup x,

y =y_{0}+h{0}\bigtriangleup y,

w = w_{0}+w_{0} exp\left ( \bigtriangleup w \right )

h = h_{0}+h_{0} exp\left ( \bigtriangleup h \right )

 

x_{n}^{q} =x_{0n}^{q} + w_{0} \bigtriangleup x_{n}^{q} , n=1,2,3,4

y_{n}^{q} =y_{0n}^{q} + h_{0} \bigtriangleup y_{n}^{q} , n=1,2,3,4

 

x_{n}^{r} =x_{0n}^{r} + w_{0} \bigtriangleup x_{n}^{r} , n=1,2

y_{n}^{r} = y_{0n}^{r} + h_{0} \bigtriangleup y_{n}^{r} , n=1,2

h^{r} = h_{0}^{r}+h_{0} exp\left ( \bigtriangleup h_{r} \right )

在训练阶段,default box与Groud Truth计算得到真实值,然后通过真实值和预测值之间的差距计算LOSS值。

 

 

如果该博客对你有用,点个赞(*—*)

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值