口罩佩戴识别系统设计与实现开题报告

 2023-11-24 08:51:27

1. 研究目的与意义

目前各大公共场合都有体温监测系统,健康码等疫情防控措施。但是用于监测行人口罩的系统却还不常见,大部分是靠工作人员口头提醒。虽然目前COVID-19已纳入《中华人民共和国传染病防治法》规定的乙类传染病,并采取甲类传染病的预防、控制措施,但是许多场合人流量较大,我们需要一个能够自动识别行人是否正确佩戴口罩的系统。

人工智能口罩识别项目的作用主要是检测判断被检测者是否佩戴口罩以及口罩佩戴是否正确。在全球新冠大背景下,人们在公共场所出行佩戴口罩已经成为共识,而如何对行人是否佩戴口罩进行监督提醒也显得尤为重要。我们设计的项目通过对视频监控中行人进行检测,将得到数据结果返回给工作者,有效管理监督公共场所行人佩戴口罩的问题。

2. 课题关键问题和重难点

现有的人脸识别算法都需要找到人脸的位置,然后根据五官之间的关键点进行识别。佩戴口罩之后,无法准确检测人脸的位置、五官的关键点部分,算法便无法运行。其次,人脸识别算法并不是一个简单的人脸识别过程。大家都知道,我们在高铁站、门禁等地方进行人脸识别的时候,识别机器会先出现一个红框,只要人脸移动了,红框就会随着人脸动的方向移动,时刻追踪着人脸的变化。实质上,人脸识别包含了人脸检测、运动物体追踪、人脸识别三个过程,上述的红框就起到了检测人脸、追踪人脸、识别人脸的作用。而佩戴口罩,影响机器对人脸的检测,进而影响了整个识别过程,对整个应用都带来了很大的干扰。第三,人脸识别算法使用的深度神经网络模型受限于大数据量的训练样本。所以,如果可以在短期内收集到大量佩戴口罩的人脸照片,并对特征点进行人工标注,从理论上来说也是可以提升口罩下的人脸识别效果的。但是这个工作量巨大,短时间内难以完成。

目前,有研究提出,可以在现有的人脸识别算法上对口罩下的人脸识别进行针对性优化——在将提取到的特征点与库存人脸特征进行比对时,增强人脸可见区域特征点的比例。现有的人脸识别是依据整个人脸特征,而优化后的人脸识别只依赖部分人脸特征。优化过的算法在现有数据下,应该可以获得比较好的识别效果。

3. 国内外研究现状(文献综述)

在国内外疫情爆发之前,基于人工智能深度学习关于人脸的算法,国内外基本都是基于脸部没有任何遮蔽物的方向来进行研究的。疫情爆发之后,人们的出行基本都伴随着口罩,脸部上的蒙面口罩是对人脸识别技术的又一次挑战。机器学习研究如何使计算机系统利用经验改善性能。它是人工智能领域的分支,也是实现人工智能的一种手段。作为机器学习的一类,表征学习关注如何自动找出表示数据的合适方式。深度学习是具有多级表示的表征学习方法。它可以逐级表示越来越抽象的概念或模式。深度学习所基于的神经网络模型和用数据编程的核心思想实际上已经被研究了数百年。深度学习已经逐渐演变成一个工程师和科学家皆可使用的普适工具[1]

在深度学习里面中,图像识别这一大类研究方向,一般来说,这要假设已经规定(即由设计人员“工程化”)了这些特征的形式,并在输人一个神经网络之前就已从图像中提取出来。这样的方法很不方便,然而,神经网络的优点之一是,它能够直接由训练数据学习模式特征。我们要做的是将一组训练图像直接输人神经网络,让网络自身学习必要的特征。这样做的一种方法是,根据线性索引组织像素,直接将图像转换为向量,然后令线性索引的每个元素(像索)是向量的一个元素。然而,这种方法没有使用图像中像素之间可能存在的任何空间关系,如角的像素排列、边缘线段的出现及有助于区分不同图像的其他特征。这就是深度卷积神经网络(简称CNN或ConvNet)[2]

疫情之后,口罩人脸识别的技术难点,主要有三个方面:首先,在被遮挡的情况下,人脸信息就会减少,供识别的特征自然也随之减少;其次,口罩等遮挡物的类型较多,且遮挡程度不一,再次给获取非遮挡区域的信息带来难度;再者,有遮挡的人脸检测和人脸关键点检测的精度会因遮挡物的影响而降低。研究表明,近年来,卷积神经网络(CNN)被广泛应用于计算机视觉领域,在人脸识别系统中取得了很大的进展。但是对于基于深度学习的人脸识别,现有的CNN是在基于边际的损失函数的监督下,展示出适合大规模人脸识别数据集的能力,但它们几乎都是在完全暴露的脸部进行的,这给蒙面识别(MFR)带来了很大的困难,因为人们在COVID-19期间通常戴着口罩以防止感染[3]。所以我们不得不进行算法的更新迭代。

