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
版权声明:本文标题:YoloV5改进策略:EfficientViT,提升YoloV5的速度和精度,打造高效的YoloV5 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1754670778a1705019.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论