首页 > 编程知识 正文

loss代码,rapidtestkit是检测什么的

时间:2023-05-06 14:14:07 阅读:8875 作者:33

背景中介绍了许多基于Anchor-Based的目标检测算法,它们的Loss一般采用bbox和ground truth bbox的L1范数、L2范数计算位置回归Loss。 但是,在评价时使用IOU (交叉比)判断是否检测出了目标。 很明显,这两者并不完全等价,论文列举了Figure 1作为例子:

图中第一行,所有目标的L1 Loss都相同,但第三个IOU明显大于第一个,第三个检测结果似乎也优于第一个。 第二行也一样,所有目标的L1 Loss也一样,但IOU有区别。 因此,用bbox和ground truth bbox的L1范数、L2范数计算位置回归Loss,和在评价时用IOU (正交比)判断是否检测到目标是有限的,两者不等价。 因此,有一种将IOU直接作为Loss来优化任务的直观想法,但这有两个问题。

如果长方体bbox和地面真迹bbox不重叠,IOU将始终为0,并且预计无法优化。 也就是说损失函数失去了导出的性质。 IOU无法分辨方向不一致等不同方式的对准。 如下图所示,可以看到三种方式具有相同的IOU值,但空间完全不同。

因此,为了解决上述两个问题,GIoU在这篇论文中提出了GIoU。 GIOU是指,假设目前有任意两个bbox A和b,找到最小的闭合形状c,以便c可以将a和b包围在无限的石头中。 然后,计算c中未复盖a和b的面积占c总面积的比例,并从a和b的IOU值中减去该比。 具体流程由以下算法1表示。

GIoU与IoU相比具有以下性质。

和IoU一样,GIoU也可以用作距离。 然后,损失可以用以下公式计算。 [式]与原始IoU一样,GIoU对物体的尺度大小不敏感,为[比]、[式],所以[式]在预测bbox A和ground truth bbox B时,GIoU引入了包含a、b两个框的c 对于二维图像的目标检测,GIoU Loss具体怎么计算GIoU Loss? 假设当前预测的bbox和ground truth bbox坐标分别表示为:

其中。 然后,计算Loss的具体过程可以表示为:

实验论文给出了一些实验结果,[对分割任务和分类任务有一定的loss调整设计,但论文没有详细说明]结果表明,IoU loss可以稍微提高使用MSE作为loss的表现,GIoU的提高幅度更大具体实验结果如下

使用PASCAL VOC 2007上YOLOv3的测试结果。 美联储上涨了约2个百分点。

用YOLOv3在MS COCO上进行测试,关注分类损失和精度(平均IoU值),可以看出GIoU loss提高了精度。

使用Faster-RCNN在PASCAL VOC 2007中的测试结果,用于坐标回归损失的L1损失。 美联储上涨了约1个百分点。

使用Mask-RCNN在MS COCO 2018上的测试结果,用于坐标回归损失的L1损失。 美联储上涨了不到1个百分点。

附录

译文: https://arxiv.org/abs/1902.09630

开放源代码: https://github.com/generalized-iou/g-darknet

AlexAB版Darknet支持giouloss:https://github.com/Alexey ab/darknet/blob/master/CFG/yolo v3.coco-giou-12.CFG

文章: https://庄兰.智惠.com/p/63389116

结论

这篇论文以IOU为文章提出了GIoU Loss,最终YOLO V3上升了2分,像Faster RCNN、MaskRCNN这样的上升分变少了。 推测原因在于Faster RCNN。 MaskRCNN本身的Anchor很多,很少不完全一致。 由此,GIOU和IOU Loss没有明显的差异,所以提高不太明显。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。