CornerNet论文笔记

粗读概念

1. 论文提出了什么?


  • 论文提出了一种不需要 a n c h o r   b o x e s anchor\ boxes anchor boxes的目标检测的方法
  • 提出了一种新的 c o r n e r − p o o l i n g corner-pooling cornerpooling操作
  • 属于 a n c h o r − f r e e anchor-free anchorfree的方法

2. 论文为什么提出这种方法?解决了什么问题


  • 此前的 o n e − s t a g e   d e t e c o r one-stage\ detecor onestage detecor需要在图像上生成许多 a n c h o r b o x e s anchor boxes anchorboxes, 但是只有少量的 b o x box box能够在
    覆盖到有目标的地, 过多的 n e g a t i v e   b o x negative\ box negative box导致样本不平衡,从而训练缓慢

  • 需要 a n c h o r b o x e s anchor boxes anchorboxes 的方法通常需要设置许多超参数, 例如 b o x box box数量, 长宽比, 大小等, 这些通常需要一些经验来支持更好的结果

3. 方法描述


在这里插入图片描述

在这里插入图片描述

通过卷积网络生成一组 t o p − l e f t   c o r n e r top-left\ corner topleft corner和一组 b o t t o m − r i g h t   c o r n e r bottom-right\ corner bottomright corner以及它们对应的 e m b e d d i n g   v e c t o r embedding\ vector embedding vector, 这个 v e c t o r vector vector的作用是匹配属于一个 o b j e c t object object的左上右下的角点

4. corner pooling


  • 作者提出 c o r n e r   p o o l i n g corner\ pooling corner pooling是因为实际中, o b j e c t   b o x object\ box object box的角点通常是在 o b j e c t object object的外面的, 所以没有本地的依据来进行调整, 如下图所示, 作者提出一种新的 c o r n e t   p o o l i n g cornet\ pooling cornet pooling 来解决这个问题

  • 具体是对角点的水平和垂直两个方向,分别在 f e a t u r e   m a p feature\ map feature map上取各个 c h a n n e l channel channel上的最大值, 然后再加起来

  • 但是文中提到的两个 f e a t u r e   m a p feature\ map feature map是指的什么呢??
    t o p − l e f t   c o r n e r top-left\ corner topleft corner为例, 是 h o u r g l a s s   n e t w o r k hourglass\ network hourglass network生成 f e a t u r e   m a p feature\ map feature map分别做水平和垂直 p o o l i n g pooling pooling生成 t i j t_{ij} tij l i j l_{ij} lij 的, 本质上是一个 f e a t u r e m a p feature map featuremap

    在这里插入图片描述

精读部分

3 CornerNet


3.1 overview

C o r n e r N e t CornerNet CornerNet通过 H u m a n   P o s e   E s t i m a t i o n Human\ Pose\ Estimation Human Pose Estimation领域中 H o u r g l a s s   N e t w o r k Hourglass\ Network Hourglass Network作为 b a c k b o n e backbone backbone提取初级特征, 然后将初级特征输入到 T o p − l e f t   C o r n e r s Top-left\ Corners Topleft Corners B o t t o m − r i g h t   C o r n e r s Bottom-right\ Corners Bottomright Corners两个预测模块中, 经过 c o r n e r   p o o l i n g corner\ pooling corner pooling及后续的 n n nn nn得到 H e a t m a p s ,   E m b e d d i n g s ,   O f f s e t s Heatmaps,\ Embeddings,\ Offsets Heatmaps, Embeddings, Offsets三个输出, 其中 H e a t m a p s Heatmaps Heatmaps C × H × W C×H×W C×H×W b i n a r y   m a s k binary\ mask binary mask, 有C个 c h a n n e l s channels channels分别对应C个 c l a s s e s classes classes, H × W H×W H×W分别对应图上的点是否有 C o r n e r s Corners Corners, E m b e d d i n g s Embeddings Embeddings用来对预测的两种 c o r n e r s corners corners g r o u p i n g grouping grouping,也就是配对, O f f s e t s Offsets Offsets用来微调预测角点的值, 改善网络对小目标的预测结果

3.2 Detecting Corners


