admin管理员组

文章数量:1794759

YoloV7改进策略:EfficientViT,高效的视觉transformer与级联组注意力提升YoloV7的速度和精度

摘要

EfficientViT是一种高效的视觉Transformer模型,旨在解决传统Vision Transformer模型在计算成本方面的问题,使其实时应用更高效。

传统Transformer模型的速度通常受限于内存效率低下的操作,尤其是在多头自注意力机制(MHSA)中的张量重塑和逐元素函数。为了提高内存效率并增强通道间的通信,EfficientViT设计了一种新的构建块,采用了“夹层布局(sandwich layout)”策略,即在高效的前馈神经网络FFN层之间使用了一个受内存限制的MHSA。

EfficientViT以EfficientViT block作为基础模块,每个模块由夹层结构(Sandwich Layout)和级联组注意力(Cascaded Group Attention, CGA)组成,进一步进行了参数重分配以实现更高效的Channel,Block,和Stage数量权衡。这一基础模块减少了注意力的使用,缓解了注意力计算导致的访存时间消耗问题。同时,每个FFN之前加入了一层DWConv作为局部token之间信息交互并帮助引入归纳偏置。

通过全面的实验证明了EfficientViT在速度和准确性之间取得了良好的平衡,并超越了现有的高效模型。

将EfficientViT引入到YoloV7中,打造实时高效的YoloV7,效果如何呢?这篇文章将告诉你答案!

YoloV7 官方代码测试结果

代码语言:javascript代码运行次数:0运行复制
                 all         229        1407       0.966        0.99       0.993       0.734
                 c17         229         131       0.977       0.992       0.991       0.828
                  c5         229          68       0.941           1        0.99       0.837
          helicopter         229          43       0.949           1        0.98       0.628
                c130         229          85       0.994           1       0.997       0.691
                 f16         229          57        0.99       0.965       0.994       0.694
                  b2         229           2       0.904           1       0.995       0.796
               other         229          86       0.988       0.955       0.992       0.565
                 b52         229          65        0.98       0.969       0.985       0.819
                kc10         229          62       0.995       0.984       0.986        0.83
             command         229          40       0.991           1       0.996       0.835
                 f15         229         123       0.992       0.992       0.997       0.652
               kc135         229          91       0.986       0.989       0.987       0.707
                 a10         229          27           1       0.889       0.997       0.454
                  b1         229          20       0.989           1       0.996        0.74
                 aew         229          25       0.949           1       0.981       0.751
                 f22         229          17       0.977           1       0.996       0.754
                  p3         229         105       0.998           1       0.998       0.797
                  p8         229           1       0.853           1       0.995       0.597
                 f35         229          32       0.994           1       0.996        0.58
                 f18         229         125       0.991       0.992       0.993       0.822
                 v22         229          41       0.995           1       0.996       0.696
               su-27         229          31       0.992           1       0.996       0.829
               il-38         229          27       0.962           1       0.996       0.857
              tu-134         229           1       0.846           1       0.995       0.896
               su-33         229           2       0.939           1       0.995       0.498
               an-70         229           2       0.904           1       0.995       0.846
               tu-22         229          98       0.998           1       0.998        0.81
300 epochs completed in 4.742 hours.
Optimizer stripped from runs\train\exp15\weights\last.pt, 75.1MB
Optimizer stripped from runs\train\exp15\weights\best.pt, 75.1MB

改进一

测试结果

