自动驾驶 | 车道检测实用算法
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
-
摄像头校准,以移除镜头畸变(Lens distortion)的影响 -
图像前处理,用于识别车道线 -
道路视角变换(Perspective transform) -
车道线检测 -
车辆定位和车道半径计算
摄像头输出的视频可以看做一系列图像的时间序列。镜头的结构特性造成利用针孔摄像机拍摄的图像容易发生径向畸变,导致根据物体与光轴的距离而导致不一致的放大。
解决了摄像头图像失真问题后,我们继续探索检测车道的算法。在计算机视觉领域,分离和检测对象的一种常用方法是使用颜色变换和梯度来生成一个具有过滤阈值的二值化图像。
车道检测的难点在于准确获得车道线的方向以及角度。在摄像头的默认视角下,远离摄像机的物体显得更小,同时车道线在远离汽车的方向逐渐相交,这和实际情况是不符的。解决这种视点扭曲的一种方法是改变图像的视角,比如可以从上往下看(鸟瞰图)。
下面,我们正式开始进行车道检测。在前面的各步骤中,我们进行了图像的二元阈值化和视角变换,最终获得一个黑白图像,其中白色的像素代表我们试图检测的车道线的部分。
最后,利用两个检测到的车道线的位置,并假设摄像头位于图像的中心位置,可以计算出汽车相对于车道的位置。根据图像的分辨率,能够进行从像素到米的换算。
以上介绍了自动驾驶中进行车道线检测的实用算法,我们通过一个多边形投影区域来显示检测结果,可以看到检测结果与实际非常吻合。
声明:部分内容来源于网络,仅供读者学习、交流之目的文章版权归原作者所有。如有不妥,请联系删除。
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
下载2:Python视觉实战项目52讲 在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
下载3:OpenCV实战项目20讲 在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~