单目相机测量:能否按深度z平移homography平面并计算新homography矩阵?
问题解答
1. 已知深度平移量时计算新平面单应矩阵的可行性与方程
完全可以根据已知的深度平移量Δz(物体厚度)计算对应新平面的单应矩阵,推导过程如下:
假设你已完成相机内参标定,得到内参矩阵K;原标定平面对应世界坐标系的Z=0平面,相机相对于该世界坐标系的外参为旋转矩阵R和平移向量t,原单应矩阵H₀ = K · [R₁₁ R₁₂ t₁; R₂₁ R₂₂ t₂; R₃₁ R₃₂ t₃](其中Rᵢⱼ是旋转矩阵R的元素,tᵢ是平移向量t的元素)。
当平面沿Z轴平移Δz后,新平面为Z=Δz,其上任意点的世界坐标为(X,Y,Δz),代入相机投影方程推导可得新单应矩阵H_Δz:
H_Δz = K · [ R₁₁ R₁₂ R₁₃·Δz + t₁; R₂₁ R₂₂ R₂₃·Δz + t₂; R₃₁ R₃₂ R₃₃·Δz + t₃ ]
其中R₁₃, R₂₃, R₃₃是旋转矩阵R的第三列元素,可通过原单应矩阵H₀分解得到:
- 计算
H₀_inv = K⁻¹ · H₀,得到缩放后的旋转列向量和平移向量; - 对
H₀_inv的前两列进行正交化归一化,得到旋转矩阵R的前两列r₁, r₂; - 利用叉乘
r₃ = r₁ × r₂得到R的第三列; - 对
H₀_inv的第三列进行相同缩放,得到真实平移向量t。
2. 分三类单应矩阵方案的可行性
这个方案完全可行,核心逻辑如下:
- 单应矩阵是特定3D平面到图像平面的投影变换,不同深度平面对应不同的单应(你提到的“可缩放性”是指单应矩阵乘非零常数后变换等价,但不同深度的单应是本质不同的变换矩阵)。
- 当物体厚度可被划分为几个离散区间时,为每个区间的中间深度计算对应单应,能让该区间内的物体尽可能接近最优测量平面,显著降低深度偏移带来的投影误差。
- 实践中需注意:
- 类别划分要贴合实际物体的厚度分布,避免区间跨度太大导致误差反弹;
- 每个类别的单应可通过两种方式获取:要么针对该深度平面重新标定,要么利用问题1中的公式基于原单应推导计算;
- 若物体厚度处于两个类别之间,误差会略高于对应类别,但仍远小于使用原单应的误差。
内容的提问来源于stack exchange,提问作者MatejM
相关产品推荐
相关产品推荐

