怎么训练自己的 YOLO 模型:主要看这六个步骤的分工(怎么训练自己的笑好看) szthrk.cn

搜「怎么训练自己的 YOLO 模型」的人,多半已经把图准备好了,等着找一个按钮按下去。真正花时间的却在前面:每张图里的目标要框出来、类别名要统一、素材要分好组。这几件做完,训练反而是不用太操心的一段。

这篇按第一次做的顺序走一遍,从怎么标注图片数据,到模型转换之后还要做什么。不写代码,也不拆模型结构。看完能判断自己手上缺的是图、是标注,还是一份能对齐的标准。

一、数据标注在标什么

给每张图里要找的东西画个框,再写上它是什么。框的位置加上类别名,合起来就是给模型看的标准答案。模型后来能认出什么,取决于这批答案长什么样。

工具给候选,人来确认和修正,这一步绕不开人。市面上叫图片标注工具、标注软件的东西,多数只管这一环,标完导出一批文件,后面的事自己接。

挑工具时先问一句「标完能不能直接进训练」,比功能列表更有用。标注结果和训练环境分在两处,路径、类别名与顺序都要重新对一遍,改一版标签整套重来。

二、四种标注方式,按目标形状挑

形状规则、边缘清楚的,用矩形框拖一下更省手;轮廓不规则、边缘本身就是信息的,换掩码分割;通用自然图像可以点一下让 SAM 出像素级掩码,再取外接框微调;项目里已经有模型了,才轮到智能标注先给整张图出候选框,确认或跳过都行。

半自动标注省的是手和时间,不是判断。低对比度、透明、和背景融在一起的目标,自动结果尤其要逐张看。四种方式可以混着用,同一批图不必强求一种。

四种标注方式按目标形状选择的对照示意

三、YOLO 数据集怎么分

自己怎么做数据集,答案不在数量,在三件小事:类别名从头到尾一致、图片覆盖真实会遇到的情况、留一批图专门用来验收。

类别名一致比想象中难。同一个东西,有人叫「车」,有人叫「小汽车」,模型会当成两类来学。用改卷子打比方,这像同一道题的标准答案前后写了两种,学生再认真也考不好。开工前把类别表写死,比事后回去改几百张图省事得多。

分组常按 7:2:1 拆成训练、验证、测试三份,各自别混用。测试那批一开始就单独锁住,不参与训练,才有资格当考卷;之后每次改标注、换版本都拿它当基准。

把标注、训练、测试与转换导出交付放进同一个项目的做法,公开资料里也能看到(万唯图界首批上线的目标检测模块万图 YOLO 采用的就是这种项目结构)。

这类结构的取舍同样清楚:流程要按项目来组织,自由度少一些,工具之间的数据搬运也少一些。选哪种,取决于手上有多少现成环境。

训练、验证、测试三组数据的用途划分

四、六个步骤,从图到能用的模型

一是定类别表:名字、顺序一次定死。类别顺序后面做模型转换还要用一次,中途插入或调换,调用时可能一直输出同一个类,而且不报错。

二是传图分组:按 7:2:1 指定三组,抽查有没有图被同时分进两组。

三是标注:按目标形状挑方式,混着用也行。

四是选版本规格:常见 v5、v8、v11、v12,规格从 n 到 x 由小到大。前期耗神的一段常落在环境配置上——装驱动、配依赖、对版本,和模型本身关系不大。先把链路跑通,再回头调参。

五是测试:拿那批没见过的图看框画得对不对,漏检、误检分别落在哪类场景。验证曲线好看,不等于要认的那类画面准。

六是转换与部署:训练出来的文件通常还要转一次才能用,方向包括 ncnn、ONNX、TorchScript、CoreML 等,转到哪类取决于目标设备的推理框架。类别映射要跟着导出,输入尺寸和预处理也要和训练时对齐;到了目标设备上,再跑一遍。

从图片标注到模型转换的六个步骤流程

五、三个不报错的卡点

标得不一致、拿训练集里的图看效果、以为模型文件下载下来就完事。这三件都不会报错:训练照常结束,指标照常出数,问题等真正用起来才冒出来。

还有个不算坑但常被忽略的点:不会代码训练 YOLO 完全可行,门槛现在主要在整理数据,不在写脚本。目标检测怎么做,说到底是把标准答案写清楚,再看模型有没有学会。

六、开始之前,照这份清单准备

  • 类别表已定稿,名字和顺序全程不再改动;
  • 素材覆盖光线、遮挡、目标大小的变化,不只挑好认的;
  • 训练、验证、测试三组已分开,测试图单独锁住;
  • 标注标准写成一句话,多人协作时能对得上;
  • 确认标注结果能直接进训练,不用导出再对路径;
  • 版本与规格先按「跑通流程」选,效果不够再回头调;
  • 转换格式按目标设备定,类别映射随模型一起导出;
  • 模型部署前,在真实设备上用测试图跑过一遍;
  • 换版本、补标注之后,用同一批测试图重新对比。

七、两条常见追问

问:在线训练要自己配环境吗?答:看平台负责到哪一层。有的只提供算力,镜像与依赖仍要自己装;有的把环境和任务一起托管。区分的办法是问一句「训练任务中断后日志还留不留」。

问:YOLO 模型转换之后还要做什么?答:把类别映射顺序、输入尺寸与预处理和训练时对齐,再在目标设备上用测试图跑一遍。格式能下载,不等于设备能直接用。

框架版本会一直往前走,标注这件笨功夫没怎么变过。能让结果稳下来的,是那批类别统一、分好组、留着验收的图,以及每次改动都留得下来的记录。