JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

是什么、在哪里:检测与分割

现代机器人如何叫出场景中物体的名字、并勾出它们的精确轮廓——靠的是在数百万张标注图像上训练出来的深度神经网络。

从彩色像素到含义

相机交给机器人的,是一张数字网格。每个像素只说「这里有一小块红褐色」——它从不会说「这一块属于一只咖啡杯,杯子就放在你左边的桌子上」。知道一个像素的颜色很容易;难而有用的,是知道这个像素属于什么、以及那东西在世界里的位置。

弥合这道鸿沟,靠的是两个密切相关的任务。一个用粗略的方框回答「是什么、在哪里」;另一个则逐像素地回答,给出精确的轮廓。两者都由卷积神经网络驱动——它们已经研读过海量的示例图像;两者都在机器人规划抓取或绕开障碍之前,先把它需要的标签喂给它。

目标检测:一个框加一个名字

目标检测会在它认出的每样东西外面画一个紧贴的矩形——「边界框」——并打上类别标签和一个置信度分数:「杯子,0.93」或「人,0.88」。在一次扫过图像的过程中,它就能同时找出许多物体,哪怕它们彼此重叠,并大致告诉你每个物体在画面中的位置。

机器人几乎总是需要这个答案的两半。类别告诉它该怎么做——杯子可以拿起,遇到人要停下,影子可以忽略。位置告诉它把手臂指向哪里、或该往哪个方向转。有标签没位置,只是一句传闻;有位置没标签,只是一团模糊。检测把两者都给你,而且快到足以在实时视频上运行。

语义分割:给每个像素贴标签

语义分割是把同一个问题推到极致:它给每一个像素都指派一个类别。你得到的不再是一个说「杯子大概在这块里」的方框,而是一张随着杯柄和杯口精确勾边的杯子形模板,周围还填上了「桌面」和「墙」。它的输出,是一张给场景配色的图,每种颜色代表一个类别。

这种精确,在两件机器人的日常工作中很值。对于抓取,精确的轮廓告诉夹爪到底哪些像素是物体、哪些是它背后的桌面,于是它能把手指落在真正的边缘上。对于导航,「地面」与「障碍」之间像素级精准的掩膜,让移动机器人能沿着门口或路缘的真实边界行进,而不必绕开一个臃肿的方框。

网络是怎么学会的——又会怎样出错

这两个任务都是学出来的,不是写死的。一个卷积神经网络让一些小滤波器在图像上滑动;浅层对边缘和斑块起反应,深层把这些线索层层叠成「像把手」「像杯子」的模式。这些滤波器没人是手工写的——它们是被训练塑造出来的,这正是现代深度学习的核心。

  1. 收集数百万张图像,上面已经由人画好了方框或涂好了像素掩膜——这就是标准答案。
  2. 把一张图像给网络看,让它猜,再衡量它的猜测离人给的答案有多远。
  3. 把每个滤波器都微调一点点,好让误差变小,然后在整个数据集上反复这样做很多遍。
  4. 当它在训练中从没见过的图像上画出的方框和掩膜,能与人会画的对上时,就停下来。

因为模型只知道它被展示过的东西,这套同样的配方支撑着更广义的机器学习——它也解释了感知会在哪里崩。一个在白天城市街道上训练的模型,到了夜里或农场可能就乱了套;训练集里没有的物体,会被硬塞进最接近的熟悉类别,或者干脆被漏掉。