IOU loss详解

转载自:https://www.jianshu.com/p/e3bf67cd4459

IoU损失

DenseBox   DenseBox是全卷积网络,网络的输出大小为(;输出feature map上的点确定一个检测框的样本,包含样本的信息度和该点到bounding box四边的距离。
Unitbox   相对于DenseBox,Unitbox使用IoU损失替代传统的定位L2损失。

IOU loss详解_第1张图片
IoU 损失示意图

IoU损失的前向传播

IOU loss详解_第2张图片
IoU损失前向传播伪代码

本质上是对IoU的交叉熵损失,即将IoU视为伯努利分布的随机采样,并且,于是可以简化为:

IoU损失的反向传播

以为例,IoU损失的反向传播
\frac{\partial{\mathcal{L}}}{\partial{x_t}}=\frac{\partial}{\partial{x_t}}(-\ln{IoU}) \\ = -\frac{1}{IoU}\frac{\partial}{\partial{x_t}}(IoU) \\ = -\frac{1}{IoU}\frac{\partial}{\partial{x_t}}(\frac{1}{U}) \\ = \frac{1}{IoU}\frac{I \times \frac{\partial{U}}{\partial{x_t}} - U \times \frac{\partial{I}}{\partial{x_t}}}{U^2} \\ = \frac{I \times \frac{\partial}{x_t}(X+\tilde{X}-I) - U \times \frac{\partial{I}}{\partial{x_t}}}{U^2IoU} \\ = \frac{I \times (\frac{\partial}{x_t}X - \frac{\partial}{\partial{x_t}}I) - U \times \frac{\partial{I}}{\partial{x_t}}}{U^2IoU} \\ = \frac{1}{U}\frac{\partial{X}}{x_t} - \frac{U+I}{UI}\frac{\partial{I}}{x_t}
其中:


同理,可以推导其他三个变量的求导过程。

从上述推导,可知:

  1. 损失函数和成正比,因此预测的面积越大,损失越多;
  2. 同时损失函数和成反比,因此我们希望交集尽可能大;
  3. 由1,2可知当bounding box等于ground truth时检测效果最好。

因此,优化IoU损失是正向促进物体检测精度的。

总结

IoU损失的优点总结如下:

  • IoU损失将位置信息作为一个整体进行训练,而L2损失却把它们当作互相独立的四个变量进行训练,因此IoU损失能得到更为准确的训练效果;
  • 输入任意样本,IoU的值均介于之间,这种自然的归一化损失使模型具有更强的处理多尺度图像的能力。

你可能感兴趣的:(深度学习)