论文:《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的水平吧,所以速度慢点也应该,毕竟模型更大的了。
标签:yolov7,SPP,yolox,使用,特征提取,结构 From: https://www.cnblogs.com/zhangjie123/p/17475259.html