Learning Modulated Loss for Rotated Object Detection,CVPR,2019
RSDet旨在分析五参数定义法和八参数定义法的缺陷以及如何通过设计损失来改变他们的缺陷。
作者首先阐述五参数法存在损失不连续:角度边界的存在导致高和宽在遇到边界时exchange,导致损失突增,这里他举的例子和上周的SCRDet中是一样的,但是这篇文章里讲的更细致:
绿色gt,蓝色proposals,红色最终目标,蓝色逆时针转的话就超出角度定义边界了,所以只能先顺时针转到灰框处然后缩放高和宽。文章提到这样复杂的回归需要很强的鲁棒性,这样增加了训练的难度。为了解决回归太复杂的问题,作者设计了这样的loss:
当proposals不在边界上是min函数取的是第一项,当proposals在边界时取的是第二项,也不能这么说,其实应该是在中间有一个平衡点,然后看proposals处于平衡点的哪一端来选择最佳的损失回归方向,平衡点也就是原来梯度不连续,即损失会突增的那个点,如图:
我觉得这样应该是允许了proposals可以逆时针超出边界回归,具体的话论文没给出例子,太抽象。
其次五参数法还存在回归参数不一致问题:这是由五个参数的量纲不同引起的,意思就是这些参数对iou值的影响都不一样,以iou为衡量标准的原因是,最后检测指标中非常依赖于iou。
将损失中的变量都转化为边界框回归的相对值用来避免因目标尺度不同而引起的误差。到此,参数不一致问题仍然为解决。
八参数法的参数为四个顶点的坐标,不存在参数不一致问题。八参数法虽然避免了参数回顾不一致问题的角度问题,但它也存在损失不连续的问题:
gtbox的四个点的顺序不一定是按规则顺序来的,因此要对四个点进行排序:四个顶点顺序的定义方法是从最左边的点开始(如果是水平框的话就取左上角那个点),然后通过叉乘找到对角点,也就是第三个点,再根据这两个点构成的向量和叉乘的方法,顺时针方向找到另外两个点。如红框是abcd,绿框是dabc,这就又引出边界问题了:
图中的蓝框要回归到绿框的位置,最合适的路径是顺时针转过去,但由于顶点的定义顺序,蓝框会逆时针转去回归对应的点。对此,作者的做法是将排好序的角点都向前、向后挪一位和原地保持不变,取这三种情况的损失最小值:
有个问题是:一共有四个点,也就是说有4种排序情况,怎么作者只在3种情况的损失里取最小,如下图这种情况:
应该是将a点调整次序为c,然后顺时针方向回归为最佳,但是上述loss中并没有将a点调整为对角点的情况,而且加入这种情况对训练本身也没什么影响吧,作者为啥不加这种情况呢?