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