AI视觉组赛题浅析
扫描二维码
随时随地手机看文章
逐飞科技
2021-01-07 Thursday
▌01 前言
各位车友好, 第十六届全国大学生智能车竞赛竞速组规则 发布后,大家已经注意到由恩智浦赞助的 AI视觉组 是最具有综合性的一个组,感谢NXP继续对大赛的支持,让我们感觉了挑战性。
-
第十六届全国大学生智能车竞赛竞速组规则:
https://zhuoqing.blog.csdn.net/article/details/110253008 -
ng.blog.csdn.net/article/details/111352093
关于“ 第十六届全国大学生智能车竞赛竞速组-室内视觉组补充说明[2] ”的初稿详情大家可以通过卓老师的微信公众号推文了解到,点击此处查看。
-
第十六届全国大学生智能车竞赛竞速组-室内视觉组补充说明:
https://zhuoqing.blog.csdn.net/article/details/111352093
初稿发布后,很多同学都对AI视觉组产生了浓厚的兴趣,同时也产生了很多疑问。所以,我们今天对AI视觉组的赛题进行一个简单分析,希望能给目前还在迷茫准备阶段的车友们打开一些思路。
根据初稿我们知道:车模限定使用C型车、微控制器限定使用NXP公司的MCU,推荐使用i.MX RT系列高性能MCU、传感器基本不限,可以使用OpenMV RT模块,但需要提醒的是该模块并不能完成这个赛题组的所有任务,下文有详细解释,请仔细阅读。
▌02 赛题任务分解
1.循迹
与其他竞速组赛道兼容,依然需要循迹,依然包含120°三岔路口,循迹任务推荐采用普通摄像头来完成,当然,也不是太普通,毕竟是全局快门的总钻风,这个任务比较传统,这里不再赘述,可以查看往期推文。
2.数字识别
在三岔路口需要对路口处的数字进行识别,并根据数字的奇偶性,来决策应该走左边还是走右边,数字识别可以使用OpenMV RT模块,也可以使用OpenART(本文后面会有OpenART的相关介绍)来完成。
3.AprilTag识别
AprilTag是一个视觉基准库,在AR,机器人,相机校准领域广泛使用。设定为与二维码相似但相对更简单的特定标志,实现快速检测。
在赛题中AprilTag码也代表着数字,依然通过识别其所代表的数字,并判断奇偶性来得知靶标牌是在赛道的哪一侧,AprilTag码识别可以使用OpenMV RT模块,也可以使用OpenART(本文后面会有OpenART的相关介绍)来完成。
4.物体识别
赛题中包含动物图案和水果图案,这部分内容也是该组别最能体现“AI”的一个环节。动物类包含狗、猫、马、猪、牛五个子类别,水果类包含苹果、橘子、葡萄、香蕉、榴莲五个子类别,图案对象均为全身或整体照片。
关于动物和水果的识别,需要采用第十五届AI电磁组部署神经网络模型的方式,来实现对图案的识别,区别是数据量大了许多,所以这个环节的任务采用OpenMV RT模块就完成不了了,必定需要部署神经网络模型,当然也可以在该模块上自行部署,但该模块上没有SDRAM,无法部署较大的模型,所以推荐在独立的高性能MCU上部署AI模型进行训练。
这里又提到对MCU性能有要求,因此规则中推荐使用NXP的i.MX RT系列的高性能MCU。对应的,我们推荐使用RT1064来作为部署AI模型的MCU,同时逐飞的RT1064核心板板载32M SDRAM,正好可以满足模型数据量对空间的要求。
关于图案识别的参考数据集及识别示例,NXP都会提供,届时逐飞也会第一时间进行验证。同时在这个赛题任务的讨论时,基本意见是考虑预赛阶段的数据集由组委会统一提供,也就是说预赛中出现的水果和动物图案,都在预先提供的数据集里,决赛阶段选择预先告知的数据集之外的水果和动物图案,这样可以保证大多数同学的完赛率,同时提高决赛阶段的竞技水平,谁的训练更充分,谁就更有可能在决赛中的识别环节取胜,具体实施方案应该会在正式版的规则中明确。
同时水果和动物的图案可能还需要一个外框,用于定位抓图,通过对图像中这个外框的识别来定位,将摄像头中有效的动物水果图案抓取出来进行识别,避免背景对识别的干扰,这一点也许需要加入到最终的规则中去,后面逐飞在做验证时也会更清楚这一点的需求,AprilTag码的位置与靶标牌的距离及相对位置也需要实际测试,规则中的距离要求可能需要调整,有待进一步验证。
5.激光打靶
在识别到图案为水果时,需要使用车载小型激光发射器对准靶心发送一束激光,打中才算完成该项任务,激光发射的相关技术要求,会在后面的正式规则文档中详细写出,相对而言,这部分工作需要建立在图案识别的基础上,识别准确了,打靶的控制才能准确实现。激光发射部分的制作很简单,届时会给出参考方案和技术指标。激光瞄准部分的机械结构应该需要用到舵机云台,通过控制来实现瞄准靶心。
▌02 OpenART
接下来给大家简单介绍一下上文中多次提到OpenART,这究竟是一个什么神器?
OpenART是由恩智浦研发的,最初的设计构想是做一套基于NXP i.MX RT系列高性能MCU的通用AI教育套件.
⊙ 应用场合:
- 人工智能教育,综合创新,原型验证
- 非多媒体数据上的机器学习(异常检测、姿态识别、智能控制策略)
- 语音触发、声源定位
- 人脸识别
- 智能可运动物体(模仿+强化学习)-机电联动:云台载具
- 机器视觉(OpenMV,从这里可以看出,它可以替代OpenMV)
- MCU教育
- 传统算法转深度学习
⊙ 硬件设计特点:
- 模块化设计
- 兼容树莓派通信接口
- 强化数据采集 –摄像头、多麦克风、多路AD、加速度、陀螺仪、地磁、压力、温度、湿度、照度等多传感器融合
- 尺寸小巧
⊙ 软件特点:
- RT-Thread内核,驱动,软件组件及开发环境
- Micropython环境,用于二次开发, AI教学
- OpenMV机器视觉库,运行OpenMV IDE自带视觉处理脚本
- eIQ: NXP机器学习开发包
OpenART套件的软件部分采用RTOS为基础,可以说RTOS为这套系统提供了很便捷的开发方式,对于大赛的AI视觉组来讲,有RTOS的加持,可以为软件设计提供更便捷的开发环境。
尤其该赛题组涉及到多任务,及Python和C语言的两种开发语言,有了操作系统做多任务分配,就大大的提高了可操作性,同学们可以根据自己的需求和能力,来自由分配和设计自己的整体软件结构,Python脚本可实现基础硬件控制,C语言可以完成主控逻辑的程序编写,同时解决了OpenMV只能用Python文件编写功能,不能用C语言来编写实时控制逻辑代码的问题。
所以OpenART教育套件的软件结构设计初衷,几乎完美契合AI视觉组的任务需求,引入RTOS也在这种复杂多任务嵌入式系统的设计中,体现出了巨大的优势。
上面也提到了OpenART本身就可以变身为一个OpenMV,通过Python脚本就可以完成人脸检测、色块检测、边缘检测等视觉处理脚本。 同时,现在的OpenART支持3种神经网络引擎:分别是openMV的旧式nn模块,tf模块,以及nncu模块。将来会支持GLOW。
接下来会制作基于nncu和tf模块的模型,nncu模块使用旧式CMSIS-NN API并且优化了性能,而tf模块使用新式CMSIS-NN的"_s8" API,性能有少量下降但8位精度更高。
▲ OpenART工具包架构
按照OpenART的设计思路,基于与智能车大赛AI视觉组任务需求的完美契合,NXP与逐飞联合设计了这套硬件,如下图所示,整个开发板依然围绕逐飞RT1064核心板展开,摄像头可兼容OpenMV4接口的Camera模块和逐飞的凌瞳彩色摄像头。
受NXP委托,逐飞正在做基于OpenART的AI视觉组赛题任务验证,验证完成后将会给出一个入门参考方案给同学们(包含神经网络模型部署等),但更多的工作仍需要同学们自己去完成,包括OpenART开发套件也只能用于学习,只有RT1064核心板、OpenMV RT模块、凌瞳彩色摄像头等模块可以直接用于比赛,参赛作品的拓展板需要同学们根据自己的需求自行设计和裁减。
因为OpenART开发套件包含的功能较多,对于竞赛而言,有些功能是多余的,但如果您对其他部分也感兴趣,可以在比赛之余通过开发板学习到更多的应用。
▲ OpenART 开发板
好了,本次的AI视觉组赛题分析就先到这了,更多关于AI视觉组的硬件适配,软件方案的介绍且听下回分解,欢迎留言或进QQ群(946236488)讨论。
本文来自微信公众号文章:智能车竞赛,AI视觉组赛题浅析
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!