需要更换手机了:由 TensorFlow Lite 构建无人驾驶微型汽车

网友投稿 660 2022-05-29

每辆微型汽车都装配有一部 Pixel 手机,使用手机上的摄像头检测和理解周围的信号。手机使用了 Pixel Neural Core 边缘计算芯片( Edge TPU 支持的机器学习),可感应车道、避免碰撞和读取交通标志。

相比于基于云计算来实现视频处理和物体检测,边缘计算可以减少延迟对控制的影响(也许在5G下延迟影响小一点)。

下图是整个展品的布局,模仿了一个小型城镇广场周围的交通环境。参观者可以通过手机端的一个应用模拟“站点”来选择出现的目的地。展品中的微型车就可以驾驶到目的地,整个过程用户可以查看车辆周围以及所检测到的物体。

需要更换手机了:由 TensorFlow Lite 构建无人驾驶微型汽车

车模所有对外界的感知都来自于微型车膜前面的手机摄像头,有它获取前方的图片并手机内部署的神经网络完成车道保持、停车定位、障碍检测等。通过手机底部的USB-C接口扩展来与底层控制板通讯,完成电机控制等。

控制器的模型很简单,下面代码就给出了网络的结构构成。

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)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

通过在轨道上设置多个路径点, 微型汽车 可以行驶到不同的地点,并从中收集数据。在此模拟器中,我们每 50 毫秒收集一次图像数据和转角数据。

大家都知道,软件虚拟出的场景图片和实际拍摄到的图片会有很大的差别,包括光线、周围环境以及其他的噪声。为了使得训练的神经网络能够适应实际要求,需要对数据进行增强。

他们将以下变量添加到场景中:随机的 HDRI 球体(具有不同的旋转模式和曝光值)、随机的环境亮度和颜色以及随机出现的车辆。

下图给出了经过训练之后,卷积神经网络的第一层对于输入图片的输出。可以看出,它已经能够很好地将图片中道路信息边缘信息能够很好的提取,对于背景可以进行有效的压制。

使用神经网络进行控制的一个最大的问题,就是车模有时会出现莫名其妙的动作。比如下面这个场景,明明已经成功的拐过弯道,进入平坦顺直的道路,车模则抽风地冲出跑道了。

这主要是因为所训练的样本没有能够均匀包含各种道路情况,模型比较脆弱。

为此,在场景中添加了各种形状的曲线,以丰富原来训练数据库中大多数的直线轨道数据。

功夫不负有心人,修正数据集不均衡的问题后,车辆便开始能够在弯道处正确转向。

似乎理性的增加数据可以提高车模的性能,但有时候仅仅采用小的技巧便可以解决大问题。比如当微型车模运行到展品边缘时,就会看到很多展台外面的场景。外面的场景多变,很难通过数据来表征这些变化。怎么办?

将输入图像的下面四分之一切出来,送入神经网络进行训练,就有效化解了上述的问题。

为了能够进行车辆定位以及检测其它干扰车辆,在手机Pixcel 4上的Neural Core Edge TPU上运行了 ssd_mobilenet_edgetpu 模型,这是来自 TensorFlow 目标检测模型库 。每帧检测时间仅用6.6毫秒,在实时应用中游刃有余。

使用神经网络最大的工作量是在准备训练数据集合。之后的网络搭建和训练则非常容易,分分钟搞定。检查一下,网络识别交通标志的效果还是很不错的。

最后一个工作,就是需要将网络部署到手机平台上。这需要借助于TensorFlow Lite 将模型进行个数转换,并在Android下编写相应的Python脚本来进行部署。

下面给出了嵌入在车体内不的控制板、电机、电池等配件。

的确,一辆小小的微型车膜,包括了计算机视觉、深度学习、传感器融合、定位、路径规划、控制、系统集成等多个学科内容。通过这个环节几乎可以将一个专业所需要学习的多个课程集成在一起。这不,在Udacity平台上,还真的提供了 无人驾驶汽车纳米学位项目 供希望获得全面培训的工程师和学生学习。

今天下午,教育部自动化类高等教学委员会召开了院长会议,其中李少远老师对今年大学生学科竞赛实践教学进行了总结。以在刚刚过去的暑期中,新冠疫情影响下,成功举办的全国大学生智能车竞赛为例,探索面向未来实践发展。希望智能车竞赛为工科学生的大学期间专业课程实践提供更好的锻炼平台。

AI TensorFlow 交通智能体 自动驾驶

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:开放源码是开源软件吗?
下一篇:天天做Web测试,咋还不知道怎么测试呢?
相关文章