一、你可能没意识到:你每天都在被“3D看见”
早上起床,你拿起手机“刷脸解锁”,瞬间通过。你有没有想过一个问题:为什么一张照片骗不过它?
再看看这些日常中的场景:
- 扫地机器人不会从楼梯掉下去
- 支付宝自动售卖机可以刷脸支付
- 自动驾驶能判断前车距离
这些能力背后,其实都指向同一件事:机器不仅在“看”,它还在理解“空间”。而这就是——3D视觉。
[1] Workflow to develop 3D designed personalized neonatal CPAP masks using iPhone structured light facial scanning
二、先搞懂本质:什么是3D视觉?
普通监控摄像头、微单相机或者工业场景中的相机(2D):
- 只能看到一张平面上的“画面”,人在走动、小狗在蹦蹦跳跳
- 不知道远近,画面中的物体相对距离没办法获得,小狗与人之间的距离未知;只能根据“近大远小”大概估计画面中的物体距相机的距离
人类视觉、双目相机(多目)(Stereo Camera):
- 两只眼睛,通过“视差”判断距离;视差就是从两个不同位置(两只眼睛)观察同一个物体时,此物体在视野中的位置变化与差异,就可以计算出相对自己的距离。3D视觉做的事情其实很简单:让机器知道——这个东西离我有多远或者相对深度
- 双目相机就是利用了“视差”的原理,获取物体的相对深度,进而重构出3D形状,想象眼前的画面有一个三维坐标系,物体在这个三维坐标系中活动。它完全依靠拍摄的两张图片(彩色RGB或者灰度图)之间的关键点匹配来计算深度,因此有时候也被称为被动双目深度相机,应用在刷脸,机器人等场景。因此如果物体表面纹理较弱(透明、纯黑、纯白),由于匹配点较少,导致成像效果差。
[2] Literature survey on stereo vision disparity map algorithms
像大家熟知的特斯拉汽车,就是通过多个摄像头之间的关联标定,来感知周围的3D环境
[3] Functionality, advantages and limits of the tesla autopilot
[4] MUTR3D: A Multi-Camera Tracking Framework via 3D-to-2D Queries
3D视觉还有其它方向的技术方向
飞行时间ToF(Time of Flight):
- 通过连续发射光脉冲(一般为不可见光)到被观测物体上,然后接收从物体反射回去的光脉冲,通过探测光脉冲的往返飞行时间来计算被测物体离相机的距离;分辨率较低,适合远距离3D感知。无人机的避障技术、自动驾驶的激光雷达都是基于此原理,发射的线束数量越多,成像越精细
结构光(Structured Light):
- 它其实也是一个双目系统,但与双目相机相比,结构光是一种主动式的3D测量系统,通常由一个投影仪和一个2D相机组成。投影仪投射特定周期的编码条纹在被测物表面,由于物体表面的深度变化,投影图案会在被测物表面发生形变,相机同步捕获变形的条纹,然后依据三角测量原理,获取被测物3D面型。适用于短距离、高精度测量,漫反射材质,3C、半导体行业应用较多。由于是主动投射图案,对应点的匹配会更容易,因此在一些弱纹理的物体上,效果会好于双目相机。同时也会有弱点,投影仪主动投射图案的能量较强,对于镜面、反光的物体会出现镜面反射现象,成像效果会大打折扣
[5] High-speed 3D shape measurement with structured light methods: A review
[6] 3D reconstruction from structured-light profilometry with dual-path hybrid network
相位偏折技术(Phase Measuring Deflectometry):
- 算是近些年在工业界新的技术,用于测量镜面、高反的物体表面形状,结构光技术面对镜面反射率大的物体就束手无策了。相位偏折技术通常由一个显示屏和一个2D相机组成,显示屏投射一系列编码的条纹在物体表面,相机同步捕获变形的条纹,通过物体表面梯度再积分就可以重构镜面物体的面型了
[7] Displacement-free stereoscopic phase measuring deflectometry based on phase difference minimization
到这里可以说:2D是“看到”,3D是“看懂”
三、重点来了:3D视觉是怎么做到的?
不从技术出发,而是从我们熟悉的应用场景讲:
1️⃣ 刷脸解锁:为什么普通照片骗不过?
场景:手机人脸识别(近距离 / 高精度),例如iPhone Face ID
用的技术:结构光(Structured Light),具体来说叫散斑结构光
iPhone的齐刘海下藏了很多传感器:点阵投影、红外镜头、感光元件、距离感应元件等。在你解锁时,手机会做一件你看不到的事:往你脸上投射一堆“红外小点”,这些点我们肉眼是看不到的,然后再捕获这些点的变形,重构你的面型进行匹配解锁
想象一下,在你脸上铺一张“隐形网”,看它怎么弯曲
鼻子高 → 点被拉开,呈现凸的形状
眼窝深 → 点往里凹
这样就得到一张“3D脸模型”;每个人的五官、面型都是不同的,因此通过Face ID可以精确完成验证解锁
[8] 3D Structured Light Scanner on the Smartphone
回答这个问题,为什么照片骗不过?
因为:照片是平的,没有“立体变形”。结构光不是在拍你,而是在“扫描你”
2️⃣ 扫地机器人:它怎么知道前面是墙?
场景:室内避障 / 建图
用的技术:飞行时间(Time of Flight),当然还有基于其它技术的(双目、结构光等)
简单的ToF传感器只能向某个固定方向投射光脉冲,无法感知四面八方的物体,因此将ToF添加旋转机构,让其能更好的感知周围的事物。旋转的ToF模块每秒数万次测距,结合角度信息生成二维或三维空间点云图,用于实时建图(SLAM)和路径规划。因此在扫地机器人工作时,自己的家会实时建图用于避障。即使有人或宠物在活动,扫地机器人也能及时感知到
侧向或前向的固定ToF传感器,用于检测与墙壁或低矮障碍物的精确距离,实现贴边清扫或减速避让。向下发射的ToF传感器检测地面是否存在(如楼梯口),若飞行时间突然大幅增加(距离突变)则判断为悬空
回答这个问题,怎么知道前面是墙?
通过3D传感器获得实时空间数据,理解并进行避障
3️⃣ 自动驾驶:它怎么知道前车多远?
场景:自动驾驶 / 户外环境
这里通常不是一种技术,而是多种组合
技术一:激光雷达
与扫地机器人的ToF完全相同。发射激光脉冲,测量反射回来的时间,直接算出距离,能直接得到3D点云数据。国内很多新能源汽车厂商都已经应用了激光雷达,用于特殊场景、侧向补盲。成本相对较高(虽然已大幅下降);在雨、雪、雾天气下性能会下降
激光雷达看到的世界,是由“点”组成的
[9] 3D ToF LiDAR in Mobile Robotics: A Review
技术二:摄像头
单目视觉:先通过深度学习识别出“这是一辆车”,然后根据其在图像中的大小(占多少个像素)和预设的真实车辆平均尺寸,估算距离。这种方法高度依赖算法和数据库
双目视觉:模仿人眼,用两个有一定距离的摄像头同时拍摄同一物体,利用视差(左右图像中物体的位置差异)通过三角测距原理直接计算距离,不依赖物体识别
摄像头可识别物体类型(车、行人、自行车、交通标志);成本较低;图像数据可用于车道线、红绿灯识别.受光照、天气影响大(强光、逆光、黑夜、雨雾);单目测距精度不如雷达且需要大量标定;双目对摄像头安装精度和校准要求极高
本质是在“模仿人类”
这个话题在网络上讨论也比较广泛,汽车自动驾驶,纯视觉路线有未来吗?欢迎大家讨论,你更相信像人眼一样理解世界,还是靠数据理解超过人类?
4️⃣ 工业测量:机器如何做到“比人还准”?
随着制造业工艺水平的快速进步,对于工件尺寸测量的精度要求也随之提高,动不动就微米级;很多工厂都在慢慢减少人的干预,提高产品的良率,减少客诉。需求催动技术的进步,很多在实验室的技术慢慢被搬到了工厂的产线上。工业领域,3D视觉正在奔跑前进,结构光的应用是比较广泛的,尺寸测量、机器人定位引导,识别抓取,逆向重构等
高精度、高稳定的3D重构技术,结合后续的算法处理,正在慢慢取代传统接触式的测量工具。特定场景下,结构光3D相机对比三坐标测量机,也不落于下风
没有最好的3D技术,只有最合适的场景
四、未来会怎样?
未来趋势其实很明显:
1️⃣ 从“看见深度” → “理解世界”
过去的3D视觉在做一件事: 测距离;未来会变成: 理解空间
举个例子:
以前的系统只能告诉你:
但未来会直接告诉你:
3D视觉 + AI = 从测量工具变成认知系统
2️⃣ 多传感器融合
未来的3D视觉,不是谁取代谁,不是单点技术,而是“系统工程”
从一个设备 变为 一套感知体系
3️⃣ 去硬件化:用算法“补深度”
一个趋势,减少硬件,增加算法,为什么?
因为硬件贵、体积大、功耗高
于是现在很多公司在做一件事:用AI从普通图像推测深度
未来的深度,不一定是测出来的,而是算出来的
4️⃣ 虚拟与现实融合
这是一个更大的趋势:3D视觉是“空间计算”的入口
比如:
核心能力就是实时构建3D环境。当机器理解空间,世界就变成了“可计算的界面”
5️⃣ 一个更现实的方向:成本战争
最后一个非常关键,但很多人不说的:成本
未来真正的竞争,不是谁最先进;而是谁更便宜。硬件再强,太贵了就上不了量
所以你会看到技术路线的变化本质是:成本、性能、规模的博弈
人类用眼睛理解世界,而机器,正在学会用数据理解空间
作者是一个3D视觉算法工程师,工作方向是结构光和相位偏折三维重构,日常分享一些3D视觉相关的小想法,与行业前辈交流学习
大家对于3D视觉,有什么看法?