0. 前言
逆透视变换(IPM),将相机视角转换成鸟瞰图。其实质是求相机平面与地面的homography矩阵。之前专门有一篇博客来讲《逆透视变换(IPM)多种方式及代码总结》。但是当中还是比较杂乱且没有详细的代码推导的。这篇文章将从三种方式来介绍逆透视变换的三种方法得到homography。这里得到的Homography是可以通过下面的转化到现实的坐标系中的。下面的式子为转换矩阵:设 表示图像像素坐标系下的点, 表示世界坐标系下地面上的点坐标,表示俯视图像素坐标点,IPM 假设地面是平坦的。 为相机内参及外参, 为俯视图像素对物理空间尺寸的分辨率,单位为
1. IPM 方法一
- 假设鸟瞰图为像素图,先将像素坐标系转换到物理坐标系下(当前为世界坐标系),变换记为
- 再转换到相机坐标系,变换为
- 再转换到相机像素坐标系,变换为
这样转换公式为
上式中
写成矩阵形式
那么怎么定义呢?的定义指的是1m有多少个像素,我们最终生成的鸟瞰图的分辨率,假设1m应该有个点,那么 ,而鸟瞰图的范围为(单位为m),这样输出的鸟瞰图的分辨率为 ,这样就有了
由于直接用来生成图像,图像上下是倒的,需要上下flip下,这里推导下上下flip对应的相机内参的变化,下面的
转换为相机内参为
2. IPM 方法二