基于单片机系统的人脸与人脸口罩佩戴检测方法及装置

文档序号:29969444发布日期:2022-05-11 11:05阅读:354来源:国知局
基于单片机系统的人脸与人脸口罩佩戴检测方法及装置

1.本发明涉及深度学习及边缘计算技术领域,尤其涉及一种基于单片机系统的人脸与人脸口罩佩戴检测方法、装置及可读存储介质。


背景技术:

2.随着第五代移动网络(5g)通信技术和人工智能(ai)的快速发展,物联网(iot)和边缘计算给我们的日常生活带来了新的应用革命。由于具有低功耗、小体积、高性能等特点,单板计算机(sbc)被广泛应用于物联网场景,成为人工智能芯片等边缘加速器的主要载体。文献“t.-h.jung,b.cates,i.-k. choi,s.-h.lee,and j.-m.choi,“multi-camera-based person recognitionsystem for autonomous tractors,”designs,vol.4,no.4,p.54,dec.2020”提出了基于sbc

nvidia jetson agx xavier’和深度学习算法yolov3在拖拉机上实现人体检测的方法,以保证拖拉机的安全作业。可以看出,当sbc与各种边缘加速器相结合时,我们可以在其上运行许多高性能的ai算法,为实现功能强大的智能应用提供了无限的可能。
3.如何将上述ai算法与人脸及人脸口罩佩戴检测结合,实现无需工作人员亲临现场,无接触监测、减少人员聚集、高效提醒等功能,业已成为行业内亟待解决的技术问题。此外,人脸及人脸口罩的佩戴检测在餐厅后厨、营运车辆司机口罩佩戴监管、实验室、食品加工厂等场景下也有十分重要的意义。
4.有鉴于此,有必要对目前人脸与人脸口罩佩戴检测技术进行进一步的改进。


技术实现要素:

