目标检测: Point Set Representation for Object Detection

RepPoints论文阅读


摘要

摘要中提到了这个新方法是通过一些样本点来做到很好的既能定位又能识别的作用。

1.简介

  1. bounding boxes的传统做法只能提供粗糙的定位,不能确定物体的形状、姿态。因此框框可能受背景影响很大或者目标如果包含较少或者不均衡的信息时也会降低准确度。
  2. RepPoints是一组点,这些点学会自适应地将自己以划定物体边界范围的方式来定位,并且指示出语义的重要局部区域。

2.相关工作

  1. bounding boxes在目标检测中目前占很重地位,标注时的bounding box促使人们研究这方面网络,这种网络的通用又促使大厂这么去打标
  2. bounding boxes在新兴的各类目标检测器上的各个阶段都存在,但是RepPoints可以替代他们,并且更快更有效
  3. 如Corner Net等预测点的网络实际上还是在预测一个矩形。

3.RepPoints 实现

Bounding box回顾

bounding box 是一类用4-d编码来表示一个物体位置的方法,令B=(x,y,w,h)由于简单易懂,很多常用的目标检测网络依赖于这一策略。

  • 回顾Multistage Object detectors:
    最好的目标检测网络通常都跟有一个multi-stage的识别过程,在这个过程中目标的定位一点一点被优化.整体过程就是:
    bbox anchors—>bbox reg—>bbox proposals—>bbox reg—bbox proposals—…--->bbox object targets.最开始,多个anchors用来覆盖大面积的bbox scales和aspect ratios。通常来说,更高的覆盖率是通过在4-d的假设空间中用稠密的anchors实现的。比如,每个位置45个anchor是Retina Net中的策略。
    对一个anchor来说,图像中心点的特征被当做是这个物体的特征,它之后被用来预测这个anchor是一个物体或者不是一个物体的概率,这个道理也同样在调整后的bounding box中成立。调整后的bbox被称为"bbox proposals".
    在第二个阶段中,一个被优化(调整)的特征从被调整过的bbox中提取出来,这通常由RoI pooling 或者RoI Align实现。对于两个阶段的框架,调整过后的特征加上bbox res会产生最终的bbox target。这样的过程可以不断地迭代直到产生最终的bbox。
    总的来说,在这个过程中,bounding box regression担任了重要的角色。
  • Bounding Box Regression
    一般来说,根据一个当前的bbox proposal B p ( x p , y p , w p , h p ) \Beta_{p}(x_p,y_p,w_p,h_p) Bp(xp,yp,wp,hp)会预测出一个4-d的向量 ( Δ x p , Δ y p , Δ w p , Δ h p ) (\Delta x_p, \Delta y_p, \Delta w_p, \Delta h_p) (Δxp,Δyp,Δwp,Δhp),结果就会生成一个新的bbox B r = ( x p + w p Δ x p , y p + h p Δ y p , w p e Δ w p , h p Δ h p ) \Beta _r = (x_p + w_p \Delta x_p, y_p + h_p\Delta y_p, w_p e^{\Delta w_p}, h_p^{\Delta h_p} ) Br=(xp+wpΔxp,yp+hpΔyp,wpeΔwp,hpΔhp),这个时候给出ground_truth B t ( x t , y t , w t , h t ) \Beta_{t}(x_t,y_t,w_t,h_t) Bt(xt,yt,wt,ht),我们的目的就是让 B p 与 B t \Beta_{p}与\Beta_{t} BpBt尽量接近,这时可以使用不同的loss,比如smooth l1 loss:
    在这里插入图片描述
    这样的bounding box回归过程被广泛用于当前的各类目标检测方案中,当所需要的调整比较小时,效果很好,但是如果初始位置和目标位置差距较大表现就比较菜了。另外就是 Δ x , Δ y \Delta x, \Delta y Δx,Δy等在loss中的权重也是个问题。

RepPoints为了克服以上各类局限性,这里提出Sample points的方法,其中n是sample points的总个数,在论文中采取默认值为9在这里插入图片描述其中n是sample points的总个数,在论文中采取默认值为9

  • reppoints 的 refinement
    预测的是点的偏移量,于是得到新的坐标,这样的操作去算loss不受bbox回归时参数的影响,在调整优化的过程中点的scale都一样。
  • 将reppoints转换为bbox
    通过预测的一组点来生成bbox提供三种函数,一种是去这一组点最外围的点来确定边框,就是用一个最小矩形包括所有点;第二种是取这一组点的局部点,再执行上述操作;第三种是求出所有点的均值和方差,通过另外两个全局学习的系数将均值和方差还原为box。实验证明结果相差不多。
  • reppoints的学习
    学习同时通过定位和分类来进行,在计算bbox的损失时,通过左上点和右下点位置采用smooth l1loss

RPDet

在这里插入图片描述

整个过程如下:
object centers—>RP refine —> RepPoints proposals—>RP refine —> RepPoints —> RP refine —> … —> RepPoints object targets.
RPDet 由两个以可形变卷积为基础的识别的阶段构成。可形变卷积和RepPoints配合的很棒。

  • 基于点的物体识别
    一个基于中心点的方法可以很容易地覆盖全部2-d空间。但是基于点的检测的问题就是当两个物体中心一个特征图中的同一个位置中会出现问题。在以往的方法中,这个问题靠产生多个预测来解决。在RPDet中,这个问题可以由FPN解决,首先,不同scale的图片会被指定为不同level的image feature,这解决了不同scale物体和相同位置点的问题;第二,FPN对于小物体有高分辨率的特征图,也减小了两物体在同一张特征图中统一位置的概率。
    中心点的思路可以被认为是RepPoints的特殊情况,只是一小部分点被用到了。
  • RepPoints的使用
    RepPoints的学习由分类和回归共同构成,
  • 与可形变的RoI Pooling的关系
    事实上,可形变RoI Pooling不能够学习到示例点中代表物体精确位置的那部分点。
  • backbone和head architechtures
    head architechture由两部分不共享的子网络构成,由于定位的和用于分类的,在每个前三个256-d3*3卷积层后都使用了group normalization.
    虽然在bbox的生成过程中采取了两阶段的策略,但是甚至比one stage的Retina Net的探测器更快。
  • 定位和分类目标的赋值
    定位部分为两步,通过调整一开始假设的物体中心点生成第一波RepPoints,然后通过调整第一波RepPoints生成第二波RepPoints。在没个过程中,只有假设点中的正样本会被训练。在第一个定位的步骤中,一个特征图的小块只有在1):这个特征图小块的比例和ground-truth的物体的log比例 l o g ( w b h b ) {log(\sqrt {w_b h_b})} log(wbhb )一致时 2):物体中心点在这个特征图的小块(bin)中 才把这一小块当做正样本。 而在第二个定位步骤中,只有生成的伪框和ground truth的框IOU大于某个阈值时才会被当做正样本。而分类则是在第一波RepPoints上进行操作的,同样也考虑伪框和gt的IoU,大于0.5为正,小于0.4为负,其他的忽略。分类loss采取了Focal loss。

实验部分不再详解。

问题:

  1. 对于训练前的采样点和预测时如何利用训练过的采样点,论文中说明并不清晰
  2. 网络中的一些参数说明也并不清楚,需要观察源码(本人还没有去做)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值