0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于EAIDK310的视觉导航自动驾驶小车

安芯教育科技 来源:安芯教育科技 作者:安芯教育科技 2022-03-23 15:42 次阅读

2021研电赛已经告一段落啦 ~

小编为大家整理了获奖作品集,在每周一为大家分享获奖作品,记得来看连载哟 ~

全国三等奖作品:基于EAIDK310的视觉导航自动驾驶小车

团队介绍

参赛单位:上海应用技术大学

参赛队伍:EAIDK666

指导老师:蒋文萍 丁肇红

参赛队员:温晓静 孙亦劼 杜为栋

获奖情况:"ARM"企业专项全国一等奖,全国总决赛三等奖,上海赛区三等奖

作品背景

汽车行业已经进入了一个颠覆性的革新时代,这个时代里面,智能化是一个必然的趋势。相对传统的人工驾驶,自动驾驶在安全,便捷,效率上有着巨大的优势。目前,我国已有自动驾驶汽车正在投入试用,于规定道路上取得一定成果。一方面自动驾驶的发展趋势方兴未艾,自动驾驶技术成为当前的主流研究方向。另一方面,中国在芯片电子领域在国际上处于被打压的形势下,本着挑战自我熟悉国产芯片的原则选择了该ARM中国企业命题,该赛题由安谋中国和OPEN AI LAB联合设计,该自动驾驶赛题围绕具体应用场景,结合传感器算法和指定控制设备,以达到搭建完整应用产品

技术难点与创新点

技术难点

软件移植:由于EAIDK310不像树莓派那样是一款比较大众的开发板,其网上资料有限,如何完成已经在其他开发板的功能即软件移植是第一大难点。

性能调优:EAIDK310板载芯片是瑞芯微的RK3228H,EAIDK310参数见官网。作为一款入门级嵌入式AI处理器想要实现基于图像识别的自动驾驶还是有很大的性能瓶颈,因此性能调优是第二大难点

使用门槛:由于该命题为企业命题,而非开放命题,没有任何实现准备工作或者传承,面对一块陌生的开发板陌生的系统陌生的芯片,在有限的时间内将其跑通完成赛题指定任务是一个很大的门槛。

创新点

硬件上采用了双摄像头架构:一个是用于采集车身在道路上位置的俯视安装的摄像头,其前瞻大约两倍车身长度,一个是用于采集行人交通标识等路况信息的平时安装的微广角摄像头。双摄像头的架构极大提高了图像采集和处理的效率,降低了软件分割处理图像的压力。

软件架构:由于EAIDK310平台综合各方面因素,摒弃使用业界常用的ROS作为解决方案,而是使用了一个轻量级的数据缓存库Redis和DSDL来实现和ROS类似的功能,使得程序耦合性降低,以较低的成本实现了一种跨进程跨节点跨语言且较高性能的架构。

算法优化上关于图像识别部分采用了Tengine边缘推理框架进行了性能调优加速,使整个系统的实时性得以提高。

实用价值

得益于该作品在硬件和软件架构上的创新,提出了一套成本低效率高的嵌入式视觉导航框架,使得研究该技术的硬件成本门槛降低,不仅仅在自动驾驶,该作品提出的基于Redis的软件方案在嵌入式系统中都是一个不错值得复制借鉴的框架。此外该作品最后实验结果验证了Tengine在嵌入式平台上优异的表现,为嵌入式系统运行AI推理优化加速调优提供了思路。

系统设计

系统架构图

基于EAIDK310的视觉导航自动驾驶小车

本设计整体的系统构如图所示,从下至上依次有硬件层,驱动层,数据交互层,数据处理层,控制算法层和应用层。

硬件层是本设计最直观的物理体现形式,主要包括电机、舵机、转速传感器IMU传感器按键蜂鸣器等。

驱动层是与硬件直接进行交互使其运行起来的的最底层软件,包括驱动电机舵机的PWM,获取转速传感器的输入捕捉,驱动IMU的IIC总线,以及用于人机,机机交互的GPIO和UART

数据交互层是连接底层与上层的关键一层,它是对驱动层从数据流的角度进一步的抽象和封装,为上层应用对底层硬件的访问控制提供了统一的接口和权限的控制。

数据滤波层是数据经过的第一层处理,主要提供了对数据最基础的数学运算变换以及数字信号处理手段。基于底层提供的原始数据或者处理过的数据,控制算法层将这些数据带入到实际模型中完成对模型的控制。

