中文题目:一种改进的YOLOv5s建筑检测模型
论文题目:An Improved YOLOv5s Model for Building Detection
录用期刊/会议:Electronics (中科院SCI 3区,JCR Q2)
原文DOI:https://doi.org/10.3390/electronics13112197
作者列表:
1) 赵京翼 中国石油大学(北京)信息科学与工程学院/人工智能学院 电子信息工程专业 本20
2) 李一帆 中国石油大学(北京)信息科学与工程学院/人工智能学院 人工智能专业 硕 23
3) 曹 靖 中国石油大学(北京)信息科学与工程学院/人工智能学院 电子信息工程专业 本20
4) 谷雨泰 中国石油大学(北京)信息科学与工程学院/人工智能学院 电子信息工程专业 本20
5) 吴远泽 中国石油大学(北京)信息科学与工程学院/人工智能学院 电子信息工程专业 本20
6) 陈 冲 中国石油大学(北京)信息科学与工程学院/人工智能学院 电子信息工程系教师
7) 王莹莹 中国石油大学(北京)安全与海洋工程学院 教师
摘要:
随着自动驾驶汽车技术的不断进步,建筑物的检测变得越来越重要。它使自动驾驶汽车能够更好地了解周围环境,促进更安全的导航和决策过程。然而,建筑物识别面临着无法部署在边缘设备上的严重遮挡和大尺寸检测模型等问题。为了解决这些问题,本文提出了一种基于YOLOv5s的轻量级建筑识别模型。我们首先从真实场景和互联网上收集了一个建筑数据集,并应用了一种改进的GridMask数据增强方法来扩展数据集,减少遮挡的影响。为了使模型轻量化,我们采用BN层通道剪枝的方法对模型进行剪枝,降低了模型的计算成本。此外,我们使用Mish作为激活函数,以帮助模型在稀疏训练中更好地收敛。最后,将其与YOLOv5s(基线模型)进行比较,实验表明,改进的模型将模型大小减少了9.595MB,并且mAP@0.5达到82.3%。这项研究将为轻量化建筑检测提供思路,并证明其在自动驾驶领域中的环境感知方面的意义。
背景与动机:
建筑物检测是计算机视觉领域中一项具有挑战性和重要意义的任务。在与自动驾驶相关的安全监控和物联网(IoT)应用领域,建筑物检测有助于快速有效的决策过程,从而在城市景观中实现更高效的资源管理。
然而,建筑物检测仍然面临两个问题,一个是遮挡的影响。在实际场景中,由于拍摄角度的不同,建筑物可能会受到树木、行人和车辆的遮挡,从而影响检测,降低检测效果。另一个挑战是模型的大小。尽管YOLOv5和Faster R-CNN等检测模型具有强大的对象检测能力,但由于模型的体积和计算复杂性巨大,将其部署到计算能力有限的嵌入式设备上是一个挑战。
设计与实现:
建筑物检测方法的总体过程如图1所示,包括以下步骤:(1)对数据集进行数据增强,并使用改进的GridMask方法引入随机噪声来模拟实际遮挡情况。(2) 对改进后的模型进行稀疏训练,使BN层的参数接近0。(3) 我们根据剪枝率来裁剪BN层参数。(4) 我们用Mish代替激活函数,并比较其与不同激活函数的有效性。
图1 建筑检测方法的总流程
改进版GridMask数据增强方法(如图2所示):针对建筑检测任务中建筑目标面积较大的特点,我们对原版的GridMask方法进行了改进。原始GridMask可能覆盖整个建筑目标,影响模型的特征提取能力。因此,我们提出了将GridMask的分布细化为图像中的随机目标区域的方法。这种方法能够更准确地模拟真实世界中的遮挡情况,因为在实际场景中,遮挡往往集中在图像的特定区域而非整个图像。我们首先按随机比例缩小GridMask,以确保其不会占据过大的目标区域。接着,在图像中随机分布这些缩小后的GridMask,以模拟实际识别过程中遮挡的随机性。
图2 改进版GridMask
稀疏训练与剪枝(如图3所示):在YOLOv5中,BN(Batch Normalization)层通过引入可学习参数γ和β来增强模型训练效率。当γ和β接近0时,BN层输出趋于0,表明这些通道对网络贡献较小。根据刘壮等人的理论,稀疏训练利用L1正则化惩罚BN层内的反向传播梯度,使γ和β值趋近于0,减少剪枝对性能的影响。基于稀疏训练训练,我们剪枝具有较小γ和β值的通道及其对应的卷积核,之后对模型进行微调以补偿剪枝带来的性能损失。YOLOv5中BN层的密集分布使其成为模型优化的关键。剪枝这些层能有效减小模型大小,且大多数BN层与前后卷积层通道一一对应,允许直接剪枝对应通道,进一步简化模型结构。
图3 BN层通道剪枝过程
Mish激活函数;研究表明,激活函数的选择在决定稀疏网络的性能方面起着至关重要的作用,在这项研究中,我们应用了Mish激活函数,因为它在各种数据集中观察到了显著的性能Mish激活函数的公式如下所示:
通过将softplus函数应用于输入x进行运算,然后将结果通过双曲正切函数(tanh)。最后,将结果乘以x以获得输出。在剪枝网络中,参数的减少可能会降低模型的表达能力,导致准确性损失。Mish的非线性映射和平滑性使网络能够有效地利用剩余参数进行特征提取和学习。此外,Mish的梯度在接近零的情况下更平滑,减轻了梯度消失的问题,增强了训练稳定性。集成Mish激活利用其特征提取和梯度平滑功能,更好地补偿剪枝造成的精度损失,使剪枝后的模型能够在保持精度的同时保持高效率。
实验结果及分析:
表一给出了数据增强实验的结果,表2中的结果表明,经过数据增强的模型精度为93.4%,比原版模型低了几个点。这意味着添加改进的Gridmask可能会导致模型在检测某些图像时出现一些错误。然而,该模型的召回率提高到86.6%,这意味着具有改进的GridMask的模型可以检测到以前模型无法检测到的一些图像。
表一 YOLOv5s在使用数据增强的情况下的检测性能。
Model |
Precision |
Recall |
mAP@0.5 |
Model Size |
Parameters |
Data augmentation |
93.4% |
86.6% |
89.6% |
14.070 MB |
7,074,330 |
Without Data augmentation |
94.9% |
84.3% |
89.5% |
14.070 MB |
7,074,330 |
为了进一步验证改进的GridMask对遮挡的影响,我们从测试数据集中选择了所有具有遮挡的图像(共101幅图像),并用这些图像测试了模型。结果如表3所示。与没有数据增强的模型相比,改进了GridMask的模型将召回指标显著提高了4.6%。所有模型的精度都保持在93%以上。在遮挡物体的检测中,改进的GridMask大大提高了模型的召回率,从而在一定程度上避免了漏检。
表二 YOLOv5s在有遮挡的图像中数据增强的检测性能。
Model |
Precision |
Recall |
mAP@0.5 |
Model Size |
Parameters |
Data augmentation |
93.1% |
72.9% |
80.0% |
14.070 MB |
7,074,330 |
Without Data augmentation |
93.4% |
68.3% |
78.9% |
14.070 MB |
7,074,330 |
我们以体育馆为例,如图4(a)所示,两张图像显示出漏检现象,而另一张图像显示出现假阳性。然而,通过数据增强,图4(b)中的体育馆被成功检测。
图4.体育馆的检测结果
为了评估剪枝过程中的三个阶段(稀疏训练、剪枝和微调)对YOLOv5检测性能的影响,我们比较了四种不同的模型,包括原始YOLOv5(YOLOv5)、稀疏训练的模型(稀疏YOLOv5。剪枝率从10%到90%不等,间隔为10%。实验结果如表三与图5所示。
如表三所示,当剪枝率增加时,模型大小和参数数量减少,表明剪枝方法可以有效地减小模型的大小。
表三 不同模型在模型大小、参数和GFLOPs方面的检测性能
Model |
Model Size (MB) |
Parameters |
GFLOPs |
YOLOv5 |
14.070 |
7,074,330 |
16.5 |
Sparse YOLOv5 |
27.931 |
7,074,330 |
16.5 |
Sparse and fine-tuned YOLOv5 |
14.120 |
7,074,330 |
16.5 |
Prune YOLOv5 (0.1) |
12.425 |
6,209,872 |
14.8 |
Prune YOLOv5 (0.2) |
10.731 |
5,344,219 |
13.5 |
Prune YOLOv5 (0.3) |
9.195 |
4,559,893 |
12.3 |
Prune YOLOv5 (0.4) |
7.873 |
3,884,554 |
11.1 |
Prune YOLOv5 (0.5) |
6.685 |
3,277,868 |
10.2 |
Prune YOLOv5 (0.6) |
5.606 |
2,727,398 |
9.2 |
Prune YOLOv5 (0.7) |
4.475 |
2,150,031 |
7.6 |
Prune YOLOv5 (0.8) |
- |
- |
- |
Prune YOLOv5 (0.9) |
- |
- |
- |
在图5中,实验结果表明,该模型在40-50%的剪枝率左右达到了最低的精度。这表明剪枝率和模型性能之间存在非线性关系。此外尽管剪枝有效地减少了参数的数量,但会导致模型的检测能力下降。此外,即使在微调之后,稀疏训练还是会降低模型的检测能力。这表明微调对恢复模型精度的影响是有限的。
图5 不同剪枝率的实验结果
由于激活函数对稀疏训练有显著影响,我们将激活函数替换为Mish/HardSwish/Leaky ReLU/RReLU进行稀疏训练,并将剪枝率分别设置为30%、50%和70%。我们进行了消融实验,以比较不同激活函数对稀疏训练下模型检测性能的影响。实验结果如图6所示。
图6 不同激活函数的实验结果
不同激活函数对模型性能的影响可归因于梯度反向传播和稀疏训练的机制。对于Conv模块,反向传播的梯度将从激活函数梯度传输到BN层,用于更新BN层参数。整个过程如图7所示。损耗函数相对于BN层参数的梯度由四个部分组成:BN层输出相对于BN层的梯度γ和β,激活函数的梯度,损耗函数相对于激活函数输出的梯度,以及L1正则化带来的梯度变化。BN层输出相对于BN层参数的梯度和损失函数相对于激活函数输出的梯度取决于网络的输入和输出。此外,L1正则化产生的梯度变化是恒定的。因此,对于不同的激活函数,损失函数相对于BN层参数的梯度可能不同,并且不同的激活功能可能影响L1正则化对梯度更新的影响,从而影响稀疏训练的效果。
图7 Conv模块中反向传播的梯度过程
结论:
在本研究中,我们提出了一种基于YOLOv5s的轻量级建筑检测模型。我们将GridMask修改为随机大小,并将其放置在图像中的随机位置,因为原始GridMask可能完全覆盖建筑物,这可能会导致原始图像中的功能过度丢失。这样,我们可以在模型的稳定性和适应性之间取得平衡,提高模型对遮挡的鲁棒性。然后,我们使用BN层剪枝方法对模型进行剪枝,成功地将模型的体积减少了70%。最后,我们比较了剪枝模型中不同的激活函数,证明了Mish可以帮助减少剪枝对模型的影响。结果表明,通过选择适当的激活函数,可以减轻剪枝的副作用。还应该注意的是,用于建筑物检测的改进的YOLOv5s模型不仅可以用于校园建筑,还可以用于旅游景点、城市导航等各个领域。通过识别建筑物和其他城市特征,自动驾驶汽车可以增强其定位技术,特别是在无GPS的环境中。
通讯作者简介:
陈冲,博士,中国石油大学(北京)信息科学与工程学院/人工智能学院电子信息工程系副教授,硕士生导师,中共党员。研究方向:数值模拟、机器学习、信息融合、不确定性分析。 联系方式:chenchong@cup.edu.cn