目标物体检测
2024-07-09刘栩辰
刘栩辰
摘 要: 物体检测是计算机视觉中的一个具有挑战性的任务,涉及到在图像或视频中定位和分类物体。其中一个最流行的基于深度学习的物体检测方法是YOLO。YOLO已经在各种物体检测基准测试中取得了最先进的性能,并致力于通过神经网络在单次前向传递中检测图像中的对象的概念,使其成为可用的最快的对象检测模型之一。介绍YOLO的发展、技术、架构以及所利用的算法。
关键词: YOLO 目标检测 CNN NMS算法 ResNet 划分锚框技术
中图分类号: TP391.41;TP183文献标识码: A文章编号: 1679-3567(2024)06-0001-03
Target Object Detection
—Introduction to the YOLO Algorithm
LIU Xuchen
China Three Gorges University, Yichang, Hubei Province, 443002 China
Abstract: Object detection is a challenging task in computer vision that involves locating and classifying objects in images or videos. One of the most popular object detection methods based on deep learning is YOLO.YOLO has achieved state-of-the-art performance in the various benchmark tests of object detection, and it is working on the concept of detecting objects in an image in a single forward pass through a neural network, making it one of the available and fastest object detection models. The development, technology and architecture of YOLO and algorithms used in it will be introduced.
Key Words: YOLO; Object detection; CNN; NMS algorithm; ResNet; Delimiting anchor box technology
YOLO(You Only Look Once)是一种实时物体检测系统[1],由单个神经网络组成,该网络获取整个输入图像并预测图像中每个对象的边界框和类别概率。与传统目标检测算法不同,YOLO将目标检测问题视为一个回归问题,是直接在图像上预测边界框和类别概率,从而实现端到端的目标检测的功能。YOLO使用全卷积神经网络,通过单元格网格划分输入图像,并利用锚框技术优化边界框预测。YOLO通过结合定位和分类损失函数进行训练,从而实现快速且准确的物体检测,适用于需要实时处理的场景,如视频分析和自动驾驶。
1 YOLO的应用和发展
1.1 YOLO的发展
YOLO系列算法自2016年推出以来,经历了多次迭代和优化,具体如下。
1.1.1 YOLO v2(2018)
(1)Darknet-19网络架构:YOLO v2使用了一个名为Darknet-19的更深的网络结构,来提高检测精度。(2)引入了Anchor boxes:这是一种预定义的边界框,用于预测物体的位置和大小,从而提高了检测准确率。(3)Batch normalization:批量归一化技术,使模型更易于训练和调整,同时减少了过拟合的风险。(4)Multiscale training:通过对不同尺度的图像进行训练,使模型能够更好地适应不同尺度的目标物体[2]。
1.1.2 YOLO v3
(1)使用残差块代替卷积层,可以有效地增加网络的深度和复杂度,并减少梯度消失问题。(2)YOLO v3使用了三个不同的检测尺度来处理不同尺度的目标物体,从而提高了检测的准确率。(3)利用FPN结构(Fea? ture Pyramid Network),可以有效地提取图像的高级语义信息,从而提高检测的准确率和稳定性。
1.1.3 YOLO v4
YOLO v4在YOLO v3的基础上进行了多项改进。(1)使用了CSPDarknet架构,能够减少网络中的参数数量和计算量,并提高网络的稳定性和鲁棒性。(2)加入Mosaic数据增强,可以将多张图像拼接成一张图像进行训练,可以增加数据的多样性并提高模型的泛化能力。(3)采用SPP-block:SPP(Spatial Pyramid Pooling)块可以对不同尺度的特征图进行池化操作,从而提高模型对不同尺度物体的检测能力。(4)采用Path Aggrega? tion Network(PANet)结构,可以有效地将不同尺度的特征图进行融合,从而提高模型的检测准确率和稳定性。YOLO v4在目标检测领域取得了很好的成果,其不仅综合运用了各种先进的技术手段,还引入了PA? Net模块,使网络能够跨多个尺度检测目标,从而提高了目标检测的准确性,并使模型更加稳定和可靠。
1.1.4 YOLO v5
YOLO v5作为最新的版本之一,在v4的基础上用了更加轻量级的网络结构。这使其在保持高性能的同时,具有更高的推理速度。并采用了一系列的模型优化技巧,包括网络结构设计、模型压缩和剪枝等,以提高模型的速度和精度。
YOLO算法的发展受益于硬件进步和数据集丰富,但也存在局限性,如对小物体检测的不足。为解决这些问题,出现了Faster R-CNN、RetinaNet、CenterNet等改进算法。同时,评价指标的完善也推动了YOLO算法的持续创新。
除了技术创新外,YOLO系列算法的发展还受到了其他因素的影响,如硬件设备的进步、数据集的丰富和算法评价指标的不断完善等[3]。硬件设备的进步为YOLO系列算法的发展提供了更强的计算能力和数据处理能力,这得益于GPU性能的提高和更高效的网络设计。此外,一些专门为深度学习任务设计的硬件加速器,如Nvidia的Tensor Core、Google的TPU等,也可以进一步提高YOLO算法的计算效率和速度。
YOLO系列算法的发展得益于数据集的丰富和评价指标的完善。随着COCO、PASCAL VOC、ImageNet等数据集的公开,算法能够学习更多样化的物体和场景,提高其泛化能力。然而,YOLO在检测小物体和密集物体方面存在局限,且在大场景下可能漏检。为克服这些挑战,研究者提出了Faster R-CNN、RetinaNet、CenterNet等改进算法,它们在保持高精度的同时,更有效地处理小物体、密集物体和大场景检测。未来,YOLO算法需不断优化以适应复杂场景。此外,评价指标的改进,如从PASCAL VOC的平均精度(mAP)到COCO的mAP和召回率,促进了算法的技术创新。
1.2 YOLO的演变趋势
从YOLO到YOLO v5,模型不断进行演变提升[4]。YOLO算法在目标检测领域,尤其是对小目标的检测上,通过不断优化网络结构和损失函数,取得了显著进步。其演变版本不仅提升了小目标的检测性能,还通过引入多任务学习,增强了模型的多功能性,使其能够同时完成检测、分割、关键点检测等任务。YOLO系列算法强调实时性和轻量性,因此在嵌入式设备和移动端应用中得到了广泛应用。
YOLO v5等最新版本进一步推动了自动化和应用拓展,通过自动化工具简化了模型训练和推理过程,并在智能交通、工业检测、无人机、自动驾驶等多个领域得到应用。这些进展展示了YOLO算法在目标检测领域的持续创新和广泛应用前景。
2 YOLO算法的机制与架构
2.1 注意力机制
YOLO算法通过将物体检测视为回归问题,实现快速且准确的检测。它通过联合训练分类和定位,提升了检测精度。注意力机制在YOLO中主要通过Squeezeand-Excitation (SE) block实现,这是一种增强CNN特征表示的轻量级方法。
SE block的操作分为两步:
(1)Squeeze:通过全局平均池化,将每个通道的特征压缩成一个单一数值;
(2)Excitation:使用两个全连接层处理Squeeze得到的向量,学习每个通道的重要性权重,并通过sig? moid激活函数限制权重在0到1之间。最后,将权重与原始特征图相乘,得到强化的特征图[5]。
SE block的引入可以提升YOLO的检测性能,它通过强化特征表示帮助网络更有效地识别和分类物体。由于其轻量级特性,SE block易于集成并可根据需求调整优化。
2.2 CNN
YOLO算法的主要结构是基于卷积神经网络(Con? volutional Neural Network,CNN),通过对输入图像进行卷积和池化操作,提取特征信息,并用这些特征信息来预测目标的位置和类别。
CNN是一种深度学习模型,主要用于图像、音频和文本等数据的特征提取和分类。它由多层卷积和池化层构成,能够自动从原始数据中学习特征。CNN的核心在于卷积操作,通过卷积核与输入数据的点积提取局部特征,形成特征图。池化操作则用于下采样,减少特征图尺寸,保留重要特征。YOLO算法利用预训练的CNN,如VGG、ResNet或Darknet,从图像中提取特征。这些特征经过多层卷积处理,提取更高级的特征,最终通过全连接层预测物体的边界框和类别概率。
2.3 ResNet
YOLO算法采用残差网络(ResNet)作为骨干网络,以加快训练速度和提升检测精度。ResNet是一种深度卷积神经网络,它通过引入残差块(Residual Block)解决了传统深度网络中的梯度消失或爆炸问题。残差块包含两个卷积层和一个跳跃连接,后者允许输入特征直接传递到输出,从而维持梯度流。这种设计使ResNet能够构建更深的网络结构,学习更复杂的特征表示,而不受深度限制。
2.4 NMS算法
在YOLO算法中,非极大值抑制(Non-Maximum Suppression, NMS)用于去除多余的边界框,以避免对同一目标的重复检测[6]。NMS通过选择最有可能包含目标的边界框,并抑制其他与之重叠但置信度较低的边界框,从而提高检测的准确性和效率。NMS的优点在于有效减少冗余检测,但需要调整阈值以适应不同的应用场景。此外,NMS可能不适用于密集场景,因为它可能会错误地抑制掉一些小目标的检测。
2.5 划分锚框技术
YOLO算法通过使用锚框(Anchor Box)来提升目标检测的精确度。锚框技术涉及为每个像素点分配多个具有预设大小和宽高比的边界框,然后对这些框进行分类和位置回归,以识别和定位图像中的目标对象[7]。
锚框的实现基于输入图像生成的特征图,即卷积神经网络处理后的高级特征图像。在特征图上,每个像素点周围会生成一系列锚框,预测模型对这些锚框进行分析,以确定是否包含目标对象并精确预测其位置。
锚框的优点包括:能够适应目标对象在不同尺寸和形状下的变化,提高检测准确性;减少计算量和内存消耗,因为只对一组锚框而非整个图像进行处理。
然而,锚框方法也有一些局限性:需要预先定义锚框的尺寸和宽高比,可能需要针对不同场景进行调整;如果锚框数量过多或尺寸设置不当,可能会导致效率降低。
3 结语
YOLO算法作为单阶段目标检测技术,在检测速度、类别多样性和精度方面超越了传统算法,如Detec? torNet、OverFeat、DeepMultiBox。其发展展示了技术创新的轨迹,融合了全卷积网络、批量归一化、残差学习、FPN等先进技术,显著提升了性能。YOLO的开源特性为研究社区提供了丰富的资源,推动了目标检测技术的进步。随着技术的迭代、硬件的发展、数据集的扩展和评价标准的精细化,YOLO系列算法在计算机视觉领域展现出广泛的应用潜力和高实用价值。YOLO算法通过不断的创新和实践,已对计算机视觉领域做出了显著贡献,在未来的研究中,YOLO算法还将继续发挥重要作用,为目标检测任务带来更多的创新和进步。
参考文献
[1] STEIN T,PEELEN M V.Object detection in natural scenes: Independent effects of spatial and categorybased attention[J].Attention,Perception,& Psychophys? ics,2017,79(3):738-752.
[2] JIANG P Y, ERGU D J, LIU F Y,et al.A Review of Yolo algorithm developments[J]. Procedia computer science,2022,199:1066-1073.
[3] ZHENG C.Stack-YOLO:A Friendly-Hardware RealTime Object Detection Algorithm[J]. IEEE Access, 2023,11:62522-62534.
[4] THUAN D.Evolution of Yolo algorithm and Yolov5: The State-of-the-Art object detention algorithm[D]. Finland:Oulun Ammattikorkeakoulu,2021.
[5] LEE Y H,KIM Y.Comparison of CNN and YOLO for Object Detection[J]. Journal of the semiconductor & display technology,2020,19(1):85-92.
[6] JEON D H,KIM T S,KIM J S.A Method for Reducing False Negative Rate in Non-Maximum Suppression of YOLO Using Bounding Box Density[J].Journal of Mul? timedia Information System, 2023,10(4):293-300.
[7] ORESKI G.YOLO* C:Adding context improves YOLO performance[J].Neurocomputing,2023,555:126655.