剩余内容已隐藏,您需要先支付后才能查看该篇文章全部内容!

4. 研究方案

四、方案(设计方案、研制方案、研究方案)设计及论证

一、必要的环境依赖

1.1 环境的安装

1) NVIDIA驱动安装与更新(首先目前来讲,深度学习优先使用NVIDIA的显卡,AMD其次。因为下面大部分代码都是用CUDA来加速的,而且使用到了NVIDIA的cudnn技术)。

2) Anaconda 的安装。

3) Pytorch环境安装。

4) Paddlepaddle环境安装。

5) PyCharm安装--验证CUDA和cudnn版本。

6) 确定好各个环境的稳定性,防止影响到下面的进程。

1.2 项目的克隆和介绍

1) 准备好一个VPN进行GitHub的访问。

2) 从GitHub上找到Yolov5的code并且进行下载。

1.3 项目代码的整体认识

1) 对代码整体的目录做一个清晰的认识,明白各个目录下的文件的作用

2) 对Yolov5的结构进行解读。

1.4 依赖包的下载

1) 终端运行pip install -r requirements.txt即可。

二、数据集和预训练权重的准备

2.1数据集的准备

1) 从网上找出几千张佩戴口罩和没有佩戴口罩的图片,具体数量要根据自己电脑的显卡视情况而定,当然图片越多,训练的量也会越大,因此数据也会更准确,但因此显卡需要的算力也会加大。

2) Labelimg是一款开源的数据标注工具,可以标注voc、yolo和createML标签格式的文件。其中voc保存为xml文件,yolo保存为txt文件,createML保存为json格式。所以要学习Labelimg的安装和使用。

3)使用Labelimg对准备好的图片进行标注和yolo格式的更改。

2.2将数据集划分为训练集和验证集。

1) 网上的图片资源包大部都是voc(xml格式)的,所以将VOC标签格式转yolo格式,并将之前准备的图片合并到一起。

2) 标签为yolo格式数据集并划分训练集和验证集。

3) voc格式与yolo格式的优劣: voc格式(xml格式),因为该格式的标签里面有图片标注的具体内容,例如标注类别,图片大小,标注坐标。但是yolo格式(txt格式)里面是用数字来代表类别,这样很不直观,而且标注的坐标也是经过转化归一化的,坐标信息更加不直观。

2.3获得预训练权重

1) 介绍预训练权重的重要性:顾名思义,就是预先训练好的权重,这类权重是在大型数据集上进行训练的,训练出来的权重是普遍通用的,因此不必担心是否符合自己的实际情况,我们个人往往很难训练出预训练权重的效果。并且如果不使用预训练权重的话,那么训练就会从0开始,模型没有找到好一点的感觉,它会花费相当的时间渐入佳境,这样一部份时间是我们不希望看到的,因此在进行训练自己的模型时,通常都要使用预训练模型。

三、训练口罩检测模型

3.1 相关文件的配置

1) 训练之前进行数据配置文件的修改和确定

2) 训练之前进行模型配置文件的修改和确定

3.2准备训练模型

1) epochs训练次数根据电脑配置进行确定。

2) batch-size每次输入图片的数量根据内存大小进行确定,建议在3-6之间。

3) CPU工作核心数量的确定。

4) 流程如果出现error需要进行debug,可以查阅资料进行debug。

3.3 启用tensorbord查看训练结果

1) 训练结束后终端输入命令:tensorboard –logdir=runs 。

2) 复制网址在浏览器中打开查看相关结果。

四、测试和结果验证

训练结束后会产生两个权重文件,一个是best.py(最好的权重),一个是last.py(最后一次的权重)。这里我们验证要用最好的权重(best.py)。

4.1 对图片或者视频测试

1) 在对的位置输入相应的图片或者视频的路径。

2) 目录runs/detect/exp下会显示结果,查看结果的正确性。

4.2 进行摄像头测试

1) 摘下口罩进行识别,并进行动态识别。

2) 带上口罩进行识别,并进行动态识别。

3) 讲1、2步骤的人物参照进行数量增加,并进行测试。

4) 结果得到论证。

5. 工作计划

1、学习人工智能深度学习相关的知识,学习神经网络算法,掌握R-CNN及yolo的原理。(第1周)

2、准备好相关的硬件,并做好硬件的稳定性测试。(第二周)

3、做好各种环境的安装,例如Anaconda、Pytorch、PyCharm、CUDA、cudnn。(第3周)

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

发小红书推广免费获取该资料资格。点击链接进入获取推广文案即可: Ai一键组稿 | 降AI率 | 降重复率 | 论文一键排版