Link to this sectionИспользование в Python#
Добро пожаловать в документацию по использованию Ultralytics YOLO в Python! Это руководство поможет тебе легко интегрировать Ultralytics YOLO в свои Python-проекты для обнаружения объектов, сегментации экземпляров, семантической сегментации и классификации. Здесь ты узнаешь, как загружать и использовать предобученные модели, обучать новые модели и выполнять предсказания на изображениях. Простой в использовании Python-интерфейс — ценный ресурс для всех, кто хочет внедрить YOLO в свои Python-проекты, позволяя быстро реализовать расширенные возможности обнаружения объектов. Давай начнем!
Watch: Mastering Ultralytics YOLO: Python
Например, ты можешь загрузить модель, обучить ее, оценить производительность на валидационном наборе и даже экспортировать в формат ONNX всего за несколько строк кода.
from ultralytics import YOLO
# Create a new YOLO model from scratch
model = YOLO("yolo26n.yaml")
# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo26n.pt")
# Train the model using the 'coco8.yaml' dataset for 3 epochs
results = model.train(data="coco8.yaml", epochs=3)
# Evaluate the model's performance on the validation set
results = model.val()
# Perform object detection on an image using the model
results = model("https://ultralytics.com/images/bus.jpg")
# Export the model to ONNX format
success = model.export(format="onnx")Link to this sectionОбучение#
Режим Train используется для обучения модели YOLO на пользовательском наборе данных. В этом режиме модель обучается с использованием указанного датасета и гиперпараметров. Процесс обучения включает оптимизацию параметров модели, чтобы она могла точно предсказывать классы и расположение объектов на изображении.
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # pass any model type
results = model.train(epochs=5)Link to this sectionВалидация#
Режим Val используется для валидации модели YOLO после обучения. В этом режиме модель оценивается на валидационном наборе для измерения точности и способности к обобщению. Этот режим можно использовать для настройки гиперпараметров модели для улучшения ее производительности.
from ultralytics import YOLO
# Load a YOLO model
model = YOLO("yolo26n.yaml")
# Train the model
model.train(data="coco8.yaml", epochs=5)
# Validate on training data
model.val()Link to this sectionПредсказание#
Режим Predict используется для выполнения предсказаний с помощью обученной модели YOLO на новых изображениях или видео. В этом режиме модель загружается из файла контрольной точки, а ты можешь предоставить изображения или видео для выполнения инференса. Модель предсказывает классы и расположение объектов на входных данных.
import cv2
from PIL import Image
from ultralytics import YOLO
model = YOLO("model.pt")
# accepts all formats - image/dir/Path/URL/video/PIL/ndarray. 0 for webcam
results = model.predict(source="0")
results = model.predict(source="folder", show=True) # Display preds. Accepts all YOLO predict arguments
# from PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True) # save plotted images
# from ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True) # save predictions as labels
# from list of PIL/ndarray
results = model.predict(source=[im1, im2])Link to this sectionЭкспорт#
Режим Export используется для экспорта модели YOLO в формат, пригодный для развертывания. В этом режиме модель преобразуется в формат, который может использоваться другими программными приложениями или аппаратными устройствами. Этот режим полезен при развертывании модели в производственных средах.
Экспорт официальной модели YOLO в ONNX с динамическим размером пакета (batch-size) и размером изображения.
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="onnx", dynamic=True)Link to this sectionОтслеживание#
Режим Track используется для отслеживания объектов в реальном времени с помощью модели YOLO. В этом режиме модель загружается из файла контрольной точки, и ты можешь предоставить поток видео в реальном времени для выполнения трекинга. Этот режим полезен для таких приложений, как системы наблюдения или беспилотные автомобили.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load an official detection model
model = YOLO("yolo26n-seg.pt") # load an official segmentation model
model = YOLO("path/to/best.pt") # load a custom model
# Track with the model
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True)
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml")Link to this sectionБенчмарк#
Режим Benchmark используется для профилирования скорости и точности различных форматов экспорта для YOLO. Бенчмарки предоставляют информацию о размере экспортированного формата, его метриках mAP50-95 (для обнаружения объектов и сегментации) или метриках accuracy_top1 (для классификации), а также время инференса в миллисекундах на изображение для различных форматов, таких как ONNX, OpenVINO, TensorRT и других. Эта информация поможет тебе выбрать оптимальный формат экспорта для конкретного случая на основе твоих требований к скорости и точности.
Бенчмарк официальной модели YOLO по всем форматам экспорта.
from ultralytics.utils.benchmarks import benchmark
# Benchmark
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)Link to this sectionИспользование тренеров#
Класс модели YOLO служит высокоуровневой оберткой для классов Trainer. Каждая задача YOLO имеет своего тренера, который наследуется от BaseTrainer. Такая архитектура обеспечивает большую гибкость и возможность настройки твоих процессов машинного обучения.
from ultralytics.models.yolo.detect import DetectionPredictor, DetectionTrainer, DetectionValidator
# trainer
trainer = DetectionTrainer(overrides={})
trainer.train()
trained_model = trainer.best
# Validator
val = DetectionValidator(args=...)
val(model=trained_model)
# predictor
pred = DetectionPredictor(overrides={})
pred(source=SOURCE, model=trained_model)
# resume from last weight
overrides["resume"] = trainer.last
trainer = DetectionTrainer(overrides=overrides)Ты можешь легко настраивать тренеров для поддержки пользовательских задач или для проверки идей в области исследований и разработок. Модульная конструкция Ultralytics YOLO позволяет адаптировать фреймворк под твои конкретные нужды, работаешь ли ты над новой задачей компьютерного зрения или дообучаешь существующие модели для достижения лучших результатов.
Link to this sectionFAQ#
Link to this sectionКак интегрировать YOLO в мой Python-проект для обнаружения объектов?#
Интегрировать Ultralytics YOLO в твои Python-проекты просто. Ты можешь загрузить предобученную модель или обучить новую модель с нуля. Вот как начать:
from ultralytics import YOLO
# Load a pretrained YOLO model
model = YOLO("yolo26n.pt")
# Perform object detection on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Visualize the results
for result in results:
result.show()Более подробные примеры смотри в нашем разделе Predict Mode.
Link to this sectionКакие режимы доступны в YOLO?#
Ultralytics YOLO предоставляет различные режимы для удовлетворения различных потребностей машинного обучения. К ним относятся:
- Train: обучение модели на пользовательских данных.
- Val: валидация производительности модели на проверочном наборе.
- Predict: предсказания на новых изображениях или видеопотоках.
- Export: экспорт моделей в различные форматы, такие как ONNX и TensorRT.
- Track: отслеживание объектов в видеопотоках в реальном времени.
- Benchmark: тестирование производительности модели при различных конфигурациях.
Каждый режим разработан для обеспечения полных функциональных возможностей на разных этапах разработки и развертывания моделей.
Link to this sectionКак обучить пользовательскую модель YOLO, используя мой набор данных?#
Для обучения пользовательской модели YOLO тебе нужно указать свой датасет и другие гиперпараметры. Вот краткий пример:
from ultralytics import YOLO
# Load the YOLO model
model = YOLO("yolo26n.yaml")
# Train the model with custom dataset
model.train(data="path/to/your/dataset.yaml", epochs=10)Для получения более подробной информации об обучении и ссылок на примеры использования посети нашу страницу Train Mode.
Link to this sectionКак экспортировать модели YOLO для развертывания?#
Экспорт моделей YOLO в формат, подходящий для развертывания, прост благодаря функции export. Например, ты можешь экспортировать модель в формат ONNX:
from ultralytics import YOLO
# Load the YOLO model
model = YOLO("yolo26n.pt")
# Export the model to ONNX format
model.export(format="onnx")Для ознакомления с различными вариантами экспорта обратись к документации Export Mode.
Link to this sectionМогу ли я валидировать свою модель YOLO на разных наборах данных?#
Да, валидация моделей YOLO на разных наборах данных возможна. После обучения ты можешь использовать режим валидации для оценки производительности:
from ultralytics import YOLO
# Load a YOLO model
model = YOLO("yolo26n.yaml")
# Train the model
model.train(data="coco8.yaml", epochs=5)
# Validate the model on a different dataset
model.val(data="path/to/separate/data.yaml")Изучи страницу Val Mode для получения подробных примеров и информации об использовании.