无人驾驶中,车道线识别、交通信号、红绿灯识别、路径规划导航是必不可少的。下面分享一些我对无人驾驶的心得体会。
车道线识别
1、校准摄像头畸变。如果采用普通无畸变网络摄像头,可以忽略此步骤。关于相机标定,可以参考张氏标定教程。
2、透视变换。将照片转换到鸟瞰图视角,对鸟瞰图二值化。
3、将图像BGR转换成HSV;对感兴趣的颜色设置上下限值。
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
4、获取mark,提取感兴趣区域ROI。假设相机像素为1280x720,对于左右车道线,可以将每一帧图像分成左右对称两部分(例如左车道线的感兴趣区域为640x720)。结合现实中相机的视角,车道线一般在相机视角的下部分,因此感兴趣区域作者设为[250:720,0:640]与[250:720,640:1280]。
5、用滑窗(sliding window)的方法检测车道线像素点,然后拟合车道线曲线。
6、获得车道线方程后,对车道线进行polylines,参考opencv的cv2.polylines()函数,最后将ROI与原始图像融合。融合图像方法:假设原始图像image大小1280x720,ROI大小1280x470,则:image[250:720,0:1280]=ROI,