admin管理员组

文章数量:1794759

YoloV5改进策略:EfficientViT,提升YoloV5的速度和精度,打造高效的YoloV5

点赞+关注,学习AI不迷路!

摘要

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引入到YoloV5中,打造实时高效的YoloV5,效果如何呢?这篇文章将告诉你答案!

YoloV5官方代码测试结果

代码语言:javascript代码运行次数:0运行复制
YOLOv5l summary: 267 layers, 46275213 parameters, 0 gradients, 108.2 GFLOPs
                 Class     Images  Instances          P          R      mAP50   mAP50-95: 100%|██████████| 15/15 [00:02<00:00,  5.16it/s]
                   all        230       1412      0.971       0.93      0.986      0.729
                   c17        230        131      0.992      0.992      0.995      0.797
                    c5        230         68      0.953          1      0.994       0.81
            helicopter        230         43      0.974      0.907      0.948       0.57
                  c130        230         85          1      0.981      0.994       0.66
                   f16        230         57      0.999       0.93      0.975      0.677
                    b2        230          2      0.971          1      0.995      0.746
                 other        230         86      0.987      0.915      0.974      0.545
                   b52        230         70      0.983      0.957      0.981      0.803
                  kc10        230         62          1      0.977      0.985      0.819
               command        230         40      0.971          1      0.986      0.782
                   f15        230        123      0.992      0.976      0.994      0.655
                 kc135        230         91      0.988      0.989      0.986      0.699
                   a10        230         27          1      0.526      0.912      0.391
                    b1        230         20      0.949          1      0.995      0.719
                   aew        230         25      0.952          1      0.993      0.781
                   f22        230         17      0.901          1      0.995      0.763
                    p3        230        105      0.997       0.99      0.995      0.789
                    p8        230          1      0.885          1      0.995      0.697
                   f35        230         32      0.969      0.984      0.985      0.569
                   f18        230        125      0.974      0.992       0.99      0.806
                   v22        230         41      0.994          1      0.995      0.641
                 su-27        230         31      0.987          1      0.995      0.842
                 il-38        230         27      0.994          1      0.995      0.785
                tu-134        230          1      0.879          1      0.995      0.796
                 su-33        230          2          1          0      0.995      0.846
                 an-70        230          2      0.943          1      0.995      0.895
                 tu-22        230         98      0.983          1      0.995      0.788



改进一

测试结果

代码语言:javascript代码运行次数:0运行复制
                 Class     Images  Instances          P          R      mAP50   mAP50-95: 100%|██████████| 15/15 [00:06<00:00,  2.30it/s]
                   all        230       1412      0.974      0.935      0.991      0.724
                   c17        230        131      0.979      0.992      0.993       0.81
                    c5        230         68      0.975      0.985      0.994      0.825
            helicopter        230         43      0.973          1      0.986      0.596
                  c130        230         85          1      0.988      0.995      0.665
                   f16        230         57          1      0.969      0.994      0.679
                    b2        230          2      0.945          1      0.995      0.746
                 other        230         86          1      0.907      0.971       0.54
                   b52        230         70      0.978      0.943      0.983      0.823
                  kc10        230         62      0.996      0.984      0.986      0.808
               command        230         40      0.994          1      0.995      0.785
                   f15        230        123      0.961      0.997      0.994      0.677
                 kc135        230         91      0.968      0.989      0.983      0.695
                   a10        230         27          1      0.523      0.977      0.439
                    b1        230         20      0.987          1      0.995      0.715
                   aew        230         25      0.951          1      0.993      0.788
                   f22        230         17      0.941          1      0.995      0.797
                    p3        230        105      0.993          1      0.995      0.795
                    p8        230          1        0.9          1      0.995      0.597
                   f35        230         32          1      0.973      0.995      0.544
                   f18        230        125      0.985      0.992      0.988       0.81
                   v22        230         41      0.996          1      0.995      0.684
                 su-27        230         31      0.959          1      0.995      0.861
                 il-38        230         27      0.993          1      0.995      0.802
                tu-134        230          1      0.898          1      0.995      0.697
                 su-33        230          2          1          0      0.995      0.846
                 an-70        230          2      0.928          1      0.995      0.721
                 tu-22        230         98      0.995          1      0.995      0.797

mAP50 有提升!

改进二

测试结果

