模型架构科研与技术前沿AI 编程

玻璃杯从深度图里消失之后:机器学习拆任务的取舍

把大任务拆成几个小任务、每个环节专门做自己那块再拼起来,还是把整个任务交给一个模型从头训到尾、中间不留死环节,是机器学习里争论多年的分歧。前者的优势是每个环节能单独调试、单独换人;后者的优势是优化的自由度。透明玻璃杯挂不上挂钩、测距图里看不到杯子,后面的机器人实验就是给这两边各打了一个分。文章先看两边各得多少分,再讲为什么拆分会输、输在哪,什么时候拆分依然是对的,最后给出判断环节去留的三条判据,帮你在自己的系统里决定一个环节该留还是该拆。

玻璃杯挂不上挂钩,因为测距相机先把杯子看丢了

一台七自由度的机械臂站在工作台前。夹爪把一只透明玻璃杯从台面上拎起来,慢慢往挂钩上方送。杯子到了挂钩前面,机械臂偏离了位置,杯把和挂钩错开,杯子挂空了,这轮任务失败。

机械臂想把杯子挂稳,往往需要一个专门测量物体远近的传感器,也就是常说的 RGB-D 相机。这类相机大多靠红外光工作:朝物体投射特定图案,再看图案反射回来的形变,算出图像里每个像素离镜头的距离。

但玻璃天生透明。投射的红外光穿过杯体,在弯曲的边缘折射散开,传感器收不到能对上号的反射光。算出的距离图里,玻璃杯所在的位置没有读数,本该有杯子的地方一片空白。

前端传感器把关键数据弄丢之后,后方的动作策略网络只能对着残缺的输入硬猜,机械爪的末端定位自然产生偏差。用这类相机看玻璃,典型的问题总是反复出现:看不准杯壁在哪里、套不进把手、找不到半空中的杯子。这是光学测距原理决定的,独立计量实测也把边界量了出来:平板玻璃影响不大,折射体积加暗背景才让读数大片失效。英特尔 RealSense 社区的技术支持指出,凡在可见光波段透明的材质,在基于立体的测距算法里也必然透明,真想测量只能人工喷涂显影粉末。微软在处理 Azure Kinect 的同类故障反馈时,同样把半透明物体的深度塌陷判定为设计使然,一切符合预期(By Design: Everything is working as expected)。

玻璃杯在彩色镜头里轮廓完整,在深度图里整块消失。

这种前后两段的设计,问题出在传感器这道中间步骤上:它要先把镜头收到的连续光线转成一张定死的距离网格。透明物体让测距丢了读数,传给动作网络的就只剩残缺数据,下游也没机会把动作失败的教训反馈回去修正前端读数。

同一台机械臂,只换输入,成功率差了近四倍

算距离的硬件遇到玻璃就失效,干脆把这一步整个删掉,让神经网络直接看两只镜头拍到的原始画面,它自己能不能摸出远近?西北大学和斯坦福大学的一组人在真实机械臂上做了受控对照(论文,项目主页)。他们搭了个实验台架,主角同样是一台七自由度的机械臂,在工作台边缘和机械臂手腕上分别装了相机。每台相机其实由两颗相距六点三厘米的标准光学镜头组成,两只眼睛同时从略微不同的角度拍照。这两颗镜头出厂时本来就能自己算出一张距离图,但这组实验故意不用它算好的距离,而是把左右两只眼睛拍到的原始彩色画面直接送给策略网络。

为了做对照,他们也保留了传统做法:把传感器测出的距离反算成空间里的三维坐标点,也就是常说的点云。评测任务一共设计了五种:把香蕉装进盒子、把吐司精准插进烤箱的卡槽,以及把塑料杯、不锈钢杯和玻璃杯分别挂到杯架上。每个任务先由真人操作示范两百条轨迹,用来训练扩散策略网络。正式评测时,物体的摆放位置每次都会随机变换,每个任务都在真机上实打实地运行二十次(20 trials)。

在机械臂硬件相同、示教数据相同、模型参数规模也相当的前提下,仅仅改变喂给模型的数据形式,就能带来近乎四倍的成功率差异。各组成绩:把左右两张画面送入网络、并在两个视角间做注意力融合的一组拿到59%;同样给这两张画面,但只是在通道上直接拼接、不让两重视角做交互,成功率落到45%;如果只给单镜头拍的一张普通彩色照片,成功率是43%;如果在单张彩色照片旁边附带一张硬件算出的距离图,成绩反而掉到41%;表现最差的是把测出来的三维空间点塞进专门处理点云的网络,成功率只剩14%。

这篇论文目前还在学术会议审稿阶段(投稿页),代码库也没有正式公开,社区也没有第三方的独立复现结果。云端算力服务商Lambda列在作者机构中,作者在线程里向其表达了算力赞助的感谢(作者在线程里致谢),该公司的技术博客也发布了相关介绍(Lambda 博客)。每种方法在五个任务上各测二十次,合计一百次真机尝试,样本不算大;按二项分布估算置信区间,范围并不算窄,这组数据给的是明确的走向,不是精确的数值。

