码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • YOLOV8模型改进-添加CBAM注意力机制


    1.CBAM介绍

    CBAM注意力机制是yolov8自带的注意力机制,它是通道注意模块和空间注意模块的结合。

    2.查看CBAM在yolov8中的位置

    路径:ultralytics/nn/modules/conv.py

    3.添加CBAM

    1.首先打开tasks.py文件:ultralytics/nn/modules/tasks.py

    2.在导入里面添加CBAM

    3.在tasks.py文件里面添加代码

    复制以下代码添加到tasks.py的指定位置

    1. elif m is CBAM:
    2. c1,c2 = ch[f], args[0]
    3. if c2 != nc:
    4. c2 = make_divisible(min(c2,max_channels) * width, 8)
    5. args = [c1,*args[1:]]

    4.修改配置文件

    1.首先找到yolov8.yaml文件的位置

    ultralytics/cfg/models/v8/yolov8.yaml

    2.然后复制yolov8.yaml到同级文件夹,并取名叫yolov8-cbam.yaml

    然后在网络结构里面添加CBAM模块

    5.测试修改之后的模型前向传播是否成功

    1.找到test/test_python.py文件

    复制下面这段代码

    2.在根目录下新建一个py文件,取名叫cbam-test

    然后将上面复制的代码粘贴进去,再删除不必要的部分,将CFG的值设置为刚刚修改过模型的yaml文件路径

    1. # Ultralytics YOLO 🚀, AGPL-3.0 license
    2. import contextlib
    3. from copy import copy
    4. from pathlib import Path
    5. import cv2
    6. import numpy as np
    7. import pytest
    8. import torch
    9. from PIL import Image
    10. from torchvision.transforms import ToTensor
    11. from ultralytics import RTDETR, YOLO
    12. from ultralytics.utils import ASSETS, DEFAULT_CFG, LINUX, MACOS, ONLINE, ROOT, SETTINGS, WINDOWS
    13. CFG = 'ultralytics/cfg/models/v8/yolov8-cbam.yaml'
    14. SOURCE = ASSETS / 'bus.jpg'
    15. def test_model_forward():
    16. model = YOLO(CFG)
    17. model(SOURCE) # also test no source and augment

    3.运行cbam-test.py文件,看前向传播是否通过

    这就是修改通过的提示。

    如果添加失败,最后面有报错原因

    6.遇到的报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0x98 in position 1158: illegal multibyte sequence

    1.报错原因:

    这应该是windows10特有的问题,因为win10的默认编码方式为utf-8,而Python读入文本文件的默认编码方式为`gbk`

    2.解决方案

    1.在环境变量里面新建系统变量

    2.然后重启电脑,问题解决。

  • 相关阅读:
    数据分析 第一周 折线图笔记
    成功解决虚拟机彼此之间免密登录问题:connect to host xxxxxx port 22: Connection timed out
    No.8面向对象分析
    umi首屏加载速度优化
    基于模板匹配的图像拼接技术研究-含Matlab代码
    netty系列之:kequeue传输协议详解
    【深度学习】【caffe】【python】【docker】微信 二维码检测,手写数字识别
    java计算机毕业设计教师职称评定系统源码+mysql数据库+系统+lw文档+部署
    chrome插件:content.js、background.js, options.js, popup.js之间的通信
    如何自己开发一个前端监控SDK
  • 原文地址:https://blog.csdn.net/pyscl01/article/details/132693835
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号