Inverse Perspective Mapping—— 逆透视变换(IPM)

[复制链接]
 楼主| keer_zu 发表于 2023-7-31 16:46 | 显示全部楼层 |阅读模式
在自动/辅助驾驶中,车道线的检测非常重要。在前视摄像头拍摄的图像中,由于透视效应的存在,本来平行的事物,在图像中确实相交的。而IPM变换就是消除这种透视效应,所以也叫逆透视。

6305364c774dd18261.png
 楼主| keer_zu 发表于 2023-7-31 16:47 | 显示全部楼层
IPM变换方法
1.对应点对单应变换方法
  输入:至少四个对应点对,不能有三点及以上共线,不需要知道摄相机参数或者平面位置的任何信息。
  数学原理:利用点对,求解透视变换矩阵,其中map_matrix是一个3×3矩阵,所以可以构建一个线性方程组进行求解。如果大于4个点,可采用ransac的方法进行求解,一边具有更好的稳定性。


9194864c7750a439b5.png

6868864c7752c399bc.png
选点方法:一般采取手动选取,或者利用消影点(图像上平行线的交点,也叫消失点,vanish point)选取。
  代码实现:代码实现比较简单,可以很容易实现IPM变换
  计算变换矩阵: H = getPerspectiveTransform()
  获取IPM图像: warpPerspective();



 楼主| keer_zu 发表于 2023-7-31 16:48 | 显示全部楼层
2. 简化相机模型的逆透视变换

  利用相机成像过程当中各种坐标系之间的转换关系,对其基本原理进行抽象和简化,从而得到世界坐标系和图像坐标系之间坐标的对应关系,并对逆透视变换的坐标关系进行公式化描述。这种逆透视变换形式简单,计算速度快,并且适用于复杂道路场景。


 楼主| keer_zu 发表于 2023-7-31 16:49 | 显示全部楼层
9372264c77587b65b8.png
7277664c7759867ac9.png
 这个方法同时考虑到了上下俯仰角和水平偏航角度的矫正,但是存在水平线弯曲误差,导致图像的水平横线如行道线等,恢复到世界坐标系的道路平面后,会有一定的弯曲。
3767964c775badbfa6.png


 楼主| keer_zu 发表于 2023-7-31 16:50 | 显示全部楼层
本帖最后由 keer_zu 于 2023-7-31 16:51 编辑

2.2 Paper:Robust Inverse Perspective Mapping Based on Vanishing Point
基于消失点的俯仰角和偏航角计算
  根据射影几何学原理,现实空间中的平行直线组在存在透视形变的情况下将会相交于无穷远点处,而该交点在成像平面上的投影即被称为消失点。当现实世界的平行直线组与成像平面平行时,消失点将位于成像平面的无穷远处;但是当平行直线组与成像平面部存在不平行关系时,消失点将位于成像平面的有限远处,甚至可能出现在图像区域以内。
消失点具有一些重要的性质:

  • 真实道路场景中相互平行的行道线以及与其他和行道线平行的直线都指向相同的消失点;
  • 某条直线对应的消失点一定位于这条直线在图像平面的投影射线方向上;
  • 消失点的位置和滚转角无关,仅仅和俯仰角、偏航角有关;
  • 当偏转角为90度时,行道线所对应的消失点位于道路图像水平方向外部;
  • 当俯仰角为90度时,行道线所对应的消失点位于道路图像垂直方向外部;
  • 当相机坐标系和世界坐标系原点完全重合时,消失点位于道路图像中心;

5733664c775f948cfb.png
其中( x , y ) (x,y)(x,y) 是消失点坐标,( M , N ) (M,N)(M,N)是图像宽高,KaTeX parse error: Undefined control sequence: \apha at position 12: (\alpha_v, \̲a̲p̲h̲a̲_u)是垂直、水平视场角的一半,由次公式可计算偏转和俯仰角

示意图如下:
9246164c77623e2e4d.png

 楼主| keer_zu 发表于 2023-7-31 16:52 | 显示全部楼层
由图像坐标到IPM坐标的关系式为:
8841964c7764310cb8.png
引入偏航角:
7503564c77658c3fee.png
 楼主| keer_zu 发表于 2023-7-31 16:53 | 显示全部楼层
7902464c7767d91e24.png
从对比结果看,此方法不会让水平线弯曲,同事使用偏航角进行修正,具有较好效果。
 楼主| keer_zu 发表于 2023-7-31 16:55 | 显示全部楼层
本帖最后由 keer_zu 于 2023-7-31 16:56 编辑

2.3 Paper:Adaptive Inverse Perspective Mapping for Lane Map Generation with SLAM

  这种方法利用相机位姿,在相邻帧中加入了俯仰角的修正,因此可以得到比较好的逆变换效果,下面就是相关原理示意图:

378864c7774286550.png

仅仅考虑单帧的情形:

6043564c776e52c939.png

3398764c776f4eb83e.png


 楼主| keer_zu 发表于 2023-7-31 16:57 | 显示全部楼层
考虑帧间自适应变换:
3000064c77769de26a.png


5269164c77775a927a.png
 楼主| keer_zu 发表于 2023-7-31 16:57 | 显示全部楼层
测试结果:
5910064c7778d603fc.png
 楼主| keer_zu 发表于 2023-7-31 16:59 | 显示全部楼层
3. 其他IPM变换方法:
  以下两点是我根据实际工作上所使用过的一些方法,相比较于以上几种方法来说,更多的是应用了多视图几何的知识来得到IPM变换。

3.1 在相机坐标系下已求得路平面方程求IPM
  在slam应用中,如果已知相机pose,同时在用地面点已求得路平面方程的情况下,可利用多视图几何关系求得IPM变换
 &emsp输入:
3420064c777c49baf1.png
3.2 已知相机位姿,利用求单应矩阵得到IPM

  同样,在已知相机pose情况下,可将相机向路面方向旋转90度-俯仰角,那么得到一个新的相机pose,此时的相机是垂直与路面向下,那么得到的图像自然也就是IPM图像。
  对于多视图几何中,单应矩阵的计算公式:

6214764c777e032157.png


 楼主| keer_zu 发表于 2023-7-31 16:59 | 显示全部楼层
总结

  IPM变换具有很多应用,求取IPM图像的方法亦是有很多,可根据实际情况灵活使用。


您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群:49734243 Email:zukeqiang@gmail.com

1478

主题

12917

帖子

55

粉丝
快速回复 在线客服 返回列表 返回顶部