行为克隆 | 自动驾驶汽车的端到端学习
智车科技IV研究人员将使用udacity提供的模拟器,模拟车前部配有3个摄像头,可记录视频以及与中央摄像头对应的转向角。
行为克隆的本质是克隆了驱动程序的行为。本文的实验思路是根据驾驶员驾驶的训练数据训练卷积神经网络(CNN)以模拟驾驶员。
NVIDIA曾发布了一篇题为End to End Learning for Self-DrivingCars 的文章,他们训练CNN将原始像素从单个前置摄像头直接映射到转向命令。实验结果令人非常震惊,汽车学会了在有或没有车道标记的地方道路上或者在具有最少量训练数据的高速公路上行驶。本次实验,研究人员将使用udacity提供的模拟器,模拟车前部配有3个摄像头,可记录视频以及与中央摄像头对应的转向角。
收集数据
模拟器有2个通道:第一个通道非常容易,曲线较小且很少,第二个通道很难,有许多曲线和陡峭的山坡。
研究人员将使用来自两个轨道的训练数据:
1.研究人员将驾驶两条车道,将车保持在车道的中心位置。研究人员每人开车2圈。
2.研究人员将在两条车道上各开一圈,并试图漂移到两侧,或试图转向车道的中心。这将为研究人员提供模型校正的训练数据。
图分别为左、中、右视角
捕获的数据包含左图像,中心图像和右图像的路径,转向角度,油门,中断和速度值。
注意:研究人员将使用所有左,中,右图像。研究人员将通过一些调整来矫正left_image的转向角度。同样,研究人员将通过一些调整来矫正right_image的转向角度。
数据不平衡
转向角直方图
上面的直方图显示了训练数据的不平衡。左转弯的数据多于右转弯的数据。研究人员将通过随机翻转训练图像并将转向角度调整为steering_angle来补偿这一点。
此外,大多数转向角集中在0-0.25左右,研究人员没有太多的数据来获得更大的转向角。研究人员将通过一些像素水平和垂直地随机移动图像并相应地调整转向角来补偿这一点。
数据扩充
研究人员使用以下增补:
1.随机翻转一些图像并将转向角度调整为steering_angle
2.通过一些像素水平和垂直地随机移动图像,并使用小的调整因子调整转向角度。
3.路上有树木,柱子等阴影。因此,研究人员将为训练图像添加一些阴影。4.研究人员会随机调整图像的亮度。
以上这些是标准的OpenCV调整,代码可以在GitHub存储库中找到。(详见文末链接)
应用增强后,下面是一些训练图像的输出。
前处理
本文期望图像的输入尺寸为66 * 200 * 3,而来自训练的图像尺寸为160 * 320 * 3。此外,纸张期望将输入图像从RGB转换为YUV颜色空间。因此,研究人员将从输入图像裁剪上部40像素行和下部20像素行。此外,作为预处理的一部分,研究人员将裁剪的图像大小调整为66 * 200 * 3大小并将其转换为YUV色彩空间。
模型
这是本文中描述的PilotNet模型:
1 2 下一页>