技术巡猎蔚来 一种行人距离的估计方法---“行人离车到底有多远”是至关重要的事情,对于智能驾驶来说,它是很多安全动作的前提,不要开始先去想什么一堆宏大叙事,先把眼前这个人看准最重要。距离错了,后面很多判断都都是不靠谱的。AEB什么时候介入,路径如何弯弯绕,制动要不要更果断,底层都绕不开这一步。
沿着“原始图像、视觉信息”是比较常规的做法,蔚来有一个新思路:把人抽象成骨架,再用骨架去估距离。获取到的行人骨架特征信息,会送进自适应图神经网络处理,再经过注意力机制聚合,最后通过多层感知机去估计行人距离。
也就是说,相比于关注“这个人长什么样”,“这个人为什么这么站、身体的关键点怎么分布”更重要。好处是直接的,原始图像信息当然更丰富,但脸、衣服、背景这些东西也都在里面,隐私问题一直是绕不开的,混合方法虽然结合了几何和图像信息,依然存在图像隐私泄露问题,而且几何信息还局限在2D边界框层面。但如果模型尽量少看人的细节,只保留骨架这种结构信息呢?还能不能把距离估得足够准?
难点就在这。骨架看着毫无隐私问题,好像信息少了就简单了,实际上一点都不省心。白天、无遮挡的时候还好,逆光、夜晚、多人交错、身体遮挡这些场景,骨架上的“点”是很容易出现漂移的。头、手这些位置更为活跃,也更容易不稳定;肩、胯、躯干反而通常好一点。也就是说,算法拿到的并不是一副完美的人体结构图,而是一副多少带着噪声的草稿。
这篇专利真正要解决的,就是这个噪声问题。
它首先从原始图片里提取行人骨架的相对3D坐标,再把这些坐标转换到球坐标系里,而且不是只留一份,而是做成“双重表示”---把球坐标下的原始骨架坐标和重新定心后的坐标拼接在一起。这一步别看名字有点学术,翻译成人话其实不复杂。它是在尽量削弱“这个点在画面里刚好落哪儿”的偶然性,更强调骨架本身的角度关系、展开方式和相对结构。因为单目相机做距离估计,本来就不是一件轻松的事,绝对深度往往最脆弱,姿态关系反而更稳定一些。
再往后,它用的不是固定的人体骨架拓扑,而采用了自适应的GCN。假设所有骨架特征点之间都存在边,并让网络自动学习边连接和相应权重,用线性层去学习信息流动的方向和量。这里特别强调了,骨架点误差并不均衡,因此网络不仅要学习点和点之间的拓扑关系,还要考虑不同点的误差差异。
这就很像真实世界的判断方式了。不是每个骨架点都一样可信,也不是每条连接都一样重要。头部的“点“如果漂移得厉害,就别让它在信息传播里声音太大;躯干点如果更稳,就让它承担更多权重。这个逻辑其实很朴素,很多算法的问题并不是原理不高级,而是默认世界太整齐、且均衡了,默认了每个输入都同样可靠,可是事实上,现实并不如此。
后面它又接了一层注意力机制来做骨架特征聚合,再交给回归网络输出结果。这里用的是单层注意力机制,并采用了torch中的多头注意力,主要是继续追问:哪些特征对距离估计更关键,哪些信息值得被重点保留。
把整条链路放在一起看,它主要是在处理三个问题:第一,如何减少对原始图像的依赖;第二,如何压住骨架噪声;第三,如何把有限的信息榨出更稳的距离估计结果。
当然,它也有边界。骨架路线再好,前提也是骨架先得提出来。极暗光、强反光、多人遮挡、雨雪干扰这些场景,前端骨架质量一旦明显下滑,后面的模型再好,也只能尽量少犯错,不可能凭空把不存在的信息补出来。所以这类方案更像是感知链路里的专项增强模块,不是万能钥匙,但这不影响它的价值。
