Как обучать, проверять, прогнозировать, экспортировать и оценивать модели Ultralytics YOLO

24 июля 2024 г.
Узнайте, как обучать, проверять, прогнозировать, экспортировать и тестировать модели Ultralytics YOLO!

24 июля 2024 г.
Узнайте, как обучать, проверять, прогнозировать, экспортировать и тестировать модели Ultralytics YOLO!
Давайте погрузимся в мир Ultralytics и изучим различные режимы, доступные для разных моделей YOLO. Независимо от того, обучаете ли вы пользовательские модели обнаружения объектов или работаете над сегментацией, понимание этих режимов является важным шагом. Давайте сразу перейдем к делу!
В документации Ultralytics вы найдете несколько режимов, которые можно использовать для ваших моделей, будь то обучение, валидация, прогнозирование, экспорт, бенчмаркинг или отслеживание. Каждый из этих режимов служит уникальной цели и помогает оптимизировать производительность и развертывание вашей модели.
Для начала давайте рассмотрим режим обучения. Здесь вы создаете и совершенствуете свою модель. Подробные инструкции и видеогиды можно найти в документации, что упрощает начало обучения ваших пользовательских моделей.
Обучение модели включает в себя предоставление модели нового набора данных, что позволяет ей изучать различные закономерности. После обучения модель можно использовать в режиме реального времени для обнаружения новых объектов, на которых она была обучена. Перед началом процесса обучения важно аннотировать свой набор данных в формате YOLO.
Далее давайте углубимся в режим валидации. Валидация необходима для настройки гиперпараметров и обеспечения хорошей работы вашей модели. Ultralytics предоставляет множество вариантов валидации, включая автоматические настройки, поддержку нескольких метрик и совместимость с Python API. Вы даже можете запустить валидацию непосредственно через интерфейс командной строки (CLI) с помощью команды ниже.
Валидация имеет решающее значение для:
Ultralytics также предоставляет примеры использования, которые можно копировать и вставлять в скрипты Python. Эти примеры включают такие параметры, как размер изображения, размер пакета, устройство (CPU или GPU) и Intersection over Union (IoU).
После того, как ваша модель обучена и проверена, пришло время делать прогнозы. Режим Predict позволяет вам запускать инференс на новых данных и видеть свою модель в действии. Этот режим идеально подходит для тестирования производительности вашей модели на реальных данных.
С помощью приведенного ниже фрагмента кода python вы сможете запускать прогнозы на своих изображениях!
После проверки и прогнозирования вы можете захотеть развернуть свою модель. Режим экспорта позволяет преобразовать вашу модель в различные форматы, такие как ONNX или TensorRT, что упрощает развертывание на различных платформах.
Наконец, у нас есть режим бенчмаркинга. Бенчмаркинг необходим для оценки производительности вашей модели в различных сценариях. Этот режим помогает принимать обоснованные решения о распределении ресурсов, оптимизации и экономической эффективности.
Чтобы запустить бенчмарк, вы можете использовать предоставленные примеры пользователей в документации. Эти примеры охватывают ключевые метрики и форматы экспорта, включая ONNX и TensorRT. Вы также можете указать параметры, такие как целочисленное квантование (INT8) или квантование с плавающей запятой (FP16), чтобы увидеть, как различные настройки влияют на производительность.
Давайте рассмотрим реальный пример бенчмаркинга. Когда мы тестируем нашу модель PyTorch, мы замечаем скорость инференса 68 миллисекунд на графическом процессоре RTX 3070. После экспорта в TorchScript скорость инференса падает до 4 миллисекунд, что свидетельствует о значительном улучшении.
Для моделей ONNX мы достигаем скорости инференса 21 миллисекунду. При тестировании этих моделей на CPU (Intel i9 13-го поколения) мы видим различные результаты. TorchScript работает со скоростью 115 миллисекунд, в то время как ONNX показывает лучшие результаты — 84 миллисекунды. Наконец, OpenVINO, оптимизированный для оборудования Intel, достигает невероятных 23 миллисекунд.
Эталонное тестирование показывает, как различные аппаратные средства и форматы экспорта могут повлиять на производительность вашей модели. Крайне важно проводить эталонное тестирование ваших моделей, особенно если вы планируете развертывать их на пользовательском оборудовании или периферийных устройствах. Этот процесс гарантирует, что ваша модель оптимизирована для целевой среды, обеспечивая максимально возможную производительность.
В заключение, режимы в документации Ultralytics — это мощные инструменты для обучения, проверки, прогнозирования, экспорта и тестирования ваших моделей YOLO. Каждый режим играет жизненно важную роль в оптимизации вашей модели и подготовке ее к развертыванию.
Не забудьте изучить и присоединиться к нашему сообществу и опробовать предоставленные фрагменты кода в своих проектах. С помощью этих инструментов вы можете создавать высокопроизводительные модели и обеспечивать их эффективную работу в любой среде.