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

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

3天内不再提示

基于NXP微控制器i.MX RT1170的多人体实时检测算法和系统

jf_pJlTbmA9 来源: 恩智浦MCU加油站 作者: 恩智浦MCU加油站 2023-10-26 16:27 次阅读

恩智浦的i.MX RT系列跨界处理器,为在设备端实现智能运算提供了更高性价比的方案,解锁了在嵌入式应用中部署人工智能算法的新途径。

恩智浦的工程师们从多种角度,做了很多有创新的尝试和工作,为客户提供了丰富的选项,也很好地展示了i.MX RT产品的高性能和高扩展适应性。

本文及随后的一些小文将分别介绍这些精彩的成果。

wKgZomU6Il6AP17gAARFeFEne4k452.png

引 言

多目标检测机器学习重要的研究领域之一,可以广泛应用于机器人,安防和工业监控等领域。

针对多目标检测任务,目前比较流行的是基于卷积神经网络(Conventional Neural Network,CNN)的算法,例如Yolo,SSD和RetinaNet等。

然而,目前已有CNN方法均不适用于嵌入式平台的部署,这是因为目标检测是一个比较繁重的任务,而现有的检测模型过于复杂,对平台的算力和内存的需求很高,因此无法将其部署在嵌入式平台。

本文基于开源算法,提出了一种轻量化的目标检测网络,大量运用深度可分离卷积以及全新的尺度变换结构,使得模型计算复杂度和结构得到极大简化,进而使多目标检测在MCU上的实现成为可能。

提出的检测算法在NXP微控制器i.MX RT1170上的部署实验结果表明:该算法极大降低了对于ROMRAM的消耗,运行时间得到大幅度优化,检测速度最高可达10FPS,并且模型精度可以媲美开源的YoloV3-tiny,YoloV4-tiny等模型。

实时多人体检测算法

1. 网络结构设计

本文采用的网络结构设计主要分为两部分,第一部分为网络主体结构,用来逐层提取样本的有效特征。该主体结构借鉴了MobileNetV2的轻量特性,并充分考虑了模型在部署方面对于ROM和RAM的优化。

网络主要特点概括如下:

(1)大量运用深度可分离卷积来减少参数量,进而减少ROM的消耗。深度可分离卷积相对于传统的卷积可以大大较少参数规模。例如对于一个输入有8个通道,输出有16个通道的传统3*3卷积, 其参数量为16*8*3*3=1152;而深度可分离卷积参数量仅有8*3*3+1*1*8*16=200。

(2)模型结构设计上遵循的是加大网络模型深度,缩小每层的宽度,这样带来的好处是减少每层推理所需要的内存占用。这是因为在嵌入式设备中,运行内存极为紧张,而优化过的模型可以减少RAM的使用。

(3)考虑到模型部署需要用到8位整型量化,这里我们采用Relu激活函数。这是因为目前还没有任何研究表明哪种激活函数具有更高的精度,但对于量化来说,显然Relu会比pRelu(图1),leakyRelu或者sigmoid等函数具有更快的推理时间和更低的量化损失。

wKgaomUD8fiARRUWAACuAg5zw3M474.png 图1 Relu和pRelu激活示意图

(4)网络设计中尺度变换结构采用了1*1,3*3和5*5三种卷积核尺寸,进而同时兼顾不同大小目标的定位精度;同时,我们提出的尺度预测结构更为简单,减少了网络模型部署的难度。

2. 网络模型融合压缩与量化

对于训练后的网络模型,可以通过网络模型的融合压缩以及量化技术,加快其在嵌入式设备上的推理时间。

因为本文设计网络中为了使每层数据分布更加均匀(有助于减少整型量化中的损失),采用了Batchnorm对数据进行约束。此外,Batchnorm还可以将输入分布更多的分散在非饱和区,进而减小梯度弥散,加快收敛过程。模型训练结束后,Batchnorm中参数就固化了,可以将其参数融合进卷积层中,最终避免Batchnorm层在实际模型推理中的时间消耗。

模型量化的目的是为了加快模型在MCU上的推理时间,这是因为大多数MCU内核采用Arm Cortex-M 架构,其对定点乘法运算的速度要比浮点运算快得多。此外,模型量化还可以节省模型对于ROM和RAM的需求。

本文采用全8位整型量化的方式对模型进行推理加速。

3. 实验结果分析

本文提出的模型针对目前较为流行的开源公版模型YoloV3-Tiny和YoloV4-Tiny进行对比,实验结果如下:

wKgZomUD8fqAN6oxAAENuEdQmcU630.png
wKgaomUD8fyAJjfqAADSeZrvD2M740.png
wKgZomUD8f6ATkHWAADgzvHFLdk129.png 图2 模型对比实验图

