基于图像的墙体距离(深度)估算方法技术问询
推导拍摄者与墙体的距离(深度)计算公式及影响参数
首先咱们明确场景前提:拍摄者与墙体平行站立,处于同一地面高度,且拍摄图像始终能捕捉到墙体底部边缘。根据观察能发现一个直观规律:拍摄者离墙体越近,墙体底部边缘在图像中越靠近底部;离得越远,该边缘越靠近图像中心——这背后是明确的几何透视关系,咱们可以基于给定参数推导深度计算公式,同时梳理额外的影响因素。
一、计算公式推导
首先要明确各参数的定义(几何推导的核心是参数定义清晰):
H:相机镜头到地面的垂直高度(因拍摄者与墙体在同一地面,墙体底部与镜头的垂直高度差即为H)α:相机的俯仰角(相机光轴与水平方向的夹角,向下朝向地面为正角度,对应拍摄朝向)y:墙体底部边缘在图像中的垂直位置(定义图像坐标系原点在顶部中心,y轴向下;图像垂直总像素数为Y)FOV_y:相机的垂直视场角(这是相机的固有参数,虽然你没明确提到,但透视关系推导必须用到,通常可从相机参数手册获取)
基于透视投影的几何关系,我们可以推导拍摄者到墙体的水平距离D(即目标深度):
- 首先,镜头看向墙体底部边缘的俯角
φ满足:tanφ = H/D→φ = arctan(H/D) - 该俯角与相机俯仰角
α的差值,是该点相对于光轴的垂直角度偏差Δφ = φ - α - 这个角度偏差对应图像中的垂直位置偏移
Δy = y - Y/2(因为图像中心对应光轴位置),二者的关系为:Δφ = (Δy / Y) * FOV_y - 将上述关系联立,整理后得到深度计算公式:
D = H / tan( α + ( (y - Y/2) * FOV_y ) / Y )
注意:计算时
α和FOV_y的单位要统一(都用弧度或都用角度),否则会出现计算错误。
二、影响关联关系的其他参数
除了你提到的三个参数外,还有不少因素会干扰这个距离-图像位置的关联:
- 相机焦距:焦距直接决定垂直视场角
FOV_y,焦距越长,视场角越小,相同深度变化对应的图像位置偏移越不明显;反之焦距越短,偏移越显著。 - 图像垂直分辨率:分辨率
Y越高,每像素对应的角度偏移量越小,计算出的深度精度也越高。 - 镜头畸变:实际相机镜头存在桶形/枕形畸变,会导致墙体底部边缘的图像位置出现偏移,若不提前校正,会直接影响深度计算的准确性。
- 地面平整度:如果拍摄者与墙体不在同一水平地面,或者地面有坡度,会导致垂直高度差
H的实际值与假设不符,破坏几何推导的基础。 - 相机安装误差:若相机未严格与墙体平行,或者俯仰角
α的测量存在误差,都会导致透视关系的偏离,使计算结果失真。 - 墙体底部的实际状态:如果墙体底部有踢脚线、垫高,或者边缘不清晰,会导致
y值的定位误差,进而影响深度计算。
内容的提问来源于stack exchange,提问作者Sakala Bhargava Ram




