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

今天在 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 毫秒收集一次图像数据和转角数据 。


推荐阅读