16几何原语与自动预处理

这一页两个问题:该用哪种形状去标一个东西,以及机器先跑一遍到底省的是什么、坏的是什么。

原语与自由度 掩码和框是交叉关系 错得容易改

一、四类原语,携带的自由度不同

原语携带什么大概的自由度
点位置2 到 3
2D 框中心加宽高,朝向可选4 到 5
3D 框位置、朝向、尺寸9
折线、多边形一串位置加拓扑几十到几百
掩码逐像素的形状上万
掩码 / mask 逐像素的分割标注。它不用任何几何体去近似形状, 而是直接回答"每个像素属不属于这个物体"。所以它是信息量的极限,什么形状都能表达。

二、判据是匹配,不是"越多越好"

目标原语为什么
车辆3D 框它是体。下游要占据空间和朝向,框恰好只给这两样
道路边缘3D 折线它是线。要连通性、要能跨帧拼、要能延伸
人行横道贴地多边形它是地上的面。下游只要这块区域,多给高度是浪费
行人掩码形状不规则,没有简单几何体能准确表达
判据一句话

原语携带的自由度,必须够下游用,而且不能多太多。

不够,下游拿不到它要的。太多,是白花的标注成本,而且更容易标错、更难跨帧。

一个具体的例子:用框去标路沿,为什么不行

框是块,路沿是线

框与框之间各自独立,没有"首尾相连"这个属性
折线的点序本身就编码了连通性

所以下游拿到框之后,要重新"发明"连通性
而那正是它最需要的东西

这不是信息给少了,是给的结构不对。而且路沿是静态的,它不需要跨帧传播, 它需要的是跨帧拼接:车开过去,一段两百米的路沿被一百帧分段看到, 最后要拼成一条完整的。折线按点序接起来就行,一堆独立的盒子拼不出来。

三、掩码和框:交叉,不是包含

一个常见的错误直觉

掩码信息量最大,所以"标一份掩码,其他的都能导出来"。这个直觉不成立。

掩码:有形状,没有朝向
3D 框:有朝向,没有形状

掩码能导出外接矩形,但导不出朝向
因为朝向不是形状的函数

一个对称物体的轮廓,可能对应两个不同的朝向解释。所以那两个自由度是交叉的, 谁都不包含谁。这也解释了为什么很多平台最后是"框标注"和"分割标注"两套并存, 不是没做优化,是它们真的互补。

四、自动预处理:把"从头做"变成"审核与修正"

内容
输入原始序列,加上可选的、人已标好的关键帧
输出候选加置信度加排序,不是最终标签

输出那一栏值得强调:它是待修改的初稿,不是答案。 而且"排序"很重要,它决定人先看哪一段。

它到底省在哪:一条不等式

有预处理:人工成本 = 审核成本 + 出错概率 × 修正成本
没有预处理:人工成本 = 从零成本

划算,当且仅当 审核 + 出错概率 × 修正 < 从零
关键是修正成本可能比从零成本还高

从零画,你按自己的判断画,路径最短。

改一个错框,你要先理解机器想表达什么,再撤销重做, 而且还要抵抗锚定,因为你已经看到机器给的答案了。

所以"模型八成是对的"并不意味着"省了八成"。如果错的那两成很难改,可能净亏。

三种让它不划算的情况

情况后果
出错概率高,人不再信任索性全部重做。预处理的价值归零,不是打折,审核时间还白花了
错误是结构性的,比如整条轨迹串错改等于重做,直接净亏
没有优先级,人在平均用力审核成本被拉到最高

所以预处理的目标不是"最准"

一句工程观念

模型的目标不是准确率最高,是让人总成本最低。

一个八成准、但错了容易改的模型,胜过九成准、但错了要重做的模型。

预处理的目标不是每个都准,是错得容易改。

落到具体做法上,就是三件事:界面支持局部修改,改一个框而不是整段重来; 输出置信度和可疑度并排序;支持一键拒绝,坏候选直接丢回从零画。

而这三件事有一个共同前提:候选必须结构正确。 框位置偏五厘米好改,整条轨迹串错了就是重做。

五、这一页带走什么

原语的选择看匹配,不看先进。多给的自由度如果没人消费,就是纯成本。

预处理的收益是带条件的:模型得够好、错误得改得动、人得还信它。 三条缺一条,省下来的时间就会被抵消掉。

← 上一页:3D 投 2D 的范式 ·  下一页:下游与导出 →
京ICP备19013239号