IPM 鸟瞰图公式转换与推导 | 您所在的位置:网站首页 › 鸟瞰图和俯视图的区别在哪 › IPM 鸟瞰图公式转换与推导 |
IPM 鸟瞰图公式转换与推导
![]() 逆透视变换(IPM),将相机视角转换成鸟瞰图。其实质是求相机平面与地面的homography矩阵。之前专门有一篇博客来讲《逆透视变换(IPM)多种方式及代码总结》。但是当中还是比较杂乱且没有详细的代码推导的。这篇文章将从三种方式来介绍逆透视变换的三种方法得到homography。这里得到的Homography是可以通过下面的$K_f$转化到现实的坐标系中的。下面的式子为转换矩阵:设 (u′,v′)表示图像像素坐标系下的点,(X_w,Y_w,0) 表示世界坐标系下地面上的点坐标,(u,v)表示俯视图像素坐标点,IPM 假设地面是平坦的。P 为相机内参及外参,Res 为俯视图像素对物理空间尺寸的分辨率,单位为(meter/pixel) 假设鸟瞰图为像素图,先将像素坐标系转换到物理坐标系下(当前为世界坐标系),变换记为 M (4_3)再转换到相机坐标系,变换为P=[R,t](3_4)再转换到相机像素坐标系,变换为 K(3*3) 这样转换公式为 上式中K_f 指的鸟瞰图的假想内参,注意上式中用了一个小技巧 写成矩阵形式 那么K_f怎么定义呢?f_x的定义指的是1m有多少个像素,我们最终生成的鸟瞰图的分辨率,假设1m应该有r个点,那么 f_x=r,而鸟瞰图的范围为[w,h](单位为m),这样输出的鸟瞰图的分辨率为[W= wr,H=hr] ,这样就有了 由于直接用K来生成图像,图像上下是倒的,需要上下flip下,这里推导下上下flip对应的相机内参的变化,下面的(x,y,z) 是为了方便,假设的相机坐标系下的点 转换为相机内参为 使用这个方法,n^t=(0,0,1),最难理解的是d是多少,因为世界坐标系一般在地面,所以地平面为z=0,导致d=0无法求解了。结合方法一,我们来看看 从公式对比上看,d=-1,即z=1平面上进行成像,并不是我们想象中的z=0。 这样n^t=(0,0,1),在z=1上成像,即d=-1,就可以得到同样的H表达式了。 如果所有的坐标都在base_link上,则R,t都是不用的,则会变成(1-0),则只会剩下K*K_f的形式 注意最后需要将homography除以homography[3][3]的值,进行归一化,再使用cv2. warpPerspective ()就可以了,即: cv2.warpPerspective(img, , (H,W), flags=cv2.INTER_LINEAR) 3. IPM方法三这种方式很直接,假设世界坐标系下感兴趣区域是 x\in [X_{min},X_{max}],y\in [Y_{min},Y_{max}], z\in [Z_{min},Z_{max}],设定 (Res),即可生成俯视图要生成的像素图。 基于下面公式,可以求出世界坐标系下两条平行 (z)轴的平行直线在图像坐标系下的交点,即消失点(Vanishing Point)。假设世界坐标系下平行 (z)轴的直线表示为,点 ((x_a,x_b,x_c)) 及方向向量 (k(0,0,1)),那么可得该直线上任意一点投影到图像坐标系下表示,当 (k) 趋向于无穷大时,即可得到消失点坐标: https://leijiezhang001.github.io/lane-det-from-BEV/ https://zhuanlan.zhihu.com/p/507701366 IPMBEV原创文章作者:敢敢のwings。如若转载,请注明出处:古月居 https://www.guyuehome.com/39647 打赏 0 点赞 0 收藏 0 分享 微信 微博 QQ 图片 上一篇:自动驾驶-激光雷达预处理/特征提取 下一篇:C++(ROS) 之 perf+火焰图分析与Debug |
CopyRight 2018-2019 实验室设备网 版权所有 |