← 返回博客

个人博客

标注长什么样:给机器人看的"标准答案"

前情提要 上一回第 37 篇《数据采集的几种方式:示教、遥操作与自探索》讲到,机器人训练数据可以靠示范、遥操作、遥控自采、自探索、看视频好多姿势收集进来——可收集到的原始视频、点云本身机器压根看不懂。得先给数据"标"上答案,模型才有东西可学。本篇就讲:标注到底长什么样。

一、什么是标注:给数据贴"标准答案"

你小时候做过连线题吗?左边画一只猫,右边写着"猫",要你拿线把图和字连起来。做完老师一改,对了就打勾。那个"对的连线",就是标准答案。

给机器人准备数据,干的是同一件事,只是规模大得多。第 37 篇《数据采集的几种方式:示教、遥操作与自探索》里我们说到,原始视频、点云这些"原材料"已经收进来了。可机器看到一段视频,眼里只是一连串会变化的像素数字;看到一坨点云,只是成千上万个带坐标的小点。它不知道哪团像素是"杯子",哪堆点是"桌子",更不知道"手该往哪儿伸"。

所谓标注(annotation),就是人替机器把答案写在这些原始数据上:给照片里每只猫画个框,就是告诉机器"这团像素是猫";给一段抓取视频里每帧的手,点出关节位置,就是告诉机器"手是这样弯的"。模型要学的,正是"从像素、点云"到"答案"之间的对应关系。没有答案,机器就只是看了一堆数字,什么也学不会。所以标注,本质上是给机器准备好"练习题和参考答案"。

那答案都有哪些"款式"?下面挨个看。

二、检测框 / 包围盒:先给物体画个圈

最直观的一种标注,叫检测框(bounding box,也叫包围盒)。它的样子你一定见过:在一张图里,用矩形把目标框起来,再贴上标签——"猫""杯子""椅子"。

为什么是矩形?因为简单。一个框只要四个数就能描述:左上角横纵坐标、宽、高。机器拿到成千上万张"框好的图",就能学会"看到类似的一团像素,就预测一个框"。这正好呼应第 7 篇《让机器认出物体:分类、检测与分割》里讲的检测任务:分类只说"图里有什么",检测进一步说"它在哪儿、是什么"。检测框,就是检测任务要学的"标准答案"。

生活里它无处不在:手机相册自动把人脸框出来、自动驾驶把行人框出来、工厂把零件框出来。框得准不准,直接决定机器"看没看对地方"。

三、关键点与骨架:把关节点出来

有时候只框个方块还不够。你想让机器学会"人是怎么走路的""手是怎么抓东西的",光知道"有个人在画面里"没用,你得知道"头、肩、肘、腕分别在哪儿"。

这就引出关键点(keypoint)和骨架(skeleton)标注。做法是在图像里把关心的点一个个点出来——比如人体的鼻、肩、肘、腕、髋、膝、踝,再用线把相邻的点连成"火柴人"。这样原本一团模糊的人影,就变成了一副可量化的骨架:每个关节都有坐标,机器就能算出"胳膊抬了多高""膝盖弯了多少度"。这是姿态估计(pose estimation)任务要学的答案。

对人有效,对机器人自己的手也有效:标出机械手指尖、关节的位置,机器就能从视频里学会"手是这样捏住杯子的"。

四、语义 / 实例分割:给每个像素涂色

检测框是方的,可猫是弯的、苹果是圆的。要更精细,就得请出分割(segmentation)。

分割干的事是"逐像素判类":图里每一个小像素,都标上它属于什么。给所有"猫"的像素涂成蓝,所有"背景"的像素涂成灰,猫的轮廓就沿着真正的毛发边缘描出来了,而不是被一个矩形草草圈住。这又是第 7 篇《让机器认出物体:分类、检测与分割》里说的——分割是三类任务里最细的那一级。

细分还有两种。语义分割只管"类":所有猫的像素都算"猫"一类,不分彼此。实例分割更狠:不仅分出"猫",还要分清"这是第一只猫、那是第二只猫"。让机器人从一堆叠在一起的物体里,精准地只夹起你指的那一个,靠的就是实例分割标出来的答案。

