2. 三维视觉基础
在机器人三维目标检测与姿态估计任务中,算法看到的从来不是“物体本身”,而是传感器对空间几何与外观的离散采样。理解相机如何把三维世界投影成二维图像、点云如何表达空间结构、深度图与RGB-D数据各自携带什么信息,是后续标定、配准、检测与位姿求解的基础。本节围绕这条数据链路,建立从物理世界到算法输入的完整认知。
一、相机模型:从三维点到像素的投影
最常用的成像模型是针孔模型。设相机坐标系下一点为 P_c = (X_c, Y_c, Z_c),归一化平面坐标为 (X_c/Z_c, Y_c/Z_c),再经焦距 f_x, f_y 与主点 c_x, c_y 映射到像素坐标:
u = f_x * X_c / Z_c + c_x
v = f_y * Y_c / Z_c + c_y
齐次形式:
[ u ] [ f_x 0 c_x ] [ X_c ]
[ v ] = [ 0 f_y c_y ] [ Y_c ]
[ 1 ] [ 0 0 1 ] [ Z_c ]
内参矩阵 K 描述相机自身属性,畸变参数则修正径向与切向误差。真实镜头常存在桶形或枕形畸变,标定后需先做去畸变,否则边缘区域的像素与空间射线不再严格对应。对机器人抓取而言,内参误差会直接放大到三维定位误差,因此标定质量必须优先保证。
二、坐标系变换:外参与手眼关系
三维视觉中至少涉及世界、相机、图像、机器人基座、末端执行器等坐标系。点从世界系到相机系的变换为:
P_c = R_cw * P_w + t_cw
T_cw = [ R_cw t_cw ]
[ 0 1 ]
其中 R_cw 与 t_cw 构成外参。若相机固定在机械臂末端,则还需手眼标定矩阵 T_ce,把相机观测转换到末端或基座系。实际系统中,外参一旦漂移,检测框在图像上看似正确,投影到机器人工作空间却会整体偏移,这是抓取失败的高频原因。
三、点云表示、深度图与RGB-D数据
深度图是每个像素记录到相机距离的二维数组,结构规整、便于卷积处理;点云则是三维点集合 {(x_i, y_i, z_i)},可附加颜色、法向、强度等属性。RGB-D 数据把彩色图与深度图对齐,使每个像素同时拥有颜色和深度。三者关系可概括为:深度图 + 内参 → 点云;点云 + 外参 → 世界坐标;RGB-D 对齐后 → 彩色点云。
点云常见表示包括无序点集、体素栅格、深度图投影和有序点云。无序点集灵活但计算量大;体素化可降低密度并提取三维卷积特征;深度图投影保留图像邻域关系,适合实时网络。机器人抓取中,常先对深度图做滤波与补洞,再反投影为点云,最后用 RANSAC 或聚类分割出目标。
| 数据形式 | 核心信息 | 优点 | 典型用途 |
|---|---|---|---|
| RGB 图像 | 颜色、纹理、边缘 | 分辨率高、成本低 | 二维检测、语义分割 |
| 深度图 | 逐像素距离 | 结构规整、易卷积 | 平面检测、避障、抓取点估计 |
| 点云 | 三维坐标与属性 | 直接表达空间几何 | 配准、分割、6D 位姿 |
| RGB-D | 颜色 + 深度对齐 | 信息互补、便于融合 | 三维目标检测、姿态估计 |
四、常见传感器原理与选型
机器人三维视觉常用传感器包括结构光、飞行时间(ToF)、双目立体视觉和激光雷达。结构光通过投射编码图案并观察形变恢复深度,近距离精度高,但受环境光和反光材质影响明显;ToF 通过测量光飞行时间获得深度,帧率高、中远距离表现稳定,但多路径干扰和边缘噪声较突出;双目依赖纹理匹配,成本低、被动测量,但在弱纹理和重复纹理区域易失效;激光雷达精度高、视野广,适合导航与室外场景,但成本与体积较大。
五、案例与常见误区
以机械臂抓取桌面零件为例:先用 RGB-D 相机采集对齐的彩色与深度图,依据内参把深度图反投影为相机系点云;再通过手眼标定矩阵把点云变换到机器人基座系;随后在点云中分割目标并估计 6D 位姿,最后生成抓取位姿。若深度图存在缺失,点云会出现空洞,位姿估计容易偏向可见表面,导致夹爪碰撞或抓空。
掌握相机模型、坐标变换、点云与 RGB-D 表示以及传感器特性后,才能为后续的三维检测网络、点云配准和姿态估计提供可靠输入。实际工程中,数据质量与标定精度往往比网络结构更决定最终效果。