在视频中检测车道线

日萌社

 

人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新)


CNN:RCNN、SPPNet、Fast RCNN、Faster RCNN、YOLO V1 V2 V3、SSD、FCN、SegNet、U-Net、DeepLab V1 V2 V3、Mask RCNN

车道线检测

相机校正、张氏标定法、极大似然估计/极大似然参数估计、牛顿法、高斯牛顿法、LM算法、sin/cos/tan/cot

相机校正和图像校正:图像去畸变

车道线提取:Sobel边缘提取算法

透视变换

车道线定位及拟合:直方图确定车道线位置

车道曲率和中心点偏离距离计算

在视频中检测车道线


5.6. 在视频中检测车道线

学习目标

  • 了解在视频中检测车道线的方法

在前面几节中一步步完成摄像机标定、图像畸变校正、透视变换、提取车道线、检测车道线、计算曲率和偏离距离后,在图像上实现了复杂环境下的车道线检测算法。现在我们将视频转化为图片,然后一帧帧地对视频数据进行处理,然后将车道线检测结果存为另一段视频,代码如下:

首先将前面的方法进行汇总:

def process_image(img):
    # 1.图像去畸变
    undistort_img = img_undistort(img, mtx, dist)
    # 2.车道线检测
    rigin_pipline_img = pipeline(undistort_img)
    # 3.透视变换
    transform_img = img_perspect_transform(rigin_pipline_img, M)
    # 4.精确定位车道线,并拟合
    left_fit, right_fit = cal_line_param(transform_img)
    # 5.绘制车道区域
    result = fill_lane_poly(transform_img, left_fit, right_fit)
    # 6.反投影
    transform_img_inverse = img_perspect_transform(result, M_inverse)
    # 7.计算曲率半径和偏离中心的距离
    transform_img_inverse = cal_radius(transform_img_inverse, left_fit, right_fit)
    transform_img_inverse = cal_center_departure(transform_img_inverse, left_fit, right_fit)
    # 8. 将检测结果与原始图像叠加
    transform_img_inverse = cv2.addWeighted(undistort_img, 1, transform_img_inverse, 0.5, 0)
    return transform_img_inverse

接下来,读取视频并调用上述方法:

clip1 = VideoFileClip("project_video.mp4")
white_clip = clip1.fl_image(process_image)
white_clip.write_videofile("output.mp4", audio=False)

处理结果如下所示:

在视频中检测车道线

总结:

视频中的处理将之前的处理步骤进行综合,完成车道线的检测。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

あずにゃん

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值