当前位置: 首页 > news >正文

YOLO26目标检测实战:从环境搭建到自定义数据集训练全流程

很多同学在入门目标检测时,面对YOLO庞大的生态和复杂的配置流程,常常感到无从下手。从环境搭建、模型推理到自定义数据集的准备与训练,每一步都可能遇到各种报错和配置难题。本文将为你提供一份从零开始的YOLO26实战指南,内容涵盖环境安装、模型推理、自定义数据集搭建与训练的完整闭环流程。无论你是刚接触深度学习的新手,还是有基础想快速上手的开发者,都能通过本文的系统讲解和可复现的代码,快速掌握YOLO目标检测的核心技能。

1. YOLO26 核心概念与背景

1.1 什么是目标检测?

目标检测是计算机视觉领域的核心任务之一,其目标是在图像或视频中定位并识别出感兴趣的物体。与简单的图像分类(只判断图像中有什么)不同,目标检测需要同时完成“定位”(物体在哪里)和“分类”(物体是什么)两项工作。其输出通常是物体周围的边界框(Bounding Box)和对应的类别标签及置信度。

1.2 YOLO 系列算法简介

YOLO(You Only Look Once)是一种单阶段(one-stage)目标检测算法,以其“快、准、狠”的特点著称。其核心思想是将目标检测任务视为一个回归问题,通过单次前向传播即可直接从图像像素预测出边界框和类别概率。相比传统的两阶段(two-stage)检测器(如R-CNN系列),YOLO在速度上具有巨大优势,非常适合实时应用场景。

从最初的YOLOv1到最新的YOLO26,该系列算法在保持高速的同时,不断在精度、模型架构和易用性上进行优化。Ultralytics公司维护的YOLO版本(如YOLOv5, YOLOv8, YOLO26)因其出色的工程化、完善的文档和活跃的社区,已成为工业界和学术界最受欢迎的实现之一。

1.3 为什么选择 Ultralytics YOLO26?

根据官方文档,YOLO26是下一代实时视觉AI模型,其训练模式专为高效、有效地训练目标检测模型而设计。选择它进行入门学习和项目开发,主要有以下几个优势:

  1. 用户友好:提供了极其简单而强大的CLI(命令行)和Python接口,几行代码即可完成训练、验证、预测等全套流程,大大降低了入门门槛。
  2. 功能全面:除了支持COCO、VOC等标准数据集,还完美支持自定义数据集的训练,满足个性化需求。
  3. 高效灵活:无论是单GPU、多GPU、CPU还是Apple Silicon (MPS),都能充分利用硬件性能。同时提供了丰富的超参数供用户微调模型性能。
  4. 生态完善:集成了模型导出(ONNX, TensorRT等)、追踪(Tracking)、基准测试等功能,方便模型部署到生产环境。

2. 环境准备与安装

一个稳定、兼容的环境是成功运行YOLO项目的基石。本节将详细讲解如何在Windows/Linux/macOS系统上搭建YOLO26的开发环境。

2.1 基础环境要求

  • 操作系统:Windows 10/11, Linux (Ubuntu 18.04+ 推荐), macOS 10.15+
  • Python:3.8 或 3.9(3.10+ 可能存在部分包兼容性问题,建议使用3.8或3.9)
  • CUDA(仅限NVIDIA GPU用户):版本需与PyTorch版本匹配。例如,PyTorch 2.0+ 通常对应 CUDA 11.7 或 11.8。
  • cuDNN(仅限NVIDIA GPU用户):与CUDA版本对应的cuDNN。

2.2 详细安装步骤

我们推荐使用condavenv创建独立的Python虚拟环境,以避免包依赖冲突。

步骤一:创建并激活虚拟环境

# 使用 conda (推荐) conda create -n yolo26 python=3.9 conda activate yolo26 # 或者使用 venv python -m venv yolo26_env # Windows yolo26_env\Scripts\activate # Linux/macOS source yolo26_env/bin/activate

步骤二:安装 PyTorch

访问 PyTorch 官网 获取最适合你环境的安装命令。

  • 有NVIDIA GPU的用户:选择对应的CUDA版本。
    # 例如,安装支持 CUDA 11.8 的 PyTorch 2.0+ pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
  • 只有CPU或Apple Silicon (M1/M2/M3) 的用户
    # CPU版本 pip install torch torchvision torchaudio # Apple Silicon (MPS) 版本 (PyTorch 1.12+) pip install torch torchvision torchaudio

