掘金 人工智能 06月30日 10:44
YOLOv8训练猫脸检测模型(自定义数据集)
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文详细介绍了使用 YOLOv8 模型进行猫图目标检测的完整流程。从数据集准备、环境配置、模型选择、训练、验证到推理,提供了清晰的步骤和关键参数说明。作者分享了在训练过程中遇到的问题和解决方案,例如路径错误、CUDA不可用等,并给出了数据增强、增量训练、冻结层等优化建议。文章还提供了结果可视化和常见问题解答,帮助读者快速上手,完成YOLOv8模型的训练和应用。

🐱 **数据集准备与配置:** 准备了1000张猫图,按照8:2的比例划分为训练集和验证集。创建了`data.yaml`配置文件,用于指定数据集路径、类别数量和名称。

💻 **环境搭建与模型选择:** 在PyCharm终端启动虚拟环境,并根据需求选择了YOLOv8预训练模型,如`yolov8n.pt`。文章强调了环境配置的重要性,并提供了CUDA不可用等常见问题的解决方案。

🚀 **训练过程与结果分析:** 使用CPU进行训练,并详细介绍了训练命令和关键参数。训练完成后,结果将保存在`runs/detect/yolov8_train/`目录下,包括权重文件、损失和精度曲线、混淆矩阵等,方便用户进行模型评估。

💡 **模型验证与推理:** 使用验证集评估模型性能,并提供了使用训练好的模型预测新图片的命令。文章还给出了数据增强、增量训练、冻结层、调整超参等优化建议,以提升模型性能。

🤔 **常见问题与优化建议:** 针对CUDA不可用、显存不足、过拟合等常见问题,提供了详细的解决方案。例如,可以通过减少batch大小、降低imgsz、增加数据增强等方法来优化模型。

提示:本文的前提已经安装好了环境,包括pytorch,conda等等。

本文使用1000张猫图,800张用于训练,200张用于验证。下面是准备好数据集之后的详细操作流程。

划分数据集

首先是划分数据集,新建项目,项目结构如下

鼠标选中的是训练模型的根目录。

创建数据集配置文件

在项目根目录新建 data.yaml,指定数据集路径和类别信息。

# data.yamltrain: ./datasets/images/train  # 训练集路径val: ./datasets/images/val      # 验证集路径# 类别数量及名称nc: 1                       # 类别数(根据实际修改)names: ['cat'] # 类别名称(按顺序对应 class_id)

选择预训练模型

YOLOv8 提供多种预训练模型,根据需求选择:

启动虚拟环境

首先在pycharm端终端启动虚拟环境,注意要在Command Prompt下才可以开启虚拟环境。

虚拟环境的路径差异不会影响项目运行,环境与代码目录是逻辑分离的。

启动训练

接下来使用CPU训练模型(由于使用gpu失败了)

yolo detect train data=data.yaml model=yolov8n.pt epochs=100 device=cpu

关键参数说明

注意一定要在项目根目录下,博主第一次疏忽在根目录的上一级目录执行了训练命令,之后爆出一堆提示告诉我找不到data.yaml,最后发现是路径问题。。。

切换到正确路径执行命令,又是爆出一堆提示,其中的关键信息如下图所示

我找到了它提及的地址,因为它寻找的时候会自带一个datasets路径,所以删除一个就不会重复了C:\Users\ZhangYing\AppData\Roaming\Ultralytics\settings.yaml,打开这个文件删除一个datasets,修改后是datasets_dir: D:\conda\anaconda\pythonProject\yolov8_train保存,再次启动训练命令,ok

十四个小时之后一百轮还是没有训练完,此时已是深夜,电脑的风扇呼呼的,我想暂停睡个好觉。

点一下pycharm控制台ctrl+c就可以中断训练,第二天可以在last.pt基础上继续训练

第二天醒来,继续昨天的训练

yolo train resume model=runs/detect/train4/weights/last.pt data=data.yaml  epochs=100 

监控训练过程

实时日志

训练时终端会输出损失、精度等指标:

Train:   0%|          | 0/100 [00:00<?, ?it/s]Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances1/100      2.1G      1.234      0.876       0.543         32...

结果可视化

训练完成后,结果保存在 runs/detect/yolov8_train/

-   `weights/`:最佳模型(`best.pt`)和最后模型(`last.pt`)。-   `results.png`:损失和精度曲线。-   `confusion_matrix.png`:混淆矩阵。

验证模型性能

使用验证集评估模型:

yolo detect val   data=data.yaml   model=runs/detect/yolov8_train/weights/best.pt   imgsz=640   device=0

使用模型推理

用训练好的模型预测新图片:

yolo detect predict \  model=runs/detect/yolov8_train/weights/best.pt \  source=test_image.jpg \  save=True  # 保存预测结果

优化建议

数据层面

模型层面

常见问题

    CUDA 不可用

      检查 torch.cuda.is_available()。确保 PyTorch 的 CUDA 版本与显卡驱动兼容。

    显存不足

      减少 batch 大小。降低 imgsz(如 416x416)。

    过拟合

      增加数据增强。减少 epochs 或添加正则化(权重衰减)。

按照以上步骤操作,即可完成 YOLOv8 模型训练。如果遇到问题,可提供错误日志进一步分析!

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

YOLOv8 目标检测 猫图 深度学习
相关文章