YOLOV8模型改进-添加CBAM注意力机制

1.CBAM介绍

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

YOLOV8模型改进-添加CBAM注意力机制_第1张图片

YOLOV8模型改进-添加CBAM注意力机制_第2张图片

2.查看CBAM在yolov8中的位置

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

YOLOV8模型改进-添加CBAM注意力机制_第3张图片

YOLOV8模型改进-添加CBAM注意力机制_第4张图片

3.添加CBAM

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

YOLOV8模型改进-添加CBAM注意力机制_第5张图片

2.在导入里面添加CBAM

YOLOV8模型改进-添加CBAM注意力机制_第6张图片

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

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

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

YOLOV8模型改进-添加CBAM注意力机制_第7张图片

4.修改配置文件

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

ultralytics/cfg/models/v8/yolov8.yaml

YOLOV8模型改进-添加CBAM注意力机制_第8张图片

YOLOV8模型改进-添加CBAM注意力机制_第9张图片

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

YOLOV8模型改进-添加CBAM注意力机制_第10张图片

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

YOLOV8模型改进-添加CBAM注意力机制_第11张图片

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

1.找到test/test_python.py文件

YOLOV8模型改进-添加CBAM注意力机制_第12张图片

复制下面这段代码

YOLOV8模型改进-添加CBAM注意力机制_第13张图片

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

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

# Ultralytics YOLO , AGPL-3.0 license

import contextlib
from copy import copy
from pathlib import Path

import cv2
import numpy as np
import pytest
import torch
from PIL import Image
from torchvision.transforms import ToTensor

from ultralytics import RTDETR, YOLO
from ultralytics.utils import ASSETS, DEFAULT_CFG, LINUX, MACOS, ONLINE, ROOT, SETTINGS, WINDOWS


CFG = 'ultralytics/cfg/models/v8/yolov8-cbam.yaml'
SOURCE = ASSETS / 'bus.jpg'

def test_model_forward():
    model = YOLO(CFG)
    model(SOURCE)  # also test no source and augment

YOLOV8模型改进-添加CBAM注意力机制_第14张图片

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

YOLOV8模型改进-添加CBAM注意力机制_第15张图片

这就是修改通过的提示。

YOLOV8模型改进-添加CBAM注意力机制_第16张图片

YOLOV8模型改进-添加CBAM注意力机制_第17张图片

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

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

1.报错原因:

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

2.解决方案

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

YOLOV8模型改进-添加CBAM注意力机制_第18张图片

YOLOV8模型改进-添加CBAM注意力机制_第19张图片

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

你可能感兴趣的:(YOLO,python,深度学习,目标检测,pycharm)