步骤三:安装 Ultralytics YOLO26

这是最核心的一步,安装Ultralytics包。

pip install ultralytics

安装完成后,可以通过以下命令验证安装是否成功,并查看版本:

python -c “from ultralytics import YOLO; print(YOLO(‘yolo26n’))” # 或者 yolo checks

yolo checks命令会检查环境、显示安装的包版本、检测可用GPU等,非常实用。

2.3 验证安装与简单推理

让我们用一个最小的例子来验证环境是否正常工作。我们将使用预训练的YOLO26n模型对一张图片进行推理。

首先,准备一张测试图片(例如test.jpg),或者使用Ultralytics自带的测试图片。

# 文件:test_inference.py from ultralytics import YOLO import cv2 # 1. 加载一个预训练模型 (YOLO26n 是最小的模型,适合快速测试) model = YOLO(“yolo26n.pt”) # 会自动从网络下载模型权重 # 2. 进行预测 results = model(“https://ultralytics.com/images/bus.jpg”) # 使用网络图片,或替换为 ‘test.jpg’ # 3. 展示结果 for r in results: im_array = r.plot() # 绘制检测结果的图像数组 cv2.imshow(“YOLO26 Inference”, im_array) cv2.waitKey(0) cv2.destroyAllWindows() # 4. 也可以保存结果 results[0].save(“result.jpg”) print(“推理完成,结果已保存为 result.jpg”)

运行这个脚本:

python test_inference.py

如果环境配置正确,你将看到一个弹窗,显示对公交车图片的检测结果(包括行人、汽车等),并在当前目录生成result.jpg。这证明你的YOLO26环境已经准备就绪。

3. YOLO26 核心使用模式与API

Ultralytics YOLO 提供了统一且简洁的API,主要通过YOLO类来支持各种任务。理解其核心使用模式是高效利用该框架的关键。

3.1 模型加载的三种方式

加载模型是第一步,YOLO提供了多种加载方式以适应不同场景:

from ultralytics import YOLO # 方式1:从预训练权重文件加载(最常用,推荐用于训练和微调) # 这会加载模型架构和预训练权重。 model = YOLO(“yolo26n.pt”) # 方式2:从YAML配置文件构建新模型(从头开始训练时使用) # 这会根据配置文件创建模型结构,但权重是随机初始化的。 model = YOLO(“yolo26n.yaml”) # 方式3:从YAML构建并加载预训练权重(结合方式1和2) # 先构建架构,再加载权重,适用于自定义架构微调预训练权重。 model = YOLO(“yolo26n.yaml”).load(“yolo26n.pt”)

对于大多数应用,方式1是最直接和高效的。预训练权重包含了在大型数据集(如COCO)上学到的通用特征,能极大加速你的训练收敛过程并提升最终性能。

3.2 五大核心任务模式

YOLO模型对象支持五种核心模式,通过调用不同方法触发:

  1. 训练 (Train):model.train(...)
  2. 验证 (Val):model.val(...)
  3. 预测 (Predict):model.predict(...)或直接model(...)
  4. 导出 (Export):model.export(...)
  5. 追踪 (Track):model.track(...)(用于视频目标追踪)

这些模式共享大部分参数,但各有侧重。例如,训练模式train()专注于优化模型参数,而预测模式predict()则用于在新数据上应用训练好的模型。

3.3 关键参数详解(以训练为例)

model.train()方法有众多参数,理解它们对成功训练至关重要。以下是一些最关键的参数:

  • data:(必需)数据集配置文件的路径(如coco8.yaml)。该文件定义了数据路径、类别名等信息。
  • epochs: 训练的总轮数。每个epoch代表模型完整看过一遍训练数据。
  • imgsz: 输入图像的尺寸(如640)。图像会被缩放到此尺寸的正方形。更大的尺寸通常能提升精度,但会增加计算量和内存消耗。
  • batch: 批次大小。决定一次输入多少张图片进行前向/反向传播。-1表示自动批处理,会尝试使用约60%的GPU内存。
  • device: 指定训练设备。例如0(第一个GPU),cpu,mps(Apple Silicon),[0, 1](多GPU),-1(自动选择最空闲的GPU)。
  • workers: 数据加载的子进程数,用于加速数据读取。在Windows上可能需要设置为0以避免多进程错误。
  • project&name: 定义输出目录。所有训练日志、权重、图表都会保存在runs/detect/{name}或你指定的project/name下。
  • resume: 设置为True可以从上次保存的检查点恢复训练,非常实用。
  • pretrained: 是否使用预训练权重。通常设置为True以进行迁移学习。

