【Happy导语】该文是百度的研究员基于PaddlePaddle而设计了一种高效YOLO系列检测器,它在精度与速度方面双超YOLOv4;同时还给出了各种trick的组合方式,业界良心啊。大家还在等什么,快快去把玩一番咯。
paper:https://arxiv.org/abs/2007.12099
Code: https://github.com/PaddlePaddle/PaddleDetection
Abstract
目标检测是计算机视觉领域非常重要的一个领域,它在不同应用场景中起重要作用。然而由于硬件的约束,往往需要通过牺牲精度以确保检测器在实际应用的推理速度。因此,目标检测器的高效性与高精度的平衡必须要考虑。本文的目标在于实现一个具有精度与速度相对平衡的可以直接在实际场景中进行应用的检测器,而非提出一种新的检测模型。
考虑到YOLOv3已被广泛应用,作者在YOLOV3的基础上研发了一个新的目标检测器。作者主要尝试不会导致模型参数量与FLOPs急剧增加的情况下,组合不同的trick,在确保检测器推理速度不变前提下尽可能提升模型的精度。由于所有实验均基于PaddlePaddle实现,所以作者将其称之为PP-YOLO。通过组合多种trick,所提PP-YOLO可以达成精度(45.2%mAP)与效率(72.9FPS)的更好均衡并取得了优于EfficientDet与YOLOV4的效果。
不同于YOLOv4,PP-YOLO并未尝试不同的骨干网络与数据增广方法,也并未采用NAS技术搜索超参数。在骨干网络方面,该文直接采用ResNet作为骨干网络;在数据增广方面,作者直接采用了基本的MixUp。一个原因:ResNet被广泛应用且不同框架进行过深度优化,故而具有更好的推理速度;另一个原因:骨干网络与数据增广方法的是相对独立的因素,且与该文的探索的trick不相关,同时已有诸多论文进行过相应研究,故而作者并未进行相关的重复探索。因此作者沿着YOLOv3的路线采用手工方式设置参数,不过作者认为更好的骨干网络、更好的增广方案以及NAS搜索超参数可以进一步提升PP-YOLO的性能。
最终,作者通过各种trick探索,PP-YOLO将COC数据集上的精度由43.5%提升到了45.2%同时具有比YOLOv4更快的推理速度。
Method
Experiments
前面已经把该文的全部核心内容介绍完毕,这里就直接上结果咯。下图给出了不同trick产生的性能增益与参数量、FLOPs、推理速度等的对比。
可以看到这样几点:
- ResNet50-vd-dcn骨干网路的替换可以得到0.2%mAP的性能增益;
- LB EMB DropBlock组合可以得到另外的2.3%mAP的性能增益;
- IoU损失可以得到0.5%mAP的性能增益;
- IoU Aware可以得到0.6%mAP的性能增益;
- Grid Sensitive可以得到0.3%mAP的性能增益;
- Matrix NMS可以得到0.7%mAP的性能增益;
- CoordConv可以得到0.5%mAP的性能增益;
- SPP可以得到0.3%mAP的性能增益;
- Better ImageNet Pretrain可以得到0.3%mAP的性能增益。
最后,上图给出了所提PP-YOLO与其他方法的性能-推理速度的对比。可以看到:相比YOLOv4,PP-YOLO具有更高的mAP指标,同时具有更快的推理速度。此外,经由TensorRT优化,速度甚至可达155.6FPS@45.2%mAP。
Conclusion
该文基于PaddlePaddle引入一种新的目标检测器实现,称之为PP-YOLO。相比YOLOv4与EfficientDet,PP-YOLO具有更高的精度更快的推理速度。作者探索了大量的trick,并给出如何组合这些trick提升YOLOv3检测器的精度与速度。