1、摘要
目标检测是计算机视觉研究的重要领域之一,在各种实际场景中起着至关重要的作用。在实际应用中,由于硬件的限制,往往需要牺牲准确性来保证检测器的推断速度。因此,必须考虑目标检测器的有效性和效率之间的平衡。本文的目标不是提出一种新的检测模型,而是实现一种效果和效率相对均衡的对象检测器,可以直接应用于实际应用场景中。考虑到YOLOv3在实际应用中的广泛应用,我们开发了一种新的基于YOLOv3的目标检测器。我们主要尝试结合现有的几乎不增加模型参数和FLOPs的各种技巧,在保证速度几乎不变的情况下,尽可能提高检测器的精度。由于本文的所有实验都是基于PaddlePaddle 进行的,所以我们称其为PP-yoLo。意思通过结合多种技巧。PP-YoLo可以更好地平衡效率(45.2% mAP)和效率(72.9 FPS),超过了目前最先进的检测器efficientdet和YOLOv4。
分析一下图(因为之前一直看不懂这种图):
看横坐标,pp-yolo的FPS最多为130+,超过所有,mAP也不低
看纵坐标:mAP最高为为45+时,仅次于efficientdet,FPS却比其将近翻了一番
PP-YOLO可达45.2% mAP,速度高达72.9 FPS!FPS和mAP均超越YOLOv4,FPS也远超过EfficientDet
注:
V100 :特斯拉V100的显卡
FPS:每秒传输的帧数
2、亮点
没有探索backbone及数据增强,没用NAS探索超参数
直接使用resnet为backbone,数据增强为mixup
3、结构
1、backbone:首先将yolo5中的backbone变为resnet50-vd,为了避免换了带来的性能降低,换resnet50-vd中的部分卷积为可变形卷积Deformable Convolutional Networks (DCN) 。DCN太多会影响推断时间,因此只用DCNs换了最后阶段的33卷积
DCN:本身不会显著增加模型中参数和FLOPs的数量,但是可能会影响推断时间
2、detection neck:
使用特征金字塔(FPN),并加上了横向连接
3、detection head:
使用11卷积核和3*3卷积核进行,输出3×(K+5),3个anchor,K个类别,5即坐标和confidence
4、损失:
交叉熵损失和L1损失
4、Tricks
Larger Batch Size
EMA :这里其实不是很理解34
DropBlock :10
IoU Loss:没有直接换成Iou loss,然是又加了一个计算损失的分支
IoU Aware
Grid Sensitive
Matrix NMS
CoordConv
SPP
Better Pretrain Model