【飞桨开拓者说】吴东昱,北京钢铁侠科技深度学习算法工程师,紧张研究深度学习、无人驾驶等。

我在不雅观察历届智能车竞赛以及传授教化实验中创造,采取传统视觉算法的视觉智能车只能在特定赛道中行驶,一旦赛道环境改变,必须修正大量的代码才能运行。
算法适应性差是制约智能车场景化适配的主要成分。

而“AI 智能车”借助深度学习算法,通过真实数据采集到模型新演习正好能够办理这一问题。
基于飞桨平台,我们快速研制出了“无人驾驶智能车”,已经实现了道路检测以及交通标识识别(红绿灯/限速牌/人行道/停车位)等功能。
在本文中,我将为大家揭秘“基于飞桨的无人驾驶智能车”的详细实现过程和效果。

第一步:如图1所示,在智能车硬件配置上,高性能处理器是实现深度学习算法运行的必备条件,目前通用盛行的高性能处理器有:intel CPU、NVDIA GPU、百度 Edgeboard 系列、NXP i.MX8 系列,在这里我们选择了基于百度 Edgeboard 系列的高性能板卡作为智能车的主处理器。

我用飞桨做了一个AI智能小车

▲ 图1 智能车硬件框架

第二步:在办理了处理器的问题之后,要实现智能车对道路和交通标识的识别就要面临深度学习框架和深度学习算法的选择。
目前通用盛行的深度学习框架有 Tensorflow、飞桨(PaddlePaddle)、Caffe、PyTorch 等。
我们选择了飞桨,飞桨作为国产化的深度学习框架,合营一站式开拓平台 AI Studio,为用户供应了优质的开拓做事。
进一步借助飞桨平台发布的官方支持的工业级模型以及高性能推理引擎 Paddle Lite,可以快速实现自然措辞处理、打算机视觉、推举引擎等多个领域运用的开拓和支配。

在车道线识别上,我们采取的是卷积神经网络 CNN。
CNN 在图像领域有主要的运用代价,结合实际测试履历,我们的智能车采取了5个卷积层加2个全连接层来构成车道线网络模型,智能车整体事情流程可分为数据集创建、数据处理、模型演习和支配预测四步。

数据采集:

通过手柄遥控智能车在赛道内按照适当速率运行,记录过程中的每一帧图像及对应的转弯角度。
采集的图像如图2所示。

▲ 图2 采集的图像素材

代码解析:

运行的程序包括三个进程,它们分别掌握:获取手柄数据、保存图像数据以及保存转弯数据;通过创建一个互斥锁,使得图像数据和角度信息逐一对应保存下来;末了将转弯数据转成 npy 文档,便于下一步的调用。

▲ 图3 数据采集代码解析

图像预处理

对获取的图像信息进行预处理,提取出图像中的赛道,并保存处理后的图像。
处理后的图像如图4所示。

▲ 图4 处理后的数据

代码解析:

依次读取数据集中的图像,根据颜色阈值限定对每一张图像颜色信息进行二值化处理并另存到特定目录下,如图5所示。

▲ 图5 数据处理代码解析

模型演习

以卷积神经网络为主体搭建深度学习网络框架,并将图像及转弯角度信息放入模型中进行演习,终极得到演习后的模型,搭建的模型如图6所示。

▲ 图6 模型演习

本过程通过飞桨框架,在个中定义丢失函数、优化方案、层数、卷积核大小等参数。
详细代码如图7所示。

▲ 图7 模型演习代码解析

▲ 图7 模型演习代码解析

运行的视频如下

视频加载中...

支配预测

将 AI Studio 得到的飞桨 CNN 模型下载到终端,并通过局域网传入智能车的主处理器上,在智能车主处理器上利用 Paddle Lite 实现模型调用。

然后把智能车放置在赛道中,智能车通过调用演习好的模型,根据实时采集的图像信息,输出对应的转弯角度,进而实现自主运行,详细实当代码如图8所示。

▲ 图8 预测支配代码解析

点击下方详情可查看 GitHub 项目地址:

https://github.com/PaddlePaddle/Paddle-Lite/tree/develop/mobile

如果利用过程中碰着任何问题,大家可通过 Paddle Lite 官方 QQ 群与开拓职员进行技能互换及问题反馈,群号:696965088。