应用层是最上层的逻辑处理层,在这一层实现了最具体的功能,例如让小车循迹行驶、以及小车自主行驶策略控制等均在应用层完成。下面对本架构从硬件和软件的角度展开阐述。

硬件架构图

基于EAIDK310的视觉导航自动驾驶小车

上图为本设计的系统总体硬件框架图,硬件系统采用主控制器加辅助控制器的架构。主控制器即EAIDK310开发板板载RK3228H处理器,辅助处理器为STM32F405处理器。主控制器负责摄像头数据采集处理,以及主要控制算法执行。辅助处理器是一个32位单片机,主要负责电机驱动,速度转向控制,以及车身姿态解算。

特别地,在主处理侧采用的是双摄像头方案,如下图(a)所示,其中摄像头1是用于采集车身在道路上位置,其安装于车身后方高度约15cm的位置,安装角度12到15度,安装高度和安装角度共同决定其前瞻大约两倍车身长度,摄像头2采用微广角摄像头,用于采集小车前方行人交通标识等实时路况信息,该摄像头安装于车头,正视小车前方视野。双摄像头方案的视野示意图如图(b)所示,相比单摄像头方案,双摄像头采集到的数据分别可以直接用于道路识别分割和交通标识处理,从而减少了处理器对图片的预处理工作。

基于EAIDK310的视觉导航自动驾驶小车

软件架构

基于EAIDK310的视觉导航自动驾驶小车

与硬件系统对应地,软件也分为两部分,其架构图如图所示,主要分为主处理器端和辅处理器端,在主处理器端,采用opencv进行图像采集以及基本处理,采用Tengine实现人工智能训练模型的推理计算。其数据处理及计算的所有结果均写入redis供其他程序(车控算法、数据协议、图像识别等模块)调用。车控驱动是用python编写的一个与STM32单片机串口通信的节点,其通过实时读取redis中来自上层应用程序(车控算法)对小车的控制指令并随即通过串口协议发送给辅处理器端指挥小车做出相应动作。

系统测试

最终小车的设计图和整体图如图所示

基于EAIDK310的视觉导航自动驾驶小车

交通标识道具

ce293b9e-92e9-11ec-952b-dac502259ad0.png

数据集

基于EAIDK310的视觉导航自动驾驶小车

赛道分割巡线

交通标识识别

未来展望

基于作品中提出的Redis和DSDL实现的机器人框架基础进行进一步的完善和补充,使其成为ROS的一个可替代选择,特别是在低性能处理器上。

总结

经过本次对EAIDK310的探索学习,以实际需求为应用背景,实现了自动驾驶基于双摄像头的自动驾驶Demo。

针对最初的功能需求,分别对巡线,交通标识识别进行了测试。由于巡线采用的是基础的机器视觉算法,对于背景复杂的路况的效果不是很理想,但是对于简单的赛道巡线效果非常好。

交通标识识别采用的是机器学习算法,前期在测试过程中记录了大量的训练数据供其训练,由于训练数据和实际验证场景相同,因此得到了较好的识别效果。

本次项目表明即使RK3228H处理器的性能限制不能跑大型AI模型算法,但得益于基于Redis的数据交互框架和Tengine边缘推理计算框架,使得基础嵌入式设备在AI项目中也可以发挥其作用,是一种低成本的解决方案。

参赛感悟

首先非常感谢安谋中国对我们团队作品的肯定,我们团队作品的获奖情况比较两极分化,在横向评比的上海赛区获得三等奖,在纵向评比的ARM企业命题获得一等奖,不出所料在同样是横向评比的全国赛区还是三等奖,其实不管是三等奖还是一等奖我们团队都是可以接受的。

清晰记得我们去上海赛区参加比赛时我们去看其他参赛团队的作品海报时的震撼,我们的作品时如此的朴实无华,没有看不懂的题目,没有高大上的技术,也更没有雄厚的资金支持,我们当时的小车的摄像头由于经费问题还是用的十年前用来QQ视频聊天的那种摄像头。所以给我们评三等奖我们也觉得我们确实不如其他团队的作品。

但是,企业赛题给我们评为一等奖我们也觉得我们是值得这个分肯定,我们做的虽然没有那么高大上,但所做工作紧靠赛题,没有丝毫偏题,一步步走来,扎扎实实,一步一个脚印,遇到问题逐个克服....