这个部分主要讲了两个内容:

  1. N e g a t i v e P o s i t i o n Negative Position NegativePosition的定义: 以 g t   p o s i t i o n gt\ position gt position为中心, r a d i u s radius radius为半径的圆外的点, 其中radius的大小有 g t b b o x gt bbox gtbbox的大小确定,原则如下图所示,大意是 r a d i u s radius radius中点组成的 b o x box box g t b o x gt box gtbox I O U IOU IOU最小为 t t t, 文中的括号里 0 : 3 0:3 0:3没看懂,感觉是笔误,应该是 0.3 0.3 0.3吧(这个不太确定). 对于 n e g a t i v e p o s i t i o n negative position negativeposition p e n a l t y penalty penalty, 作者使用 2 D G a u s s i a n s = e − ( x 2 + y 2 ) / 2 × σ 2 2D Gaussians=e^{-(x^2+y^2)/2\times\sigma^2} 2DGaussians=e(x2+y2)/2×σ2生成一个 g t   h e a t m a p gt\ heatmap gt heatmap y c i j y_{cij} ycij, 以 g t   p o s i t i o n gt\ position gt position为中心,方差为 r a d i u s / 3 radius/3 radius/3, 从公式可以看到对于生成的 h e a t m a p heatmap heatmap某个点若对应 y c i j = 1 y_{cij}=1 ycij=1(即对应 g t   p o s i t i o n gt\ position gt position),按照上式求 l o s s loss loss, 对于其他 n e g a t i v e   p o s i t i o n negative\ position negative position,越接近 g t   p o s i t i o n gt\ position gt position, 那么 ( 1 − y c i j ) (1-y_{cij}) (1ycij)则越小, 也就是惩罚越小,来计算 l o s s loss loss.


    在这里插入图片描述

    在这里插入图片描述

  2. O f f s e t s Offsets Offsets: 许多网络下采样后将预测的左边remap回原始图像时通常会损失一些精确度, 所以作者在 C o r n e r N e t CornerNet CornerNet中设置 o f f s e t s offsets offsets来微调预测的坐标使结果更准确.其中 ( 2 ) (2) (2)式为计算偏差公式, 那么 ο k \omicron_{k} οk ο ^ k \hat\omicron_{k} ο^k分别对应 g t   o f f s e t gt\ offset gt offset p r e d i c t   o f f s e t predict\ offset predict offset, 最后通过 S m o o t h L 1 L o s s SmoothL1Loss SmoothL1Loss来学习. S m o o t h L 1 L o s s SmoothL1Loss SmoothL1Loss F a s t   R C N N Fast\ RCNN Fast RCNN中提出的,相比 L 1 L1 L1收敛更快,相比 L 2 L2 L2对于离群点、异常值更加鲁棒,训练不容易跑飞

    在这里插入图片描述

在这里插入图片描述

3.3 Grouping Corners


这个部分讲如何将预测的 c o r n e r s corners corners进行配对,文中写的方法是based on the distance between the embeddings of corners ,但是具体距离的计算公式什么,文中没有给出,也许可以在作者提到的 N e w e l l Newell Newell的论文中有提到, 此外作者引用 N e w e l l Newell Newell论文中 p u l l − p u s h pull-push pullpush的方法训练使成对的 c o r n e r corner corner接近,不成对的进行远离.

在这里插入图片描述

3.4 Corner Pooling


大概原理如下图所示, 文中说的 v e c t o r vector vector应该指的是 1 × c h a n n e l 1\times channel 1×channel, 也就是从 s p a t i a l spatial spatial的每个点看向 c h a n n e l channel channel方向, 下图是一个 c h a n n e l channel channel t o p − l e f t   c o r n e r   p o o l i n g top-left\ corner\ pooling topleft corner pooling情形,分别从右往左与从下往上 m a x   p o o l i n g max\ pooling max pooling
在这里插入图片描述

4 Experiments


实验中作者验证了论文几个 k e y   c o m p o n e n t s key\ components key components的结果,总结如下:

  1. 不同 p o o l i n g pooling pooling方式的对比显示 c o r n e r p o o l i n g corner pooling cornerpooling A P AP AP上提高2%

  2. n e g a t i v e   p e n a l t y negative\ penalty negative penalty r a d i u s radius radius的三种方式对比, 不要 r a d i u s radius radius效果最差, f i x e d   r a d i u s fixed\ radius fixed radius提高接近3%, o b j e c t − d e p e n d e n t   r a d i u s object-dependent\ radius objectdependent radius提高5.5%(这个是文中使用的方法)

  3. b a c k b o n e n e t w o r k backbone network backbonenetwork的对比中 H o u r g l a s s + c o r n e r s Hourglass+corners Hourglass+corners F P N + c o r n e r s FPN+corners FPN+corners提到6%多, 性能差别还是挺大的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值