当前位置: 首页 > article >正文

【2021集创赛】基于arm Cortex-M3处理器与深度学习加速器的实时人脸口罩检测 SoC

团队介绍

参赛单位:深圳大学
队伍名称:光之巨人队
指导老师:钟世达、袁涛
参赛队员:冯昊港、潘家豪、慕镐泽

在这里插入图片描述

图1 团队风采

1. 项目简介

新冠疫情席卷全球,有效佩戴口罩可以极大程度地减小病毒感染的风险。本项目开发了一种如图所示的基于arm Cortex-M3处理器和深度学习加速器的人脸口罩检测SoC,该SoC面向商场、地铁站等流动人口聚集场所,能够实现高性能、高稳定性、低功耗的人脸口罩实时检测。此外,该SoC还具备社交距离检测、蓝牙无线通信等功能,可以在特定应用场景中协助配合人脸口罩检测系统,加强对疫情的阻击防控。
在这里插入图片描述

图2 系统通信全景图

2. 系统架构

本项目采用arm公司提供的DesignStart Eval版本的Cortex-M3处理器作为系统的中央处理单元,通过CMSDK工具设计了AHB总线系统,在基于单级AHB总线的框架下,通过APB桥接器和AXI桥接器扩展了APB总线和AXI总线,进而构成该SoC高效的总线框架。通过搭建高效的总线系统将M3处理器与硬件加速器、高速AHB外设以及低速APB外设高效互联,从而完整地实现了一个如图 2 所示的具有人脸检测和人脸口罩佩戴检测功能以及社交距离监测报警功能的 SoC 系统,并且操作者可以通过“功能按键”切换系统的功能模式。
系统的主要功能器件包括arm Cortex-M3处理器、两组硬件加速器、AHB总线矩阵、AXI互联模块、APB桥接器、DDR3存储器、摄像头模块、片上存储模块、HDMI显示模块、APB外设、GUI图形界面、蓝牙通信模块、超声测距模块等。其中,决策树硬件加速器、OV5640、DDR3等关键模块通过AXI桥接器的方式挂载在AHB总线上,实现与Cortex-M3处理器的高速互联,而LED、蓝牙串口模块等外设则挂载在APB总线上,系统总框架如图3所示。
在这里插入图片描述

 图 3 系统总线框架图

3. 功能介绍

控制功能:本项目中Cortex-M3处理器通过自搭建的总线系统与两组硬件加速器、高速AHB外设以及低速APB外设进行协同通信,M3处理器通过逻辑控制器对摄像头、硬件加速器以及其他外设功能模块进行调用。在对每一帧图像进行检测的过程中,M3处理器首先控制摄像头进行图像采集,采集的每一帧图像将被存储在DDR3中,之后处理器会唤醒‘人脸检测加速器’和‘人脸口罩检测加速器’对存储器中的图像数据进行读取并检测,检测的结果交由处理器进行图像后处理(画框),最后的处理结果将通过显示器显示以及GUI进行实时监测。此外,为了保证SoC的工作效率,我们的设计将一部分控制工作交由APB总线上的逻辑控制器,负责数据流信息和地址信息的分配控制。

人脸口罩检测功能:人脸口罩检测过程中,‘人脸检测加速器’和‘人脸口罩佩戴检测加速器’将会分别从DDR3和片上BRAM存储单元中读取需要检测的图像数据以及权重参数文件中的数据,之后如图4所示,这两组并行的硬件加速器将会同时对读取的图像进行移窗检测。如图5所示,两组加速器的启动过程互不影响,相互独立,均由M3处理器的中断指令控制,最后成功通过所有决策树单元的窗口将被设为感兴趣的对象输出给处理器。
在这里插入图片描述

图 4 并行移窗检测

在这里插入图片描述

图 5 两组加速器并行检测

检测结果输出功能:如图6所示,经M3处理器以及两组硬件加速器处理后的图像可通过HDMI输出模块输出到显示屏中进行显示。其中,未佩戴口罩的人脸使用‘绿框’进行标识,佩戴了口罩的人脸使用‘红框’进行标识。此外,考虑到无需视频显示的情况,检测结果也可由串口、LED灯、蜂鸣器等外设进行输出。为了实现更便捷的人机交互功能,本项目还设计了专用的图形界面(GUI),如图7所示,该界面使用Python并基于Qt进行设计,用于实时显示系统检测到的人脸数量,未佩戴口罩的人脸数量、系统实时检测平均帧率以及超声波测距模块所测得的距离等信息。
在这里插入图片描述

