Fovea Box阅读学习笔记

Fovea Box论文地址:https://arxiv.org/pdf/1904.03797v1.pdf

FoveaBox目标检测基本思想:对于可能存在目标的每个输出空间位置,FoveaBox直接预测所有目标类别存在的置信度和边界框

1.FPN主网络:FPN+两个特定功能的子网络。

为了与RetinaNet网络结果进行一个公平的比较,本文的实验网络结构遵循着RetinaNet的结构设计。

主网络:使用FPN网络构建特征金字塔,检测不同尺度大小的对象,文中同样的构建的金字塔尺度为:\left \{P_{l}\right \},l=3,4,...,7。每层\left \{P_{l}\right \}的尺度大小是输入图像的1/2^{l}分辨率。

两个特定任务的子网络:同样地,一个用于相对应的cell分类;一个用于预测ground-truth对相框的值\left ( x_{1},y_{1},x_{2},y_{2} \right )

与之前为每个空间位置点添加anchors的工作不同,对于每一个空间位置输出,FoveaBox预测对于每个类的得分输出和相应的Box值。

 

2.尺度分配

直接预测大量的对象目标类别和位置,会导致结果并不稳定。

论文提出根据特征金字塔level的数量,将对象的尺度分为几个bins。金字塔尺度P_{3}-P_{7}对应的基本区域(basic area)分别为32^{2}-512^{2}。因此对于P_{l}来说,基本区域S_{l}的计算公式如下:

                                                                  S_{l}=4^{l}\cdot S_{0} 

论文中有S_{0}=16,在FoveaBox中,特征金字塔每层需要对特定尺度的对象做出响应,对于金字塔层l的目标框都需要计算一个有效尺度范围,计算公式如下:                                                                 

                                                                 \left [ S_{l}/\eta ^{2}, S_{l}\cdot \eta ^{2}\right ]

 \eta是经验性参数(实验中取2,有最好效果),来控制每个金字塔的尺度范围。

落在P_{l}上的bounding box的大小的范围就限制在上述范围内。

 

3.Object Fovea

金字塔的输出的是heatmap集合,每个输出都有K个通道,K为类别数,大小为H*W。将cell进行定义,可以定义为正区域和负区域,也可以不定义区域。将正,负区域进行缩放,未定义区域则不进行训练。

0)若给定一个有效Ground truth box:\left ( x_{1},y_{1},x_{2},y_{2} \right )。首先将该box映射至尺度为P_{l}的特征金字塔上,映射公式如下:

                                                              x_{1}^{'}=\frac{x_{1}}{2^{l}},y_{1}^{'}=\frac{y_{1}}{2^{l}}

                                                              x_{2}^{'}=\frac{x_{2}}{2^{l}},y_{2}^{'}=\frac{y_{2}}{2^{l}}

                                                           c_{x}^{'}=x_{1}^{'}+0.5\left (x_{2}^{'} -x_{1}^{'} \right )

                                                           c_{y}^{'}=y_{1}^{'}+0.5\left (y_{2}^{'} -y_{1}^{'} \right )

1)文中提出前景区域(正样本区域):Fovea--R^{pos}=\left (x _{1}^{''},y _{1}^{''} ,x _{2}^{''} ,y _{2}^{''} \right )为原区域的缩放区域,计算公式如下:

【这样设置的原因是为了防止语义区域的相互交叠】

                                                                             x _{1}^{''}=c _{x}^{'}-0.5\left ( x _{2}^{'}-x _{1}^{'} \right )\sigma _{1}

                                                                             y _{1}^{''}=c _{y}^{'}-0.5\left ( y _{2}^{'}-y _{1}^{'} \right )\sigma _{1}

                                                                            x _{2}^{''}=c _{x}^{'}+0.5\left ( x _{2}^{'}-x _{1}^{'} \right )\sigma _{1}

                                                                            y _{2}^{''}=c _{y}^{'}+0.5\left ( y _{2}^{'}-y _{1}^{'} \right )\sigma _{1}

\sigma _{1}是收缩因子。并为正样本的每个cell进行目标类别的标注加以训练。

2)对于负样本区域的定义,文中也引入了R^{neg}和缩放因子\sigma _{2},使用上述正样本一样的公式,更换参数进行计算。

3)正样本同样的只占整个样本的少数,因此论文使用了Focal  Loss来训练该分支的L_{cls}

3.边框预测

论文中的模型预测了每个可能潜在的对象边界框的位置。

训练中ground truth的坐标值G=\left ( x_{1}, y_{1}, x_{2}, y_{2}\right ),模型的目标是学习一个转换:将特征单元格中心点\left ( x,y \right )处的定位输出\left ( t _{x1}, t _{y1}, t _{x2}, t _{y2}\right )与ground truth框之间的映射,映射关系如下:

                                                                       

其中,z=\sqrt{S_{l}},为归一化因子。使用Smooth L1 loss来预测L_{box}。将输出空间映射到中心为1的空间,使得训练稳定。最后使用log空间函数进行正则化。

4.结束:

FoveaBox整体设计思路为anchor-free,不需要定义anchor,但需要手工的去设置参数;预测边框时,是学习映射。

等待代码ing...有一些地方感觉还是比较模糊啊。

抓紧时间读论文。暂时撒花*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值