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

news2024/11/19 16:47:15

团队介绍

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

在这里插入图片描述

图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.coloradmin.cn/o/1221633.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

腾讯云4核8G服务器配置价格表,轻量和CVM标准型S5实例

腾讯云4核8G服务器S5和轻量应用服务器优惠价格表,轻量应用服务器和CVM云服务器均有活动,云服务器CVM标准型S5实例4核8G配置价格15个月1437.3元,5年6490.44元,轻量应用服务器4核8G12M带宽一年446元、529元15个月,腾讯云…

一文看分布式锁

为什么会存在分布式锁? 经典场景-扣库存,多人去同时购买一件商品,首先会查询判断是否有剩余,如果有进行购买并扣减库存,没有提示库存不足。假如现在仅存有一件商品,3人同时购买,三个线程同时执…

The import xxx.xxx.xxxx is never used

CTRL SHIFT O 就完成了,懒人,代码没洁癖啊,几千上万的代码没用的。

Vue 路由缓存 防止路由切换数据丢失

在切换路由的时候&#xff0c;如果写好了一丢数据在去切换路由在回到写好的数据的路由去将会丢失&#xff0c;这时可以使用路由缓存技术进行保存&#xff0c;这样两个界面来回换数据也不会丢失 在 < router-view >展示的内容都不会被销毁&#xff0c;路由来回切换数据也…

HP惠普暗影精灵9笔记本电脑OMEN by HP Transcend 16英寸游戏本16-u0000原厂Windows11系统

惠普暗影9恢复出厂开箱状态&#xff0c;原装出厂Win11-22H2系统ISO镜像 下载链接&#xff1a;https://pan.baidu.com/s/17ftbBHEMFSEOw22tnYvPog?pwd91p1 提取码&#xff1a;91p1 适用型号&#xff1a;16-u0006TX、16-u0007TX、16-u0008TX、16-u0009TX、16-u0017TX 原厂系…

【AI视野·今日CV 计算机视觉论文速览 第279期】Tue, 31 Oct 2023

AI视野今日CS.CV 计算机视觉论文速览 Tue, 31 Oct 2023 Totally 165 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computer Vision Papers SimMMDG: A Simple and Effective Framework for Multi-modal Domain Generalization Authors Hao Dong, Ismail Nejjar, …

【力扣】从零开始的动态规划

【力扣】从零开始的动态规划 文章目录 【力扣】从零开始的动态规划开头139. 单词拆分解题思路 45. 跳跃游戏 II解题思路 5. 最长回文子串解题思路 1143. 最长公共子序列解题思路 931. 下降路径最小和解题思路 开头 本力扣题解用5题来引出动态规划的解题步骤&#xff0c;用于本…

各机构如何加强网络渗透、“渗透”防御

数据渗透&#xff0c;例如黑客攻击和“渗透”&#xff0c;或未经授权的信息传输。 联邦调查局、国家安全局以及网络安全和基础设施安全局最近的联合报告证明&#xff0c;网络安全仍然是当今国防部门面临的两个最大的网络威胁。 所谓的零日攻击尤其有害&#xff0c;因为组织在…

基于SSM的智能仓储系统研究与设计

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

C语言变量与常量

跟着肯哥&#xff08;不是我&#xff09;学C语言的变量和常量、跨文件访问、栈空间 栈空间还不清楚&#xff0c;期待明天的课程内容 C变量 变量&#xff08;Variable&#xff09;是用于存储和表示数据值的名称。 主要包括四个环节&#xff1a;定义、初始化、声明、使用 在我刚…

gorm的简单操作

1. 什么是orm ORM全称是&#xff1a;Object Relational Mapping(对象关系映射)&#xff0c;其主要作用是在编程中&#xff0c;把面向对象的概念跟数据库中表的概念对应起来。举例来说就是&#xff0c;我定义一个对象&#xff0c;那就对应着一张表&#xff0c;这个对象的实例&a…

LabVIEW编程开发NI-USRP

LabVIEW编程开发NI-USRP 可编程性是SDR的关键特性&#xff0c;它使人们能够将无线电外围设备转换为先进的无线系统。USRP是市场上最开放、最通用的SDR&#xff0c;可帮助工程师在主机和FPGA上使用各种软件开发工具构建系统。 有多种选项可用于对基于SDR的系统的主机进行编程。…

wpf devexpress Property Gird管理集合属性

Property Grid允许你添加&#xff0c;浏览和编辑集合属性

【2022改良版】学法减分助手PRO小程序源码

【2022改良版】学法减分助手PRO小程序源码 &#xff0c;交管推出个学法减分&#xff0c;每个驾驶员可以把被扣的6分&#xff0c;以看视频答题的形式学习回来&#xff0c;然后答题这个一共二十道题每道题60秒&#xff0c; 有好多人不会&#xff0c;用咱们的小程序就可以模拟练习…

鸿蒙开发|鸿蒙系统项目开发前的准备工作

文章目录 鸿蒙项目开发的基本流程介绍鸿蒙项目开发和其他项目有什么不同成为华为开发者-注册和实名认证1.登录官方网站 鸿蒙项目开发的基本流程介绍 直接上图&#xff0c;简单易懂&#xff01; 整个项目的开发通过4个模块进行&#xff1a;开发准备、开发应用、运行调试测试和发…

Typora for Mac:打造全新文本编辑体验

Typora for Mac是一款与众不同的文本编辑器&#xff0c;它不仅拥有直观易用的界面&#xff0c;还融合了Markdown语法和富文本编辑的功能&#xff0c;为用户带来了前所未有的写作和编辑体验。 一、简洁明了的界面设计 Typora for Mac的界面简洁明了&#xff0c;让用户可以专注…

解决更换NodeJs版本后npm -v返回空白

一、问题描述 win11电脑上输入cmd进入控制台&#xff0c;输入 node --version 有正常返回安装的nodejs的版本号 再输入 npm -v 返回空白。正常情况应该是要返回版本号。 二、问题背景 最近准备学习vue&#xff0c;在不久前已经安装了NodeJs和python。运行了好几个开源项…

2023年11月15号期中测验判断题(Java)

1-1 局部变量可以与成员变量重名。 正确答案&#xff1a;T 解释&#xff1a; 局部变量可以和成员变量重名&#xff0c;通常&#xff0c;为了区分局部变量和成员变量&#xff0c;会使用this关键字&#xff08;C称this指针&#xff0c;python是self关键字&#xff09;来特别声…

vim模式用法总结

0.前言 我们用gcc编译文件的时候&#xff0c;如果发生了下面的错误&#xff0c;那么如何用vim打开的时候就定位到&#xff1f; 我们可以知道&#xff0c;这是第6行出现了错误&#xff1b; 所以我们使用vim打开的时候多输入个这个&#xff0c;我们就可以快速定位了 vim test.c 6…

centos7 killall命令安装、使用

安装 在线安装命 输入下面命令 yum install psmisc -y Psmisc软件包包含三个帮助管理/proc目录的程序。 安装下列程序: fuser, killall,pstree和pstree.x11(到pstree的链接) fuser #显示使用指定文件或者文件系统的进程的PID。 killall #杀死某个名字的进程&#xff0c;它…