一个完整的训练调用示例如下:

from ultralytics import YOLO model = YOLO(“yolo26n.pt”) # 加载预训练模型 # 开始训练 results = model.train( data=“my_dataset.yaml”, # 数据集配置文件 epochs=100, imgsz=640, batch=16, device=0, # 使用第一个GPU workers=8, project=“my_project”, name=“exp1”, save=True, save_period=10, # 每10个epoch保存一次检查点 verbose=True )

4. 实战:使用自定义数据集训练YOLO26模型

掌握了基础API后,我们进入最核心的实战环节:使用自己的图片和数据训练一个专属的YOLO目标检测模型。整个过程可以分为四个步骤:数据准备与标注 -> 数据集格式整理 -> 配置文件编写 -> 启动训练与评估

4.1 数据准备与标注

  1. 收集图片:收集与你目标物体相关的图片。确保图片多样(不同光照、角度、背景、遮挡),数量足够(通常一个类别至少需要几百张,越多越好)。
  2. 标注工具:推荐使用LabelImg,CVAT,RoboflowMakeSense.ai。这里以LabelImg为例,它生成的是YOLO格式的.txt标注文件。
    • 安装LabelImg:pip install labelImg
    • 打开工具:labelImg
    • 设置:格式选择YOLO,图片目录选择你的图片文件夹。
  3. 标注过程:对每张图片,画出物体边界框,并选择正确的类别标签。保存后,每张图片会生成一个同名的.txt文件。

一个YOLO格式的.txt文件内容示例如下:

0 0.5 0.5 0.3 0.4 1 0.2 0.3 0.15 0.2
  • 每一行代表一个物体。
  • 格式:<class_id> <x_center> <y_center> <width> <height>
  • 所有坐标都是归一化的(即除以图片宽高),范围在0到1之间。

4.2 数据集目录结构整理

YOLO要求数据集按特定结构组织。假设我们的项目是检测“猫”和“狗”,建议按如下结构组织:

my_dataset/ ├── images/ │ ├── train/ # 训练集图片 │ │ ├── img1.jpg │ │ ├── img2.jpg │ │ └── ... │ └── val/ # 验证集图片 │ ├── img100.jpg │ ├── img101.jpg │ └── ... └── labels/ ├── train/ # 训练集标签 (与images/train/一一对应) │ ├── img1.txt │ ├── img2.txt │ └── ... └── val/ # 验证集标签 (与images/val/一一对应) ├── img100.txt ├── img101.txt └── ...

关键点

  • imageslabels目录下的trainval子目录必须同名
  • 图片和对应的标签文件必须同名(仅扩展名不同)。
  • 通常按8:27:3的比例随机划分训练集和验证集。

4.3 创建数据集配置文件 (YAML)

这是连接你的数据和YOLO训练代码的桥梁。在数据集根目录(my_dataset/)下创建一个data.yaml文件。

# data.yaml path: /absolute/path/to/my_dataset # 数据集的根目录绝对路径 train: images/train # 训练集图片的相对路径 (相对于 path) val: images/val # 验证集图片的相对路径 (相对于 path) # 类别信息 names: 0: cat 1: dog # 可选:类别数量 nc: 2

重要提示path最好使用绝对路径,避免因工作目录变化导致找不到文件。在Windows上,路径类似D:/projects/my_dataset

4.4 启动模型训练

一切准备就绪后,就可以开始训练了。我们使用预训练的yolo26n.pt模型进行微调,这是最快最有效的方式。

方式一:使用Python脚本

