IoU Loss

2019-12-27  本文已影响0人  凉拌东坡肉

IoU损失

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

IoU 损失示意图

IoU损失的前向传播

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

IoU损失的反向传播

x_t为例,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}
其中:
\frac{\partial{X}}{x_t} = x_l + x_r
\frac{\partial{I}}{x_t} = \begin{cases} I_w, \qquad if x_t \lt \tilde{x_t}(or x_b \lt \tilde{x_b}) \\ 0, \qquad otherwise \end{cases}
同理,可以推导其他三个变量的求导过程。

从上述推导,可知:

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

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

总结

IoU损失的优点总结如下:

上一篇下一篇

猜你喜欢

热点阅读