【2021研电赛】Arm命题:模拟自动驾驶的智能小车

本作品介绍参与极术社区的有奖征集|分享研电赛作品扩大影响力,更有重磅电子产品免费领取!

团队介绍

参赛单位:西安交通大学
参赛队伍:今晚打老虎队
指导老师:杨爱军 副教授
参赛队员:陈敏源、陈超、李强
获奖情况:Arm命题全国三等奖

作品介绍

本作品是一款基于摄像头,麦克风技术的智能小车,模拟自动驾驶的场景。小车由EAIDK310主板,摄像头,麦克风,驱动电流,电机,小车底盘等构成。该智能小车有实现以下几个功能,功能1,基于轮廓检测及质心运动趋势的循迹算法,能够准确识别线路轮廓并实现小车的赛道行驶。功能2,基于百度语音技术的语音识别,录音上传到百度语音,并通过语音识别结果控制小车运动实现语音控制。功能3,基于Tigine推理框架的目标检测,实现了行人模型的准确识别。智能小车模拟了赛道识别,语音控制,行人识别的场景,为自动驾驶技术提供一点参考。
在这里插入图片描述

硬件设计

采用ARM中国企业提供的EAIDK310主板来做控制核心,采用USB高清摄像头做视频源接入,采用USB麦克风做音频的接入。电机驱动芯片选择TB6612,PWM发生芯片选择PCA9685。EAIDK310主板与PCA9685建立I2C通信,使PCA9685产生一定频率和占空比的PWM,配合EAIDK310主板的GPIO,再输入到电机驱动芯片TB6612,控制四个电机的转向与转速,使小车做出前进后退左转右转的运动。
在这里插入图片描述

功能1:赛道识别

大致处理流程为:读取图像,裁剪图像,图像灰度化,高斯模糊,Canny边缘检测提取边缘,设定图像阈值对图像进行二值化处理,侵蚀与扩张,提取道路线轮廓,然后用基于质心运动趋势的方法来判断小车的运动方向。我们设计的赛道循迹算法主要基于opencv库中的一些图像处理操作,首先通过调用摄像头获取线路图像,经过图像预处理后将线路的轮廓进行检测出来,并计算轮廓的质心位置,对于直线情况,质心应处于图像的中间位置,线路左转情况下,质心也会跟着往左偏,线路右转,质心位置也会向右偏移,我们称之为质心偏移原理,并以此作为小车赛道循迹的依据。
在这里插入图片描述

功能2:语音控制

借助百度语音平台,实现语音识别以及控制小车运动。首先采集音频,由于麦克风采集来的音频文件采样率是44100,而百度语音只能识别采样率为8000或者16000的音频文件,所以音频文件采样率转换成16000再上传百度语音,百度语音在服务器上会把上传的语音文件进行识别然后返回识别出的文字字符串,小车判断字符串是否是“前进”“后退”“左转”“右转”“停止”,然后小车执行相应前进后退左转右转停止运动,最后在重新开始采集音频,进行下一次的语音识别。
在这里插入图片描述

功能3:行人识别

本过程包含模型训练,模型转换,模型部署等过程。模型训练一般需要先经过如下几个步骤:训练数据的准备、模型选择、训练参数配置。准备好行人模型图片数据,确定Caffe框架以及SSD模型,然后进行训练,得出Caffe模型文件。使用模型转换工具将训练得出的caffe模型转换成Tengine模型。编写C++代码运行程序加载Tengine模型并进行行人识别。
在这里插入图片描述

未来展望

本作品只是用智能小车模拟了几个特定的自动驾驶场景,还有许多环境因素还未考虑,远远不能应用在实际自动驾驶上,希望以后有机会能在自动驾驶领域贡献自己的力量,把自动驾驶应用在真实的道路上。

作品视频

https://www.bilibili.com/video/BV1V3411B7VX/?aid=420025002&cid=397057930&page=1

参赛感悟

我们队伍从五月初选择做arm企业命题到作品完成大概花了一个半月的时间,从中学习到不少知识,比赛之前我们连linux系统和python都没学习过,最后我们队伍克服各种困难完成作品也是很不容易,在此感谢队友的帮助和支持。但也说明我们的知识储备还不够充分,我们原本还想做一个可视化的软件方便人机交互,但由于时间等关系未能完成这个任务。其他队伍有的结合了一个具体的场景具有一定的使用价值,与他们相比我们作品的创新性稍显不足。希望各位对研电赛有参赛意愿的,做好相应的准备,最后才能从容不迫获得好成绩。对作品有什么疑问,欢迎留言区讨论,如需程序源码,可留邮箱。最后感谢arm企业对研电赛的支持。

更多研电赛作品请查看2021年研电赛获奖作品合集

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2023-12-06 14:34:03       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-06 14:34:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-06 14:34:03       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-06 14:34:03       20 阅读

热门阅读

  1. 【C/C++】可变参数va_list与格式化输出

    2023-12-06 14:34:03       40 阅读
  2. Windows如何启动MySQL

    2023-12-06 14:34:03       35 阅读
  3. Pytorch:torch.utils.data.random_split()

    2023-12-06 14:34:03       39 阅读
  4. VB.NET二维数组的组合

    2023-12-06 14:34:03       45 阅读
  5. 通俗讲解分布式锁:场景和使用方法

    2023-12-06 14:34:03       30 阅读
  6. 2312skia,12画布包与路径包

    2023-12-06 14:34:03       31 阅读
  7. 大数据(十一):概率统计基础

    2023-12-06 14:34:03       39 阅读
  8. 关于SQL注入问题及解决--小记

    2023-12-06 14:34:03       32 阅读
  9. html复习

    2023-12-06 14:34:03       33 阅读
  10. Python中的global关键字

    2023-12-06 14:34:03       35 阅读
  11. MIT 6.S081学习笔记(第五章)

    2023-12-06 14:34:03       28 阅读
  12. js实现tab栏切换

    2023-12-06 14:34:03       35 阅读