5.为解决上述至少一技术问题,本发明的主要目的是提供一种基于单片机系统的人脸与人脸口罩佩戴检测方法、装置及可读存储介质。
6.为实现上述目的,本发明采用的第一个技术方案为:提供一种基于单片机系统的人脸与人脸口罩佩戴检测方法,包括:
7.获取抓拍的视频图像,从视频图像中提取任一图像帧作为待检测的目标图像帧;
8.在所述目标图像帧的图像区域设置两个检测窗口并作为一组并行检测窗口,移动所述并行检测窗口,以遍历目标图像帧的所有图像区域;
9.利用人脸检测加速器单元及人脸口罩检测加速器单元分别对所有并行检测窗口区域的图像灰度信息进行并行级联决策树级联检测,得到目标对象,所述目标对象包括人脸或人脸口罩佩戴;
10.分别输出人脸与人脸口罩佩戴的检测信息。
11.其中,所述并行级联决策树中级联的决策树数量为468棵且每棵决策树深度为6,所述根据所述并行检测窗口在目标图像帧的图像区域的移动位置进行并行级联决策树级联检测,具体包括:
12.获取任一需要决策的检测窗口区域的图像灰度信息;
13.确定所述检测窗口区域的图像灰度信息是否通过第一级二元决策树的所有二元决策深度检测;
14.若是则继续对所述图像灰度信息在下一级联的二元决策树的所有二元决策深度进行检测,直至通过所有级联的468棵二元决策树;
15.在检测窗口区域的图像灰度信息通过所有级数的二元决策树级数检测时,确定所述检测窗口区域包含目标对象。
16.其中,所述确定所述检测窗口区域的图像灰度信息是否通过第一级二元决策树的所有二元决策深度检测,具体包括:
17.提取所述第一级二元决策树的二元决策深度累积结果对应的置信度以及对应第一级二元决策树的置信度阈值;
18.在提取的置信度大于对应第一级二元决策树的置信度阈值时,确定所述检测窗口区域的图像灰度信息通过第一级二元决策树的检测。
19.其中,所述提取所述第一级二元决策树的二元决策深度累积结果对应的置信度以及对应第一级二元决策树的置信度阈值之后,还包括:
20.在提取的置信度小于或等于对应第一级二元决策的置信度阈值时,确定所述检测窗口区域的图像灰度信息未通过第一级二元决策树的检测,直接终止级联检测并确定所述检测窗口区域没有包含目标对象。
21.其中,所述移动所述并行检测窗口,以遍历目标图像帧的所有图像区域,具体包括:
22.标记并行检测窗口的初始坐标、尺寸及移窗步长,所述移窗步长包括横向移窗步长及纵向移窗步长;
23.根据并行检测窗口的初始坐标及横向移窗步长横向移动并行检测窗口,确定并行检测窗口横向移窗是否完成;
24.在并行检测窗口横向移窗完成时,根据并行检测窗口的初始坐标及纵向移窗步长纵向移动并行检测窗口,并根据已纵向移窗的并行检测窗口的移窗坐标及横向移窗步长继续横向移窗,以遍历目标图像帧的所有图像区域;
25.所述分别输出人脸与人脸口罩佩戴的检测信息,具体包括:
26.分别输出人脸与人脸口罩佩戴的检测结果的坐标信息及并行检测窗口尺寸信息。
27.其中,所述遍历目标图像帧的所有图像区域之后,还包括:
28.等比例放大并行检测窗口的初始坐标、尺寸及移窗步长;
29.确定放大后并行检测窗口的尺寸是否大于预设值;
30.若并行检测窗口的尺寸小于预设值,则根据放大后的移窗步长及初始坐标对并行检测窗口进行横向移窗及纵向移窗,以遍历目标图像帧的所有图像区域;
31.进行下一次等比例放大并行检测窗口,直至在等比例放大后的并行检测窗口尺寸大于或等于预设值时,停止对该次等比例放大的并行检测窗口进行移窗处理;以及
32.过滤并行检测窗口中重叠检测目标对象。
33.其中,所述得到目标对象之后,还包括:
34.对所述目标对象的数量进行统计;
35.所述分别输出人脸与人脸口罩佩戴的检测信息,具体包括:
36.分别输出人脸与人脸口罩佩戴的检测结果的坐标信息及目标对象所处位置的检测窗口尺寸信息。
37.为实现上述目的,本发明采用的第二个技术方案为:提供一种基于单片机系统的人脸与人脸口罩佩戴检测装置,包括:
38.获取模块,用于获取抓拍的视频图像,从视频图像中提取任一图像帧作为待检测的目标图像帧;
39.遍历模块,用于在所述目标图像帧的图像区域设置两个检测窗口并作为一组并行检测窗口,移动所述并行检测窗口,以遍历目标图像帧的所有图像区域;
40.检测模块,用于利用人脸检测加速器单元及人脸口罩检测加速器单元分别对所有并行检测窗口区域的图像灰度信息进行并行级联决策树级联检测,得到感兴趣的目标对象,所述目标对象包括人脸或人脸口罩佩戴;
41.输出模块,用于分别输出人脸与人脸口罩佩戴的检测信息。
42.为实现上述目的,本发明采用的第三个技术方案为:提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述方法中的步骤。
43.为实现上述目的,本发明采用的第四个技术方案为:提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述方法中的步骤。
44.本发明的技术方案采用先获取抓拍的视频图像,从视频图像中提取任一图像帧作为待检测的目标图像帧,然后在所述目标图像帧的图像区域设置两个检测窗口并作为一组并行检测窗口,移动所述并行检测窗口,以遍历目标图像帧的所有图像区域,再利用人脸检测加速器单元及人脸口罩检测加速器单元分别对所有并行检测窗口区域的图像灰度信息进行并行级联决策树级联检测,得到目标对象,所述目标对象包括人脸或人脸口罩佩戴,最后分别输出人脸与人脸口罩佩戴的检测信息,能够实现对人脸与人脸口罩佩戴的无人接触检测,提高人脸与人脸口罩佩戴检测速度,还能够提高检测结果的准确性和可靠性。
附图说明
45.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
46.图1为本发明一实施例基于单片机系统的人脸与人脸口罩佩戴检测方法的方法流程图;
47.图2为本发明一实施例基于单片机系统的人脸与人脸口罩佩戴检测方法的具体流程图;
48.图3为本发明人脸检测决策树级联器参数模型训练roc曲线;
49.图4为本发明人脸口罩佩戴检测决策树级联器参数模型训练roc曲线;
50.图5为本发明一实施例并行级联决策树级联检测的检测流程图;
51.图6为本发明人脸检测与人脸口罩佩戴检测的效果图;
52.图7为本发明一基于单片机系统的人脸与人脸口罩佩戴检测装置的模块方框图;
53.图8为本发明一实施例电子设备的模块方框图。
54.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
55.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
56.需要说明,本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
57.区别于现有技术大多场所需要工作人员检测人脸与人脸口罩佩戴,无法实现无人值守的人脸与人脸口罩佩戴检测的问题,本发明提供了一种基于单片机系统的人脸与人脸口罩佩戴检测方法,旨在实现无人接触的人脸与人脸口罩佩戴检测,能够提高检测效率,同时还能够提高检测结果的准确性与可靠性。
58.请参照图1及图2,图1为本发明第一实施例基于单片机系统的人脸与人脸口罩佩戴检测方法的方法流程图,图2为本发明第一实施例基于单片机系统的人脸与人脸口罩佩戴检测方法的具体流程图。在本发明实施例中,该基于单片机系统的人脸与人脸口罩佩戴检测方法,该单片机系统包括armcortex-m3处理器、人脸检测加速器单元、人脸口罩检测加速器单元。在人脸检测加速器单元与人脸口罩检测加速器单元触发时,armcortex-m3处理器进入休眠状态,在人脸检测加速器单元与人脸口罩检测加速器单元检测完成时,armcortex-m3处理器恢复工作,在具体实现时可以配置两个中断信号accstart()和waitforreturn()来实现。该方法具体包括如下步骤:
59.s110、获取抓拍的视频图像,从视频图像中提取任一图像帧作为待检测的目标图像帧。具体的,本方案中利用摄像机实时采集视频图像,然后对采集的视频图像进行存储,并从视频图像中提取任一帧图像帧作为人脸检测加速器单元与人脸口罩检测加速器单元的待检测的目标图像帧。在步骤s110之前,还包括初始化检测结果存储数组rcsq[],该数组每四位为一组,从低位到高位分别存储横坐标、纵坐标、区域边长及置信度,以及设置每次移窗区域的最大边长和每次移窗的移窗步长,本方案中检测窗口为正方形,该区域边长即为并行检测窗口的尺寸。
[0060]
s120、在所述目标图像帧的图像区域设置两个检测窗口并作为一组并行检测窗口,移动所述并行检测窗口,以遍历目标图像帧的所有图像区域。具体的,在选出任一目标图像帧后,在目标图像帧的图像区域上设置两个相同大小且并排设置的检测窗口,作为一组并行检测窗口。也即,本方案中利用并行检测窗口并移动并行检测窗口可以将目标图像帧分成若干检测单元,然后对所有检测单元进行检测,以对目标图像帧进行检测。
[0061]
具体的,所述移动所述并行检测窗口,以遍历目标图像帧的所有图像区域,具体包
括:
[0062]
标记并行检测窗口的初始坐标、尺寸及移窗步长,所述移窗步长包括横向移窗步长及纵向移窗步长;
[0063]
根据并行检测窗口的初始坐标及横向移窗步长横向移动并行检测窗口,确定并行检测窗口横向移窗是否完成;
[0064]
在并行检测窗口横向移窗未完成时,继续对并行检测窗口进行横向移窗;
[0065]
在并行检测窗口横向移窗完成时,根据并行检测窗口的初始坐标及纵向移窗步长纵向移动并行检测窗口,并根据已纵向移窗的并行检测窗口的移窗坐标及横向移窗步长继续横向移窗,以遍历目标图像帧的所有图像区域;
[0066]
所述分别输出人脸与人脸口罩佩戴的检测信息,具体包括:分别输出人脸与人脸口罩佩戴的检测结果的坐标信息及并行检测窗口尺寸信息。
[0067]
具体的,上述并行检测窗口包括两个检测窗口,分别记录两个检测窗口的初始坐标及移窗步长,该初始坐标包括横坐标和纵坐标。本方案通过横向及纵向移动并行检测窗口,以实现对目标图像帧的所有图像区域进行检测。具体移窗时,并行检测窗口位于目标图像帧的左上角区域,先对并行检测窗口进行横向移窗,横向移窗后对并行检测窗口进行纵向移窗,并在纵向移窗完成后,继续对并行检测窗口进行下一轮横向移窗,直至遍历完目标图像帧的所有图像区域,横向移窗和纵向移窗均结束时。在并行检测窗口检测完成后,可以输出人脸与人脸口罩佩戴的检测结果的坐标信息及并行检测窗口尺寸信息,坐标信息对应图像区域所在目标图像帧中的位置,尺寸信息对应图像区域的边长大小,以方便快速查找出目标位置。
[0068]
进一步的,所述遍历目标图像帧的所有图像区域之后,还包括:
[0069]
等比例放大并行检测窗口的初始坐标、尺寸及移窗步长;
[0070]
确定放大后并行检测窗口的尺寸是否大于预设值;
[0071]
若并行检测窗口的尺寸小于预设值,则根据放大后的移窗步长及初始坐标对并行检测窗口进行横向移窗及纵向移窗,以遍历目标图像帧的所有图像区域;
[0072]
进行下一次等比例放大并行检测窗口,直至在等比例放大后的并行检测窗口尺寸大于或等于预设值时,停止对该次等比例放大的并行检测窗口进行移窗处理;以及
[0073]
过滤并行检测窗口中重叠检测目标对象。
[0074]
本实施例中,除了对设定边长的并行检测窗口进行横向移窗及纵向移窗外,还包括对并行检测窗口进行等比例放大,也即,等比例放大预设边长的并行检测窗口尺寸,然后对等比例放大后的并行检测窗口进行横向及纵向移窗,具体的移窗方式请参照上述的实施例,此处不再赘述。为了更好地对并行检测窗口进行放大处理,本方案还包括将等比例放大后的并行检测窗口尺寸与预设值进行比较,若等比例放大后的并行检测窗口尺寸小于预设值,则继续对并行检测窗口的初始坐标及移窗步长横向移动及纵向移动并行检测窗口,以遍历目标图像帧的所有图像区域,横向及纵向移窗结束,表示该等比例放大并行检测窗口的人脸与人脸口罩佩戴检测完成,此时,本方案开始下一轮的等比例放大并行检测窗口尺寸,然后继续对放大后的并行检测窗口的尺寸与预设值进行判断。若该轮等比例放大后的并行检测窗口尺寸小于或等于预设值,停止对该次等比例放大的并行检测窗口进行移窗处理。纵向移窗的目的在于尽可能的保证检测目标图像帧区域完全包括人脸及人脸口罩佩戴
区域,并且去除其他区域,提高检测识别效率及检测的准确性。考虑到经过多次等比例放大检测窗口的尺寸,检测的目标对象可能存在重合,本方案还需要过滤重叠的检测目标对象,以对单个目标对象输出唯一的检测结果,提高检测结果的准确性。在过滤重叠的检测目标时,还可以对每轮检测到的额外重叠目标进行过滤。
[0075]
具体的,所述得到目标对象之后,还包括:
[0076]
对所述目标对象的数量进行统计;
[0077]
所述分别输出人脸与人脸口罩佩戴的检测信息,具体包括:
[0078]
分别输出人脸与人脸口罩佩戴的检测结果的坐标信息及目标对象所处位置的检测窗口尺寸信息。本方案能够快速统计目标对象的数量,以及快速对目标对象进行定位。
[0079]
s130、利用人脸检测加速器单元及人脸口罩检测加速器单元分别对所有并行检测窗口区域的图像灰度信息进行并行级联决策树级联检测,得到目标对象,所述目标对象包括人脸或人脸口罩佩戴。具体的,人脸检测加速器单元及人脸口罩检测加速器单元可以分别对并行检测窗口区域进行并行级联决策树级联检测,并输出目标对象。在人脸检测加速器单元及人脸口罩检测加速器单元没有检测到目标对象时,输出无目标对象的提示消息。
[0080]
在对上述并行检测窗口区域的图像灰度信息进行并行级联决策树级联检测之前,本方案还需要对人脸检测决策树级联器参数模型进行训练,选用caltech_webfaces数据集,基于简单的人体测量关系和双眼的位置坐标信息估计每个人脸的位置和比例,推导出每个作为正样本的人脸的边界框。据此从数据集中提取出所有框出的大约20000个人脸图像,并通过规模和位置的小随机扰动从每个正面生成15个正训练样本。最终共产生大约300000个正样本。对于每个阶段的训练学习,本设计通过收集之前学习的任何阶段都没有丢弃的区域,从不包含任何人脸的大量图像中提取300000个负样本。最终得到的人脸检测参数模型大小只有234kb。同样地,对于人脸口罩检测决策树级联器参数模型的训练,本设计选择了kaggle中的face_mask_detection数据集。与人脸检测的配准方式不同,本设计通过大量测试发现当提取的正样本区域包含人脸除了口罩及人眼睛特征外,需要额外的人脸信息才能保证人脸口罩检测的正确率(若不包括则将以口罩作为检测主体,背离了产品的设计初衷),故假设人脸的眼睛在框列方向1/10处,以眼睛中点为圆心,以此点到下巴处的距离为半径对人脸口罩区域进行正样本提取,这样将会包含耳朵与眉毛等更多人的特征,从而大大减小了训练得到模型的误识率。同样地,在之后的训练过程中,共提取了约50000个正样本和50000个负样本进行训练。最终得到的人脸口罩检测参数模型大小只有53kb。最后,本设计使用脚本文件将两个参数模型转换成为xilinxfpga用于rom初始化的.coe文件,二者合计占用了不超过1m的存储空间,这使得参数文件可以直接被放在fpgablockram内存中由每组并行级联决策树级联加速单元进行调用。请参照图3和图4,图3为人脸检测决策树级联器参数模型训练roc曲线,图4为人脸口罩佩戴检测决策树级联器参数模型训练roc曲线。从上述图3和图4可以看出,人脸检测和人脸口罩检测的决策树级联器参数模型训练的roc曲线都拥有良好的上凸特性,即都拥有较大的auc值,这表明训练得到的两个决策树级联分类器都有极高的分类性能。
[0081]
在利用并行级联决策树进行级联检测中,本方案采用多线程并行移窗,利用两个决策树级联算法单元并行组成一个并行级联决策树级联算法加速单元来处理一帧的图像,每组并行加速单元共同完成一幅图像的人脸检测或人脸口罩检测,并将检测结果存储到相
应的地址,供cortex-m3处理器完成检测结果的后续处理。上述检测后的结果可以通过设置的指针t1,t2来接收。脸检测加速器单元和人脸口罩检测加速器单元均可以独立调取ddr3中的图像数据。此外本设计为两个加速器单元配备了两个独立的block ram用来存储各自的决策树参数文件,这样二者在对同一帧进行检测工作时互不影响,相互独立并且能并行处理。
[0082]
s140、分别输出人脸与人脸口罩佩戴的检测信息。
[0083]
具体的,上述的检测信息可以为经串口输出的详细信息,经hdmi接口输出的处理好的图像信息,或经led输出的检测结果信息。
[0084]
请参照图5,图5为本发明并行级联决策树级联检测的检测流程图。在一具体的实施例中,所述并行级联决策树中级联的决策树数量为468棵且每棵决策树深度为6,所述根据所述并行检测窗口在目标图像帧的图像区域的移动位置进行并行级联决策树级联检测,具体包括:
[0085]
获取任一需要决策的检测窗口区域的图像灰度信息;
[0086]
确定所述检测窗口区域的图像灰度信息是否通过第一级二元决策树的所有二元决策深度检测;
[0087]
若是则继续对所述图像灰度信息在下一级联的二元决策树的所有二元决策深度进行检测,直至通过所有级联的468棵二元决策树;
[0088]
在检测窗口区域的图像灰度信息通过所有级数的二元决策树级数均通过检测时,确定所述检测窗口区域包含目标对象。
[0089]
具体的,本方案采用基于像素强度比较(pixel intensity comparison-basedobject detection,pico)的深度学习目标检测算法,使用点对特征进行目标检测,对两个像素点的像素强度进行对比,所需的检测时间更短,具有模型尺寸小,检测速率高,不需要进行图像预处理等特点。pico算法主要通过对图片所选区域进行特征提取而进行模型训练,所以本设计在选取数据集和对数据集进行预处理时采用了一系列人脸配准(关键点定位)策略,对于人脸检测来说,本设计尽可能保证了每幅训练图片的所选区域都包含人脸五官;而对于人脸口罩检测来说,本设计既保证所选区域包含完整的口罩,也使该区域包含了尽可能多的人脸特征,同时也尽可能减少所选区域中除人脸、口罩外的冗余信息。
[0090]
上述利用人脸检测决策树级联器参数模型及人脸口罩佩戴检测决策树级联器参数模型对并行检测窗口区域进行检测时,先初始化并行级联决策的二元决策树级数及二元决策深度。于本方案而言,二元决策树为468棵,每棵决策树深度为6。具体二元决策时,对于并行检测窗口中的图像灰度信息在第一级二元决策树下进行所有二元决策深度比对,若通过所有二元决策深度比对,则表示图像灰度信息通过第一级二元决策树的所有二元决策深度进行检测,此时继续对所述图像灰度信息在下一级联的二元决策树的所有二元决策深度进行检测,直至通过所有级联的468棵二元决策树的检测。在图像灰度信息通过所有二元决策树级数检测后,确定检测窗口区域包含目标对象,反之确定检测窗口不包含目标对象。
[0091]
为了表示图像灰度信息通过所有二元决策深度检测,本方案中还引入了二元决策深度的置信度,所述确定所述检测窗口区域的图像灰度信息是否通过第一级二元决策树的所有二元决策深度检测,具体包括:
[0092]
提取所述第一级二元决策树的二元决策深度累积结果对应的置信度以及对应第
一级二元决策树的置信度阈值;
[0093]
在提取的置信度大于对应第一级二元决策树的置信度阈值时,确定所述检测窗口区域的图像灰度信息通过第一级二元决策树的检测。
[0094]
本实施例中,上述二元决策树的每棵决策树深度为6,在进行二元决策深度比对时,对该二元决策深度每次比对结果进行累积,同时累积相应的置信度,直至完成所有二元决策深度的二元检测。提取出第一级二元决策树的置信度阈值,并将累积的置信度与置信度阈值进行比对,若累积的置信度大于置信度阈值,则说明第一级二元决策树通过检测,记该检测结果为1,此时可以对下一级的二元决策树进行检测。可以理解的,该二元决策深度的每次对比都有对应的置信度,对第一级二元决策树的所有深度进行检测结果为各深度检测结果对应的置信度的累积。
[0095]
在一具体的实施例中,所述提取所述第一级二元决策树的二元决策深度累积结果对应的置信度以及对应第一级二元决策树的置信度阈值之后,还包括:
[0096]
在提取的置信度小于或等于对应第一级二元决策的置信度阈值时,确定所述检测窗口区域的图像灰度信息未通过第一级二元决策树的检测,直接终止级联检测并确定所述检测窗口区域没有包含目标对象,记该检测结果为0,此时可以排出该检测窗口并退出后续检测。
[0097]
此外,arm cortex-m3处理器作为cpu,通过c语言程序统筹控制整个 soc的运行,提高了各个模块之间协同工作的效率,保证了系统的稳定性。同时,当soc启动两个加速单元对摄像头采集到的数据进行监测时, cortex-m3处理器会进入休眠,以降低系统功耗;而当加速器单元完成检测后, cortex-m3处理器又会被唤醒以快速处理检测结果,并可以将检测结果以多种形式进行结果呈现,这又在一定程度上降低了soc的硬件开发难度。
[0098]
请参照图6,图6为人脸检测与人脸口罩佩戴检测的效果图。在一具体的测试例中,单片机系统根据人脸检测加速单元和人脸口罩检测加速器单元的检测结果在软件层面对摄像头采集到的图像进行画框处理,并通过hdmi连接显示器进行输出的人脸检测情况。在实际的应用中,输出信息可以以红框用于标识采集到的图像中的人脸口罩佩戴检测情况,而以绿框则用于标识采集到的图像中的人脸检测情况。
[0099]
表1
[0100] 人脸检测soc本设计所实现的soc功耗1.46w1.45w
[0101]
表1为soc的运行功耗表。从表1中可以看出,本设计所实现的soc在稳定运行过程中的功耗仅有1.45w,其低功耗的特性完美适用于能源高度限制的边缘场景,节约能耗的同时系统也可以以稳定的状态更长时间地运行,完成更多的检测工作,具有极高的经济价值。
[0102]
表2
[0103]
soc工作状态soc平均检测帧率空检52fps无画框处理32fps有画框处理31fps
[0104]
表2为soc的平均帧率检测对比表。表2展示的是本设计所实现的基于深度学习算法和soc系统的的人脸与人脸口罩佩戴检测的方法在不同工作状态下检测平均帧率的对比
情况。从表2中可以看出,本设计所实现的soc在能以较高的实时性实现人脸和人脸口罩佩戴检测功能,平均可达30fps以上。尽管arm cortex-m3处理器对图像进行画框处理会轻微降低soc的检测帧率,但在不需要视频输出而只需要uart通信的场景下该缺点可避免。
[0105]
与现有技术相比,本发明提出了一种基于arm cortex-m3处理器和深度学习加速器的soc实现人脸口罩佩戴检测的方法,该方法采用cortex-m3处理器作为系统的中央处理单元,搭载了自设计的深度学习加速器,加速器采用改进的pico算法,并通过并行移窗处理和独立运行的硬件加速单元模块使之能够完成对人脸是否佩戴口罩的快速检测。运行结果表明,所设计的方法在 xilinx artix-7 fpga上最高可以37fps的平均速度进行人脸口罩佩戴检测,实现了高性能、高稳定性和低功耗的检测功能。
[0106]
请参照图7,图7为本发明第三实施例基于单片机系统的人脸与人脸口罩佩戴检测装置的模块方框图。在本发明的实施例中,该基于单片机系统的人脸与人脸口罩佩戴检测装置,包括:
[0107]
获取模块110,用于获取抓拍的视频图像,从视频图像中提取任一图像帧作为待检测的目标图像帧;
[0108]
遍历模块120,用于在所述目标图像帧的图像区域设置两个检测窗口并作为一组并行检测窗口,移动所述并行检测窗口,以遍历目标图像帧的所有图像区域;
[0109]
检测模块130,用于利用人脸检测加速器单元及人脸口罩检测加速器单元分别对所有并行检测窗口区域的图像灰度信息进行并行级联决策树级联检测,得到感兴趣的目标对象,所述目标对象包括人脸或人脸口罩佩戴;
[0110]
输出模块140,用于分别输出人脸与人脸口罩佩戴的检测信息。
[0111]
具体的,所述并行级联决策树中级联的决策树数量为468棵且每棵决策树深度为6,所述检测模块130用于:
[0112]
获取任一需要决策的检测窗口区域的图像灰度信息;
[0113]
确定所述检测窗口区域的图像灰度信息是否通过第一级二元决策树的所有二元决策深度检测;
[0114]
若是则继续对所述图像灰度信息在下一级联的二元决策树的所有二元决策深度进行检测,直至通过所有级联的468棵二元决策树;
[0115]
在检测窗口区域的图像灰度信息通过所有级数的二元决策树级数检测时,确定所述检测窗口区域包含目标对象。
[0116]
具体的,所述检测模块130还用于:
[0117]
提取所述第一级二元决策树的二元决策深度累积结果对应的置信度以及对应第一级二元决策树的置信度阈值;
[0118]
在提取的置信度大于对应第一级二元决策树的置信度阈值时,确定所述检测窗口区域的图像灰度信息通过第一级二元决策树的检测。
[0119]
具体的,所述检测模块130还用于:
[0120]
在提取的置信度小于或等于对应第一级二元决策的置信度阈值时,确定所述检测窗口区域的图像灰度信息未通过第一级二元决策树的检测,直接终止级联检测并确定所述检测窗口区域没有包含目标对象。
[0121]
具体的,所述遍历模块120还用于:
[0122]
标记并行检测窗口的初始坐标、尺寸及移窗步长,所述移窗步长包括横向移窗步长及纵向移窗步长;
[0123]
根据并行检测窗口的初始坐标及横向移窗步长横向移动并行检测窗口,确定并行检测窗口横向移窗是否完成;
[0124]
在并行检测窗口横向移窗完成时,根据并行检测窗口的初始坐标及纵向移窗步长纵向移动并行检测窗口,并根据已纵向移窗的并行检测窗口的移窗坐标及横向移窗步长继续横向移窗,以遍历目标图像帧的所有图像区域;所述输出模块140具体用于:
[0125]
分别输出人脸与人脸口罩佩戴的检测结果的坐标信息及并行检测窗口尺寸信息。
[0126]
具体的,所述遍历模块120还用于:
[0127]
等比例放大并行检测窗口的初始坐标、尺寸及移窗步长;
[0128]
确定放大后并行检测窗口的尺寸是否大于预设值;
[0129]
若并行检测窗口的尺寸小于预设值,则根据放大后的移窗步长及初始坐标对并行检测窗口进行横向移窗及纵向移窗,以遍历目标图像帧的所有图像区域;
[0130]
进行下一次等比例放大并行检测窗口,直至在等比例放大后的并行检测窗口尺寸大于或等于预设值时,停止对该次等比例放大的并行检测窗口进行移窗处理;以及
[0131]
过滤并行检测窗口中重叠检测目标对象。
[0132]
具体的,所述遍历模块120还用于:
[0133]
对所述目标对象的数量进行统计;
[0134]
所述输出模块140具体用于:
[0135]
分别输出人脸与人脸口罩佩戴的检测结果的坐标信息及目标对象所处位置的检测窗口尺寸信息。
[0136]
请参阅图8,图8为本发明一实施例电子设备的模块方框图。该电子设备可用于实现前述实施例中的基于单片机系统的人脸与人脸口罩佩戴检测方法。如图8所示,该电子设备主要包括:存储器301、处理器302、总线303 及存储在存储器301上并可在处理器302上运行的计算机程序,存储器301 和处理器302通过总线303连接。处理器302执行该计算机程序时,实现前述实施例中的基于单片机系统的人脸与人脸口罩佩戴检测方法。其中,处理器的数量可以是一个或多个。
[0137]
存储器301可以是高速随机存取记忆体(ram,random access memory) 存储器,也可为非不稳定的存储器(non-volatile memory),例如磁盘存储器。存储器301用于存储可执行程序代码,处理器302与存储器301耦合。
[0138]
进一步的,本发明实施例还提供了一种可读存储介质,该可读存储介质可以是设置于上述各实施例中的电子设备中,该可读存储介质可以是前述图8 所示实施例中的存储器。
[0139]
该可读存储介质上存储有计算机程序,该程序被处理器执行时实现前述实施例中的基于单片机系统的人脸与人脸口罩佩戴检测方法。进一步的,该计算机可存储介质还可以是u盘、移动硬盘、只读存储器(rom,read-onlymemory)、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0140]
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为
一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0141]
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0142]
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0143]
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的可读存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0144]
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
[0145]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0146]
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的技术方案构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1