3. 视觉感知技术
视觉感知是机器人获取环境语义与几何信息的第一入口。对融合系统而言,视觉不仅提供“看到了什么”,还提供“在哪里、有多远、如何运动”。本节沿着一条完整信号链展开:从相机成像模型出发,经过图像采集与预处理,再到特征提取、目标检测识别,最后落到视觉SLAM的位姿估计与地图构建,形成可落地的工程认知。
一、相机模型:从三维世界到二维像素
相机模型描述三维空间点如何投影到图像平面。最常用的是针孔模型:空间点 P(X,Y,Z) 经外参(旋转 R、平移 t)变换到相机坐标系,再由内参矩阵 K 投影到像素坐标 (u,v)。内参包含焦距 fx, fy 与主点 cx, cy,外参描述相机在世界中的位姿。
像素坐标齐次形式:
s·[u, v, 1]^T = K · [R | t] · [X, Y, Z, 1]^T
K = [ fx 0 cx ]
[ 0 fy cy ]
[ 0 0 1 ]
真实镜头存在径向畸变与切向畸变,工程中通常先标定得到 k1,k2,k3,p1,p2,再在预处理阶段去畸变。双目相机还需外参基线 b,通过视差 d = u_L - u_R 计算深度 Z = fx·b/d;RGB-D相机则直接输出深度图,但需注意红外与RGB对齐及深度缺失区域。
二、图像采集与预处理:把原始数据变成可用输入
采集环节关注曝光、增益、帧率与同步。运动机器人常因快速移动产生运动模糊,需缩短曝光或提高帧率;多相机系统要做硬件触发或时间戳对齐,否则融合时会出现“视觉滞后”。预处理的目标是降噪、增强并统一尺度,常见步骤包括:灰度化、去畸变、滤波、直方图均衡、ROI裁剪与归一化。
- 去噪:高斯滤波平滑噪声,双边滤波保边,中值滤波抑制椒盐噪声。
- 增强:CLAHE提升局部对比度,适合弱光或逆光场景。
- 几何校正:去畸变、极线校正,为立体匹配和SLAM提供一致几何。
- 归一化:缩放、减均值、除方差,匹配深度学习模型输入分布。
下面这张图给出从采集到SLAM的完整视觉信号链,便于建立端到端视角。
三、特征提取:稀疏与稠密两条路线
特征是图像中稳定、可重复定位的信息。传统方法以SIFT、SURF、ORB为代表:SIFT尺度不变但计算重,ORB速度快、适合实时SLAM。特征提取包含关键点检测与描述子生成,随后通过暴力匹配或FLANN进行匹配,再用RANSAC剔除误匹配。
ORB特征提取与匹配伪代码:
keypoints, descriptors = ORB.detectAndCompute(gray, mask)
matches = BFMatcher(NORM_HAMMING).knnMatch(desc1, desc2, k=2)
good = [m for m,n in matches if m.distance < 0.75*n.distance]
H, inliers = findHomography(pts1, pts2, RANSAC)
深度学习时代,SuperPoint、SuperGlue等学习型特征在弱纹理、光照变化下更鲁棒,但算力需求更高。工程上常采用“ORB做前端跟踪 + 学习特征做回环”的混合策略。
四、目标检测与识别:从框到语义
检测回答“物体在哪”,识别回答“是什么”。两阶段方法如Faster R-CNN精度高,单阶段方法如YOLO、SSD速度快,适合机器人实时感知。评价指标包括IoU、mAP、召回率与推理时延。部署时需关注输入分辨率、量化精度与后处理NMS阈值。
| 方法 | 特点 | 典型场景 | 注意点 |
|---|---|---|---|
| Faster R-CNN | 两阶段,精度高 | 离线标注、精细识别 | 速度较慢 |
| YOLO系列 | 单阶段,实时性好 | 移动机器人避障 | 小目标易漏检 |
| SSD | 多尺度特征 | 嵌入式部署 | 需调锚框 |
| 分割网络 | 像素级语义 | 抓取、可通行区域 | 标注成本高 |
五、视觉SLAM基础:让机器人知道自己在哪里
视觉SLAM解决同时定位与建图问题,核心模块包括前端跟踪、后端优化、回环检测与地图构建。前端通过特征匹配或光流估计相邻帧位姿;后端用光束法平差(BA)或位姿图优化降低漂移;回环检测识别曾经到过的位置,消除累积误差。按传感器可分为单目、双目与RGB-D SLAM;按方法可分为特征点法、直接法与半直接法。
在视觉触觉融合系统中,视觉SLAM提供全局位姿与地图,触觉提供局部接触几何与材质信息。二者时间对齐后,可在抓取、装配、表面跟踪等任务中互补:视觉负责“到哪里”,触觉负责“接触得怎么样”。掌握本节信号链,是后续多模态融合与工程落地的基础。