目录
前言
📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
🚀对毕设有任何疑问都可以问学长哦!
选题指导: https://blog.csdn.net/qq_37340229/article/details/128243277
大家好,这里是海浪学长毕设专题,本次分享的课题是
🎯基于机器复杂场景口罩佩戴检测-YOLO
课题背景和意义
针对公共场所口罩佩戴检测存在遮挡、密集和小尺度的情况而导致检测精度不高的问题,以实时目标检测算法 YOLOv3 为基础提出一种 Mask-YOLO 算法。新型冠状病毒具有很强的传播性,其传播途径以呼吸道传播和接触传播为主,因此在公 共场所正确佩戴口罩可以有效防止病毒传播。然而在中国疫情已进入常态化的防控阶段,人员密集的公共场所依然存在着不正确佩戴口罩甚至不佩戴口罩的现象,这将增加病毒传播的风险。为了在公共场所实现安全防疫和高效监管的目标,有必要采取智能化的目标检测技术对公共场所口罩佩戴进行检测。 YOLOv3 (you only look once version 3) 算法是一种准确的实时目标检测算法,但在遮挡、密集、小尺度等复杂场景下的口罩佩戴检测精度较低。为了提高 YOLOv3 算法在复杂场景下的检测精度, 在特征提取网络中引入注意力机制,在特征融合阶段使用路径聚合策略,提高了被遮挡目标和小目标的检测效果。
实现技术思路
一、相关技术
1)目标检测算法
口罩佩戴检测是一个目标检测任务,需要确定每个目标在图像中的位置和类别。结合深度学习的目标检测算法分为两阶段检测算法和单阶段检测算法,前者先生成候选区域再将每个候选区域分类;后者基于回归方式直接获得分类结果。
2)注意力机制
深度学习中的注意力机制启发于人眼视觉处理机制,即人眼不会对接收到的全部信息进行处理,而只会聚焦于自己感兴趣的区域。类似地,检测图像时如何去除干扰检测的背景信息,从而快速定位到感兴趣的区域是目标检测的一种研究趋势。
3)YOLOv3 算法
YOLOv3 的网络结构主要包括特征提取网络 Darknet53 和 FPN 两部分,如图 。YOLOv3 网络的输入是 B 张分辨率为 416 × 416 的彩色图片,其中 B 表示批量输入到网络进行训练的图片数量,对应图中方框下半部分的第 1 个维度,剩下的维度分别表示特征图的高、宽和通道数。
二、 Mask-YOLO 算法
改进的特征金字塔网络
在深度卷积神经网络中,不同的深度对应不同层次的语义特征。因为目标检测任务需要对目标进行分类和定位,所以融合高层特征图和低层特征图可以保留两者的优势,提高目标检测的精度。YOLOv3 算法使用 FPN 对不同层级的特征图进行融合,如图:
FPN 虽然将高层特征图的强语义信息自顶向下传递到低层,但在融合过程中只是简单地将上采样后的高层特征图与同尺度的中层特征图或低层特征图进行特征相加或者 Concat ,融合后得到的特征图不但包含高层的强语义信息和低层的位置信息,还包含部分冗余特征,因此不能突出有利于当前任务的重要特征。为解决这个融合问题,改进的特征金字塔网络在FPN 中引入 SENet ,如图:
SENet 首先对每个特征通道进行全局平均池化,得到不同通道的全局信息,获得更广的感受区域;然后通过两个全连接层学习各个特征通道间的相关性,并在两个全连接层间用ReLU 函数提高非线性;接着以 Sigmoid 激活函数获得每个通道归一化后的权重,即每个特征通道对当前任务的重要性;最后通过乘法将权重逐通道加权到原始特征图上,实现了在特征通道维度上根据特征的重要程度对特征进行权值的重新分配。SENet 的结构如图:
改进的边框回归损失函数
目标检测算法在训练过程中需要进行边框回归,而降低边框回归损失可以使预测框的位置在预测过程中更好地逼近真实框,实现更准确的目标定位。YOLOv3 算法使用均方差损失函数对边框回归进行精调,其计算公式为:
CIoU 损失代替均方差损失作为边框回归的损失函数,因为 CIoU 损失考虑了重叠区域、中心点距离和宽高比这 3 个重要的几何因素,所以能更加准确地定位目标框。CIoU 损失边框回归损失函数为:
式中:IIoU 表示预测框和真实框面积的交并比 [23],A 和 B 分别表示预测框和真实框的中心点坐标,ρ(A, B) 表示预测框和真实框的中心点坐标之间的欧氏距离,c 表示预测框和真实框的最小外接矩形的对角线长度,α 为权重函数,v 为度量宽高比一致性的参数。α 和 v 考虑了预测框和真实框宽高比的拟合程度,其计算公式如式:
Mask-YOLO 网络结构
Mask-YOLO 的输入是分辨率为 416 × 416 的图片,算法执行的具体步骤如下:
步骤 1 特征提取网络进行特征提取。
步骤 1-1 执行 1 次 3 × 3 卷积改变通道数。
步骤 1-2 依次进入堆叠 1 、 2 、 8 、 8 、 4 个 Residual Block 残差块的残差网络进行特征提取,在每次进入残差网络前以 3 × 3 卷积进行下采样。
步骤 2 对最后 3 个残差网络的输出进行特征融合,可以获得 3 个不同尺度的特征图。
步骤 2-1 对尺度为 13 × 13 的高层特征图使用 5 次卷积进行特征提取。
步骤 2-2 利用卷积改变通道数,使用上采样将尺度扩大为原来的 2 倍。
步骤 2-3 与尺度为 26 × 26 的中层特征图进行 Concat 融合; Mask-YOLO 不同于YOLOv3,会把融合后的特征图输入 SENet 进行重要特征的增强,从而减少冗余特征的影响。
步骤 2-4 使用 5 次卷积进行特征提取。
步骤 2-5 利用卷积改变通道数,使用上采样将尺度扩大。
步骤 2-6 与尺度为 52 × 52 的低层特征图进行 Concat 融合,然后以 SENet 突出重要特
征并抑制冗余特征。
步骤 2-7 利用 5 次卷积进行特征提取。
步骤 3 根据 YOLO Head 获得预测结果,见图中右侧方框。预测结果中的 24 个通道
数由 3(5 + N ) 计算得到,其中: 3 表示每个网格产生先验框的数量; 5 表示预测框的 5 个参数;N 表示物体检测的种类数量,因为本文算法共识别 3 类目标,所以 N 取为 3 。
步骤 4 进行 NMS 获得预测框。
Mask-YOLO 的网络结构如图 :
实现效果图样例
深度学习之口罩检测:
我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。
毕设帮助,疑难解答,欢迎打扰!