代码语言:javascript代码运行次数:0运行复制
YOLOv5l summary: 596 layers, 22556237 parameters, 0 gradients
                 Class     Images  Instances          P          R      mAP50   mAP50-95: 100%|██████████| 15/15 [00:12<00:00,  1.18it/s]
                   all        230       1412      0.973      0.943      0.991      0.739
                   c17        230        131      0.993      0.992      0.995      0.838
                    c5        230         68      0.931          1      0.991      0.824
            helicopter        230         43      0.955       0.99      0.978      0.657
                  c130        230         85      0.981      0.988      0.991      0.648
                   f16        230         57      0.996      0.965      0.971      0.664
                    b2        230          2      0.939          1      0.995      0.746
                 other        230         86      0.986      0.953      0.979      0.544
                   b52        230         70      0.983      0.986      0.985      0.815
                  kc10        230         62      0.991      0.968      0.985      0.806
               command        230         40      0.995          1      0.995      0.836
                   f15        230        123          1      0.989      0.995      0.664
                 kc135        230         91      0.981      0.989      0.985      0.686
                   a10        230         27          1      0.668      0.975      0.505
                    b1        230         20      0.991          1      0.995      0.688
                   aew        230         25       0.95          1      0.993      0.747
                   f22        230         17      0.954          1      0.995      0.727
                    p3        230        105      0.995      0.981      0.995      0.791
                    p8        230          1      0.887          1      0.995      0.796
                   f35        230         32          1      0.994      0.995      0.565
                   f18        230        125      0.983      0.992       0.99      0.806
                   v22        230         41      0.991          1      0.995      0.735
                 su-27        230         31       0.99          1      0.995      0.822
                 il-38        230         27      0.985          1      0.995      0.801
                tu-134        230          1      0.906          1      0.995      0.796
                 su-33        230          2          1          0      0.995      0.796
                 an-70        230          2      0.923          1      0.995      0.846
                 tu-22        230         98      0.995          1      0.995      0.811

借助预训练权重, mAP50和mAP50-95得到了大幅度的提高!如果不使用预训练权重,测试结果如下:

代码语言:javascript代码运行次数:0运行复制
YOLOv5l summary: 596 layers, 22556237 parameters, 0 gradients
                 Class     Images  Instances          P          R      mAP50   mAP50-95: 100%|██████████| 15/15 [00:11<00:00,  1.28it/s]
                   all        230       1412      0.959       0.93      0.983      0.719
                   c17        230        131      0.982      0.992      0.995      0.808
                    c5        230         68      0.976          1      0.995      0.825
            helicopter        230         43      0.954      0.968       0.98      0.604
                  c130        230         85      0.965      0.988      0.987      0.636
                   f16        230         57      0.872      0.955      0.926      0.648
                    b2        230          2      0.911          1      0.995      0.821
                 other        230         86      0.964      0.933       0.97      0.499
                   b52        230         70      0.982      0.971      0.983      0.802
                  kc10        230         62      0.994      0.968      0.985      0.812
               command        230         40      0.995          1      0.995      0.798
                   f15        230        123      0.913      0.944      0.984      0.677
                 kc135        230         91      0.985      0.989      0.981      0.665
                   a10        230         27          1      0.509      0.836      0.371
                    b1        230         20      0.981          1      0.995      0.676
                   aew        230         25      0.915          1      0.992      0.791
                   f22        230         17      0.912          1      0.995      0.749
                    p3        230        105      0.995          1      0.995      0.791
                    p8        230          1      0.872          1      0.995      0.796
                   f35        230         32      0.966      0.896       0.99      0.505
                   f18        230        125      0.988      0.992      0.991      0.797
                   v22        230         41      0.991          1      0.995      0.691
                 su-27        230         31       0.99          1      0.995      0.831
                 il-38        230         27      0.992          1      0.995      0.799
                tu-134        230          1      0.886          1      0.995      0.796
                 su-33        230          2          1          0      0.995      0.647
                 an-70        230          2      0.922          1      0.995      0.796
                 tu-22        230         98      0.989          1      0.995      0.771

和使用预训练权重相比,低了不少!

总结

本文尝试了两种改进方法,其中,直接替换主干网络,并使用预训练权重的效果最好。欢迎大家在自己的数据集上做尝试。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2023-11-05,如有侵权请联系 cloudcommunity@tencent 删除测试基础模型内存效率

本文标签: YoloV5改进策略EfficientViT,提升YoloV5的速度和精度,打造高效的YoloV5