3、数据采集与标注:传感器选型、采集规范与标注格式
大家好,我是这次课程的主讲工程师。今天咱们聊聊数据采集与标注这个环节。说实话,很多团队在感知系统上栽跟头,不是算法不行,而是数据这块没打好地基。我见过太多项目,模型在公开数据集上跑得飞起,一上路就露馅——说白了,就是数据跟实际场景脱节了。
这一章,我会从传感器选型讲起,再到数据采集规范,最后聊聊标注工具和格式。嗯,都是我在项目里踩过坑、填过土的经验。
3.1 传感器选型:别光看参数,要看场景
传感器选型,我个人的习惯是「场景驱动」。你想想看,一个跑在封闭园区的物流车,跟一个跑在开放道路的Robotaxi,传感器配置能一样吗?
咱们先看三种主流传感器的特点:
| 传感器类型 | 核心优势 | 典型短板 | 我常用的场景 |
|---|---|---|---|
| 相机 | 纹理丰富、颜色信息、成本低 | 受光照影响大、无直接深度 | 车道线检测、交通标志识别 |
| 激光雷达 | 精确的3D点云、全天候 | 成本高、雨雾衰减、无颜色 | 障碍物检测、SLAM建图 |
| 毫米波雷达 | 测速准、穿透性强、成本适中 | 角度分辨率低、点云稀疏 | 前向碰撞预警、自适应巡航 |
我在项目中遇到过一件事:某次给一个港口无人集卡做方案,客户坚持要用128线激光雷达,觉得线数越高越好。结果呢?港口灰尘大,高线数雷达反而因为点云太密,把灰尘也当成了障碍物,导致频繁急刹。后来我们换成了16线+毫米波雷达的组合,反而稳定多了。
核心原则:传感器选型不是堆料,而是「够用、冗余、互补」。相机负责「看见」,激光雷达负责「测距」,毫米波雷达负责「测速」——三者各司其职,才能形成闭环。
3.2 数据采集规范:细节决定成败
数据采集,听起来就是开车出去转一圈?没那么简单。我见过最离谱的案例,是有人把相机装反了,采集了一周的数据,回来发现所有图像都是倒的……
我个人总结了一套「三同步」规范:
- 时间同步:所有传感器的时间戳必须统一。我习惯用PTP(精确时间协议)或者GPS授时,误差控制在1毫秒以内。否则你拿到的数据,相机看到的是红灯,激光雷达扫到的是绿灯,这怎么融合?
- 空间同步:传感器之间的外参必须标定好。说白了,就是知道每个传感器装在车的哪个位置、朝向哪里。我建议每次采集前都做一次标定,哪怕只是挪动了1厘米。
- 场景同步:采集路线要覆盖各种场景——晴天、雨天、白天、夜晚、隧道、高架、十字路口……别只挑好路跑。我曾经为了采集雨夜数据,专门等了一个月的雨季。
一个小技巧:采集时记得记录「元数据」——比如天气、光照强度、路面状况。这些信息在后续分析数据偏差时,能帮你省不少时间。
3.3 标注工具与格式:COCO vs KITTI
标注是数据闭环中最耗时的一环。我见过团队花三个月标注了10万张图,结果发现格式不兼容,又得重来……
目前主流的两大标注格式,咱们对比一下:
| 对比项 | COCO | KITTI |
|---|---|---|
| 适用场景 | 2D目标检测、实例分割 | 3D目标检测、跟踪、立体视觉 |
| 标注内容 | 边界框、多边形、关键点 | 3D边界框、截断、遮挡、旋转角 |
| 数据组织 | JSON文件,包含images、annotations、categories | 文本文件,每行一个标注对象 |
| 我个人的偏好 | 2D任务首选,生态好,工具多 | 3D任务必用,尤其是激光雷达点云 |
举个例子,COCO格式的标注文件长这样:
{
"images": [{"id": 1, "file_name": "000001.jpg", "width": 1920, "height": 1080}],
"annotations": [{
"id": 1, "image_id": 1,
"category_id": 3, // 3代表car
"bbox": [100, 150, 200, 300], // x, y, width, height
"area": 60000,
"iscrowd": 0
}],
"categories": [{"id": 3, "name": "car"}]
}
而KITTI格式则更简洁,每行一个目标:
Car 0.00 0 0.00 100.00 150.00 300.00 450.00 1.50 1.80 4.50 -1.20 1.50 10.00 0.00
# 类型 截断 遮挡 观察角 bbox2D(4个) 尺寸(3个) 位置(3个) 旋转角
注意:标注格式转换是个大坑。我曾经从COCO转KITTI,因为坐标系定义不同(COCO是左上角原点,KITTI是图像中心),导致所有3D框都偏了。建议一开始就确定好格式,别中途切换。
3.4 知识体系总览
说了这么多,咱们用一张图来梳理一下本章的核心逻辑:
这张图把咱们今天聊的三个模块串起来了。传感器选型是硬件基础,采集规范是流程保障,标注格式是数据载体——三者环环相扣,缺一不可。
最后说一句:数据采集和标注,看着是体力活,其实是技术活。我见过太多团队在这上面省时间,结果后面花十倍的时间去补坑。嗯,希望你能少走这些弯路。