刚刚拿到EAIDK310开发板时陷入了平均一天重装两次系统的困境,要不是因为装软件装的内存不足了,要不是装软件装的系统崩溃了,几乎不能和这块板子好好相处。后来总算学会了使用 rsync 备份系统以后这个情况才得以改善,但只是重装系统变成了恢复系统,至少比之前进步了,但此时离报名截止还有一个月了,然后又陷入了跟OpenCV死磕,跟ROS死磕,跟pygame死磕,跟Tengine死磕,跟rockchip死磕。。。。的困境,这块板子太小众了,好多软件包都得自己编译,而且性能不是很高,在别的平台上跑通的在这里跑的很拉跨,直到最后我们拍板定下来放弃使用ROS放弃使用那么多依赖,一切自己重头来并使用一块STM32辅助处理器我们的工作才步入正轨,但话又说回来站在巨人的肩膀上不是更好吗,这时我们剑走偏锋瞄准了在互联网领域如数家珍的Redis(做嵌入式的同学可能对这个不是很了解),Redis和DSDL结合不就是一个轻量级的ROS框架嘛,说干就干,看是研究Redis的源码,研究DSDL的源码,总算在报名截止前一周我们实现了基础的框架模型,小车可以动起来了,各个节点之间通讯打通了,这个时候我们才确定报名ARM赛题,给队伍起了EAIDK666队的队名,申请了开发板(之前那块自掏腰包买的)图像识别我们认真学习了公开课的视频,对数据集进行了扩充并重新训练模型部署,此时马上就要报名截止了,我们PPT还没有做,视频还没有录。。。。一直在和时间赛跑

就这样我们扎扎实实一步一步走来一等奖是对我们极大的肯定和鼓励!

一定是对安谋中国的感激让我坚持到现在把这个分享写完,截止今天(2021年8月27日)我刚刚参加完暑假的最后一个比赛的决赛(集创赛),我的暑假几乎是在竞赛中度过的,这个比赛结果我已经没有任何期待了,因为此时此刻我只想好好休息,我真的太累了,感谢安谋中国对我们作品的肯定。最后还是感谢安谋中国感谢我的导师!

由于作品中有些内容正后续要写论文投稿所以写的不是很详细,等论文投出去一定和大家分享,还有Redis和DSDL造出来的框架若各种条件都允许我们会将源码公开出来抛砖引玉。

原文标题:【2021研电赛作品分享】第十八期 | 基于EAIDK310的视觉导航自动驾驶小车

文章出处:【微信公众号:安芯教育科技】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2522

    文章

    47984

    浏览量

    739697
  • 芯片
    +关注

    关注

    446

    文章

    47705

    浏览量

    408872
  • 自动驾驶
    +关注

    关注

    773

    文章

    13000

    浏览量

    163138

原文标题:【2021研电赛作品分享】第十八期 | 基于EAIDK310的视觉导航自动驾驶小车

