yolo v8的数据结构与算法研究

(整期优先)网络出版时间:2023-09-21
/ 2

yolo v8的数据结构与算法研究

郭志伟  李森辉 代刚位  钟清 孙昊瑶

广东石油化工学院(官渡校区)(525000)

摘要:YOLO V8(You Only Look Once V8)是一种用于目标检测的高性能算法。本文主要研究了YOLO V8的数据结构和算法,并对其进行了分析和优化。首先,我们介绍了YOLO V8使用的锚框(anchors)数据结构,这是一组预定义的矩形框,用于表示目标的位置和尺寸。然后,我们详细探讨了YOLO V8的算法,其基于深度卷积神经网络(CNN),通过一次前向传递实现多目标的位置和分类预测。此外,我们还研究了YOLO V8中使用的非极大值抑制(NMS)算法,用于筛选重叠的检测结果。为了提高检测性能,我们对YOLO V8进行了一系列优化,包括卷积核的大小和数量、激活函数的选择和损失函数的设计。

关键词:YOLO V8、目标检测、数据结构、算法、锚框、深度卷积神经网络、非极大值抑制、优化。

  1. YOLO V8的锚框(anchors)数据结构

YOLO V8中的锚框(anchors)是一种用于表示目标位置和尺寸的预定义矩形框。在目标检测任务中,我们需要在图像中找到目标的边界框以及对应的类别。为了实现这一目标,YOLO V8将图像划分为多个网格,并为每个网格生成预测。对于每个网格,我们使用多个不同尺度的锚框来预测不同大小的目标。

具体来说,YOLO V8中的锚框数据结构由三个元素组成:锚框的宽度、锚框的高度和锚框的数量。通常情况下,我们使用多个宽高比(aspect ratio)来生成不同尺寸的锚框。例如,我们可以定义一个较小的锚框为宽度和高度为32像素,一个较大的锚框为宽度和高度为64像素。然后,我们可以通过调整宽高比来生成不同比例的锚框,例如宽度是高度的1:2或2:1。

在YOLO V8中,每个网格都会预测一组锚框,每个锚框包含一个位置偏移量(offset)以及一个置信度分数(confidence score)。位置偏移量是相对于锚框原始位置的偏移值,用于确定目标边界框的位置。置信度分数表示该锚框中存在目标的置信度,用于判断目标的存在与否。

通过使用多个尺度的锚框,YOLO V8可以检测不同大小和比例的目标,从而提高了检测的泛化能力。锚框的数据结构使得YOLO V8能够进行快速、准确的目标检测,并在实际应用中取得了显著的性能提升。

  1. YOLO V8基于深度卷积神经网络(CNN)的目标检测算法

它的核心思想是通过一次前向传递即可实现多目标的位置和分类预测。下面我们将深入探讨一下该算法的工作原理。

首先,YOLO V8将输入图像划分为一个固定大小的网格。每个网格负责预测一个或多个物体,它们的中心点位于该网格内。通过这种方式,YOLO V8可以处理不同尺寸的物体,同时保持了位置精度。

在每个网格中,YOLO V8首先利用深度卷积神经网络提取图像特征。网络结构通常采用预训练的骨干网络,如Darknet-53,在图像分类任务上具有较好的性能。然后,通过一系列卷积层和全连接层将图像特征映射到目标检测的输出。这些输出包括目标的位置偏移量、目标的类别概率以及锚框的置信度。

在每个网格中,YOLO V8为每个锚框生成预测。每个锚框对应一个特定的尺寸和宽高比,用于预测不同大小和比例的物体。每个锚框的预测结果包括位置偏移量和置信度分数。位置偏移量用于校正锚框的位置,以获得准确的目标边界框。置信度分数则表示该锚框内是否存在目标,并且可以衡量目标的可靠性。

最后,通过将所有网格中的预测结果合并,YOLO V8得到最终的检测结果。为了提高检测的准确性,YOLO V8采用了一些技巧,如多尺度训练和特征金字塔网络(Feature Pyramid Network),以便更好地处理不同大小的目标。

总体而言,YOLO V8通过一次前向传递实现了目标的位置和分类预测,减少了计算量和时间。这使得它在实际应用中具有较高的效率和实时性,并且具备良好的目标检测性能。然而,YOLO V8也存在一些限制,如对小目标的检测较为困难,并且容易受到密集目标的干扰。

  1. YOLO V8中使用的非极大值抑制(NMS)算法

在目标检测任务中,由于目标可能在不同尺度和位置上被多次检测到,因此需要对这些重叠的检测结果进行筛选。NMS算法的目标就是从一系列具有不同置信度的边界框中选择出最准确的边界框,并且抑制掉与之高度重叠的边界框。

NMS算法的步骤如下:

1. 根据边界框的置信度对所有检测结果进行排序,将置信度最高的边界框作为基准。

2. 从剩余的边界框中选择置信度最高的边界框,计算其与基准边界框的重叠区域的面积与两个边界框的总面积的比值(即重叠率)。

3. 如果重叠率大于预先设定的阈值,则将这个边界框删除,否则保留。

4. 重复步骤2和步骤3,直到所有的边界框都被处理完成。

5. 重复步骤1到步骤4,直到所有的置信度最高的边界框都被处理完成。

通过NMS算法,YOLO V8可以保留具有最高置信度的边界框,并移除与之高度重叠的边界框。这样可以有效减少重复检测的结果,并得到更准确的目标检测结果。

[1]刘鑫昱.基于YOLO深度学习模型的图像目标检测算法研究[J].电脑编程技巧与维护,2022(07):131-134.DOI:10.16184/j.cnki.comprg.2022.07.034.

[2]陈鸿龙,刘东永,倪志琛,孙良,刘宝.基于YOLO的四旋翼无人机人脸识别实验平台[J].实验技术与管理,2020,37(10):107-111.DOI:10.16791/j.cnki.sjg.2020.10.026.

作者简介:郭志伟 男,汉族,广东茂名,2001年6月,本科,学生,广东石油化工学院(官渡校区)(525000) 研究方向:测控技术与仪器