1. 数据集准备

本次模型训练使用NET-DET数据集,数据集格式转化及相关操作,参考下列文章。

自用:深度学习模型数据集格式转化(持续更新中)-CSDN博客

数据集准备好后,记录好位置,后续在代码调试中进行配置。 

2. 模型环境配置 

2.1 虚拟环境的创建 

写在前面:在进行代码复现时,本想在YOLOv8模型环境的基础上添加部分环境依赖实现对YOLOv11模型的训练,但是在这个过程中出现了很多的问题。所以,建议在运行不同代码时,必须新建一个合适的虚拟环境,避免出现各种不应该出现的问题。

开始创建虚拟环境:

详细过程参考文章中的第3部分:

自用:目标检测算法之基于Pytorch的SSD算法复现_ssd-pytorch算法budding csdn-CSDN博客

对本次代码而言,需要创建的虚拟环境为:

conda create --name=YOLOV11 python=3.9.21 

创建完成后,激活虚拟环境并在此环境下安装必要的环境依赖:

激活虚拟环境:

conda activate YOLOV11

2.2 配置代码运行所需要的环境

安装基于GPU的torch:

pip --isolated install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

 【注意】
        1.要安装适合自己的GPU的torch,安装时可以去torch官网去查找!

        2.--isolated 这个命令,作用是将环境依赖下载到YOLOV11这个虚拟环境中,如果不适用这个,可能会导致下载的环境依赖不存在于YOLOV11中。

其他环境依赖如下所示:
 

Package             Version
------------------- ------------
certifi             2024.12.14
charset-normalizer  3.4.1
colorama            0.4.6
contourpy           1.3.0
cycler              0.12.1
filelock            3.13.1
fonttools           4.55.3
fsspec              2024.2.0
idna                3.10
importlib_resources 6.4.5
iniconfig           2.0.0
Jinja2              3.1.3
kiwisolver          1.4.7
MarkupSafe          2.1.5
matplotlib          3.9.4
mpmath              1.3.0
networkx            3.2.1
numpy               1.26.3
opencv-python       4.10.0.84
packaging           24.2
pandas              2.2.3
pillow              10.2.0
pip                 24.2
pluggy              1.5.0
psutil              6.1.1
py-cpuinfo          9.0.0
pyparsing           3.2.0
python-dateutil     2.9.0.post0
pytz                2024.2
PyYAML              6.0.2
requests            2.32.3
scipy               1.13.1
seaborn             0.13.2
setuptools          75.1.0
six                 1.17.0
sympy               1.13.1
torch               2.5.1+cu121
torchaudio          2.5.1+cu121
torchvision         0.20.1+cu121
tqdm                4.67.1
typing_extensions   4.9.0
tzdata              2024.2
ultralytics         8.3.54
ultralytics-thop    2.0.13
urllib3             2.3.0
wheel               0.44.0
zipp                3.21.0

 3. 下载代码及调试

3.1 下载代码

本此代码复现,参考以下文章:

超详细目标检测:YOLOv11(ultralytics)训练自己的数据集,新手小白也能学会训练模型,手把手教学一看就会_yolov11训练-CSDN博客

 代码下载地址:

https://github.com/ultralytics/ultralytics?tab=readme-ov-file

 注意:最好使用git下载,并开启科学上网!

3.2  代码调试

3.2.1 数据集

准备好数据集之后,将数据集放置在代码的根目录文件夹下,如下图所示:  

3.2.2 权重文件下载

权重文件的下载地址如下所示:

#YOLO11n

https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n.pt

#YOLO11s

https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s.pt

#YOLO11m

https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m.pt

#YOLO11l

https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l.pt

#YOLO11x

https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x.pt

也可以在代码中README.md文件中进行下载 :

 除上述权重文件外,还有其他的可以选择。

在根目录下创建一个文件夹,并将下载的权重文件放置在文件夹内:

 

3.2.3 代码调试 

1. 修改data.yaml文件(数据集中的文件),将该文件中的tset、train和val的地址更换为代码数据集中的相关地址。

2. 创建一个yolov11_train.py的文件,并在文件中写入下列代码

from ultralytics import YOLO

if __name__ == '__main__':

    model = YOLO('ultralytics/cfg/models/11/yolo11.yaml')

    model.load('detection(COCO)/yolo11n.pt')

    results = model.train(data='success_set_partitioning/data.yaml', epochs=300, imgsz=640,
                          device=0, optimizer='SGD', workers=8, batch=32, amp=False)

具体解释:

model = YOLO('ultralytics/cfg/models/11/yolo11.yaml')

从YAML建立一个新模型,此处使用的是哪一个模型就要使用对应的yaml。

model.load('detection(COCO)/yolo11n.pt')

 加载一个预训练的模型权重文件。此处夹杂物的地址就是上文3.2.2 中下载并放置在文件夹中的圈子文件地址。 

results = model.train(data='success_set_partitioning/data.yaml', epochs=300, imgsz=640,
                          device=0, optimizer='SGD', workers=8, batch=32, amp=False


'''
data='data.yaml':指定了数据集的配置文件,该文件包含了训练和验证数据集的路径、类别信息等。
epochs=100:设置训练的总轮数(epoch),每个epoch会遍历一次完整的数据集。
imgsz=640:设置输入图像的大小,单位是像素。YOLO模型通常需要固定大小的输入。
device=0:指定训练设备,0通常代表第一个GPU设备,如果是负数则代表使用CPU。
optimizer='SGD':设置优化器,这里使用的是随机梯度下降(SGD)。
workers=8:设置数据加载时的工作线程数,增加线程数可以加快数据加载速度。
batch=64:设置每个batch的大小,即每次迭代中用于训练的图像数量。
amp=False:设置是否使用自动混合精度(Automatic Mixed Precision)训练,这里设置为False表示不使用。
results:
results变量将存储训练过程中的结果,包括训练和验证的损失、准确率等指标,以及最终模型的性能

'''

4. 代码运行

设置好yolov11_train.py文件后,点击代码运行即可。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