需要更换手机了:基于手机构建无人驾驶微型汽车

今天在 Tensorflow公号看到推文Pixelopolis:由 TensorFlow Lite 构建无人驾驶微型汽车, 作者介绍了他们在今年Google I/O大会上展示的TensorFlot Lite构建的无人驾驶微型汽车的展品:Pixcelopolis 。
需要更换手机了:基于手机构建无人驾驶微型汽车文章插图
▲ TensorFlow Lite构建的无人驾驶微型车
每辆微型汽车都装配有一部 Pixel 手机 , 使用手机上的摄像头检测和理解周围的信号 。 手机使用了 Pixel Neural Core 边缘计算芯片( Edge TPU 支持的机器学习) , 可感应车道、避免碰撞和读取交通标志 。
相比于基于云计算来实现视频处理和物体检测 , 边缘计算可以减少延迟对控制的影响(也许在5G下延迟影响小一点) 。
需要更换手机了:基于手机构建无人驾驶微型汽车文章插图
▲ 通过手机识别各种目标的Pixelpolis
下图是整个展品的布局 , 模仿了一个小型城镇广场周围的交通环境 。 参观者可以通过手机端的一个应用模拟“站点”来选择出现的目的地 。 展品中的微型车就可以驾驶到目的地 , 整个过程用户可以查看车辆周围以及所检测到的物体 。
需要更换手机了:基于手机构建无人驾驶微型汽车文章插图
▲ 演示区的道路设计
车模所有对外界的感知都来自于微型车膜前面的手机摄像头 , 有它获取前方的图片并手机内部署的神经网络完成车道保持、停车定位、障碍检测等 。 通过手机底部的USB-C接口扩展来与底层控制板通讯 , 完成电机控制等 。
需要更换手机了:基于手机构建无人驾驶微型汽车文章插图
▲ 手机应用程序与Pixelopolis交互
需要更换手机了:基于手机构建无人驾驶微型汽车文章插图
▲ 手机端可以查看车辆周围所检测到的物品
展品作者采取了与 论文:End-to-end Learning for Self-Driving Cars中相类似的技术录像 , 使用卷积神经网络(CNN)来检测每帧图像内的交通指示线 , 并给出方向盘的调整量 。 增加了LSTM利用前期拍摄的多个图像帧进行改进 。
需要更换手机了:基于手机构建无人驾驶微型汽车文章插图
▲ CNN 模型的输入和输出
控制器的模型很简单 , 下面代码就给出了网络的结构构成 。
net_in = Input(shape = (80, 120, 3))x = Lambda(lambda x: x/127.5 - 1.0)(net_in)x = Conv2D(24, (5, 5), strides=(2, 2),padding="same", activation='elu')(x)x = Conv2D(36, (5, 5), strides=(2, 2),padding="same", activation='elu')(x)x = Conv2D(48, (5, 5), strides=(2, 2),padding="same", activation='elu')(x)x = Conv2D(64, (3, 3), padding="same",activation='elu')(x)x = Conv2D(64, (3, 3), padding="same",activation='elu')(x)x = Dropout(0.3)(x)x = Flatten()(x)x = Dense(100, activation='elu')(x)x = Dense(50, activation='elu')(x)x = Dense(10, activation='elu')(x) net_out = Dense(1, name='net_out')(x)model = Model(inputs=net_in, outputs=net_out)1234567891011121314一个神经网络是否能够达到很好的性能 , 关键在于如何准备好让它学习的训练样本 。 为此 。 作者使用Unity, Udacity来构建了模拟器 , 自动生成训练车辆的图像数据 。
通过在轨道上设置多个路径点 ,微型汽车 可以行驶到不同的地点 , 并从中收集数据 。 在此模拟器中 , 我们每 50 毫秒收集一次图像数据和转角数据 。
需要更换手机了:基于手机构建无人驾驶微型汽车文章插图
▲ 模拟器中的轨道中上设有多个路径点
大家都知道 , 软件虚拟出的场景图片和实际拍摄到的图片会有很大的差别 , 包括光线、周围环境以及其他的噪声 。 为了使得训练的神经网络能够适应实际要求 , 需要对数据进行增强 。
他们将以下变量添加到场景中:随机的 HDRI 球体(具有不同的旋转模式和曝光值)、随机的环境亮度和颜色以及随机出现的车辆 。
需要更换手机了:基于手机构建无人驾驶微型汽车文章插图
▲ 各种环境下的数据增强
下图给出了经过训练之后 , 卷积神经网络的第一层对于输入图片的输出 。 可以看出 , 它已经能够很好地将图片中道路信息边缘信息能够很好的提取 , 对于背景可以进行有效的压制 。
需要更换手机了:基于手机构建无人驾驶微型汽车文章插图
▲ 第一层神经网络的输出
使用神经网络进行控制的一个最大的问题 , 就是车模有时会出现莫名其妙的动作 。 比如下面这个场景 , 明明已经成功的拐过弯道 , 进入平坦顺直的道路 , 车模则抽风地冲出跑道了 。