【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日截止~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/156039.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JWT登录认证(3拦截器)

Jwt登录认证(拦截器): 使用拦截器统一验证令牌 登录和注册接口需要放行 interceptors.LoginInterceptor:(注册一个拦截器) package com.lin.springboot01.interceptors;import com.lin.springboot01.pojo.…

wpf devexpress添加TreeListControl到项目

此教程示范如何添加TreeListControl到项目和绑定控件自引用数据源: 添加数据模型 绑定tree,并添加如下字段到数据源对象: Key字段包含唯一值索引节点 Parent字段包含父索引节点 添加数据模型(Employee和Staff类)到…

物理驱动深度学习方法总结

一、物理驱动深度学习方法总结 现有博主更新物理驱动深度学方法总体介绍 二、 PINN介绍 PINN综述Blog介绍:内嵌物理知识神经网络 (Physics Informed Neural Network,简称PINN) 是一种科学机器在传统数值领域的应用方法&…

软件测试基础 —— 单元测试

Hello!大家好,我是BugBear,一个专注于分享软件测试干货的测试开发。 对于软件测试,我们先按照开发阶段来进行划分,将软件测试分为单元测试、集成测试、系统测试、验收测试,下面我们来聊聊单元测试。 1、什…

JVM-HotSpot虚拟机对象探秘

目录 一、对象的实例化 (一)创建对象的方式 (二)创建对象的步骤 二、对象的内存布局 (一)对象头 (二)实例数据 (三)对齐填充 三、 对象的访问定位 &…

小迈迈驰组态软件支持国产龙芯2K1000等处理器

自2019年起,南京迈思德电气自动化有限公司组织研发团队,进行跨平台组态软件的研发,适配国产处理器,目前已经完成单机版产品的研发,并在基于龙芯2K1000处理器[Loongnix操作系统]的加固人机界面产品上应用。 Loongnix是龙…

可逆矩阵的性质

如果矩阵A可逆,那么它的逆矩阵也可逆,并且如果矩阵A可逆,假设是一个不为0的数,那么也可逆,并且如果矩阵A和都可逆,而且它们的阶数也相同,那么它们的乘积也是可逆的,并且如果矩阵A可逆…

docker数据卷详细讲解及数据卷常用命令

docker数据卷详细讲解及数据卷常用命令 Docker 数据卷是一种将宿主机的目录或文件直接映射到容器中的特殊目录,用于实现数据的持久化和共享。Docker 数据卷有以下特点: 数据卷可以在一个或多个容器之间共享和重用,不受容器的生命周期影响。…

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux 进程管理 2》(6)

《Linux操作系统原理分析之Linux 进程管理 2》(6) 4 Linux 进程管理4.2 Linux 进程的状态和标识4.2.1 Linux 进程的状态及转换4.2.2 Linux 进程的标识4.2.3 进程标识哈希表 4 Linux 进程管理 4.2 Linux 进程的状态和标识 4.2.1 Linux 进程的状态及转换…

提高Producer的发送速度

发送一条消息出去要经过三步,一是客户端发送请求到服务器,二是服务器处理该请求,三是服务器向客户端返回应答,一次消息的发送耗时是上述三个步骤的总和。在一些对速度要求高,但是可靠性要求不高的场景下,比…

2023年中国机动车拍卖网络化趋势加速,网络拍卖专场数量大幅上升至47489场[图]

2022年,由于机动车拍卖网络化趋势继续加速,网络拍卖专场数量大幅上升,全国机动车专场拍卖会高达59450场,较上年攀升125.31%。在389家拍卖企业中,举办场次超过100场的企业有27家,合计54850场,占比…

11.4MyBatis(基础)

一.搭环境 1.创建完SSM项目,添加MySQL和MyBatis后,项目启动一定会报错,这是正常情况. 2.配置文件 properties: server.port9090 spring.datasource.urljdbc:mysql://127.0.0.1:3306/test1?characterEncodingutf8&useSSLfalse spring.datasource.usernameroot spring.d…

快速入门:构建您的第一个 .NET Aspire 应用程序

##前言 云原生应用程序通常需要连接到各种服务,例如数据库、存储和缓存解决方案、消息传递提供商或其他 Web 服务。.NET Aspire 旨在简化这些类型服务之间的连接和配置。在本快速入门中,您将了解如何创建 .NET Aspire Starter 应用程序模板解决方案。 …

贪吃蛇、俄罗斯方块

贪吃蛇 一、创建新项目 创建一个新的项目,并命名。 创建一个名为images的文件夹用来存放游戏相关图片。 然后再在项目的src文件下创建一个com.xxx.view的包用来存放所有的图形界面类, 创建一个com.xxx.controller的包用来存放启动的入口类(控制类) 二…

通信原理板块——脉冲编码调制(PCM)

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 1、脉冲编码调制PCM原理 将模拟信号…

C++第一讲:起源和规范

面向过程和面向对象 大千世界中,事务的发展规律都是面向过程的状态。例如一颗种子从生根到发芽,从发芽到开花,从开花到结果。 但是面向过程是一个更贴近**“机械”**的表达方式,而更贴近人类思想的却是面向对象的表达方式。 以…

2023年中国冲击波治疗仪市场发展趋势分析:未来市场增长空间更大[图]

冲击波在临床医学领域最早应用于体外冲击波碎石,在二十世纪八十年代末期,体外冲击波碎石技术开始被运用到骨科及康复理疗领域,经过十余年的临床研究,冲击波疗法日益完善,应用范围也日益扩大。冲击波作为一种介于保守疗…

【MATLAB】史上最全的9种数据拟合算法全家桶

有意向获取代码,请转文末观看代码获取方式~ 大家吃一顿火锅的价格便可以拥有9种数据拟合算法,绝对不亏,知识付费是现今时代的趋势,而且都是我精心制作的教程,有问题可随时反馈~也可单独获取某一算法的代码&#xff08…

什么是等保测评?

随着近几年随着网络技术的发展,互联网应用的普及和丰富,互联网安全问题也日益严重,利用信息技术进行的高科技犯罪事件呈现增长态势。从2004年度CNCERT的信息网络安全工作报告中我们看到,信息网络安全事故在逐年上升,20…

leetcode:移除链表元素

1.题目描述 题目链接:203. 移除链表元素 - 力扣(LeetCode) 2.解题思路 我们定义一个cur指向当前结点,定义prev指向前一个结点,next指向下一个结点 如果cur->valval,那我们就删除这个结点 怎么删除呢…