admin管理员组文章数量:1794759
YoloV8改进策略:EfficientViT提升YoloV8的速度和精度,打造高效的YoloV8
摘要
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引入到YoloV8中,打造实时高效的YoloV8,效果如何呢?这篇文章将告诉你答案!
Yolov8官方结果
代码语言:javascript代码运行次数:0运行复制YOLOv8l summary (fused): 268 layers, 43631280 parameters, 0 gradients, 165.0 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 29/29 [
all 230 1412 0.922 0.957 0.986 0.737
c17 230 131 0.973 0.992 0.995 0.825
c5 230 68 0.945 1 0.995 0.836
helicopter 230 43 0.96 0.907 0.951 0.607
c130 230 85 0.984 1 0.995 0.655
f16 230 57 0.955 0.965 0.985 0.669
b2 230 2 0.704 1 0.995 0.722
other 230 86 0.903 0.942 0.963 0.534
b52 230 70 0.96 0.971 0.978 0.831
kc10 230 62 0.999 0.984 0.99 0.847
command 230 40 0.97 1 0.995 0.811
f15 230 123 0.891 1 0.992 0.701
kc135 230 91 0.971 0.989 0.986 0.712
a10 230 27 1 0.555 0.899 0.456
b1 230 20 0.972 1 0.995 0.793
aew 230 25 0.945 1 0.99 0.784
f22 230 17 0.913 1 0.995 0.725
p3 230 105 0.99 1 0.995 0.801
p8 230 1 0.637 1 0.995 0.597
f35 230 32 0.939 0.938 0.978 0.574
f18 230 125 0.985 0.992 0.987 0.817
v22 230 41 0.983 1 0.995 0.69
su-27 230 31 0.925 1 0.995 0.859
il-38 230 27 0.972 1 0.995 0.811
tu-134 230 1 0.663 1 0.995 0.895
su-33 230 2 1 0.611 0.995 0.796
an-70 230 2 0.766 1 0.995 0.73
tu-22 230 98 0.984 1 0.995 0.831
Speed: 0.2ms preprocess, 3.8ms inference, 0.0ms loss, 0.8ms postprocess per image
改进一
测试结果
代码语言:javascript代码运行次数:0运行复制YOLOv8l summary (fused): 301 layers, 43979572 parameters, 0 gradients
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 15/15 [00:02<00:00, 5.73it/s]
all 230 1412 0.966 0.96 0.989 0.741
c17 230 131 0.976 0.992 0.994 0.827
c5 230 68 0.987 0.971 0.994 0.842
helicopter 230 43 0.962 0.93 0.976 0.601
c130 230 85 0.999 0.988 0.995 0.65
f16 230 57 0.997 0.965 0.987 0.672
b2 230 2 0.91 1 0.995 0.697
other 230 86 0.984 0.942 0.981 0.557
b52 230 70 0.968 0.971 0.977 0.81
kc10 230 62 0.999 0.984 0.989 0.845
command 230 40 1 1 0.995 0.827
f15 230 123 0.98 1 0.995 0.694
kc135 230 91 0.989 0.987 0.982 0.695
a10 230 27 1 0.652 0.949 0.465
b1 230 20 0.987 1 0.995 0.767
aew 230 25 0.949 1 0.995 0.791
f22 230 17 0.928 1 0.972 0.753
p3 230 105 0.99 0.973 0.995 0.807
p8 230 1 0.832 1 0.995 0.697
f35 230 32 1 0.879 0.99 0.582
f18 230 125 0.98 0.992 0.989 0.813
v22 230 41 0.995 1 0.995 0.709
su-27 230 31 0.99 1 0.995 0.856
il-38 230 27 0.978 1 0.995 0.84
tu-134 230 1 0.804 1 0.995 0.895
su-33 230 2 1 0.697 0.995 0.697
an-70 230 2 0.894 1 0.995 0.796
tu-22 230 98 0.997 1 0.995 0.823
Speed: 0.2ms preprocess, 4.4ms inference, 0.0ms loss, 0.7ms postprocess per image
改进二
测试结果
代码语言:javascript代码运行次数:0运行复制YOLOv8l summary: 620 layers, 25959856 parameters, 0 gradients
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 15/15 [00:02<00:00, 5.94it/s]
all 230 1412 0.967 0.969 0.992 0.772
c17 230 131 0.984 0.992 0.995 0.855
c5 230 68 0.929 0.957 0.992 0.842
helicopter 230 43 0.955 1 0.981 0.633
c130 230 85 0.986 0.988 0.995 0.682
f16 230 57 0.997 0.965 0.993 0.669
b2 230 2 0.88 1 0.995 0.823
other 230 86 0.941 0.965 0.977 0.549
b52 230 70 0.98 0.986 0.988 0.869
kc10 230 62 0.995 0.984 0.989 0.862
command 230 40 0.993 1 0.995 0.875
f15 230 123 1 1 0.995 0.698
kc135 230 91 0.997 0.989 0.992 0.708
a10 230 27 1 0.801 0.971 0.506
b1 230 20 1 0.968 0.995 0.735
aew 230 25 0.953 1 0.995 0.805
f22 230 17 0.986 1 0.995 0.757
p3 230 105 1 0.981 0.995 0.807
p8 230 1 0.86 1 0.995 0.796
f35 230 32 0.967 1 0.995 0.571
f18 230 125 0.991 0.992 0.994 0.835
v22 230 41 0.987 0.976 0.995 0.725
su-27 230 31 0.963 1 0.995 0.873
il-38 230 27 0.99 1 0.995 0.889
tu-134 230 1 0.882 1 0.995 0.995
su-33 230 2 1 0.627 0.995 0.697
an-70 230 2 0.906 1 0.995 0.895
tu-22 230 98 0.996 1 0.995 0.888
Speed: 0.2ms preprocess, 3.9ms inference, 0.0ms loss, 0.7ms postprocess per image
借助预训练权重, mAP50和mAP50-95得到了大幅度的提高!
总结
本文尝试了两种改进方法,其中,直接替换主干网络,并使用预训练权重的效果最好。欢迎大家在自己的数据集上做尝试。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2023-11-05,如有侵权请联系 cloudcommunity@tencent 删除测试基础模型内存效率本文标签: YoloV8改进策略EfficientViT提升YoloV8的速度和精度,打造高效的YoloV8
版权声明:本文标题:YoloV8改进策略:EfficientViT提升YoloV8的速度和精度,打造高效的YoloV8 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1754670829a1705020.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论