边框回归的损失函数_「目标检测」什么是边框回归

边框回归是目标检测中的一种技术,通过将候选框逼近标注框以提高定位准确性。本文介绍了边框回归的定义、目的及实现方法,包括确定学习目标和损失函数,并给出了代码示例。
摘要由CSDN通过智能技术生成

1、什么是边框回归

目标检测过程中对产生的候选框以标注好的真实框为目标进行逼近的过程。由于一幅图像上的框可以由中心点坐标(Xc, Yc)和宽W高H唯一确定,所以这种逼近的过程可以建模为回归问题。

2、为什么要做边框回归

通过对候选框做边框回归,可以使最终检测到的目标定位更加接近真实值,提高定位准确率。

3、怎么做边框回归

(1)确定学习目标

b5a2f2ba4937a827b64a7c488ac72c20.png

如上图所示,候选框 P 没有很好地定位到目标,与标注框 G 存在位置和大小比例的差异。为了能使 P 逼近 G,需要寻找一种变换方法,直观的方式是对 P 先平移,再缩放。假设存在变换 t*(.),使得

7911f338a0ceb819d05de2187954c1a9.png

其中,坐标乘以宽高是为了以平移的比例来计算,而宽高使用指数形式是为了保证缩放比例为正数。那么可以求出目标变换t*(.)为:

b339d4811ca8749a478f02d918e48dc5.png

(2)确定损失函数

如下图所示,边框回归的输入是CNN在候选框所提取的feature map,当候选框与标注框的IoU较大时,从候选框到预测框的变换 d*(.) 可以认为是一种近似的线性变换,所以可以建立线性回归模型。

a74c2481b7575798526333f79b3598e4.png
f3bee07a5ff26c31c2231706d89bb62c.png

4、代码示例

这里以 https://github.com/tensorpack/tensorpack/tree/master/examples/FasterRCNN 的实现为例描述实现的过程。

与边框回归相关的代码集中在 modeling/generalized_rcnn.py和modeling/model_box.py两个文件中,在generalized_rcnn.py中

6796d2704fe482e71907cfbd5982b8ac.png

代码中有两个转换函数anchors.decode_logits()和anchors.encoded_gt_boxes(),在modeling/model_box.py文件中,实际调用的是以下两个函数:

062c84a097d1e922d4084e4b07af49be.png
054ccd5e6342639731f763c627e8fd6c.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值