代码语言:javascript代码运行次数:0运行复制
   Class      Images      Labels           P           R      mAP@.5  mAP@.5:.95: 100%|██████████| 15/15 [00:02<00:00,  5.45it/s]
                 all         229        1407       0.915        0.99        0.99       0.717
                 c17         229         131       0.947       0.992       0.996       0.822
                  c5         229          68       0.923           1       0.995       0.842
          helicopter         229          43       0.938           1       0.963       0.593
                c130         229          85       0.991       0.988       0.995       0.652
                 f16         229          57       0.917       0.964       0.974       0.677
                  b2         229           2       0.828           1       0.995       0.497
               other         229          86       0.982       0.977       0.993        0.57
                 b52         229          65       0.978       0.985       0.983       0.813
                kc10         229          62       0.962       0.984       0.986       0.829
             command         229          40       0.985           1       0.996       0.806
                 f15         229         123        0.97           1       0.996       0.686
               kc135         229          91       0.982       0.989       0.987        0.69
                 a10         229          27        0.96       0.926       0.978       0.478
                  b1         229          20        0.97           1       0.996       0.712
                 aew         229          25       0.918           1        0.99        0.76
                 f22         229          17       0.759           1       0.973       0.711
                  p3         229         105       0.988           1       0.997       0.794
                  p8         229           1       0.709           1       0.995       0.697
                 f35         229          32       0.979       0.938       0.991       0.523
                 f18         229         125       0.943       0.984       0.991       0.805
                 v22         229          41       0.979           1       0.996       0.665
               su-27         229          31        0.98           1       0.996       0.811
               il-38         229          27       0.972           1       0.996       0.824
              tu-134         229           1       0.369           1       0.995       0.796
               su-33         229           2           1       0.998       0.995       0.696
               an-70         229           2       0.799           1       0.995       0.796
               tu-22         229          98       0.986           1       0.996       0.803
300 epochs completed in 5.082 hours.

Optimizer stripped from runs\train\exp\weights\last.pt, 77.9MB
Optimizer stripped from runs\train\exp\weights\best.pt, 77.9MB

改进二

测试结果

代码语言:javascript代码运行次数:0运行复制
  Class      Images      Labels           P           R      mAP@.5  mAP@.5:.95: 100%|██████████| 15/15 [00:02<00:00,  5.73it/s]
                 all         229        1407       0.955        0.98       0.993       0.732
                 c17         229         131       0.963           1       0.996       0.825
                  c5         229          68       0.934           1       0.995        0.84
          helicopter         229          43       0.958           1       0.985       0.619
                c130         229          85       0.965           1       0.993        0.65
                 f16         229          57        0.98       0.965        0.99       0.686
                  b2         229           2       0.861           1       0.995       0.796
               other         229          86       0.957        0.93       0.988       0.553
                 b52         229          65       0.976       0.985       0.985       0.814
                kc10         229          62           1       0.984       0.986       0.823
             command         229          40       0.991           1       0.997       0.804
                 f15         229         123       0.954           1       0.996       0.662
               kc135         229          91       0.995       0.989       0.987       0.678
                 a10         229          27           1        0.66       0.981       0.378
                  b1         229          20           1       0.994       0.996       0.708
                 aew         229          25       0.948           1        0.99       0.774
                 f22         229          17        0.89           1       0.996       0.731
                  p3         229         105       0.992           1       0.998       0.787
                  p8         229           1       0.822           1       0.995       0.597
                 f35         229          32       0.995       0.969       0.993        0.57
                 f18         229         125       0.985       0.992       0.993       0.816
                 v22         229          41       0.986           1       0.996       0.698
               su-27         229          31       0.987           1       0.996       0.815
               il-38         229          27       0.984           1       0.996       0.839
              tu-134         229           1       0.802           1       0.995       0.896
               su-33         229           2           1           1       0.995       0.697
               an-70         229           2        0.87           1       0.996       0.896
               tu-22         229          98       0.996           1       0.997       0.809
300 epochs completed in 8.371 hours.

Optimizer stripped from runs\train\exp\weights\last.pt, 50.8MB
Optimizer stripped from runs\train\exp\weights\best.pt, 50.8MB

测试结果和官方模型差不多,但是模型小了很多!参数量也减少了很多!

总结

本文尝试了两种改进方式,和YoloV5|V8一样,直接替换主干网络是最好的方法!大家可以在自己的数据集上做尝试!

代码语言:javascript代码运行次数:0运行复制
链接:.2014.3001.5501
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2023-11-10,如有侵权请联系 cloudcommunity@tencent 删除基础模型内存效率测试

本文标签: YoloV7改进策略EfficientViT,高效的视觉transformer与级联组注意力提升YoloV7的速度和精度