如图2所示,该模型极大地降低了ROM和RAM的占用,这对于内存大小较为紧张的嵌入式设备来说意义重大。

而在推理时间上,本文提出的模型具有更为突出的优势。作者在NXP微控制器i.MX RT1170(ARM Cortex-M7,1GHz)上的实验结果表明,相比开源模型动辄几秒钟的推理时间,我们提出的网络模型将时间消耗控制在200ms以内,使其部署在微控制器上更加高效。

注意,图2中的时间消耗对比是假设YoloV3-Tiny和YoloV4-Tiny均进行8位整型量化,并且直接使用未经修改的开源算法得到的推理时间。实际上,直接使用开源的、未经修改的YoloV3-Tiny和YoloV4-Tiny等网络结构,由于其复杂结构,部署难度较高。而本文提出网络模型在结构上进行了极大优化,可以利用现有开源工具进行量化部署。

对于模型预测精度,作者进行了如图3的测试对比实验。在多个样本集上,本文提出模型的预测精度可以媲美开源的YoloV3-Tiny和YoloV4-Tiny等模型。

wKgZomU6IpSARNKwAAkf-y7Fp0g733.png 图3 模型预测效果对比图

基于i.MX RT1170的实时多人体检测系统

神经网络模型在边缘设备上的部署,是深度学习技术落地的一大关键部分。本文以多人体检测模型为例,分享如何将现有的神经网络模型,部署到NXP的微控制器i.MX RT1170EVK开发板上,并实现实时多人体检测系统。

部署流程如图4所示,首先需要将训练的模型进行模型框架转换,这是因为开源的量化工具仅支持少量的模型框架。

第二步需要对模型进行融合优化,然后利用量化工具将模型进行量化,并转换为MCU可以执行的代码;最后对模型的预处理和后处理进行编程实现,这样摄像头抓取的图像数据就可以进行预处理后送入量化模型,然后根据模型输出特征图进行后处理,提取出有效的候选框作为预测框。

wKgZomUD8hOAcDPhAAEuC5nleH4175.png 图4 神经网络边缘设备部署流程图

本文采用NXP i.MX RT1170EVK开发板进行多人体检测系统的实现。

i.MX RT1170是NXP的一款跨界MCU,采用主频达1GHz的Cortex®-M7内核和主频达400MHz的Cortex-M4,这里我们仅使用M7内核。

此外,RT1170EVK上搭载了MIPI接口的OV5640摄像头,分辨率达到720*1280,同时配有5.5寸高清显示屏,分辨率同样达到720*1280。

这里我们采用FreeRTOS系统进行摄像头的实时读取和LCD的实时显示,摄像头和LCD的分辨率均设为最高的720*1280,刷新率均设为15FPS。

系统实现流程如图5所示,摄像头抓取的图像经过PXP转换,然后进行预处理送入模型,最后经过后处理将预测框显示在LCD上。

wKgaomUD8haAV31YAAI2Qc2KH5Y381.png 图5 人体检测系统实现流程

最终,基于i.MX RT1170的人体检测系统可以实现快速精准的多人体位置预测,测试视频如下。

此外,本文算法的一大优势在于运行时间可控,并不会因为被检测人体数量的多少而改变。模型的速度决定了最远检测距离。以下测试结果分别是算法在10FPS,5FPS和3FPS速度下的最远检测距离。

wKgaomU6IsGAFFnnAAaFBvHJkr0883.png

图6 算法检测距离与速度

结束语

本文给出的多人体检测算法和系统,为在NXP的MCU上部署多目标检测任务带来了更多的可能性。

结合深度学习模型网络的优化,以及模型融合量化等技术,可以在保证模型精度的同时,实现在嵌入式平台上推理速度的最优化,进而才能将深度学习技术更好的落地。

来源: 恩智浦MCU加油站
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理

审核编辑 黄宇

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

    关注

    48

    文章

    7482

    浏览量

    151007
  • NXP
    NXP
    +关注

    关注

    60

    文章

    1267

    浏览量

    183171
  • ROM
    ROM
    +关注

    关注

    4

    文章

    562

    浏览量

    85660
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1367

    浏览量

    114517
  • 算法
    +关注

    关注

    23

    文章

    4599

    浏览量

    92613
