SSD-Loss计算

SSD算法的目标函数分为两部分:计算相应的预选框与目标类别的confidence loss以及相应的位置回归。其中N是match到Ground Truth的预选框数量;而α擦书用于调整confidence loss 和location loss 之间的比例,默认α = 1.

 

 

 

 分类:

  

 

   其中i表示第i个默认框,j表示第j个真实框,p表示第p个类。其中={1,0}代表第i个prior box匹配到了第j个类别为p的真实框(匹配到取1,没有匹配到取0);

 

  前半部分为目标类别的计算,后半部分为背景的计算;例如第3个预选框匹配到了第二个真实框,类别为猫(iou大于一定阈值)。此时=1,没有匹配到就为0.此时还不用管匹配的类别是否一致,where中计算匹配到的概率softmax函数计算概率,例子中表示第3个预选框为猫的概率为cip。因此cip的取值范围为0-1,由下图可知,当cip为0-1时,log(cip)的值为 负无穷—》0,在传统意义上讲预测值与真实值越接近越好,loss越小越好,要不然公式的前半部分负负为正,,因此cip的值越接近于1越好,当=1时值为0,越接近于0,值为正无穷。由下图可以看出,这样的函数在梯度下降时可以迅速收敛。后半部份公式也是一样的。假如有20个预选框,10个真实框,这20个预选框中有13个预选框为positive计算概率,剩余没有匹配的7个框为背景框的概率。查看下文match策略。

 

 

                    

 

 回归:

  而location loss是典型的smooth L1 loss。

  

 

 

 

Match策略

  在训练时,groundtruth boxes 与prior boxes 按照如下方式进行配对:

  首先,寻找与每一个ground truth box 有最大交比(IoU)的prior box,这样就能保证每一个groundtruth box 与唯一一个prior bx对应起来。

  SSD之后又将剩余还没有配对的prior box 与任意一个groundtruth box尝试配对,只要两者之间交并比大于阈值,就认为match(ssd 300 阈值为0.5)

  显然配对到GTde prior box 就是positive,没有匹配到GTGT的prior box就是negative

 

posted @ 2020-07-29 14:22  要想瘦先吃肉  阅读(1415)  评论(0编辑  收藏  举报