机器人视觉与感知

三维重建

三维重建是这样一门手艺:拿来一个场景或物体的平面照片——或者深度测量数据——把它重新搭建成一个完整的三维模型,让计算机能存进内存里。一张照片是平的:它知道椅子在左上方某处,却不知道座面离我们有多远,也不知道椅背是怎样向后弯过去的。重建找回了这缺失的第三个维度,把一摞二维视图变成一个你可以转着圈、从任意角度去看的形状,就像雕塑家凭许多张照片重塑一张脸。

关键在于,任何单独一张照片都是有歧义的——一个近处的小物体和一个远处的大物体,可能投出一模一样的图像——所以计算机需要更多线索。它从几张在不同位置拍下的照片之间作比较来获得线索(同一个点在不同视角里看起来会错开位置,这个错位就泄露了深度,正像你的两只眼睛判断距离),或者用一个能直接测距的深度传感器,或者把图像喂给一个训练好的神经网络,它已经学会了真实表面通常长什么样。从这些线索出发,它推算出每个表面在空间中的位置,再把它们缝合成一个模型。

结果通常以一团三维点(点云)的形式存下来,或者存成网格——一层由许多小三角形拼成的、披在形状上的皮——有时还涂上原本的颜色,看上去就跟实物一样。机器人无时无刻不依赖它:仓库机器人重建眼前的货架,好知道究竟该往哪里伸手;无人机重建它正在巡检的一栋楼;手术机器人重建身体内部,好让自己移动时不会碰到任何东西。只要一台机器必须在真实、有实体的世界里行动,先有一个三维模型,就能让这个世界变得可以把握。

一架巡检无人机绕着一座桥缓缓飞一圈,拍下数百张彼此重叠的照片;软件随后重建出这座桥的精细三维模型,工程师能在其中找出某条裂缝——相机曾从三个不同角度看见过它。

许多彼此重叠的二维照片,变成一个可以从任意一面查看的实体三维模型。

三维重建是目标——一个做好的模型;运动恢复结构和双目立体视觉是达到这个目标的两种方法。

又称
3D modeling from imagesimage-based 3D modeling三维建模三維建模