CornerNet论文笔记

粗读概念

1. 论文提出了什么?


  • 论文提出了一种不需要anchor boxesanchor\ boxesanchor boxes的目标检测的方法
  • 提出了一种新的corner−poolingcorner-poolingcornerpooling操作
  • 属于anchor−freeanchor-freeanchorfree的方法

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


  • 此前的one−stage detecorone-stage\ detecoronestage detecor需要在图像上生成许多anchorboxesanchor boxesanchorboxes, 但是只有少量的boxboxbox能够在
    覆盖到有目标的地, 过多的negative boxnegative\ boxnegative box导致样本不平衡,从而训练缓慢

  • 需要anchorboxesanchor boxesanchorboxes 的方法通常需要设置许多超参数, 例如boxboxbox数量, 长宽比, 大小等, 这些通常需要一些经验来支持更好的结果

3. 方法描述


在这里插入图片描述

在这里插入图片描述

通过卷积网络生成一组top−left cornertop-left\ cornertopleft corner和一组bottom−right cornerbottom-right\ cornerbottomright corner以及它们对应的embedding vectorembedding\ vectorembedding vector, 这个vectorvectorvector的作用是匹配属于一个objectobjectobject的左上右下的角点

4. corner pooling


  • 作者提出corner poolingcorner\ poolingcorner pooling是因为实际中, object boxobject\ boxobject box的角点通常是在objectobjectobject的外面的, 所以没有本地的依据来进行调整, 如下图所示, 作者提出一种新的cornet poolingcornet\ poolingcornet pooling 来解决这个问题

  • 具体是对角点的水平和垂直两个方向,分别在feature mapfeature\ mapfeature map上取各个channelchannelchannel上的最大值, 然后再加起来

  • 但是文中提到的两个feature mapfeature\ mapfeature map是指的什么呢??
    top−left cornertop-left\ cornertopleft corner为例, 是hourglass networkhourglass\ networkhourglass network生成feature mapfeature\ mapfeature map分别做水平和垂直poolingpoolingpooling生成 tijt_{ij}tijlijl_{ij}lij 的, 本质上是一个featuremapfeature mapfeaturemap

    在这里插入图片描述

精读部分

3 CornerNet


3.1 overview

CornerNetCornerNetCornerNet通过Human Pose EstimationHuman\ Pose\ EstimationHuman Pose Estimation领域中Hourglass NetworkHourglass\ NetworkHourglass Network作为backbonebackbonebackbone提取初级特征, 然后将初级特征输入到Top−left CornersTop-left\ CornersTopleft CornersBottom−right CornersBottom-right\ CornersBottomright Corners两个预测模块中, 经过corner poolingcorner\ poolingcorner pooling及后续的nnnnnn得到Heatmaps, Embeddings, OffsetsHeatmaps,\ Embeddings,\ OffsetsHeatmaps, Embeddings, Offsets三个输出, 其中HeatmapsHeatmapsHeatmapsC×H×WC×H×WC×H×Wbinary maskbinary\ maskbinary mask, 有C个channelschannelschannels分别对应C个classesclassesclasses, H×WH×WH×W分别对应图上的点是否有CornersCornersCorners, EmbeddingsEmbeddingsEmbeddings用来对预测的两种cornerscornerscornersgroupinggroupinggrouping,也就是配对, OffsetsOffsetsOffsets用来微调预测角点的值, 改善网络对小目标的预测结果

3.2 Detecting Corners


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

  1. NegativePositionNegative PositionNegativePosition的定义: 以gt positiongt\ positiongt position为中心, radiusradiusradius为半径的圆外的点, 其中radius的大小有gtbboxgt bboxgtbbox的大小确定,原则如下图所示,大意是radiusradiusradius中点组成的boxboxboxgtboxgt boxgtboxIOUIOUIOU最小为ttt, 文中的括号里0:30:30:3没看懂,感觉是笔误,应该是0.30.30.3吧(这个不太确定). 对于negativepositionnegative positionnegativepositionpenaltypenaltypenalty, 作者使用2DGaussians=e−(x2+y2)/2×σ22D Gaussians=e^{-(x^2+y^2)/2\times\sigma^2}2DGaussians=e(x2+y2)/2×σ2生成一个gt heatmapgt\ heatmapgt heatmapycijy_{cij}ycij, 以gt positiongt\ positiongt position为中心,方差为radius/3radius/3radius/3, 从公式可以看到对于生成的heatmapheatmapheatmap某个点若对应ycij=1y_{cij}=1ycij=1(即对应gt positiongt\ positiongt position),按照上式求losslossloss, 对于其他negative positionnegative\ positionnegative position,越接近gt positiongt\ positiongt position, 那么(1−ycij)(1-y_{cij})(1ycij)则越小, 也就是惩罚越小,来计算losslossloss.


    在这里插入图片描述

    在这里插入图片描述

  2. OffsetsOffsetsOffsets: 许多网络下采样后将预测的左边remap回原始图像时通常会损失一些精确度, 所以作者在CornerNetCornerNetCornerNet中设置offsetsoffsetsoffsets来微调预测的坐标使结果更准确.其中(2)(2)(2)式为计算偏差公式, 那么οk\omicron_{k}οkο^k\hat\omicron_{k}ο^k分别对应gt offsetgt\ offsetgt offsetpredict offsetpredict\ offsetpredict offset, 最后通过SmoothL1LossSmoothL1LossSmoothL1Loss来学习. SmoothL1LossSmoothL1LossSmoothL1LossFast RCNNFast\ RCNNFast RCNN中提出的,相比L1L1L1收敛更快,相比L2L2L2对于离群点、异常值更加鲁棒,训练不容易跑飞

    在这里插入图片描述

在这里插入图片描述

3.3 Grouping Corners


这个部分讲如何将预测的cornerscornerscorners进行配对,文中写的方法是based on the distance between the embeddings of corners ,但是具体距离的计算公式什么,文中没有给出,也许可以在作者提到的NewellNewellNewell的论文中有提到, 此外作者引用NewellNewellNewell论文中pull−pushpull-pushpullpush的方法训练使成对的cornercornercorner接近,不成对的进行远离.

在这里插入图片描述

3.4 Corner Pooling


大概原理如下图所示, 文中说的vectorvectorvector应该指的是1×channel1\times channel1×channel, 也就是从spatialspatialspatial的每个点看向channelchannelchannel方向, 下图是一个channelchannelchanneltop−left corner poolingtop-left\ corner\ poolingtopleft corner pooling情形,分别从右往左与从下往上max poolingmax\ poolingmax pooling
在这里插入图片描述

4 Experiments


实验中作者验证了论文几个key componentskey\ componentskey components的结果,总结如下:

  1. 不同poolingpoolingpooling方式的对比显示cornerpoolingcorner poolingcornerpoolingAPAPAP上提高2%

  2. negative penaltynegative\ penaltynegative penaltyradiusradiusradius的三种方式对比, 不要radiusradiusradius效果最差, fixed radiusfixed\ radiusfixed radius提高接近3%, object−dependent radiusobject-dependent\ radiusobjectdependent radius提高5.5%(这个是文中使用的方法)

  3. backbonenetworkbackbone networkbackbonenetwork的对比中Hourglass+cornersHourglass+cornersHourglass+cornersFPN+cornersFPN+cornersFPN+corners提到6%多, 性能差别还是挺大的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值