文章出处:【微信号:Ithingedu,微信公众号:安芯教育科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    未来已来,多传感器融合感知是自动驾驶破局的关键

    驾驶的关键的是具备人类的感知能力,多传感器融合感知正是自动驾驶破局的关键。昱感微的雷视一体多传感器融合方案就好像一双比人眼更敏锐的眼睛,可以为自动驾驶系统提供更丰富更精准的视觉语言——
    发表于 04-11 10:26

    LabVIEW开发自动驾驶的双目测距系统

    LabVIEW开发自动驾驶的双目测距系统 随着车辆驾驶技术的不断发展,自动驾驶技术正日益成为现实。从L2级别的辅助驾驶技术到L3级别的受条件约束的
    发表于 12-19 18:02

    自动驾驶“十问十答”

    说起自动驾驶, 大家现在已经不陌生, 但是关于自动驾驶你又了解多少呢? 今天小编总结了关于自动驾驶的 “十问十答” , 带你了解更多 自动驾驶的来龙去脉 。 问题1. 为什么会 出现
    的头像 发表于 11-29 07:40 283次阅读
    <b class='flag-5'>自动驾驶</b>“十问十答”

    自动驾驶高精组合导航设备导远570D拆解

    这期带来自动驾驶高精组合导航设备拆解,本次拆解分析的产品是导远570D。
    的头像 发表于 11-01 15:38 1179次阅读
    <b class='flag-5'>自动驾驶</b>高精组合<b class='flag-5'>导航</b>设备导远570D拆解

    农机自动驾驶显示系统组成部分以及配置

    、卫星导航以及其他基站定位系统等。 基于目前市场上对自动驾驶系统的需求,墨翟科技研发了一款10.1英寸一体化的车载电脑,专为农业精耕、工程机械应用而设计的升级产品。该产品经过实际的农业耕种环境应用至今
    发表于 10-17 17:52

    【KV260视觉入门套件试用体验】八、VITis AI自动驾驶多任务执行MultiTask V3

    是一种模型,旨在同时执行自动驾驶场景中的不同任务,同时实现优异的性能和效率。这些任务包括对象检测、分割、车道检测、可行驶区域分割和深度估算,这些都是自动驾驶感知模块的重要组成部分。 三、代码实现
    发表于 09-26 16:43

    自动驾驶中激光雷达和视觉感知的区别

    视觉自动驾驶方案从产品分析,目前特斯拉的产品还处于L2的阶段,从今年第一季度的财报上看纯视觉自动驾驶方案是这样解释:目前道路交通系统是基于人类视觉
    发表于 08-08 12:49 988次阅读
    <b class='flag-5'>自动驾驶</b>中激光雷达和<b class='flag-5'>视觉</b>感知的区别

    浅析自动驾驶视觉感知算法

    环境感知是自动驾驶的第一环,是车辆和环境交互的纽带。一个自动驾驶系统整体表现的好坏,很大程度上都取决于感知系统的好坏。目前,环境感知技术有两大主流技术路线
    发表于 07-25 10:36 379次阅读
    浅析<b class='flag-5'>自动驾驶</b><b class='flag-5'>视觉</b>感知算法

    高精自动驾驶中的地图匹配定位技术

    汽车定位是让自动驾驶汽车知道自身确切位置的技术,在自动驾驶系统中担负着相当重要的职责。汽车定位涉及多种传感器类 型和相关技术,主要可分为卫星定位、惯性导航定位、地图匹配定位以及多传感器融合
    发表于 06-07 10:31 0次下载
    高精<b class='flag-5'>自动驾驶</b>中的地图匹配定位技术

    自动驾驶技术环境感知篇:基于视觉相关技术介绍

    在前面的文章介绍了环境感知中不同雷达的作用,一个标准的自动驾驶解决方案需要雷达与视觉技术的配合使用。视觉技术其实是仿生理学的解决方案,因为现实世界中司机驾驶车辆就是依靠
    发表于 06-06 11:16 1次下载
    <b class='flag-5'>自动驾驶</b>技术环境感知篇:基于<b class='flag-5'>视觉</b>相关技术介绍

    自动驾驶技术体系及相关术语

    一、自动驾驶技术体系 目前可预见的一种自动驾驶解决方案就是:通过GPS等地图定位技术,自动驾驶汽车进行全局路径规划,首先找到一条从出发地到目的地的可行路径(如当今的一些导航软件所具备的
    发表于 06-02 15:55 0次下载
    <b class='flag-5'>自动驾驶</b>技术体系及相关术语

    自动驾驶导航定位介绍

    自动驾驶中,一般用到的导航定位技术包括,惯性导航以及GPS定位导航,惯性导航一般用到IMU,此外为了进一步确保定位 的可信度,还会采集轮速
    发表于 06-01 16:14 0次下载
    <b class='flag-5'>自动驾驶</b>之<b class='flag-5'>导航</b>定位介绍

    00021 阿克曼ROS自动驾驶小车,让自动驾驶触手可及! #自动驾驶 #机器人 #编程

    自动驾驶
    学习电子知识
    发布于 :2023年05月22日 19:42:03

    ADAS辅助驾驶——NOA自动辅助导航驾驶

    功能的本质意思是把“导航”和“辅助驾驶”结合。在原来L2辅助驾驶的基础上(如车道线保持、自动跟车),加上车机的导航信息(如地图软件)进行
    的头像 发表于 05-05 11:27 1.2w次阅读
    ADAS辅助<b class='flag-5'>驾驶</b>——NOA<b class='flag-5'>自动</b>辅助<b class='flag-5'>导航</b><b class='flag-5'>驾驶</b>