收藏 人收藏

    评论

    相关推荐

    基于i.MX RT1170的两轮车数字仪表盘参考设计 全面的技术解读

    采用i.MX RT1170跨界MCU构建的两轮车仪表盘;全包式参考平台:实现更快、更轻松的开发。恩智浦的互联数字仪表盘参考平台使车辆制造商能够为两轮车提供基本的仪表盘功能,同时还支持各种连接用例,提升骑行者体验。
    的头像 发表于 11-03 08:15 1814次阅读
    基于<b class='flag-5'>i.MX</b> <b class='flag-5'>RT1170</b>的两轮车数字仪表盘参考设计 全面的技术解读

    i.MX RT1170的GPIO外设的使用

    在双核的i.MX RT1170下设计应用程序,有一个比较重要的考虑点是片内外设资源共享以及任务分配问题,同样一个任务既可以放在默认主核CM7下做,也可以放在默认从核 CM4下去完成。如果这个任务跟片内外设有关,那就得考虑该外设是否在两个核下设计与使用一致,这在项目开始前必
    的头像 发表于 09-01 08:46 1931次阅读

    i.MX RT1170:VGLite移植RT-Thread Nano过程讲解(下)

    上篇介绍了如何移植 RT-Thread Nano 内核与 Finsh 控制台到 RT1170。本篇继续介绍如何将 NXP 官方的 VGLite API 移植到
    的头像 发表于 11-09 11:22 874次阅读

    i.MX RT1050平台的相关资料推荐

    的首款跨界处理。该处理器具备应用处理的高性能与高度集成的优势,更具有微控制器的易用性和实时功能。NXP Semiconductors(恩
    发表于 11-29 07:19

    i.MX RT1170车规级产品有AEC-Q100认证吗?

    大家好如题,i.MX RT1170车规级产品有AEC-Q100认证吗?如果是,能否提供相关文件?
    发表于 03-15 08:24

    是否可以将SPI接口显示I.MX RT1170一起使用?

    是否可以将 SPI 接口显示I.MX RT1170 一起使用。如果是,请附上可以使用的驱动软件。我找到了 使用 SPI 接口的 NHD_4_3_800480FT_CSXP_CTP-3051926 显示
    发表于 04-04 08:15

    i.MX RT1170自定义引导加载程序,如何在i.MX RT处理上完成?

    我将在我的自定义 i.MX RT1170 板上开发自定义引导加载程序。在我的例子中,闪存驱动程序将通过 USB 读取以更新主要应用程序。 我正在研究
    发表于 05-17 08:13

    恩智浦i.MX RT1170开创GHz MCU时代

    自2017年上市以来,i.MX RT系列取得了优秀的市场表现。i.MX RT1170跨界MCU是恩智浦i.MX
    的头像 发表于 03-22 11:14 3430次阅读

    恩智浦i.MX RT1170在将该系列带上了更高的层面

    自2017年上市以来,i.MX RT系列取得了优秀的市场表现。i.MX RT1170跨界MCU是恩智浦i.MX
    的头像 发表于 05-18 11:15 3740次阅读

    i.MX RT开发笔记-08 | i.MX RT1062嵌套中断向量控制器NVIC(按键中断检测

    系列文章目录i.MX RT开发笔记-01 | 初识 i.MX RT1062 跨界MCUi.MX RT
    发表于 12-01 13:51 2次下载
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>开发笔记-08 | <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1062嵌套中断向量<b class='flag-5'>控制器</b>NVIC(按键中断<b class='flag-5'>检测</b>)

    来数数!这款i.MX RT1170智能厨房解决方案,用到了哪些NXP的黑科技?

    智能厨房解决方案 一款极具科技感的智能厨房解决方案 可以让你通过触摸屏和语音控制 与多种家电进行智能人机交互! 它是如何做到的? i.MX RT1170 1GHz双核跨界MCU GUI Guider
    的头像 发表于 02-04 12:40 827次阅读

    I.MX RT1170配套PMIC PF5020使用方法

    I.MX RT1170将先进的电源管理模块与DC-DC和LDO集成在一起,可降低外部电源的复杂性并简化电源时序。
    的头像 发表于 04-01 15:54 2278次阅读

    i.MX RT1170评估套件快速入门:这份保姆级教程,请收藏!

    恩智浦官网精彩导览 i.MX RT1170评估套件快速入门 i.MX RT1170 是恩智浦推出的首款主频超过1GHz的跨界MCU,结合了强悍的计算能力、多种媒体功能、
    的头像 发表于 05-12 11:55 2074次阅读
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT1170</b>评估套件快速入门:这份保姆级教程,请收藏!

    i.MXRT1060和RT1170上使用高效神经网络进行多人检测

    电子发烧友网站提供《在i.MXRT1060和RT1170上使用高效神经网络进行多人检测.pdf》资料免费下载
    发表于 08-17 10:46 0次下载
    在<b class='flag-5'>i</b>.MXRT1060和<b class='flag-5'>RT1170</b>上使用高效神经网络进行<b class='flag-5'>多人</b><b class='flag-5'>检测</b>

    恩智浦i.MX RT1170 uSDHC eMMC启动时间

    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是恩智浦i.MX RT1170 uSDHC eMMC启动时间。
    的头像 发表于 08-08 15:32 513次阅读
    恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT1170</b> uSDHC eMMC启动时间