IoU Loss

作者: 凉拌东坡肉 | 来源:发表于2019-12-27 16:35 被阅读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损失的优点总结如下:

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

    相关文章

      网友评论

          本文标题:IoU Loss

          本文链接:https://www.haomeiwen.com/subject/vqmdoctx.html