图 6 显示屏输出

在这里插入图片描述

图 7 GUI图形界面

社交距离检查功能:疫情期间保持安全的社交距离是避免感染风险的有效手段,针对此场景需求,我们模拟了产品小型化后随身佩戴的场景,并且添加了社交距离检测功能,使产品能够通过“功能按键”实现人脸口罩检测和社交距离检测的自由切换。在使用社交距离检测模式时,当系统检测到有未佩戴口罩的人脸且进入危险的社交距离(距离小于1米)后,系统中的LED和蜂鸣器便会启动进行报警提示,提醒使用者远离该未佩戴口罩的人,同时这些数据也会被同步到GUI中进行实时显示。

蓝牙无线通信功能:为了避免有线数据传输带来的不便,本项目还添加了蓝牙无线通信模块,通过分别与FPGA开发板和PC连接的两个蓝牙模块的主从通信,SoC实时检测到的未佩戴口罩的人脸数目、佩戴了口罩的人脸数目、系统检测平均帧率、检测距离等信息均可通过蓝牙模块传输到PC上,再通过计算机中的GUI进行实时显示,提高了系统部署的灵活性,更适应市场需求。

4. 系统优势

  • 人脸口罩佩戴检测无人系统
  • 面向社交的近距离检测功能
  • 基于DL的并行移窗加速器
  • 低延迟高性能系统总线架构
  • 低能耗高稳定高效运行能力
  • 显示屏蜂鸣器LED三重提醒
  • 面向管理者的同步
  • 支持蓝牙无线数据传输*

5. 参赛感受和分享

随着物联网和边缘智能的发展,将有越来越多的AI模型部署在边缘设备之上,如何低功耗地执行智能算法已经成为研究和产品开发的热点,通过参加本次arm杯比赛,进一步增加了我们片上系统的设计经验,同时切身体会到设计部署智能算法到边缘系统中的问题,整个项目分为SoC搭建和智能算法模型设计两部分进行,两条路线的协调整合需要团队成员之间不断的沟通配合,在团队协作以及团队老师的指导下,最终我们成功完成了整个系统的设计并取得了全国一等奖的好成绩,本次比赛也会成为日后科研和工作中的宝贵经验。

附作品视频展示

视频展示

作品内容来源于光之巨人队,转载请标明出处。欢迎大家参加极术社区组织的有奖征集|秀出你的集创赛作品风采,免费电子产品等你拿~活动,10月1日截止~


http://www.kler.cn/a/133921.html

相关文章:

  • 【最新版】Stable Diffusion4.9(AI绘画)下载及安装教程(附软件安装包)!
  • 45.第二阶段x86游戏实战2-hook监控实时抓取游戏lua
  • 知识图谱6:neo4j查询语句
  • ReactPress技术揭秘
  • Java 网络编程(一)—— UDP数据报套接字编程
  • centos7上安装mysql
  • DHCP配置命令
  • 【libGDX】使用ShapeRenderer绘制几何图形
  • Python hashlib 模块详细教程:安全哈希与数据完整性保护
  • vite+vue3+electron开发环境搭建
  • Rust开发——Rust开发中thread_local
  • 系列六、Java垃圾回收器主要有哪些?
  • PC端使子组件的弹框关闭
  • Java排序算法之基数排序
  • Libvirt-Qemu-Kvm 操作手记
  • 麒麟信安助力长沙市就业与社保数据服务中心政务系统向自主创新演进
  • 股东入股可用的出资形式主要有哪些
  • 工程化实战 - 前端AST(进阶)
  • 10_6 input输入子系统,流程解析
  • FISCO BCOS 3.0【01】搭建第一个区块链网络
  • 前台页面从数据库中获取下拉框值
  • SpringBoot项目连接linux服务器数据库两种解决方法(linux直接开放端口访问本机通过SSH协议访问,以mysql为例)
  • golang学习笔记——接口interfaces
  • cad提示由于找不到mfc140u.dll,无法继续执行代码怎么修复
  • Visual Studio Code---介绍
  • Android Frgment中onActivityResult无效的问题