# train_custom.py from ultralytics import YOLO # 1. 加载一个预训练模型 model = YOLO(“yolo26n.pt”) # 也可以选择 yolo26s.pt, yolo26m.pt 等更大模型 # 2. 使用自定义数据集训练模型 results = model.train( data=“my_dataset/data.yaml”, # 数据集配置文件路径 epochs=50, # 训练轮数,可根据数据集大小调整 imgsz=640, # 输入图像大小 batch=16, # 批次大小 (根据GPU内存调整) device=“cuda”, # 使用GPU,如果是CPU则改为 “cpu” project=“custom_yolo”, # 项目名称 name=“cat_dog_exp1”, # 实验名称 save=True, save_period=10, # 每10个epoch保存一次检查点 pretrained=True, # 使用预训练权重 optimizer=“auto”, # 自动选择优化器 lr0=0.01, # 初始学习率 lrf=0.01, # 最终学习率因子 (lr0 * lrf) momentum=0.937, weight_decay=0.0005, warmup_epochs=3.0, # 学习率预热epoch数 box=7.5, # 框损失权重 cls=0.5, # 分类损失权重 dfl=1.5, # DFL损失权重 verbose=True # 打印详细日志 ) print(“训练完成!”)

方式二:使用命令行接口 (CLI)

Ultralytics YOLO 提供了强大的CLI,一行命令即可启动训练,非常适合快速实验和脚本化。

yolo train model=yolo26n.pt data=my_dataset/data.yaml epochs=50 imgsz=640 batch=16 device=0 project=custom_yolo name=cat_dog_exp1

训练开始后,终端会显示进度条、损失值、评估指标(如mAP@0.5)等信息。所有输出(模型权重、日志、图表)都会保存在runs/detect/cat_dog_exp1/(或你指定的project/name)目录下。

4.5 训练过程监控与结果解读

训练过程中,最重要的监控指标是损失(Loss)和平均精度(mAP)。

  • 损失曲线:在runs/detect/cat_dog_exp1/目录下,results.png文件包含了训练和验证损失的曲线图。理想情况下,训练损失和验证损失都应稳步下降并最终趋于平缓。如果验证损失开始上升而训练损失持续下降,可能出现了过拟合
  • 评估指标:训练结束后,val_batchX_labels.jpg等图片展示了模型在验证集上的预测效果。更重要的是metrics图表,其中metrics/precision(B)metrics/recall(B)分别表示精确率和召回率,metrics/mAP50(B)metrics/mAP50-95(B)是综合评估指标。
    • mAP@0.5 (mAP50): IoU阈值为0.5时的平均精度,是常用的核心指标。
    • mAP@0.5:0.95 (mAP50-95): 在多个IoU阈值(0.5到0.95,步长0.05)下的平均mAP,是更严格的指标。

4.6 使用训练好的模型进行推理

训练完成后,最佳模型权重通常保存在runs/detect/cat_dog_exp1/weights/best.pt。我们可以用它来对新图片或视频进行预测。

# predict_with_custom_model.py from ultralytics import YOLO import cv2 # 加载我们刚刚训练好的最佳模型 model = YOLO(“runs/detect/cat_dog_exp1/weights/best.pt”) # 对单张图片进行预测 results = model(“path/to/your/test_image.jpg”, save=True) # save=True 会保存结果图片 # 结果会保存在 `runs/detect/predict/` 目录下 # 对视频进行预测 results = model(“path/to/your/test_video.mp4”, save=True, show=True) # show=True 会实时显示 # 对摄像头实时预测 results = model(source=0, show=True) # source=0 表示默认摄像头

5. 高级训练技巧与配置优化

掌握了基础训练流程后,通过调整一些高级设置可以进一步提升模型性能或适应特殊需求。

5.1 数据增强(Data Augmentation)

数据增强是防止过拟合、提升模型泛化能力的有效手段。YOLO26内置了丰富的数据增强选项,可以在model.train()的参数中调整。

