模型不缺了,真正卡住你的,是训练数据
你有没有遇过这种场面?
GPU 申请到了,模型也选好了,代码仓库里甚至已经有了一个 train.py。
然后项目卡住了。
因为你发现:没有数据。
更准确地说,是没有能直接拿去训练的数据。
图片散落在网盘、业务系统和同事电脑里;标签五花八门;有人把“轿车”标成“汽车”,有人标成“私家车”;边界框还没画完,模型实验的 deadline 已经到了。
这才是很多 AI 项目最真实的开局。
一个很朴素的痛点,为什么能做成 Scale AI
Alexandr Wang 在 MIT 读书时,想训练一个模型。
他需要三样东西:
- 云账号
- 训练代码
- 训练数据
云账号,点几下就能开。
代码,GitHub、开源社区、论文复现,总能找到路。
只有数据,没法“点一下就生成”。
特别是计算机视觉任务。你想让模型识别红绿灯、车道线、货架商品、工地安全帽,就得有人把一张张图片、视频帧、点云里的目标圈出来,写上统一的标签,再做检查。
这件事听起来不酷,甚至有点像苦力活。
可模型的上限,往往就被这堆“苦力活”钉死了。
Scale AI 抓住的,正是这个空档:把数据采集、标注、质检、回流做成一套可交付的服务。
一句话理解:
算力和模型越来越像基础设施,可靠的数据生产能力,才是很多团队手里的稀缺资产。
为什么“找了一堆图片”不等于你有训练数据
很多人做视觉项目,一开始会犯一个很自然的错误:先疯狂收图。
爬网页、导出历史订单图片、拉监控截图、让运营同学发素材。几天后,硬盘里多了 20 万张图,大家很兴奋。
等真正开训,麻烦来了。
1. 标签不统一
同一个物体被标出多个名字。
比如零售货架识别项目:
- A 标注员写“可乐”
- B 标注员写“可口可乐”
- C 标注员写“饮料”
- D 干脆写“瓶子”
模型根本不知道你到底要识别什么。
2. 数据和真实场景脱节
你拿了一堆商品白底图训练,实际部署地点却是便利店。
现场有反光玻璃、遮挡、促销牌、倾斜货架、昏暗灯光,还有顾客伸手拿商品。
模型在测试集上 95 分,到了门店像突然失忆。很常见,也很扎心。
3. 标注质量没验收
框偏了十几个像素,小目标漏标一大片,语义分割边缘像狗啃过。
这种数据喂进去,模型会非常认真地学坏。
4. 类别分布严重失衡
你有 10 万张“正常情况”的图片,只有 50 张“异常情况”。
比如工地安全识别里,绝大部分人都戴了安全帽,没戴安全帽的人少得可怜。
模型会学到一个聪明又偷懒的答案:反正全判“戴了”,准确率看起来还挺高。
这不是模型聪明,是指标把你骗了。
做 AI 项目,别急着训练:先写一份标注规范
没有标注规范,后面的返工几乎跑不掉。
这份文档不需要写成学术论文。它的目标很简单:让不同的人面对同一张图时,能做出尽量一致的判断。
一份能用的标注规范,至少要写清楚下面几件事。
标签定义
把每个类别讲人话,讲具体。
别只写:
标签:安全帽。
应该写成:
标签:安全帽。指覆盖头顶、用于工地防护的帽子。黄色、白色、红色、蓝色均计入。普通鸭舌帽、毛线帽、头巾不计入。
标注边界
框到底贴多紧?被遮住一半怎么办?远处小到只有几个像素的目标要不要标?
这些都要提前定。
例如:
- 目标可见面积超过 30% 时标注
- 被遮挡部分按完整目标的可见外轮廓框选
- 宽或高小于 12 像素的目标忽略
- 反光海报里的“安全帽图片”不标,真实佩戴者才标
负样本怎么处理
负样本特别容易被忽略。
假设你做的是“是否佩戴安全帽”,那下面这些图必须专门收集:
- 戴鸭舌帽的人
- 举着安全帽但没戴的人
- 画面里有安全帽海报的人
- 人背对镜头、头部不可见的人
- 安全帽被强光照得发白的人
它们是模型最容易误判的地方。
给标注员看正例和反例
文字描述不够,示例图才有杀伤力。
建议每个类别准备:
- 10 张标准正例
- 10 张典型反例
- 10 张容易争议的边界案例
别嫌麻烦。你现在多花半天,能少掉后面两周的返工。
一套能落地的数据生产流水线
如果你准备做一个视觉 AI 项目,可以照着下面的流程跑。
第一步:从业务现场采样,不要只从网上找图
数据要像真实世界,不要像搜索引擎。
以“仓库托盘识别”为例,采集时主动覆盖这些条件:
- 白天、夜间、弱光
- 正拍、俯拍、斜拍
- 托盘完整、被遮挡、堆叠
- 空仓、满仓、人员走动
- 不同摄像头、不同焦距、不同分辨率
- 干净地面、反光地面、杂乱背景
可以建一个简单的采样表:
| 场景维度 | 要覆盖的情况 | 建议数量 | | --- | --- | --- | | 光照 | 正常、过曝、昏暗 | 每类 500 张起 | | 视角 | 正面、侧面、俯视 | 每类 500 张起 | | 遮挡 | 无、轻度、重度 | 每类 300 张起 | | 设备 | 摄像头 A、B、C | 每台都要有 |
别等模型上线后,才发现它没见过夜班仓库。
第二步:先做小批量标注试跑
别一上来就扔 5 万张图给标注团队。
拿 200 到 500 张有代表性的样本做试标。然后检查三件事:
- 标注员能否理解类别定义
- 同一张图,不同标注员的结果是否接近
- 哪些场景最容易产生争议
试标阶段发现问题是好事。
这时候改规范,成本几乎可以忽略。等 5 万张标完再改,钱包会哭。
第三步:建立双层质检
别把“抽查了几张”当成质检。
一个实用的配置是:
- 基础审核:检查漏标、错标、框太离谱等明显问题。
- 高风险复核:专门盯小目标、遮挡目标、边界案例和高价值类别。
你可以给每批数据设置验收线:
- 漏标率低于 2%
- 错标率低于 1%
- 边界框 IoU 达到约定阈值
- 关键类别必须全量复核
如果团队暂时没有成熟的质检系统,先用表格也行。核心不是工具有多高级,而是每一批数据都有明确的“能不能过”。
第四步:划分训练集、验证集、测试集
常见比例可以从 8:1:1 开始。
不过,真正要防的是数据泄漏。
举个例子:同一段监控视频每秒抽一帧,前 80% 放训练集,后 20% 放测试集。看起来比例没问题,实际上测试图和训练图几乎一模一样。
模型分数会非常漂亮,然后一部署就翻车。
更靠谱的做法:
- 按摄像头划分
- 按日期划分
- 按门店、工地、仓库划分
- 按完整视频片段划分
测试集必须像一个模型从没去过的新现场。
第五步:用错误案例驱动下一轮采集
模型训练完,不要只盯一个总准确率。
把错误样本拉出来,一张张看。
你会看到特别具体的问题:
- 夜间画面漏检
- 逆光时把反光背心识别错
- 密集货架里的小商品分不清
- 人群遮挡后,安全帽检测断断续续
每类错误都对应下一轮数据动作:
| 模型错误 | 数据侧动作 | | --- | --- | | 夜间漏检 | 补采低照度和红外画面 | | 遮挡误判 | 增加遮挡比例高的样本 | | 类别混淆 | 增加相似类别的对照样本 | | 小目标漏检 | 采集更高分辨率画面,补标小目标 |
这就是数据闭环。
模型不是训一次就结束。它更像新员工:哪里做错了,就拿真实案例重新教。
一个小团队怎么低成本开始
不是每个团队都需要一开始就找大型数据服务商。
如果你只有 2 到 5 个人,完全可以这样搭:
- 存储:对象存储或团队网盘,统一目录命名
- 标注工具:CVAT、Label Studio、Roboflow 等
- 任务管理:Notion、飞书多维表格、Trello 都够用
- 版本记录:用 Git 管代码,用数据版本表记录数据集变化
- 抽检机制:每批随机抽 5% 到 10%,由非原标注人检查
目录可以简单定成这样:
dataset/
├── raw/ # 原始数据,不直接训练
├── sampled/ # 清洗、去重后的候选数据
├── labeled_v1/ # 第一版标注数据
├── labeled_v2/ # 修订后的数据
├── train/
├── val/
└── test/
再配一张数据版本表:
| 版本 | 数据量 | 新增内容 | 标注规范 | 对应模型 | | --- | ---: | --- | --- | --- | | v1 | 3,000 | 日间正常场景 | spec_1.0 | baseline_1 | | v2 | 5,500 | 夜间、遮挡样本 | spec_1.1 | model_2 | | v3 | 8,000 | 相似类别难例 | spec_1.2 | model_3 |
有了这张表,三个月后你不会对着一堆文件夹发呆:这批数据到底是干嘛的?
数据标注最容易踩的 6 个坑
1. 把标注外包出去,就以为自己不用管了
外包解决的是人力,不是判断标准。
规则没写清楚,交付再快也只是在高速生产垃圾数据。
2. 只看标注数量,不看难例比例
1 万张大晴天、无遮挡的照片,可能还不如 2 千张覆盖充分的现场难例。
别沉迷“数据量破十万”的数字游戏。
3. 标注规范边做边改,却不回刷旧数据
规范从“只标完整目标”改成“遮挡超过 30% 也要标”,旧数据怎么办?
不回刷,训练集内部就会自相矛盾。模型会被教得很迷糊。
4. 测试集被反复拿去调参
测试集是期末考试,不是练习册。
你每调一次参数都看测试集,测试分数迟早会被你“调高”。真正上线还是会露馅。
5. 忽略隐私和合规
人脸、车牌、病历、聊天记录、企业内部屏幕,这些都可能涉及敏感信息。
采集前明确授权范围;标注前做脱敏;对外发包时控制访问权限。别等出事了才补流程。
6. 只修模型,不修数据
模型效果差时,很多人立刻换更大模型、加更多层、调更多参数。
有时问题根本不在模型。
先抽 100 个错误样本出来看看。你很可能会发现,漏标、错标、样本偏差才是罪魁祸首。
一份可以直接拿走的启动清单 ✅
开始一个视觉模型项目之前,确认下面这些问题都有答案:
- [ ] 模型上线后要处理什么真实画面?
- [ ] 标签名称、定义、边界规则是否写成文档?
- [ ] 有没有准备正例、反例和争议案例?
- [ ] 是否完成了 200 到 500 张的小批量试标?
- [ ] 是否有独立人员做抽检或复核?
- [ ] 训练集、验证集、测试集是否按场景隔离?
- [ ] 是否记录了数据版本和标注规范版本?
- [ ] 是否建立了从模型错误回流到补数据的机制?
- [ ] 敏感信息是否完成脱敏和权限控制?
模型能力会越来越便宜,调用接口也会越来越简单。
可现实世界不会自动变成干净的训练集。
谁能把一团乱麻的业务素材,整理成持续迭代的数据资产,谁的 AI 项目才更有机会跑到生产环境,而不是永远停在那句熟悉的话里:
“Demo 效果挺好的,怎么一上线就不行了?”