# Ultralytics

## 概述

Ultralytics Python 包提供了一个用户友好的接口，用于训练、评估和部署深度学习模型。它同时支持自定义数据集训练和预训练模型推理，既适合初学者入门，也为有经验的开发者提供了丰富的自定义选项。

Ultralytics 最著名的是主导了 YOLO 模型的开发，包括最新版本 YOLOv8、YOLOv10 和 YOLOv11。该包还支持其他架构，如 SAM、DETR
等。更多信息可参阅[官方文档](https://www.ultralytics.com/)。

主要特性：

 * 开箱即用的预训练模型，快速部署。
 * 自定义模型训练，配置简单。
 * 支持多种导出格式，包括 ONNX、TensorRT 和 OpenVINO。

### YOLO 模型简介

YOLO（You Only Look Once） 是一个实时目标检测模型家族，以其速度和精度著称。与传统的多步骤分析方法不同，YOLO 模型将检测视为单次回归问题，一次性从整张图像中直接预测边界框和类别概率。

最初，YOLO 模型专为目标检测设计，但新版本已支持多头任务，如姿态估计、分割等。

## 使用方法

我们已简化在 Luxonis 设备上部署使用 Ultralytics 训练的 YOLO 模型的过程。为帮助您快速上手，我们提供了按任务分类的端到端教程：

目标检测

 * [YOLOv5 教程](https://github.com/luxonis/ai-tutorials/blob/main/training/others/object-detection/YoloV5_training.ipynb)
 * [YOLOv7 教程](https://github.com/luxonis/ai-tutorials/blob/main/training/others/object-detection/YoloV7_training.ipynb)
 * [YOLOv8 教程](https://github.com/luxonis/ai-tutorials/blob/main/training/others/object-detection/YoloV8_training.ipynb)

实例姿态估计

 * [YOLOv11
   教程](https://github.com/luxonis/ai-tutorials/blob/main/training/others/pose-estimation/yolo11_pose_estimation_training.ipynb)

实例分割

 * [YOLOv11
   教程](https://github.com/luxonis/ai-tutorials/blob/main/training/others/instance-segmentation/yolo11_instance_segmentation_training.ipynb)

如果您已有预训练权重，只需将其转换为 Luxonis 设备可用格式，请按以下步骤操作：

 1. 使用 [YOLO ONNX 转换](https://docs.luxonis.com/software-v3/ai-inference/conversion/onnx-conversion.md) 转换模型。
 2. 然后，通过 [RVC 转换](https://docs.luxonis.com/software-v3/ai-inference/conversion/rvc-conversion.md) 完成转换流程。

### DepthAI 集成

YOLO 模型需要专门的后处理，包括：

 * 解码原始输出为边界框（以及某些模型的关键点或实例掩码）。
 * 非极大值抑制（NMS） 以过滤重叠检测结果。

将目标检测模型转换为 RVC 可用格式 后，您可以使用 [DetectionNetwork
节点](https://docs.luxonis.com/software-v3/depthai/depthai-components/nodes/detection_network.md) 进行集成，该节点会自动处理所有必要的后处理。

对于实例关键点检测或实例分割模型，请参阅以下 YOLO 模型 部分：[推理](https://docs.luxonis.com/software-v3/ai-inference/inference.md) 页面。在这种情况下，请使用 DepthAI 节点
包，并在 [NNArchive](https://docs.luxonis.com/software-v3/ai-inference/nn-archive.md) 中将 YOLOExtendedParser 设置为头部解析器。
