yolov7

发布时间 2023-06-12 15:55:35作者: call-me-ZJ

论文:《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors》2022.7 CVPR

整体框架

在本文复现的yolo7版本

下图是yolov7的网络结构图(来自一位b站up)

 其中拿到Multi_Concat_Block

 Transition_Block结构

yolov7主要的改进之处:

网络结构:

  • 主干部分:使用了创新的多分支堆叠结构进行特征提取,相比以前的Yolo,模型的跳连接结构更加的密集。使用了创新的下采样结构,使用Maxpooling和步长为2x2的特征并行进行提取与压缩。
  • 加强特征提取部分:同主干部分,加强特征提取部分也使用了多输入堆叠结构进行特征提取,使用Maxpooling和步长为2x2的特征并行进行下采样。
  • 特殊的SPP结构:使用了具有CSP机构的SPP扩大感受野,在SPP结构中引入了CSP结构,该模块具有一个大的残差边辅助优化与特征提取。

训练策略:

  • 自适应多正样本匹配:采用yolox的SimOTA
  • 借鉴了RepVGG的结构,在网络的特定部分引入RepConv,fuse后在保证网络x减少网络的参数量
  • 使用了辅助分支辅助收敛,但是在模型较小的YoloV7和YoloV7-X中并没有使用

复现结果和细节

 1 total param num 37,297,025,计算量:79.1 GFLOPS
 2 backbone: 论文没有定义名称
 3 优化器:adam,momentum=0.937,初始学习率:1e-3 学习率更新:呈cos函数形式
 5 损失函数=Lcls+Lreg+Lobj,Lcls与Lobj(BCELoss),Lreg(CIoULoss)
 6 batch=8 
 7 加载官方完整预训练权重 yolov7.pth
 8 epoch = 30 
 9 总训练时间: 2h 57m 6s
 10 训练集:PASCALVOC-2012train(5717) 
 11 测试集:PASCALVOC-2012val(5823) 
 12 GPU: 1 x  RTX 3070ti
 13 平均推理时间和FPS:0.022s,46fps(RTX 3070ti)

利用wandb记录

 

 本地画图记录

 进行验证并获取各类别精度

效果展示

 其实验证集的map_0.5精度还行,但是速度有点慢了,对比yolox_s,虽然精度提升1%,但速度只有其一半左右

不过从模型大小看,37,297,025的参数量,79.1 GFLOPS 可以说是yolox_m的水平吧,所以速度慢点也应该,毕竟模型更大的了。