吴方权 李文虎 张磊
摘要:本文针对公共卫生和安全方面的需求,提出了一种基于YOLOv3的无人机口罩识别算法。通过使用单目摄像头回传的图像,能准确快速地检测和识别无人机视野中的物体。采用卷积神经网络,以YOLO算法框架为基础,通过OpenCV和Python进行图像处理和数据分析,在Darknet工具上进行实现。在实验中,使用了构建的数据集进行训练和测试,识别准确率达98.5%。实验结果表明,该算法可以有效检测无人机视野中的口罩,具有较高的应用价值。
关键词:YOLOv3;口罩识别;Darknet
DOI:10.12433/zgkjtz.20233441
基金项目:国家级创新训练项目
项目编号:202210304028Z
基金项目:南通市基础科学研究面上项目——面向核酸检测的机器人柔性捏抓操控检测棒研究
项目编号:JC22022073
目前,口罩已成为一种越来越重要的防护工具,但传统的口罩检测方法效率低、易漏检。人员密集的公共场所是传染病传播的高风险区域,因此,如何高效、准确地检测口罩佩戴情况,是亟需解决的问题。无人机技术和卷积神经网络(CNN)被广泛应用于物体检测和分类领域,其中基于YOLOv3的算法结合了目标检测和定位的能力,具有高效率和较高的准确性。将无人机技术与YOLOv3算法相结合,用于公共场所的口罩检测,可以提高检测效率和准确率,降低传染病传播的风险,保障人们的身体健康。
目前,口罩检测技术主要包括图像处理和机器学习两种方法。基于图像处理的方法易受光线、角度等因素的影响,检测准确率较低。而基于机器学习的方法,例如,基于支持向量机(SVM)和卷积神经网络(CNN)的方法,具有更高的准确性和鲁棒性。目前,已涌现许多物体检测算法,可以分为传统物体检测算法、结合“候选框+深度学习”分类法和基于深度学习的回归方法三种类型。
传统物体检测算法使用人工设计特征和机器学习分类,提取的特征局限性大,学习速度有限。结合候选框和深度学习分类法的Two-Stage方法精度有很大突破,但速度不佳。而基于深度学习回归方法的One-Stage算法YOLO速度快,广泛应用于实际场景中,例如,口罩检测。
本文旨在使用YOLOv3卷积神经网络构建高效准确的无人机口罩识别系统。该系统使用深度学习模型对无人机拍摄的图像进行口罩检测,并通过优化提高准确性和鲁棒性。这种快速准确的口罩识别方法有助于提高社会的安全保障水平和防疫效率,确保公共场所的安全和卫生。
一、YOLOv3特点
YOLOv3采用了更深的卷积神经网络,使用残差结构加深网络,通过多尺度训练和多尺度检测处理不同大小的目标,也能处理更复杂的场景。此外,还使用了FPN结构提取不同层次的特征,使用预测的类别和物体调整边界框的位置和大小,提高了检测的准确率。因此,基于YOLOv3的口罩识别检测可以充分利用其快速、高效的优点,实现快速准确的口罩识别,保证实时性,适用于人流密集、需要快速检测的场景,例如机场、火车站等。
二、系统工作流程
本系统首先通过安装在无人机前方的单目摄像头采集图像数据。
本文训练和测试所使用的无人机是ROS系统,在ROS系统中,单目摄像头采集到的图像数据通常需要进行预处理才能进行后续的计算机视觉任务。
单目摄像头的镜头会引入畸变,使图像中的物体看起来变形或弯曲,因此,需要对图像进行去畸变处理,使物体的形状和大小看起来更加真实。同时,还对图像进行高斯滤波等处理,去除图像中的噪声,平滑图像。这些预处理步骤可以通过ROS中的图像处理库OpenCV实现。之后处理后的图像采用YOLOv3模型进行口罩识别判断,对于图像识别结果中显示没有佩戴口罩或错误佩戴人员,系统会进行预警。整体流程如图2所示。
三、模型训练与测试
(一)模型训练
1.数据收集与标注
为了识别戴口罩、未带口罩、错误佩戴三种佩戴情况,收集三种状态的图片,然后进行筛选和分类。对于收集的图片,使用开源标注工具YOLO_mark进行标注。标注时使用矩形框或多边形区域将每张图片中的口罩区域标注出来,标注量越大,模型的准确性和鲁棒性也就越高。
2.k-means聚类算法
YOLOv3模型需要先验框来检测物体。先验框是在训练前提前确定的一些框,分布在输入图像中的各个位置和大小。而k-means聚类算法可以对数据集中的目标框进行聚类分析,从而得出一组先验框,可以被用于YOLOv3模型的训练和检测。
具体而言,k-means聚类算法将目标框的宽度和高度作为特征,将所有目标框聚类成k个簇。每个簇的中心是一个先验框,而所有目标框到该先验框的距离的均值是该先验框的大小。这样就可以得到一组适合数据集的先验框,从而提高模型的检测准确率。
因此,k-means聚类算法在基于YOLOv3的无人机口罩识别数据预处理中的作用是确定适合数据集的先验框,提高模型的检测准确率和性能表现。
3.模型训练
使用Darknet框架训练YOLOv3模型。Darknet是一个开源深度学习框架,专门用于训练目标检测模型。在训练模型前,要编写YOLOv3的配置文件,指定模型结构、训练参数、数据路径等信息。在配置文件中,需要指定类别数、anchors大小、网络结构、batch size等参数,再进行神经网络模型训练,训练过程如图3所示。
(二)模型测试
为检测训练的有效性、可靠性和准确性,从GitHub上获取的1000张图片用以测试。其中,图4、5、6分别展示的是错误佩戴口罩,正确佩戴口罩以及未佩戴口罩的的典型测试范例,经过多次测试,识别率大都稳定在97.00%~99.97%之间,如图7所示,已达到了较高的正确率,能稳定地提供识别后的信息。
(三)模型评估
图8是模型训练时输出的信息,将神经网络模型迭代17万次,可以发现重要信息loss,loss反应模型的学习程度下降幅度大,说明网络在正常学习;下降幅度变小,说明网络训练得不错。
同时,mAP(平均精度均值)评估模型的准确率,mAP是目标检测算法的主要评估指标。目标检测模型通常会用速度和精度指标描述优劣,mAP值越高,表明该目标检测模型在给定的数据集上的检测效果越好。如图9所示,取的是loss值为15的模型,AP达到80.75%,准确率和召回率都较高。
四、模型结合ROS
由于训练和测试使用的无人机是ROS系统,如果要想在ROS框架下使用YOLO进行目标检测,就要将Darknet与ROS结合形成一个功能包。ROS系统是一个节点通信框架,在机器人开发中作为各个运动关节,各个功能节点在ROS中都可以抽象成为一个节点,各个节点之间控制指令的传递与状态的反馈连接形成了一个协调统一的运动系统。为了完成这一步骤,使用现有的ROS包—Darknet Ros。在完成模型训练后,可以使用摄像头进行识别,将模型与摄像头通过Darknet框架结合。通过预览窗口,可以看到预测目标的位置,实现无人机实时检测口罩佩戴情况。
将计算出的距离数据通过ROS中的距离话题发布,供其他模块使用,最终实现无人机人群间的距离检测。此外,无人机运行时,当检测到人群中存在不符合社交距离要求的情况时,ROS系统可以控制无人机飞行到人群所在区域,通过搭载扬声器等设备发出提示,提醒人群保持社交距离。
五、结语
综上所述,本文提出了基于YOLOv3的无人机口罩识别算法,通过使用单目摄像头回传的图像,能准确、快速地检测和识别无人机视野中的口罩。实验结果表明,该模型可以准确识别戴口罩、不戴口罩和错误佩戴的人,且在不同光照、角度、姿态等条件下保持较高的准确率。该技术具有很大的应用潜力,可以用于公共场所的卫生管理和安全保障。未来,可以进一步优化模型并结合其他传感器和技术,实现更加全面和准确的监测和管理。无人机口罩识别技术具有广阔的发展前景和应用空间,将成为未来公共卫生管理和安全保障的重要手段。
参考文献:
[1]彭棉珠.卷积神经网络目标检测方法比较及应用探讨[J].普洱学院学报,2022,38(06):44-46.
[2]叶翔,孙嘉兴,甘永叶,等.改进YOLOv3模型在无人机巡检输电线路部件缺陷检测中的应用研究[J].电测与仪表,2023,60(05):85-91.
[3]梁毅峰.基于支持向量机(SVM)算法的加工机械故障分析[J].辽东学院学报(自然科学版),2021,28(03):153-157.
[4]易亮.基于FPN的目标检测模型优化研究[D].长沙:国防科技大学,2019.
[5]王展栋,卢依思,詹玮仪,等.基于树莓派和OpenCV的视觉识别与分拣系统[J].电脑编程技巧与维护,2023(01):159-160+167.
[6]曾如明. K-means聚类算法的改进及其应用研究[D].南充:西华师范大学,2022
[7]周旭,杨静,张秀华,等.改进的Darknet噪声图像分类网络[J].电光与控制,2022,29(12):78-82.
作者简介:吴方权(2002),男,江苏省徐州市人,本科,主要研究方向为机械设计制造及其自动化。