前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我用飞桨做了一个AI智能小车

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

作者头像
用户1386409
发布2019-12-19 15:14:33
6130
发布2019-12-19 15:14:33
举报
文章被收录于专栏:PaddlePaddlePaddlePaddle

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

我在观察历届智能车竞赛以及教学实验中发现,采用传统视觉算法的视觉智能车只能在特定赛道中行驶,一旦赛道环境改变,必须修改大量的代码才能运行。算法适应性差是制约智能车场景化适配的重要因素。而“AI智能车”借助深度学习算法,通过真实数据采集到模型新训练恰恰能够解决这一问题。基于飞桨平台,我们快速研制出了“无人驾驶智能车”,已经实现了道路检测以及交通标识识别(红绿灯/限速牌/人行道/停车位)等功能。在本文中,我将为大家揭秘“基于飞桨的无人驾驶智能车”的具体实现过程和效果。

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

图1.智能车硬件框架

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

在车道线识别上,我们采用的是卷积神经网络CNN。CNN在图像领域有重要的应用价值,结合实际测试经验,我们的智能车采用了5个卷积层加2个全连接层来构成车道线网络模型,智能车整体工作流程可分为数据集创建、数据处理、模型训练和部署预测四步。

01

数据采集

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

图2 采集的图像集

代码解析:

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

图3 数据采集代码解析

02

图像预处理

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

图4 处理后的数据

代码解析:

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

图5 数据处理代码解析

03

模型训练

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

图6 模型训练

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

图7 模型训练代码解析

04

部署预测

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

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

图8 预测部署代码解析

运行的视频如下:

详情可查看GitHub项目地址:

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PaddlePaddle 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【飞桨开发者说】吴东昱,北京钢铁侠科技深度学习算法工程师,主要研究深度学习、无人驾驶等。
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档