1. 首页
  2. 自习室
  3. 无人驾驶感知系统中的计算机视觉(七):视觉里程计算法

无人驾驶感知系统中的计算机视觉(七):视觉里程计算法

亲们~今天小编依旧给大家带来“技术贴”,无人驾驶感知系统中的计算机视觉系列中的“视觉里程计算法”。

视觉里程计算法

基于视觉的定位算法有两大分类:一种是基于拓扑与地标的算法,另一种是基于几何的视觉里程计算法。基于拓扑与地标的算法把所有的地标组成一个拓扑图,然后当无人车监测到某个地标时,便可以大致推断出自己所在的位置。基于拓扑与地标的算法相对于基于几何的方法容易,但是要求预先建立精准的拓扑图,比如将每个路口的标志物做成地标。基于几何的视觉里程计算法计算比较复杂,但是不需要预先建立精准的拓扑图,这种算法可以在定位的同时扩展地图。以下着重介绍视觉里程计算法。

视觉里程计算法主要分为单目以及双目两种,纯单目的算法的问题是无法推算出观察到的物体的大小,所以使用者必须假设或者推算出一个初步的大小,或者通过与其它传感器(如陀螺仪)的结合去进行准确的定位。双目的视觉里程计算法通过左右图三角剖分(Triangulation)计算出特征点的深度,然后从深度信息中推算出物体的大小。图11展示了双目视觉里程计算法的具体计算流程:

640.webp (16).jpg

图11 双目视觉里程计算法的计算流程

  1. 双目摄像机抓取左右两图。

  2. 双目图像经过Triangulation产生当前帧的视差图(Disparity Map)。

  3. 提取当前帧与之前帧的特征点,如果之前帧的特征点已经提取好了,那么我们可以直接使用之前帧的特征点。特征点提取可以使用Harris Corner Detector。

  4. 对比当前帧与之前帧的特征点,找出帧与帧之间的特征点对应关系。具体可以使用随机抽样一致(RANdom Sample Consensus,RANSAC)算法。

  5. 根据帧与帧之间的特征点对应关系,推算出两帧之间车辆的运动。这个推算是最小化两帧之间的重投影误差(Reprojection Error)实现的。

  6. 根据推算出的两帧之间车辆的运动,以及之前的车辆位置,计算出最新的车辆位置。

通过以上的视觉里程计算法,无人车可以实时推算出自己的位置,进行自主导航。但是纯视觉定位计算的一个很大问题是算法本身对光线相当敏感。在不同的光线条件下,同样的场景不能被识别。特别在光线较弱时,图像会有很多噪点,极大地影响了特征点的质量。在反光的路面,这种算法也很容易失效。这也是影响视觉里程计算法在无人驾驶场景普及的一个主要原因。一个可能的解决方法,是在光线条件不好的情况下,更加依赖根据车轮以及雷达返回的信息进行定位。


我们探索了基于视觉的无人驾驶感知方案。首先,要验证一个方案是否可行,我们需要一个标准的测试方法。为此我们介绍了无人驾驶的标准KITTI数据集。在有了标准的数据集之后,研究人员可以开发基于视觉的无人驾驶感知算法,并使用数据集对算法进行验证。然后,我们详细介绍了计算机视觉的Optical Flow和立体视觉、物体的识别和跟踪与视觉里程计算法等技术,以及这些技术在无人驾驶场景的应用。视觉主导的无人车系统是目前研究的前沿,虽然目前各项基于视觉的技术还没完全成熟,我们相信在未来五年,如果LiDAR的成本不能降下来,基于摄像机的视觉感知会逐步取代LiDAR的功能,为无人车的普及打好基础。

从计算机视觉的角度,无人驾驶可能是一次难得的机遇,无人车产业爆发带来的资源、无人车收集的大量真实世界数据和LiDAR提供的高精度三维信息可能意味着计算机视觉将要迎来“大数据”和“大计算”带来的红利,数据的极大丰富和算法的迭代提高相辅相成,会推动计算机视觉研究前进,并使之在无人驾驶中起到更加不可或缺的作用。


朋友们,到这里“计算机视觉”系列就结束了,你们都Get到了吗?接下来我们会带给大家更多精彩内容!敬请关注哦~


更多新科技猛料请点击原文链接~


更 多 精 彩

640.webp (3).jpg

作者:icejade

微信关注“KITTCAMP自动驾驶学院”获取更多学习资料

文章系KITTCAMP自动驾驶学院原创,转载需写明出处


相关推荐
发表评论
访客的头像
请先 登录 再评论,若不是会员请先 注册
留言列表

    还没有留言,还不快点抢沙发?