资料介绍
描述
问题
有许多项目专注于边缘 AI/ML 的硬件。但在实际场景中,并没有在产品之上的软件侧学习细节的显着实践来展现,本文弥补了这一不足。
同时,该项目在一个廉价的边缘人工智能硬件上提供了完整的、可重现的EdgeML/TinyML动物识别工作流程,这在已知的现有项目中是很少见的。
硬件
该项目的硬件是Seeed SenseCAP K1100/A1100中的 Grove Vision AI 模块。官方商店有单机版的Grove Vision AI Module 。
Vision AI Module有一颗芯片:Himax HX6537-A。芯片上的mcu基于消费者比较陌生的ARC架构。主频是400Mhz,也不高。但最有趣的是 HX6537-A,具有快速XY SDRAM 内存架构来加速 TinyML,如 tensorflow lite 模型推理。我们稍后会看到这款芯片的性能。
工作流程
上面的工作流程很常见,也很清晰。我们只讨论一些有趣的需求:
- 该数据集是具有 9.6GB 图像的公共数据集。
这避免了样本太少或代表性不足的常见问题。
- 培训在当地完成。
这避免了样本太少或代表性不足的常见问题。
- 数据收集和实时分析是通过边缘数据库JoinBase完成的。
与 PostgreSQL 或 TimescaleDB 等常见数据库不同,JoinBase 直接接受 MQTT 消息。与云服务不同,JoinBase支持运行在边缘,可以在没有网络的环境下使用。最后,JoinBase 可免费用于商业用途,这也有利于边缘平台的进一步发展。
准备数据集
目前,针对野生动物或动物的工作边缘 AI 的公开研究并不多。使用了少数公开可用的动物数据集之一——来自 Kaggle 的动物检测图像数据集(称为“animals-80”数据集)。它包含 9.6GB 图像中的 80 只动物,对于常见的动物识别任务应该足够了。
准备训练数据
animals-80 数据集的好处是它已经被标记了。但是原始标签格式不是Yolov5标签格式。已经进行了准备工作。核心部分就是上图的预处理函数。请稍后的代码回购以获得更多信息。
火车
因为我们没有足够的资源来对完整的 9.6GB 训练进行完整的训练。因此,选择了animals-80数据集的一个子集。
- 15-动物子集训练
我们使用 24c/48T Xeon Platinum 8260 处理器使用上面从官方示例中获得的命令进行训练。
python3 train.py --img 192 --batch 32 --epochs 200 --data data/animal.yaml --cfg yolov5n6-xiao.yaml --weights yolov5n6-xiao.pt --name animals --cache --project runs/train2
然而,两个小时后(是的,再次证明Don't use CPU to train even is a top Xeon SP),发现最后的识别效果很差。
主要指标非常低:精度为 0.6,召回率和 mAP_0.5 都在 0.3 左右。
事实上,这个结果接近于不起作用。
- 4-动物子集训练
让我们将可识别的动物种类减少为四种:蜘蛛、鸭子、喜鹊和蝴蝶,这当然是郊区野外最常见的动物。
注意,重新运行准备脚本以生成正确的data/animal.yaml.
主要指标变得更好:精度约为 0.81,召回率和 mAP_0.5 约为 0.6。
我们将在后期推理试验和评估中回顾该模型的性能。可以只进行二元分类:一种动物和一种动物。但在这个项目中,我更期待在更复杂的场景下评估识别效果。
- YoLov5官方预训练模型的 4 动物子集训练
以上训练均由Seeed官方文档推荐完成。预训练模型yolov5n6-xiao
可能缺乏良好的泛化能力。在这个项目中,我们尝试了一个 YoLOv5 官方最小的预训练模型yolov5n6
,看看是否有一些差异。
上面的结果是从官方yolov5n6
模型中得到的epochs=150.
结果很好。因为,
主要指标:precision、recall 和 mAP_0, 5 均大于 0.9。在 ML 中,mAP_0.5 在 0.6 和 0.9 之间的差异在现实世界的检测中是巨大而巨大的。
不幸的是,基于官方训练的最终模型yolov5n6
接近4MB,而Grove AI模块的约束模型大小不超过1MB。因此,我们不能使用任何此类更大的模型(已尝试)。一些建议将在最后一节中讨论。 推论
经过以上训练,我们进行图片仿真,初步评估模型的效果。让我们看例子。
以上是 Grove AI 模块的输出。分类指数在中间,置信度在旁边。对应指标的动物名称可以在上面的训练图中看到。
第一次和第二次检测是正确的,第三次检测是错误的。第三张图是一只喜鹊在天上飞,推理结果是蝴蝶。我们只是在后面的real-wprld评估中看到这个分类模型的影响。
真实世界评估
现实世界中的推理比实验室中的推理更具挑战性。因为测试时所处的环境或测试者或被测对象的状态都会对结果产生很大的影响。这就是我们在工作流程部分进行规划的原因。
我们通过TinyWild 项目中的郊野公园野生动物调查进行了真实世界的评估。执行两种类型的检测:
- 基于动态视口(移动相机)的检测
上图是整个调查的分类统计(置信度>75)。相机移动的时间很长。因此,这是一个基于动态视口(移动相机)的检测。源于软件逻辑的“未知”和空动物已被排除在外。
基本结论是,对于个体识别来说,不是特别理想,但是收集到的定性信息是有效的。
Bufferfly在统计上相对突出,但没有在公园里见过很多次的Magpie。
这似乎是喜鹊被识别为缓冲蝇,如上面推理部分的分析所示。它们的共同点是,它们经常在空中飞行。三个真实世界的因素:移动的相机、移动的物体和低分辨率,对识别结果有很大的影响。
- 基于静态视口(静态相机)的检测
为减少移动因素的影响,还在湖边开展了野鸭(野鸭)专项观测。
在上面的第一个捕获中,我们前端 UI 中鸭子的数量(其中一个有趣的地方是 UI 中的动态表是由 SQL 查询驱动的,请参阅我们未来项目中的更多信息)。突然,两个鸭子游入镜头范围。鸭子的数量已经增加到13。考虑到原来的鸭子是被数过的,13是当时精确的数。发现Grove AI 对附近的动物检测非常有效,就像我们在湖边所做的那样:当三只鸭子突然以相对静态定位游入相机范围时,我们得到了三个计数。(注:在TinyWild项目中,我们说有四项计数,但根据我们的录音应该更正为三项计数。)
建议
基于以上实践,我们针对廉价边缘人工智能硬件上的 EdgeML 或 TinyML给出以下建议:
- 尝试静态观察
即观察者不做大动作。
- 检测尽可能少的物体
例如,只做二元分类:人或没有人,猴子或没有猴子,鸟或没有鸟。
- 使模型的主要指标尽可能大
例如,precision > 0.8,recall 和 mAP_0.5 > 0.6。
- 尽可能提高识别准确率(比如,更长的训练时间)
廉价的边缘 ML 硬件通常资源有限,例如 Grove AI 模块的约束模型大小不超过 1MB,低于 yolov5 官方 yolov5n 预训练网络训练的模型大小。发现较小的模型会显着影响模型的主要指标。
- Vision_Board_schematic
- AI遇冷?2023从融资再看AI“芯”赛道? 2次下载
- PowerAI Vision:用于图像和视频的自动AI
- 使用带RGB背光的Grove LCD
- Grove IR通用远程项目
- 如何将Grove语音识别器模块与Arduino板连接
- DB3962_FP_AI_VISION1数据手册摘要
- Grove Feux/TrafficLights模块
- GitHub入门与实践 0次下载
- LabVIEW Vision图像处理开发宝典电子版 0次下载
- 基于ADC121C021的Grove模数转换器原理图PCB使用教程.
- 动物群体逃生行为及群体虚拟仿真实验 11次下载
- DIY:如何将把Intel Edison 与 Grove LCD变成智能型桌钟资料下载
- 使用数字识别和AI实现OCR的资料合集 20次下载
- 无线动物识别和跟踪管理系统的设计方案解析 0次下载
- AMD Vitis™ Libraries Vision L3 Isppipeline U50流程示例 635次阅读
- M-Vision在LinuxRT下使用OpenVINO加速AI推理 687次阅读
- 射频识别系统基本组成 4201次阅读
- AI爱克斯开发板上使用OpenVINO加速YOLOv8目标检测模型 1067次阅读
- 在AI爱克斯开发板上用OpenVINO™加速YOLOv8目标检测模型 1134次阅读
- Kubernetes上Java应用的最佳实践 575次阅读
- Grove Beginner Kit for Arduino入门套件试用指南 2345次阅读
- AI行为识别分析技术在智慧养老行业的应用 1w次阅读
- 中控智慧科技识别终端AI702简介 5538次阅读
- 中控智慧科技人脸识别终端AI302介绍 5327次阅读
- 大疆无人机借助微软AI技术识别物体 4800次阅读
- 深度解析人脸识别技术 1.1w次阅读
- 追溯3D人脸识别背后的技术之源 5412次阅读
- 携程信息安全部在web攻击识别方面的机器学习实践之路 5541次阅读
- 无线射频识别技术在畜牧业动物管理中的应用案例分析 2963次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多