拆开还是贯通

机械臂在现实里做动作,传统工程思路默认前端要先算出远近。整个系统拆成两个模块:前端管测距、在三维空间里重建坐标,后端拿坐标推动作,接口处把数据拼上。流程里那些不参与反向传播的固定步骤或硬件计算,会把梯度在接口处截断。前端测距出了偏差,后端的策略网络只能接收失真数据,前端也听不到动作失败的反馈。

每种输入在真机上各测二十次、共五个任务,合计一百次。其中,左右视角注意力融合方案取得了59%的成功率。通道直接拼接方案降至45%,输入单张彩色照片为43%,单张彩色照片附加硬件距离图降至41%,而输入空间点云的方案只有14%。点云方案垫底的原因在于真实环境测得的距离读数本身就存在空洞和噪点,转换成空间坐标后还需要进行裁切、降采样和坐标对齐等手工预处理。论文的作者指出,这套预处理稍有不慎,整个策略的成功率会直接归零。

45% 和 59% 的差距体现了信息组织方式的差异。通道拼接与跨视角注意力方案有相似的模型参数,接收了相同的原始画面。在 45% 的方案中,两个镜头提取的特征在进入决策层之前没有任何交互;59% 的网络在没有人工深度标注的情况下,通过动作损失的反向传播,在左右画面的对应像素之间实现了自动几何关联。

五种输入方式的成绩从 59 到 14 依次排开,双目融合最高。

后续的消融与探测实验印证了这种表征的形成过程。把右侧画面换成左侧画面的复制图,机械臂的成绩立刻大幅下滑。研究人员使用线性探针解析模型训练后的内部特征,可以稳定提取机械爪与目标物体的相对空间距离,而训练前的网络权重无法读取该信息。在未人工指定三维坐标格式的前提下,神经网络通过端到端动作优化自行建立了适合操作的空间表征。

双目端到端策略的优势并不代表显式几何计算没有意义。输入数据足够干净的场景里,先算三维坐标依然有工程竞争力。在针对操作任务的OBSBench基准评测中,简单的点云策略经常优于纯图像或图像叠加深度图的配置。英伟达关于点云鲁棒性的对比研究也显示,面对光照变化或视角晃动,基于空间坐标的模型展现出更强的抗干扰表现。在仿真环境中提供无噪声的理想距离时,依赖空间坐标的控制策略在多数任务中能达到九成以上的成功率。在灵巧手抓取实验DextrAH-RGB中,双目端到端策略与基于深度的分段策略整体打平;在具体装箱测试中,十一个物体里三个由深度方案胜出,其余测试打平。

直接使用双目输入在实践中存在限制。双目相机需要精确的时间同步和标定,镜头的物理基线导致夹爪靠近物体时出现无视差盲区。面对透明材质左右视图的特征匹配可能不准。在二十次挂玻璃杯测试中,注意力融合的双目模型仅成功三次。

贯通训练和拆成几段,不必站队。某个组件要不要单独拎出来,要看它在真实数据上出错的概率,以及后面的组件能不能利用冗余信息自己纠偏。环境干净、传感器稳的时候,把相关组件拆开调试和替换都更简单;遇到反光、折射等真实干扰,专门管测距的环节反复失准,打通梯度让整个网络一起学,往往比拆分更划算。

拆分何时胜出

早年在一家做工业物联网系统的公司,有个项目按传统思路拆成几个子模型分别建模,估摸要数月;改用单个模型从头训到尾,两天拿到可用原型。拆出来的子模块在现场工业数据面前本来就不稳,端到端训练直接拿最终目标驱动特征提取,脆弱的人工接口不要了。这与机器人实验互为补充:前端环节若在现场数据中稳定性存疑,贯通训练可展现效率优势;前端环节若能持续输出高保真特征,模块化拆分则利于工程迭代。

检查系统架构时,几个具体问题能帮上忙。这个模块在生产环境里出错的频率做过测试吗?它输出残缺或失真的中间结果时,下一个模块有没有别的信号能把信息补上?前后模块在工程上接得起来吗?模块本身稳定、下游有自己纠偏的余地,或者工程条件不支持端到端联合训练,独立模块就留着;前端故障率高、下游又吸收不了偏差,就该考虑把梯度接通。

每条管线都在付出同样的拆分代价

同样的取舍也发生在机器人之外。检索增强系统把长文档切成固定长度的片段、再用相似度阈值拦截,检索和推理在这里隔断:下游模型再强,也补不回前置召回时漏掉的关键细节。智能体系统在规划与执行之间插进写死规则的状态机,真实环境的反馈就到不了规划模型。早年的自然语言处理与计算机视觉放弃人工特征、改由深层网络自己学出表示,也是同一个道理。

机械臂在玻璃杯挂钩前落空的现象,流程里安插的每个不参与训练的环节,都在压缩全局优化能探索的空间。决定拆出一个专门环节之前,先实测它在真实场景里的失效率,再算下游能不能自己消化这些误差。

鸭哥每日手记

日更的深度AI新闻和分析