需要更换手机了:基于手机构建无人驾驶微型汽车( 二 )
文章插图
▲ 模拟器中的轨道中上设有多个路径点
大家都知道 , 软件虚拟出的场景图片和实际拍摄到的图片会有很大的差别 , 包括光线、周围环境以及其他的噪声 。 为了使得训练的神经网络能够适应实际要求 , 需要对数据进行增强 。
他们将以下变量添加到场景中:随机的 HDRI 球体(具有不同的旋转模式和曝光值)、随机的环境亮度和颜色以及随机出现的车辆 。
文章插图
▲ 各种环境下的数据增强
下图给出了经过训练之后 , 卷积神经网络的第一层对于输入图片的输出 。 可以看出 , 它已经能够很好地将图片中道路信息边缘信息能够很好的提取 , 对于背景可以进行有效的压制 。
文章插图
▲ 第一层神经网络的输出
使用神经网络进行控制的一个最大的问题 , 就是车模有时会出现莫名其妙的动作 。 比如下面这个场景 , 明明已经成功的拐过弯道 , 进入平坦顺直的道路 , 车模则抽风地冲出跑道了 。
这主要是因为所训练的样本没有能够均匀包含各种道路情况 , 模型比较脆弱 。
文章插图
▲ 早期版本中玩具车偏离了轨道
为此 , 在场景中添加了各种形状的曲线 , 以丰富原来训练数据库中大多数的直线轨道数据 。
文章插图
▲ (左)方形轨道与(右)弯曲轨道
功夫不负有心人 , 修正数据集不均衡的问题后 , 车辆便开始能够在弯道处正确转向 。
文章插图
▲ 车辆在弯道可以成功撰文
似乎理性的增加数据可以提高车模的性能 , 但有时候仅仅采用小的技巧便可以解决大问题 。 比如当微型车模运行到展品边缘时 , 就会看到很多展台外面的场景 。 外面的场景多变 , 很难通过数据来表征这些变化 。 怎么办?
作者就用了一个字:切!
将输入图像的下面四分之一切出来 , 送入神经网络进行训练 , 就有效化解了上述的问题 。
文章插图
▲ 展品上的轨道 , 以及在展品边缘看到的图像
为了能够进行车辆定位以及检测其它干扰车辆 , 在手机Pixcel 4上的Neural Core Edge TPU上运行了 ssd_mobilenet_edgetpu 模型 , 这是来自 TensorFlow 目标检测模型库。 每帧检测时间仅用6.6毫秒 , 在实时应用中游刃有余 。
为了是检测神经网络模型能够适应展品场景需要 , 作者同样使用了模拟器和真实场景中的数据来训练模型 。 为了提高检测鲁棒性 , 使用了 Unreal Engine 4 来随机生成物体和背景 。 使用 labelImg 工具进行对样本进行了手动标注 。
文章插图
▲ 进行目标识别的数据库
使用神经网络最大的工作量是在准备训练数据集合 。 之后的网络搭建和训练则非常容易 , 分分钟搞定 。 检查一下 , 网络识别交通标志的效果还是很不错的 。
文章插图
▲ 网络识别效果
最后一个工作 , 就是需要将网络部署到手机平台上 。 这需要借助于TensorFlow Lite 将模型进行个数转换 , 并在Android下编写相应的Python脚本来进行部署 。
推荐阅读
- 骁龙865手机开始降价,五款机型全面又便宜,可以放心买
- “横屏旗舰”iQOO 7评测:在极致体验的赛道上一路狂奔
- 手机内存不足别乱删,学会这5个技巧,让手机释放大量空间
- 操控都成主打卖点 手机的未来战场到底在哪?
- iQOO 7手机发布:首款120W快充骁龙888旗舰、120Hz全感触控
- iQOO 7将发布 各友商纷纷“砸场子”拯救者也加入群聊
- 目前配置全性价比高的手机,我只推荐五款,闭着眼买都不会错
- 为什么有"iphone是穷人手机"的言论?用万元机的人真穷吗
- 给你的iPhone12全方位保护:6款手机保护壳横评
- 曝LG也将推出卷轴屏手机 你怎么看?