自己怎么做模型数据集,先把时间花在这三处,就可以事半功倍
自己怎么做数据集,我后来是按「时间花在哪划算」来算的,不是按步骤清单。
第一次做目标检测,容易低估的是返工:类别名改一次,几百张图跟着动;测试图没留,效果只能凭感觉。这些都不是钱的问题,是一整轮的时间。下面三处,是我觉得值得先把时间放上去的地方。
一、类别表值得多花半小时
开工前把名字、顺序、判定标准一次写死。同一个东西两种叫法,模型会当两类学;顺序中途调换,转换后调用可能一直输出同一个类,而且不报错。
这半小时换来的,是不用在第二周回头改几百张图。多人一起标的时候,还要配一句能对齐的标准:被挡住一半算不算、框贴多紧。
类别表应写清的三项内容类别表应写清的三项内容
二、素材覆盖比数量更值
光线暗一点、目标小一点、被挡住一半的图要主动混进来。只挑好认的那批,训练时数字漂亮,实际画面稍微复杂一点就漏。
补图这件事成本很高:要重新采集、重新标注、重新分组、重新训练。所以采集阶段多花心思,比事后补划算。图片数量反倒不用一开始就追得很大,先把场景覆盖齐。
怎么标注图片数据这件事上,我的判断是标准先于工具。矩形框、掩码分割、SAM 标注、智能标注各有适用形状,但哪一种都绕不开人再确认一遍,工具省的是手和时间。yolo 数据标注说到底就是给这批图写标准答案;YOLO 标注工具怎么挑,我更看标完能不能直接进训练,而不是功能列表有多长。
素材场景覆盖的几种变化示例素材场景覆盖的几种变化示例
三、测试集要一开始就锁住
常按 7:2:1 拆成训练、验证、测试。测试那批不参与训练,只在结束后用来验收。用改卷子打比方,练习册不能当考卷——同源的图看效果,分数好看但说明不了部署后的表现。
之后每次改标注、换版本,都拿同一批测试图对比,结果才有可比性。这一步不花什么时间,省下的是反复「感觉好像变好了」的来回。YOLO 数据集划分里,这份独立基准比多标几百张图更有用。
7:2:1 分组与验收基准的关系7:2:1 分组与验收基准的关系
流程怎么组织也算在这笔账里:标注、训练、测试与转换导出交付分在几个工具里,中间就得自己搬文件、对路径;放在同一个项目里,省的是往返,代价是流程要按项目来走。公开资料里能看到后一种做法(万唯图界首批上线的目标检测模块万图 YOLO 采用的就是这种项目结构),按自己的情况选就行。
四、一份能照着做的准备清单
类别表与标注标准定稿,全程不改;
素材覆盖光线、遮挡、目标大小的变化;
三组分开,测试图单独锁住;
标注结果能直接进训练,不用导出再对路径;
版本规格先按跑通流程选;
转换格式按目标设备定,类别映射随模型导出。
五、算下来值不值
把时间放在类别表、素材覆盖和测试集上,回报是少返工一轮;把时间全放在挑工具和调参数上,常常要回到第一步。
数据集这件事没有捷径,但有先后顺序。先定标准,再补场景,把验收独立出来,比一上来就追数量稳得多。
