尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

小白动手实践mindYOLO微调模型

小白动手实践mindYOLO微调模型
📅 发布时间:2026/6/23 13:03:41

参考链接

mindYOLO github库安全帽检测:https://github.com/mindspore-lab/mindyolo/tree/master/examples/finetune_SHWD
SHWD数据集:https://github.com/njvisionpower/Safety-Helmet-Wearing-Dataset/tree/master
厨房检测项目 gitcode(仅参考):https://gitcode.com/TT_TT__/HuaWei/tree/main/2 目标检测/2-04-Yolov10智能厨房检测(ModelArts)

项目概述

环境:mindspore 2.6.0、mindyolo 0.5.0、python 3.9.23、Jupyter Notebook、windows笔记本、模型为YOLO v10n(基于COCO80预训练)
概述:作为小白,在初步学习了YOLO后,曾尝试成功用mindYOLO的纯COCO预训练权重实现推理,下一步计划动手实践mindYOLO的微调。项目选择上,一开始计划复现gitcode上一个厨房检测项目,但是发现数据集数据特别少,需要大量自定义,比较耗时,所以改为从github mindYOLO的examples中选取,初期选择了车辆检测,但数据集太大等原因,最终决定复现安全帽检测示例。实践过程中慢慢摸索YOLO数据集格式、YOLO的训练推理流程、yaml文件的相互关联,还踩了一些mindspore版本与YOLO版本的坑,最终使用SHWD数据集+YOLO v10n走通了微调+推理全过程。

操作步骤

项目文件夹内容:
描述文字

操作步骤请主要参考mindYOLO示例说明,这里简单梳理:

  • 转换数据集格式,github头盔检测示例中已经写好了convert_shwd2yolo.py。代码为:!python ./dataset_SHWD/convert_shwd2yolo.py --root_dir ./dataset_SHWD/00_SHWD_original
    • SHWD数据集并不能直接用于YOLO训练,因为它的label的.xml需要改为.txt,文件夹结构也不满足YOLO要求,还需要将图片名都改为数字(由于MindYOLO在验证阶段选用图片名称作为image_id,因此图片名称只能为数值类型)。
    • 补充对SHWD数据集介绍:VOC2028数据集(SHWD),其中包括正类hat,负类person;图片中有部分是来自SCUT-HEAD数据集的图片:PartA共2000张来自教室摄像头,PartB共2405张来自网络(未带头盔);其他数字开头的和part2开头的似乎都是戴头盔的。
  • 从仓库中下载configs文件夹,其中包含了coco.yaml和yolov10中的yolov10n.yaml(或许也可以从pip install mindyolo时下载到本地的包内找到coonfigs,暂未尝试)
  • 从仓库中下载train.py、mindyolo/demo中的predict.py,用于训练和推理直接调用
  • 从仓库benchmark_results.md中的链接下载预训练的权重文件(不用下载.yaml文件,因为configs文件夹中已有)
  • 按照仓库中的说明,新建yolov10n_shwd.yaml文件(自定义命名,train.py、predict.py运行时需要关联),并修改其中内容
    • 需要修改的大致有3处5行:1. __BASE__中改为'./configs/yolov10/yolov10n.yaml',指向yolov10n.yaml文件;2. weight中填写./yolov10n_500e_mAP383-c973023d.ckpt;3. train_set改为数据集的train.txt(里面是所有训练用的图片路径,文件由convert_shwd2yolo.py自动生成)路径,val_set和test_set都改为数据集的val.txt路径
    • 个人后续运行train.py时遇到过gbk相关报错,删除yolov10n_shwd.yaml中的中文注释即可
  • 运行训练代码:!python ./train.py --config ./yolov10n_shwd.yaml --device_target CPU --epochs 1(时间考虑这里epochs设比较小)
  • 从./runs下可以找到训练的log,其中读出所存储的.ckpt权重文件名及其路径,在推理时候需要用到该微调后的权重
  • 选好要测试图片后,运行推理代码:!python ./predict.py --config ./yolov10n_shwd.yaml --device_target CPU --weight ./runs/2025.11.20-17.28.11/weights/yolov10n_shwd-1_379.ckpt --image_path ./000239.jpg
  • 测试图推理效果,注意需要从未参与训练的图里选择(其实很多推理的结果很差,可能epoch过少原因,至少出现hat不是原coco数据集类别已经表示整体流程打通)
    描述文字
  • 在runs_infer中即可找到推理的记录,里面包含推理完成的图片等

其他细节及troubleshooting

  • 关于yaml文件的关联链:train.py和predict.py → yolov10n_shwd.yaml → yolov10n.yaml(configs/yolov10) → coco.yaml/hyp.scratch.low.yaml,其中的yaml文件只需要修改yolov10n_shwd.yaml,其它不改动(yolov10n.yaml中保持分类数量nc为80,而yolov10n_shwd.yaml中nc为2,此时由于strict_load是False,所以分类数不同仍然可以正常使用)。
  • 报错yaml文件有gbk相关错误,解决方法:删除中文备注
  • 由于在自己笔记本CPU训练,训练时自行将epochs设置为了1(默认300),但由于训练集庞大,仍然用了100min,但如果要推理效果好,还是建议增加epochs
  • 报错: module 'mindspore' has no attribute 'set_recursion_limit',原因是mindspore不同版本的属性发生变化。解决方法:copy了环境将mindspore从2.4.1改为2.6.0(官网有专门代码安装指定版本),重启notebook
  • 报错: train() got an unexpected keyword argument 'run_eval_interval',原因未深究。解决方法:直接把train.py里三处出现run_eval_interval的语句屏蔽了(由于run_eval默认False,所以暂时不会用到run_eval_interval变量)。
  • 运行predict.py,报错[mindspore\device_context\ascend\device.py:70] CPU device is not supported. Please use correct device,原因未知,毕竟device_target接口已经设置为CPU,可能mindYOLO的yolo版本与CPU适配问题(当前mindspore为2.6.0,尝试换为2.4.1会报错无set_recursion_limit属性,尝试换2.7.1仍然报错CPU不支持)。解决方法:改用YOLO v10n模型,匹配上mindspore2.6.0

2025.11.20

相关新闻

  • 孝感一对一辅导机构口碑推荐:2025最新教育机构权威排行榜单落地!贴合考点,提分更精准
  • 2025年比较好的35KV电缆分支箱厂家推荐及选择指南
  • format函数sql的细节

最新新闻

  • 02-数字孪生三大厂商2026最新技术布局深度解析
  • 如何用WeChatMsg将微信聊天记忆变成永久数字财富?
  • foobar2000终极美化指南:5分钟打造专业音乐播放界面
  • 5个必装插件!让ComfyUI AI绘画工作流效率翻倍的终极指南
  • 计算机视觉(实训一)
  • 从零开始掌握SiYuan笔记:5个实用技巧让你的知识管理更高效

日新闻

  • Arduino-ESP32项目深度解析:解锁隐藏芯片支持与架构演进
  • 2026年 系统窗厂家/品牌推荐榜单:隔音系统窗+高端系统门窗的核心优势与选购指南 - 品牌发掘
  • NVBench:首个双语非言语发声语音合成评测基准详解与实践

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号