results = model.train( data=“my_dataset/data.yaml”, epochs=100, imgsz=640, # 数据增强参数 hsv_h=0.015, # 图像色调(H)增强因子 hsv_s=0.7, # 图像饱和度(S)增强因子 hsv_v=0.4, # 图像明度(V)增强因子 degrees=10.0, # 随机旋转角度范围 (-degrees, +degrees) translate=0.1, # 图像平移比例 scale=0.5, # 图像缩放比例增益 shear=2.0, # 图像剪切强度 perspective=0.0, # 透视变换参数 flipud=0.0, # 上下翻转概率 fliplr=0.5, # 左右翻转概率 (默认0.5,很常用) mosaic=1.0, # 马赛克增强概率 (默认1.0,YOLO特色) mixup=0.0, # MixUp增强概率 copy_paste=0.0, # 复制粘贴增强概率 (用于实例分割) )

建议:对于小数据集,可以适当增强(如增加degrees,translate,scale)。对于大数据集,可以减弱或使用默认值。mosaic增强对YOLO系列效果显著,通常保持开启。

5.2 处理类别不平衡

如果你的数据集中某些类别的图片数量远少于其他类别,模型可能会偏向于多数类。YOLO26提供了cls_pw参数来处理类别不平衡。

results = model.train( data=“imbalanced_data.yaml”, epochs=100, imgsz=640, # 类别权重参数 cls_pw=1.0, # 类别加权幂指数。0.0为禁用,1.0为完全使用反向频率加权。 )

cls_pw的工作原理是根据每个类别的样本数计算权重,样本越少的类别权重越高。cls_pw=1.0应用完全的反向频率加权。对于中等不平衡,可以从0.250.5开始尝试。

5.3 恢复中断的训练

训练深度学习模型可能耗时很长,如果训练意外中断(如断电、程序崩溃),可以从上次保存的检查点恢复,无需从头开始。

from ultralytics import YOLO # 加载最后一个检查点文件 (通常是 last.pt) model = YOLO(“runs/detect/exp_name/weights/last.pt”) # 恢复训练 results = model.train(resume=True) # 或者明确指定检查点路径 # results = model.train(resume=“runs/detect/exp_name/weights/last.pt”)

设置resume=True后,训练器会自动加载优化器状态、学习率调度器状态和当前的epoch数,从断点处继续训练。

5.4 在不同硬件上训练

  • 多GPU训练:如果你有多个GPU,可以显著加速训练。
    results = model.train(data=“coco8.yaml”, epochs=100, device=[0, 1]) # 使用GPU 0和1
  • 自动选择空闲GPU:在共享服务器上,可以自动选择最空闲的GPU。
    results = model.train(data=“coco8.yaml”, epochs=100, device=-1) # 选择最空闲的一个GPU results = model.train(data=“coco8.yaml”, epochs=100, device=[-1, -1]) # 选择最空闲的两个GPU
  • Apple Silicon (MPS) 训练:对于Mac M1/M2/M3用户,可以使用Metal Performance Shaders进行加速。
    results = model.train(data=“coco8.yaml”, epochs=100, device=“mps”)
  • CPU训练:如果没有GPU,也可以在CPU上训练,但速度会慢很多。
    results = model.train(data=“coco8.yaml”, epochs=100, device=“cpu”)

6. 常见问题与解决方案(FAQ)

在实际操作中,你可能会遇到以下常见问题。这里提供排查思路和解决方案。

问题现象可能原因解决方案与排查步骤
ModuleNotFoundError: No module named ‘ultralytics’Ultralytics 包未安装或不在当前Python环境。1. 确认已激活正确的虚拟环境。
2. 运行pip install ultralytics重新安装。
3. 检查Python路径:which pythonwhere python
CUDA out of memoryGPU内存不足。1.减小batch-size:这是最有效的方法,如从16减到8或4。
2.减小imgsz:降低输入图像分辨率,如从640降到416。
3. 使用batch=-1让YOLO自动尝试寻找合适的批次大小。
4. 关闭其他占用GPU显存的程序。
训练时损失为nan学习率 (lr0) 设置过高、数据有问题(如标签格式错误、有NaN的图片)。1.大幅降低学习率:尝试lr0=1e-41e-5
2.检查数据:确保标签文件.txt格式正确,坐标在0-1之间。使用yolo val data=data.yaml验证数据集。
3. 检查图片文件是否损坏。
模型预测结果全是错的或没有框1. 数据集类别 (names) 与模型不匹配。
2. 训练不充分或过拟合。
3. 数据标注质量差。
1. 检查data.yaml中的names顺序是否与标注文件的class_id对应。
2. 增加训练轮数epochs,或使用更大的预训练模型(如从yolo26n.pt换到yolo26s.pt)。
3. 可视化检查训练集和验证集的标签是否正确(使用LabelImg重新打开几张图查看)。
在Windows上运行多进程数据加载 (workers>0) 报错Windows上Python多进程的启动方式问题。workers参数设置为0。或者将训练代码放在if __name__ == ‘__main__’:块中。
训练速度非常慢1. 使用了CPU。
2.workers设置过小,数据加载成为瓶颈。
3. 图片分辨率 (imgsz) 过大。
1. 确认device参数设置为GPU(如0)。运行yolo checks查看GPU是否可用。
2. 在Linux/macOS上,适当增加workers(如设置为CPU核心数)。
3. 尝试减小imgsz
‘YOLO’ object has no attribute ‘train’可能加载的不是正确的模型对象,或者版本不兼容。确保是从ultralytics导入YOLOfrom ultralytics import YOLO。检查ultralytics版本:pip show ultralytics
如何评估训练好的模型?不熟悉验证模式的使用。使用model.val()方法或在训练时设置val=True(默认即为True)。训练结束后,最佳模型在验证集上的指标已保存在results.csv和图表中。也可以单独运行:yolo val model=path/to/best.pt data=data.yaml

7. 工程实践与进阶建议

当你成功跑通第一个自定义模型后,为了将其应用于实际项目或进行更深入的研究,以下工程实践和建议至关重要。

7.1 数据集构建最佳实践

  1. 质量优于数量:100张标注精准的图片,远胜于1000张标注粗糙的图片。确保边界框紧贴物体,类别标签正确。
  2. 多样性是关键:收集数据时应涵盖目标物体可能出现的各种场景、光照、天气、遮挡和姿态。
  3. 划分验证集:务必从训练数据中分离出一部分作为验证集(通常20%),用于在训练过程中监控模型泛化能力,防止过拟合。绝对不要用测试集参与任何训练或调参过程。
  4. 类别平衡:尽量让每个类别的样本数量相对均衡。如果无法避免不平衡,使用cls_pw参数或过采样/欠采样技术。

7.2 模型选择与超参数调优

  1. 模型尺寸:Ultralytics提供了不同大小的模型(n, s, m, l, x),在速度和精度间权衡。
    • yolo26n.pt:最快,体积最小,精度较低。适合移动端或实时性要求极高的场景。
    • yolo26x.pt:最慢,体积最大,精度最高。适合对精度要求苛刻,算力充足的服务器场景。
    • yolo26s/m/l.pt:平衡选择。通常yolo26s.pt是兼顾速度和精度的不错起点。
  2. 学习率 (lr0):这是最重要的超参数之一。如果从头训练,可以从0.01(SGD)或0.001(Adam)开始。如果是微调预训练模型,建议使用更小的学习率,如1e-41e-5
  3. 图像尺寸 (imgsz):更大的尺寸能捕获更多细节,提升小物体检测精度,但会显著增加计算量和内存消耗。常见尺寸有 320, 416, 640, 1280。从640开始尝试。
  4. 迭代策略:不要盲目增加epochs。通过观察验证集损失和mAP曲线来判断。当验证指标长时间不再提升时,可以提前停止或降低学习率。

7.3 训练过程监控与日志

  1. 使用TensorBoard:YOLO26默认将日志输出到runs/detect/exp_name目录。你可以使用TensorBoard进行更直观的可视化。
    tensorboard --logdir runs/detect
    然后在浏览器中打开http://localhost:6006,可以查看损失曲线、指标变化、预测样例等。
  2. 保存最佳和最后模型:训练时,save=True会保存最后一个epoch的模型 (last.pt),而根据验证集mAP自动保存的最佳模型 (best.pt) 通常更有用。确保projectname设置合理,以便区分不同实验。
  3. 实验记录:为每次训练实验记录关键信息:数据集版本、模型结构、超参数(lr, batch, imgsz等)、最终mAP、训练时长。这有助于回溯和比较不同配置的效果。

7.4 模型导出与部署

训练完成后,你可能需要将PyTorch模型 (*.pt) 导出为其他格式以便在不同平台部署。

from ultralytics import YOLO model = YOLO(“runs/detect/exp_name/weights/best.pt”) # 导出为 ONNX 格式 (广泛支持的中间格式) model.export(format=“onnx”) # 导出为 TensorRT 格式 (NVIDIA GPU 极致加速) model.export(format=“engine”) # 需要提前安装 tensorrt # 导出为 CoreML 格式 (Apple 设备) model.export(format=“coreml”) # 导出为 TorchScript 格式 model.export(format=“torchscript”)

导出的文件将保存在与原始权重相同的目录。例如,best.onnx。部署时,你可以使用相应的推理引擎(如ONNX Runtime, TensorRT, CoreML)来加载和运行模型,获得比原生PyTorch更快的推理速度。

7.5 持续学习与社区资源

  1. 官方文档:Ultralytics YOLO 的官方文档是学习的第一手资料,更新及时,内容全面。
  2. GitHub Issues:遇到棘手问题时,在项目的GitHub Issues中搜索,很可能已经有解决方案。
  3. 社区论坛:如CSDN、Stack Overflow、Reddit的r/computervision板块,有大量开发者的经验分享。
  4. 版本控制:YOLO更新较快,注意你使用的版本号。文中示例基于YOLO26,核心API在v8, v9, v10等版本上基本保持稳定,但部分参数可能有细微变化,以官方文档为准。

从环境搭建到自定义数据集训练,再到模型调优和问题排查,本文系统性地梳理了YOLO26目标检测的入门到实战全流程。关键在于动手实践,建议你按照步骤,亲自准备一个小数据集(哪怕是几十张图片)完成一次完整的训练循环,过程中遇到问题再回头查阅相关章节。目标检测技术迭代迅速,但掌握这套从数据到模型的基础工作流,将为你后续学习更复杂的视觉任务打下坚实的基础。

http://www.cnnetsun.cn/news/3160462.html

相关文章:

  • YOLO目标检测从入门到实战:环境搭建、模型训练与10大项目应用
  • AI分布式训练中的集体通信操作与网络内计算优化
  • WeChatMsg技术实现:微信聊天记录解析与数据资产化的架构解析
  • 计算机视觉工具链:OpenCV、OpenGL与PyQt实战指南
  • 大模型训练实战:从环境搭建到部署优化
  • CVE-2022-25578漏洞解析:.htaccess配置缺陷导致的目录遍历与文件读取风险
  • AI学习路径全解析:从机器学习到深度学习实战指南
  • 浏览器离线AI修图:Inpaint-Web本地化图片修复与超分实践指南
  • AI赋能传染病建模:从SIR模型到变分推断的实战指南
  • 普通人如何系统性自学AI?2023实用指南
  • AI Agent自动化工作流构建:Loop Engineering核心组件与实战指南
  • AI Agent开发全攻略:从零构建智能体应用的核心路径与实践指南
  • 基于ICM-42605与PIC18的IMU姿态解算实战
  • 深度学习模型部署优化:TensorRT与Triton实战指南
  • ML.NET中K均值聚类实战避坑指南
  • VGGish音频特征提取实战:从模型加载到下游应用
  • 从CPAN到RPM:perlporter如何彻底简化Perl模块打包流程
  • 艾尔登法环帧率解锁工具终极指南:告别60FPS限制,开启丝滑冒险之旅
  • UCI 玻璃数据集多分类实战:Pandas 数据清洗与 3 种可视化方法解析
  • AI视频创作工具Seedance 2.0核心功能与实战指南
  • Isolation Forest 异常检测实战:sklearn 0.24.2 参数调优与 3 类数据场景对比
  • 高效笔记管理方案:Zotero-Better-Notes双向同步完整指南
  • PUBG后坐力控制算法深度解析:Lua脚本实现与模块化架构设计
  • 神经网络回归任务实战:从数据准备到模型部署
  • Spark MLlib ALS 实战:隐式反馈数据下的矩阵分解推荐系统构建
  • 网盘直链下载助手:九大主流网盘下载难题的终极解决方案
  • Windows 10 多版本 JDK 与 Maven 3.8+ 环境变量隔离:3 种方案实测
  • 构建Modin全流程测试框架:从单元测试到压力测试的自动化实践
  • Web应用安全开发实战:基于OWASP的10大核心防御策略与工具指南
  • PrivaZer 源码级避坑指南:从编译到实战的深度解析