YOLOv3 SPP和YOLOv3的区别?

gam*_*n67 3 object-detection conv-neural-network darknet yolo

我找不到任何关于 YOLOv3 SPPmAP比 YOLOv3更好的解释。作者本人在他的 repo 中将 YOLOv3 SPP 声明为:

带有空间金字塔池化的 YOLOv3 或其他东西

但我还是不太明白。在yolov3-spp.cfg我注意到有一些补充

575 ### SPP ###
576 [maxpool]
577 stride=1
578 size=5
579 
580 [route]
581 layers=-2
582 
583 [maxpool]
584 stride=1
585 size=9
586 
587 [route]
588 layers=-4
589 
590 [maxpool]
591 stride=1
592 size=13
593 
594 [route]
595 layers=-1,-3,-5,-6
596 
597 ### End SPP ###
598 
599 [convolutional]
600 batch_normalize=1
601 filters=512
602 size=1
603 stride=1
604 pad=1
605 activation=leaky
Run Code Online (Sandbox Code Playgroud)

任何人都可以进一步解释 YOLOv3 SPP 的工作原理吗?为什么在 中选择层 -2、-4 和 -1、-3、-5、-6 [route] layers?谢谢。

gam*_*n67 11

最后有研究人员在 Yolo 上发表了一篇关于 SPP 应用的论文https://arxiv.org/abs/1903.08589

对于 yolov3-tiny、yolov3 和 yolov3-spp 的差异:

  • yolov3-tiny.cfg 在 Max-Pooling 层中使用下采样(stride=2)
  • yolov3.cfg 在卷积层中使用下采样(stride=2)
  • yolov3-spp.cfg 在卷积层中使用下采样 (stride=2) + 在 Max-Pooling 层中获得最佳特征

但是他们在原始框架上使用 Yolov3SPP 模型的 Pascal VOC 2007 测试中仅获得了mAP = 79.6%

但是,即使使用 yolov3.cfg 模型,我们也可以通过使用 AlexeyAB 的存储库https://github.com/AlexeyAB/darknet/issues/2557#issuecomment-474187706实现更高的准确度mAP = 82.1%

当然,我们可以使用 Alexey 的 repo 使用 yolov3-spp.cfg 实现更高的 mAP。 在此处输入图片说明

原始 github 问题:https : //github.com/AlexeyAB/darknet/issues/2859


小智 5

请参见图 3.SPP 说明。

在 中yolov3-spp.cfg,他们使用 3 个不同大小的最大池来处理同一图像[route]

之后,他们收集创建的特征图,如图 3 中所谓的“固定长度表示”。

在此输入图像描述