CornerNet

论文CornerNet: Detecting Objects as Paired Keypoints(CVPR 2018)速达>>
代码princeton-vl/CornerNet

动机

Anchor缺点:

  • 大部分和目标框几乎没有重叠,导致正负样本失衡
  • 引入的参数较多(Box数量、尺寸、纵横比)

将关键点检测的方法加以改造,用于目标检测任务

Corner Detection

关键点位置通常带有语义信息,如下图 关键点7 就是在汽车右边后轮上,关键点7 在前面右车灯处

在这里插入图片描述

【 5 】 【5】 5

而目标框顶点不同于普通的关键点,顶点处语义信息不明,一般都在目标区域外边,如下图:

在这里插入图片描述
让目标框顶点与目标建立桥梁,如上图最左边的人:头顶上画一条横线,左手边上画一条竖线,两线相交即为左顶点。Corner Pooling相当于在划线,这样目标的语义信息就与定点位置联系起来了(注意:这里只是建立联系,不是最终预测)
在这里插入图片描述
具体示例:计算四个左顶点得分,

在这里插入图片描述
最终的预测模块如下所示:
在这里插入图片描述
如何评估预测的定点位置,当然是与标签框定点的距离,目标框顶点处位置处值 y c i j = 1 y_{cij}=1 ycij=1,在一定范围内预测位置偏离越远 y c i j y_{cij} ycij 越小(文中假设服从Gaussian分布,范围划定为一个圆圈,半径根据圆圈内顶点组成的框与目标框IOU是否大于0.7设定),超出范围直接打 0 分就可以了

在这里插入图片描述
位置损失采用修改版的 Focal Loss:

在这里插入图片描述
其中, N N N 表示图片中目标数量, α \alpha α β \beta β 为超参数

将 Heatmap 重新映射会输入图像时,会有精度损失,所以预测模块还有一个 Offset map,预测偏移量:
在这里插入图片描述
采用 Smooth L 1 L_1 L1 Loss:
在这里插入图片描述

Grouping Corners

怎么确定预测的左顶点和右顶点是一个目标的?

  • 预测模块还会预测一个 Embeddings map,每个像素点(位置和预测的顶点相对应)就是一个Embedding Vector,同一个目标的两个顶点对应的 Embedding Vector 的距离应该较小,根据距离即可判断是否为同一个目标上的顶点了
    在这里插入图片描述

Embedding 损失由两部分组成:

  • L p u l l \mathcal L_{pull} Lpull:同一个目标的关系要拉近(pull)
  • L p u s h \mathcal L_{push} Lpush:不是同一个目标的远离(push)

在这里插入图片描述
其中, e t k e_{t_k} etk 表示目标 k k k 对应的预测左顶点, e b k e_{b_k} ebk 表示目标 k k k 对应的预测右顶点, e k e_k ek 表示 e t k e_{t_k} etk e b k e_{b_k} ebk 的平均, Δ \Delta Δ 设为1

Hourglass Network

在这里插入图片描述

在这里插入图片描述
【 4 】 【4】 4

相关实验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考文献

【1】CornerNet
【2】CornerNet算法解读
【3】CornerNet 算法笔记
【4】Stacked Hourglass Networks for Human Pose Estimation(论文)
【5】DenseBox

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值