当前位置:   article > 正文

【论文笔记】PP-YOLOE: An evolved version of YOLO_pp yolo e

pp yolo e

简介

2022.3.24,百度飞浆推出PP-YOLOE,作为22年的第一个YOLO改进版,官方号称测试性能(在MS COCO上)全面领先YOLOX。
尤其是速度方面,在-s模型上达到208FPS,相较于YOLOX-s的119FPS,几乎翻倍!
而在性能上,以PP-YOLOE-x为例,在MS COCO上的mAP达到52.2%,毫无疑问是目前综合性能最好的yolo版本。

在这里插入图片描述
论文地址
项目地址(只有接口!!)

由于paddledetdction中只提供了训练和推理的接口,并没有源代码,所以本文将从论文出发,对比分析PP-YOLOE的各项改进。

改进

分五个部分进行对比分析。

1.针对泛化

PP-YOLOE去除了可变卷积(deformable convolution)和Matrix NMS,从而在各种硬件上得到很好的支持,进一步提升了泛化性能。支持TensorRT 和 ONNX。

1)可变卷积(deformable convolution)

可变卷积在普通的卷积层上增加位移变量,这个变量根据数据的情况学习,偏移后,相当于卷积核每个方块可伸缩的变化,从而改变了感受野的范围,感受野成了一个多边形。
结构图如下:
3*3可变卷积示意图
虽然有助于提高精度,但额外增加的一个卷积层用来学习offset,增加了许多的计算负担,并且飞浆认为这样不利于模型部署。

2)Matrix NMS

利用排序过后的上三角化的IoU矩阵,并且将mask IoU并行化,然后论文同样采取了得分惩罚机制来抑制冗余mask。

优点:

  1. 实现了mask IoU的并行计算,对于box-free的密集预测实例分割模型很有使用价值。
  2. 与Fast NMS一样,只需一次迭代。

缺点:

  1. 与Fast NMS一样,直接从上三角IoU矩阵出发,可能造成过多抑制。
  2. 同样的,飞浆不认为这个操作带来的性能提升优于其带来的额外计算负担,并且为了便于部署,将其舍弃。

2. Anchor-free

作为PP-YOLOv2的改进版本,PP-YOLOE与其最大的不同之处就体现在基于Anchor-free,根据FCOS的思想,对每一个目标像素设置一个锚点,将 ground truths分配给相应的特征图。此举使得模型损失了0.3的AP,但提升了模型速度。
这个部分没啥好讲的,FCOS用语义分割的像素级处理方式处理目标检测,相比于传统的Anchor-based大大减少了运算量和参数量,实际效果上算是拿精度换速度了。
感兴趣的小伙伴可以 戳这里(FCOS论文)

3. 骨干网络和Neck

使用飞浆自己改进的 RepResBlock构造骨干网络,命名CSPRepResNet,采用和ResNet一样的结构,包含一个由三个卷积层和四个后续阶段组成的stem,这四个后续阶段由 RepResBlock堆叠而成。

1)RepResBlock

RepResBlock源自TreeBlock,首先将其简化成如下形式,其中圆圈C代表连接运算(concatenation opearation)
在这里插入图片描述

由于连接运算(concatenation operation)和元素加运算(element-wise add operation)之间的相似性已经在
Rmnet论文
中得到证实(具体细节不展开,我也没看懂声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】

推荐阅读
相关标签