五、抓取位姿:6D 抓取姿态

前面几种,答案都在"看"的层面:框在哪、点在哪、像素属于谁。可机器人最终要动手去抓,光"看懂"不够,还得知道"手该怎么摆"。

这就到第 18 篇《抓取为什么这么难》的老话题了。抓取之所以难,是因为手和物体要真碰上、还要不滑不掉(那篇讲了接触、摩擦、柔性几道关)。而要把"怎么抓"教给模型,标注就得告诉机器手的三维位置和三维朝向——加起来正好六个自由度,所以叫 6D 抓取姿态(6D grasp pose)。

具体长什么样?通常是一段视频或一次遥操作里,标出"这一刻,夹爪应该出现在物体的哪个点、开口朝哪个方向、要转到什么角度"。比如抓马克杯,答案可能是"夹爪停在把手正前方 5 厘米处、竖直向下、开口对准把手"。模型学多了这样的"正确答案",以后看到新杯子,就能自己估出一个能抓稳的位姿。注意,这里标的不只是"抓哪里",还有"从什么角度、多深、什么朝向去抓"——这正是 6D 比一个简单坐标点更丰富的缘故。

六、Affordance:物体"能怎么被用"

还有一类标注,想的不是"这是什么",而是"它能用来干嘛"。英文叫 affordance,常被译作"可供性",或直接说"物体能怎么被用"。

比如一把椅子,检测框会标"这是椅子",分割会描出椅子的轮廓;但 affordance 标注要标的是"椅面能坐""椅背能靠""四条腿能撑"。再比如一个杯子:它"能被抓握""能被倒水""能被放置"。这种标注回答的是"人和机器可以对它做什么",而不只是"它叫什么"。

为什么重要?因为机器人最终要"用"东西,不是"认"东西。知道"这个表面能放稳一碗汤",比知道"这是桌子"更贴近任务。affordance 标注常常和前面几种叠加:既框出物体,又在可抓、可坐、可踩的区域上涂一层"可用"的标记,告诉机器"这些地方能动手"。它和第 9 篇《触觉:被忽视的第三感官》也有关联——触觉让机器上手后"感觉"到抓没抓牢,而 affordance 是先在地告诉它"哪里值得去抓",一个管预判、一个管贴身确认。

七、小结:任务不同,标注不同

把上面几种摆在一起,你会发现一个核心道理:

graph LR n1["原始数据"] --> n2["标注类型"] --> n3["检测框/关键点/分割"] --> n4["抓取位姿/Affordance"] --> n5["可学习信号"]

标注绝不是"给图打一个标签"那么单调。想让机器认物体,就标检测框、关键点、分割;想让机器会抓,就标 6D 抓取位姿;想让机器懂"怎么用",就标 affordance。任务决定了答案的模样——给分类任务标骨架是浪费,给抓取任务只标个框又不够。

所以从第 37 篇《数据采集的几种方式:示教、遥操作与自探索》收集来的原始经验,到这里才真正变成模型能啃的"食材":先按任务需要,把对应的答案一笔笔画上去,机器才有东西可学。下一关要问的是:标上去的答案,一定对吗?

读后小测

「3 句话复述」:标注就是人替机器在原始视频、点云上写"标准答案",从检测框、关键点、分割到 6D 抓取位姿、affordance,不同任务要标不同形式的答案;检测框画方块、关键点连骨架、分割逐像素涂色,分别服务于认物体和估姿态;6D 抓取位姿与 affordance 更进一步,告诉机器手该怎么摆、物体能怎么用,让"看懂"变成"会动手"。

「1 件动手小事」:打开手机相册,找一张有人或物体的照片,用手指在屏幕上凭空给它每个目标画个方框、再在人物关节点几个点——体会一下你刚才做的,正是标注员每天给机器干的活:把"答案"一笔笔画在原始数据上。

---

下一回,第 39 篇《标注质量:一致性、金标准与众包之争》:标了不等于标得对。同一个物体,不同人画的框可能差出一截;标注质量直接决定模型上限,标歪了,模型学得再努力也学歪。下一篇我们就聊,怎么让"标准答案"真的够标准。