醋醋百科网

Good Luck To You!

微调 YOLOv12:与 YOLOv11 和基于Darknet的 YOLOv7 的比较

本文部分编译自:Fine-Tuning YOLOv12: Comparison with YOLOv11 & DarkNet-Based YOLOv7,作者:Shubham,March 11, 2025

(原文地址:https://learnopencv.com/fine-tuning-yolov12/?utm_source=lopcv&utm_medium=email&utm_campaign=finetuning-yolov12

YOLO(You Only Look Once)是一种广受欢迎的目标检测模型,由Joseph Redmon等人首次提出,以其高速和实时性著称。它将目标检测简化为一个回归问题,通过一次前向传播同时预测物体的边界框和类别概率。

1.YOLO的 核心思想

YOLO的核心在于“只看一次”:将图像分成S×S网格(如7×7),每个网格预测多个边界框(通常2个)及其置信度,并输出类别概率。整个过程通过卷积神经网络(CNN)一次性完成,再用非极大值抑制(NMS)筛选结果。这种单阶段设计让YOLO在速度上远超传统两阶段模型(如Faster R-CNN)。

2. 工作原理

  • 网格划分:图像被划分为网格,每个网格负责检测其区域内的物体。
  • 输出内容:每个网格预测边界框坐标(x, y, w, h)、置信度(是否有物体)及类别概率。
  • 单次推理:通过CNN一次性生成所有预测,高效且全局化。

3.版本演进

YOLO自诞生以来不断迭代,逐步提升性能和应用范围:

  • YOLOv1(2015):首次亮相,速度快但精度有限。
  • YOLOv2(2016):引入Anchor Boxes,提升小物体检测,支持9000多种类别。
  • YOLOv3(2018):采用多尺度预测,精度显著提高。
  • YOLOv4(2020):优化网络结构,性能更强。
  • YOLOv5(2020):Ultralytics团队基于PyTorch开发,易用性突出。
  • YOLOv6至v11(2021-2024):持续改进效率和精度,适应不同硬件需求。
  • YOLOv12(2025):由Yunjie Tian等人于2025年2月提出,引入注意力机制(Attention Mechanisms),采用“区域注意力”和Flash Attention技术。在COCO数据集上,YOLOv12-N达到40.6% mAP(T4 GPU推理延迟1.64毫秒),超越YOLOv10和v11,同时支持分类、分割、姿态估计等多任务。代码已在GitHub开源(如sunsmarterjie/yolov12)。

4. 优点

  • 实时性:速度快,适用于自动驾驶、视频监控等场景。
  • 全局推理:一次性处理整张图像,上下文理解能力强。
  • 易用性:开源实现(如Ultralytics版本)便于训练和部署。

5. 局限性

  • 小物体检测:早期版本表现较弱,后期(如v12)有所改进。
  • 定位精度:边界框定位可能不如两阶段模型精确。

6. 应用场景

YOLO广泛用于自动驾驶、安防、无人机、医疗影像等领域。YOLOv12的注意力机制使其在复杂场景下更具优势,而v11等版本在极高帧率需求中仍有竞争力。

7. 最新进展(截至2025年3月)

YOLOv12于2025年2月18日发布,标志着YOLO从纯CNN架构向注意力机制融合的转型。它在精度和多任务能力上领先,但在某些超实时场景下(如帧率40 FPS的YOLOv11 vs. 30 FPS的YOLOv12),用户需根据需求选择版本。


以下为原文翻译:

对象检测已经取得了巨大的进步,YOLOv12、YOLOv11 和基于DarkNet的 YOLOv7 等模型在实时检测方面处于领先地位。虽然这些模型在一般对象检测数据集上表现非常出色,但在 HRSC2016-MS(高分辨率遥感图像舰船数据集)上微调 YOLOv12 会带来独特的挑战。

本文提供了详细的端到端管道,用于在 HRSC2016-MS 上微调 YOLOv12、YOLOv11 和基于DarkNet的 YOLOv7。它涵盖了数据集预处理(基本混组和将数据集拆分为 train、test 和 val 集)、训练、评估以及它们的性能比较分析。主要关注领域包括:

  • 处理数据集偏差以改进小对象检测
  • 随机排列数据集以确保正确泛化
  • 在验证/测试集上比较 YOLOv12、YOLOv11 和基于DarkNet的 YOLOv7
  • 可视化检测以比较模型性能

此外,本文还强调了了解数据集结构和偏差的重要性。研究人员在数据集准备和适当的训练-验证-测试拆分方面投入了大量时间,以增强模型泛化并避免误导性结果。通过解决 HRSC2016-MS 中的这些挑战,我们展示了适当的数据准备和结构化如何直接有助于提高模型准确性。

目录表

1 了解 HRSC2016-MS 数据集

1.1 为什么引入 HRSC2016-MS?

1.2 原始数据集的问题

2 数据集转换和预处理(洗牌)

2.1 将注释从 XML 转换为 YOLO (.txt) 格式

2.2 随机排列整个数据集以进行泛化

2.3 为 YOLO 重构数据集

2.4 为 DarkNet 重组数据集

3 在 HRSC2016-MS 数据集上微调 YOLOv12

3.1 模型配置

3.2 训练管道

3.3 评估指标

4 在 HRSC2016-MS 数据集上微调 YOLOv11

5 在 HRSC2016-MS 上微调基于 YOLOv7 的DarkNet

5.1 设置 DarkNet

5.2 下载预训练的基于 DarkNet 的 YOLOv7 权重

5.3 DarkNet 的文本文件

5.4 准备基于 DarkNet 的自定义 YOLOv7 类名文件

5.5 准备基于DarkNet的自定义 YOLOv7 训练数据文件

5.6 准备基于 DarkNet 的自定义 YOLOv7 测试数据文件

5.7 准备基于 DarkNet 的自定义 YOLOv7 配置文件

5.8 训练基于DarkNet的 YOLOv7

5.9 评估指标:基于DarkNet的 YOLOv7

6 YOLOv12、YOLOv11 和基于DarkNet的 YOLOv7 的 mAP 分数比较

6.1 训练图和损失图的可视化

7 对少量图像的推理结果

8 关键要点

9 结论

10引用




1 了解 HRSC2016-MS 数据集

HRSC2016-MS 是一个由船舶航拍图像组成的海洋物体检测数据集。数据集只有一个类作为 ship。它包含各种船舶大小、密度和方向,使其成为对象检测模型具有挑战性的数据集。

1.1 为什么引入 HRSC2016-MS?

在 HRSC2016-MS 之前,已经存在 HRSC2016 数据集,其中包含用于检测任务的船舶图像。然而,HRSC2016-MS 的作者引入了这个修改后的数据集,以解决原始数据集的几个关键限制:

增强的多尺度表示

  • 原始HRSC2016数据集具有相对相似比例尺的船只,不能充分表示多尺度变化
  • 引入 HRSC2016-MS 是为了包括更广泛的船舶尺寸,确保在实际应用中更好地泛化。

改进的数据集多样性

  • 原始的 HRSC2016 数据集在船舶杂波和比例转换方面缺乏足够的方差
  • HRSC2016-MS 引入了更密集的船只,提高了数据集在小物体检测中的实用性。

更具挑战性的对象分布

  • 原始数据集在船舶方向和每张图像密度方面的变化较小
  • HRSC2016-MS 旨在提高数据集的复杂性,使其成为高级对象检测模型的更好基准。

原始数据集结构(从 Kaggle 下载)

首次下载时,数据集具有以下结构:

HRSC2016-MS/
├── AllImages/        # 包含所有图片 (未分割为train/val/test)
├── Annotations/      # 每个图像的VOC XML注释
└── ImageSets/
   ├── train.txt     # 训练用的图像文件名列表 
   ├── val.txt       # 验证用的图像文件名列表    
   ├── test.txt      #测试用的图像文件名列表
   ├── trainval.txt  #训练和图像的综合列表,供开发者测试使用

1.2 原始数据集的问题

不兼容 YOLO 的批注

  • 该数据集使用了 VOC 风格的 XML 注释,需要转换为 YOLO 格式。

不兼容 YOLO 的目录结构

  • 所有图像都存储在 AllImages/ 中,而不是拆分为 train/、val/ 和 test。
  • 该数据集包括仅包含图像文件名的文本文件(train.txt、val.txt、test.txt trainval.txt),使其与 YOLO 和 DarkNet 不兼容

Biased Train-Test Split

  • 数据集总共包含 1680 张图像,理想情况下,测试集应包含文件名在 1-1680 范围内的图像。然而,在分析原始 HRSC2016-MS 数据集中的标签文件名时,我们发现测试集包含文件名范围约为 1-650 的连续图像。这表明图像在训练集、测试和验证集之间的分布不正确,这可能会导致潜在的偏差并影响模型性能。
  • 与 train 和 val 集相比,测试集包含更小、杂乱的船只
  • 这导致泛化效果不佳,模型难以检测小型船只




2 数据集转换和预处理(洗牌)

为了解决原始数据集的问题,我们手动将数据集转换并重新构建为 YOLO 和 DarkNet 兼容格式。所有数据集转换和预处理代码都可以直接下载。

2.1 将批注从 XML 转换为 YOLO (.txt) 格式

  • 从 XML 文件中提取边界框坐标 (xmin, ymin, xmax, ymax)。将它们转换为 YOLO (.txt) 格式:
  • 我们没有使用旋转的边界框注释,只是为了让评估过程更简单一些。

2.2 随机排列整个数据集以进行泛化

由于测试集主要包含小型、密集的船只,因此在原始数据集上进行训练会导致泛化效果不佳。

  • 我们对数据集进行了合并、洗牌和重新拆分,以确保以下几点:
  • 小型和大型船只在火车、价值和测试集上的均衡分布。
  • 防止过度拟合到特定对象大小。
  • 此处提供的结果用作基线。鉴于数据集拆分的固有随机性,其他研究人员可能会观察到略有不同的结果;有些可能会获得更好的结果,而另一些可能会获得稍差的结果。为了确保透明度和可重复性,我们还将提供实验中使用的确切数据集拆分这些数据集将在 zip 文件中提供以供参考。

2.3 为 YOLO 重构数据集

处理后,对数据集进行结构化,然后转换为 YOLO 特定的格式,如下所示:

HRSC-YOLO/
├── train/
│   ├── images/   #训练图像
│   ├── labels/   #训练标签,YOLO格式
├── val/
│   ├── images/   # 验证图像
│   ├── labels/   # 验证标签t,YOLO格式
├── test/
│   ├── images/   #测试图像
│   ├── labels/   #测试标签,YOL格式

2.4 为 DarkNet 重组数据集

DarkNet 需要不同的结构,其中每张图像及其相应的标签文件都存储在一起。格式如下 :

darknet_dataset/
├── train/
│   ├── image1.JPG
│   ├── image1.txt
├── valid/
│   ├── image2.JPG
│   ├── image2.txt
├── test/
│   ├── image3.JPG
│   ├── image3.txt




3 在 HRSC2016-MS 数据集上微调 YOLOv12

3.1 模型配置

  • 使用 YOLOv12 (Ultralytics 实现)
  • 设置图像大小 = 640×640 以获得最佳性能。

3.2 训练管道

  • 设置 batch-size = 8 epochs count 为 100
  • Mosaic Augmentation 用于将模型暴露给不同比例尺的小物体
  • 自适应学习率调度有助于防止过度拟合。
def train_yolov12(epochs=100, batch_size=8):    
    model = YOLO(yolov12_model_path)    
    model.train(data=data_yaml, epochs=epochs, batch=batch_size, imgsz=640, device='cuda', workers=4, save=True, save_period=10)    
    model.val()    
    print(model)
    print("YOLOv12 training completed on HRSC2016-MS.")

3.3 评估指标

  • 跟踪 mAP@50、mAP@75 和 mAP@[50:95]。
  • 完成数据集预处理前后的性能比较,可以在下面推断出观察结果。




4 在 HRSC2016-MS 数据集上微调 YOLOv11

  • 遵循与 YOLOv12 相同的训练管道。
  • 比较了 YOLOv11 在原始数据集和预处理数据集上的性能。
  • mAP 分数已使用条形图进行了比较,观察结果如下:




5 在 HRSC2016-MS 上微调基于 DarkNet 的 YOLOv7

DarkNet 是开发 YOLO (You Only Look Once) 系列对象检测模型的原始框架。与 Ultralytics 的 YOLO 模型实现不同,基于 DarkNet 的 YOLOv7 需要特定的目录结构、配置文件和手动定义的数据集路径。本节详细介绍了我们如何在 HRSC2016-MS 数据集上设置、训练和评估基于DarkNet的 YOLOv7。

我们将提供一个可以在 VS Code 编辑器中轻松执行的 Jupyter 笔记本。此笔记本将指导您完成数据准备、预处理以及生成 DarkNet 启动训练过程所需的必要配置和文本文件的过程。但是,需要注意的是,对于实际的训练部分,不建议使用代码编辑器来启动 DarkNet 训练。这是因为训练期间生成的输出很大,这可能会导致代码编辑器窗口崩溃

因此,仅对于训练和评估部分,建议在终端中执行训练和评估命令,而不是在任何代码编辑器中执行它们。笔记本中给出了适当的说明。对于实际实施,建议仔细遵循说明。

5.1 设置 DarkNet

  • 克隆了 DarkNet 存储库。
  • 编译了带有CUDA和OpenCV支持的DarkNet。
  • 可以从我们关于 YOLOv4 和 DarkNet For Pothole Detection 的一篇文章中参考构建DarkNet的分步过程。链接在下面给出:

https://learnopencv.com/pothole-detection-using-yolov4-and-darknet/

5.2 下载基于预训练的 YOLOv7 的 DarkNet 权重

为了在 HRSC2016-MS 上微调基于 DarkNet 的 YOLOv7,我们使用预训练权重作为起点。使用以下方法下载 YOLOv7 DarkNet 权重

%cd /present/working/directory/darknet/
!wget https://github.com/AlexeyAB/darknet/releases/download/yolov4/yolov7x.conv.147
!wget https://github.com/AlexeyAB/darknet/releases/download/yolov4/yolov7x.weights

将权重保存在 darknet/ 目录中。事实上,从现在开始,每个命令都必须在克隆的 Darknet 目录内的 darknet 子目录中执行。

5.3 Darknet的文本文件

DarkNet 需要指定图像路径的显式文本文件

  • train.txt → 包含用于训练的图像的绝对路径。
  • valid.txt → 包含用于验证的图像的绝对路径。
  • test.txt → 包含用于评估的图像的绝对路径。

为了生成这些文本文件,我们将编写一个 Python 脚本,然后执行该脚本。脚本如下 :

def train_yolov12(epochs=100, batch_size=8):    
    model = YOLO(yolov12_model_path)    
    model.train(data=data_yaml, epochs=epochs, batch=batch_size, imgsz=640, device='cuda', workers=4, save=True, save_period=10)    
    model.val()    
    print(model)
    print("YOLOv12 training completed on HRSC2016-MS.")

在 darknet 目录下创建上述脚本后,我们需要执行以下命令来运行上述脚本。

!python darknet_images.py --data_file build/darknet/x64/data/ship_test.data --input /path/to/test/images --config_file cfg/yolov7-darknet-hrsc2016-ms.cfg --weights backup_2000/yolov7-darknet-hrsc2016-ms_final.weights --thresh 0.25 --ext_output --save_labels --dont_show
  • obj.names (ship.names) → 类名文件
  • obj.data (hrsc2016-ms-yolov7.data) → 训练数据文件
  • 自定义 .cfg 文件 (yolov7-darknet-hrsc2016-ms.cfg) → 用于为特定数据集定义基于 YOLOv7 的Darknet架构

5.4 准备基于 Darknet 的自定义 YOLOv7 类名文件

%%writefile build/darknet/x64/data/ship.names
ship

5.5 准备基于Darknet 的自定义 YOLOv7 训练数据文件

在开始训练过程之前,我们需要确保已经创建了一个名为 backup_2000 的目录。

%%writefile build/darknet/x64/data/hrsc2016-ms-yolov7.data
classes = 1
train  = train.txt
valid  = valid.txt
names = build/darknet/x64/data/ship.names
backup = backup_2000

5.6 准备基于 Darknet 的自定义 YOLOv7 测试数据文件

建议在开始推理和测试过程之前创建 backup_test_2000 目录。

%%writefile build/darknet/x64/data/ship_test.data
classes = 1
train  = train.txt
valid  = test.txt
names = build/darknet/x64/data/ship.names
backup = backup_test_2000

5.7 准备基于 Darknet 的自定义 YOLOv7 配置文件

我们将创建一个自定义配置文件,其中几乎所有内容都与默认 yolov7x.cfg 中的内容相同(因为我们正在比较大型 YOLO 模型),除了一些参数,我们需要根据我们的数据集进行修改。

在新的配置文件中,我们必须将 batch 值保持为 64,即使我们训练了 batch size 为 8 的 YOLOv12 和 YOLOv11 模型。这样做是因为 YOLO 模型的名义批量大小 (NBS) 为 64。建议保持细分值等于 64 本身,因为当我们训练基于 Darknet 的 YOLOv7 并计算 mAP 分数时,减小细分值可能会导致内存不足错误。


%%writefile cfg/yolov7-darknet-hrsc2016-ms.cfg
[net]
# Testing
#batch=64
#subdivisions=64
# Training
batch=64
subdivisions=64
width=640
height=640
channels=3
momentum=0.9
decay=0.0005
angle=0
saturation = 1.5
exposure = 1.5
hue=.1
learning_rate=0.00261
burn_in=1000
max_batches = 2000
policy=steps
steps=1600,1800
scales=.1,.1
...

通常,我们将 max_batches 等于 (2000 * num_classes),由于我们训练了 100 个 epoch 的 YOLO 模型,因此我们必须将 max_batches 值设置为 1000 左右,但在进行实验时,我们观察到模型仍有待收敛。因此,我们简单地将模型训练了 2000 步或 max_batches。学习率将安排在步骤 1600 和 1800 处降低。

[convolutional]
size=1
stride=1
pad=1
filters=18
#activation=linear
activation=logistic
[yolo]
mask = 6,7,8
anchors = 12,16, 19,36, 40,28, 36,75, 76,55, 72,146, 142,110, 192,243, 459,401
classes=1
...

接下来是我们需要修改的过滤器和类的数量。我们可以在模型配置文件中找到三个 [yolo] 层。将这些图层中的类从 80 更改为 1,因为我们只有一个类。在每个 [yolo] 层之前,将有包含 filters 参数的 [卷积] 层。将过滤器数量更改为 (num_classes+5)*3 给出的值,在本例中为 18。

需要修改的参数总结如下 :

  • batch= 64
  • subdivisions = 64
  • max_batches=2000
  • steps=1600,1800(分别为 max_batches的 80% 和 90%)
  • classes=1 在 [yolo] 图层中
  • filters=18

运行上述所有脚本后,darknet/ 目录将如下所示:

darknet/
├── train.txt   #训练图像路径列表
├── valid.txt   #验证图像路径列表
├── test.txt    #测试图像路径列表
├──cfg
│   ├── yolov7-darknet-hrsc2016-ms.cfg
├──build/darknet/x64/data
│   ├── ship.names
│   ├── hrsc2016-ms-yolov7.data
│   ├── ship_test.data
...

5.8 训练基于Darknet的 YOLOv7

提醒:仅在终端中运行以下命令。

下面的 terminal 命令启动基于 Darknet 的 YOLOv7 模型的训练过程,并在训练结束后计算 mAP@50 分数。

./darknet detector train build/darknet/x64/data/hrsc2016-ms-yolov7.data cfg/yolov7-darknet-hrsc2016-ms.cfg yolov7x.conv.147 -map -dont_show

5.9 评估指标:基于 YOLOv7 的Darknet

我们将使用以下终端命令来获取具有 0.75 IoU 阈值的验证集的 mAP 分数。我们只需更改命令中的 iou_thresh 值,即可根据需要设置 IoU 阈值。

./darknet detector map build/darknet/x64/data/ship_test.data cfg/yolov7-darknet-hrsc2016-ms.cfg backup_2000/yolov7-darknet-hrsc2016-ms_final.weights -iou_thresh 0.75

如果我们想计算测试集上的 mAP 分数,我们只需要修改 ship_test.data 配置文件。我们只需要将 'valid' 参数值从 'valid.txt' 更改为 'test.txt'。

使用以下命令通过经过训练的模型对提供的图像生成检测。注意包含命令中要提及的图像的目录的路径。输出将包含模型为传递的图像预测的边界框的位置。

./darknet detector test build/darknet/x64/data/hrsc2016-ms-yolov7.data cfg/yolov7-darknet-hrsc2016-ms.cfg backup_2000/yolov7-darknet-hrsc2016-ms_final.weights -dont_show -ext_output < test.txt > results_darknet_test.txt

但是,要在图像上可视化检测结果,我们必须修改克隆的Darknet存储库的内部 Python 脚本 (darknet_images.py)。我们只需要在文件中添加两行额外的行,以便将带注释的图像保存在目录中。在 VS Code Editor 中打开文件,然后根据建议进行更改。这两行额外的行如下 :

darknet_images.py

output_image_path = os.path.join("yolov7_darknet_test_results", image_name.split(os.path.sep)[-1])
cv2.imwrite(output_image_path, image)

所做的更改如下所示,以供参考。

要使用所需的所有参数运行 darknet_images.py 脚本,我们需要在终端中运行以下命令。

python darknet_images.py --data_file build/darknet/x64/data/ship_test.data --input /path/to/test/images --config_file cfg/yolov7-darknet-hrsc2016-ms.cfg --weights backup_2000/yolov7-darknet-hrsc2016-ms_final.weights --thresh 0.25 --ext_output --save_labels --dont_show

我们现在已经完成了实验。现在是时候比较微调模型的性能了。




6 比较 YOLOv12、YOLOv11 和基于Darknet的 YOLOv7 的 mAP 分数

如本文前面所示,预处理数据集的 mAP 分数明显高于原始数据集。基于评估指标 mAP@50、 mAP@75 和 mAP@ [50:95] 对预处理数据集的最终比较如下所示。

在验证集上 :

在测试集上 :

6.1 训练图和损失图的可视化

YOLOv12 版本

YOLOv11 版本

基于Darknet的 YOLOv7




7 对少量图像的推理结果

所有三个模型在给定的 Ground Truth 图像上都表现出相似的性能。Darknet 在识别其他模型遗漏或检测精度较低的标记小物体方面表现出更高的准确性。

所有评估的模型在检测密集和小型物体方面都表现出强大的性能。然而,YOLOv11 表现出重叠的检测,这可能表明预测冗余或不太精确。总体而言,这些模型以不同程度的重叠和精度有效地处理了检测任务。

YOLOv12 是唯一能够在 Ground Truth 图像中检测到标记对象的模型。整体而言,所有样本在物件侦测方面的表现相若。但是,YOLOv11 继续产生重叠检测,表明可能存在冗余或精度降低。

给定的图像是评估对象检测模型的理想测试用例,尤其是在密集和较小的对象场景中。肤浅的比较可能表明,基于更高的检测数量,YOLOv12 的性能优于其他模型。但是,详细分析表明,许多 YOLOv12 检测是重叠、冗余或误报。基于DarkNnet的 YOLOv7 尽管检测到的对象较少,但表现出更高的准确性,误报和重叠最少。稳健的评估必须考虑精度、召回率和误检率,而不是仅仅依赖检测计数。




8 关键要点

  • mAP@50分数表明在基于Darknet的 YOLOv7 中具有很强的对象检测能力。这表明 DarkNet 在基本对象定位(检测船只)方面非常有效,但可能会遇到更严格的定位约束。
  • YOLOv11在高IoU阈值(mAP@75和mAP@[50:95])中表现出色。推理质量在更严格的 IoU 阈值下得到提高,这意味着 YOLOv11 比其他模型提供更好的对象定位和更精确的边界框
  • YOLOv12 在 mAP 方面从未跑赢,但具有更强的视觉推理质量。YOLOv12 能够更有效地推断图像,这可能是由于在密集环境中为船舶提供了更好的特征提取
  • HRSC2016-MS 数据集受益于预处理,基本上是洗牌。对数据集进行改组和重组改进了泛化,使所有模型能够更有效地检测较小的船只。
  • 模型性能取决于数据集。尽管 YOLOv12 是最新模型,但它在任何 mAP 分数评估指标中都没有占据主导地位。基于Darknet的 YOLOv7 在 mAP@50 方面表现出色,表明旧架构在特定数据集中仍然具有竞争力


9 结论

本研究对 HRSC2016-MS 数据集上微调 YOLOv12、YOLOv11 和基于Darknet的 YOLOv7 进行了深入分析,重点是改进航船图像中的小目标检测。原始数据集的改组和重组在提高模型性能方面起着至关重要的作用,因为最初的训练-测试拆分是有偏差的,影响了泛化。

YOLOv11 在更严格的 IoU 阈值(mAP@75 和 mAP@[50:95])下的表现优于所有模型,使其成为精确边界框预测的最佳选择。尽管 YOLOv12 没有达到最高的 mAP 分数,但它展示了强大的真实世界推理性能,这表明定性检测的有效性超出了数字 mAP 值。




10 引用

  • HRSC2016-MS 数据集(https://www.kaggle.com/datasets/weiming97/hrsc2016-ms-dataset)
  • YOLO11 GitHub(https://github.com/ultralytics/ultralytics)
  • YOLOv12 GitHub(https://github.com/sunsmarterjie/yolov12)
  • 构建Darknet参考帖(https://learnopencv.com/pothole-detection-using-yolov4-and-darknet/)
  • Darknet GitHub(https://github.com/AlexeyAB/darknet)
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言