Оптимизация моделей Ultralytics YOLO с помощью интеграции TensorRT

Абирами Вина

5 минут чтения

20 мая 2025 г.

Узнайте, как экспортировать модели Ultralytics YOLO с помощью интеграции TensorRT для более быстрой и эффективной работы ИИ на графических процессорах NVIDIA в приложениях реального времени.

Подумайте о том, что самодвижущемуся автомобилю, движущемуся по оживленной улице, достаточно миллисекунды, чтобы обнаружить пешехода, сошедшего с обочины. В то же время ему может потребоваться распознать знак "Стоп", частично скрытый деревом, или быстро отреагировать на соседний автомобиль, свернувший на его полосу. В таких ситуациях скорость и реакция в реальном времени имеют решающее значение.

Именно здесь ключевую роль играет искусственный интеллект (ИИ), в частности компьютерное зрение- направление ИИ, помогающее машинам интерпретировать визуальные данные. Чтобы решения для компьютерного зрения надежно работали в реальных условиях, им часто требуется быстро обрабатывать информацию, решать несколько задач одновременно и эффективно использовать память.

Одним из способов достижения этой цели является аппаратное ускорение - использование специализированных устройств, таких как графические процессоры (GPU), для ускорения работы моделей. Графические процессоры NVIDIA особенно хорошо известны для таких задач, благодаря их способности обеспечивать низкую задержку и высокую пропускную способность.

Однако запуск модели на GPU как таковой не всегда гарантирует оптимальную производительность. Модели Vision AI обычно требуют оптимизации, чтобы полностью использовать возможности аппаратных устройств. Чтобы достичь полной производительности на конкретном оборудовании, необходимо скомпилировать модель для использования определенного набора инструкций для данного оборудования.

Например, TensorRT - это библиотека формата экспорта и оптимизации, разработанная NVIDIA для повышения производительности на высокопроизводительных машинах. Она использует передовые методы для значительного сокращения времени вывода при сохранении точности.

__wf_reserved_inherit
Рис. 1. NVIDIA TensorRT позволяет моделям оптимально работать на различных устройствах NVIDIA.

В этой статье мы рассмотрим интеграцию TensorRT, поддерживаемую Ultralytics, и расскажем, как экспортировать модель YOLO11 для более быстрого и эффективного развертывания на оборудовании NVIDIA. Давайте начнем!

Обзор TensorRT

TensorRT - это набор инструментов, разработанный NVIDIA, чтобы помочь моделям ИИ работать быстрее и эффективнее на графических процессорах NVIDIA. Он предназначен для реальных приложений, где скорость и производительность действительно важны, например, для самоуправляемых автомобилей и контроля качества в производстве и фармацевтике. 

TensorRT включает в себя такие инструменты, как компиляторы и оптимизаторы моделей, которые могут работать за кулисами, чтобы убедиться, что ваши модели работают с низкой задержкой и могут выдерживать большую пропускную способность.

Интеграция TensorRT, поддерживаемая Ultralytics, работает путем оптимизации вашей модели YOLO для более эффективной работы на GPU с помощью таких методов, как снижение точности. Речь идет об использовании более низких форматов, таких как 16-битный формат с плавающей точкой (FP16) или 8-битный формат целых чисел (INT8), для представления данных модели, что сокращает использование памяти и ускоряет вычисления с минимальным влиянием на точность. 

Кроме того, совместимые слои нейронной сети объединяются в оптимизированные модели TensorRT для сокращения объема памяти, что позволяет быстрее и эффективнее делать выводы.

__wf_reserved_inherit
Рис. 2. Вид на технику слияния слоев в TensorRT.

Ключевые особенности формата экспорта TensorRT

Прежде чем мы обсудим, как экспортировать YOLO11 с помощью интеграции TensorRT, давайте рассмотрим некоторые ключевые особенности формата модели TensorRT:

  • Простая интеграция с фреймворками: TensorRT поддерживает прямую интеграцию с такими популярными AI-фреймворками, как PyTorch, Hugging Face и ONNX, обеспечивая производительность до 6 раз выше. Он также поддерживает MATLAB, что позволяет разрабатывать высокоскоростные движки ИИ на таких платформах, как Jetson, NVIDIA DRIVE, и в центрах обработки данных.
  • Масштабируемое развертывание с Triton: Модели, оптимизированные в формате TensorRT, могут быть развернуты в масштабе с помощью NVIDIA Triton Inference Server, который повышает эффективность благодаря таким функциям, как пакетная обработка входных данных, одновременное выполнение моделей, поддержка ансамбля моделей и потоковое аудио/видео в реальном времени.
  • Гибкость на всех устройствах: От небольших устройств до мощных серверов, TensorRT работает во всей экосистеме NVIDIA, поддерживая такие инструменты, как DeepStream для видео, Riva для речевого ИИ и другие для кибербезопасности, рекомендаций и многого другого.

Как работает интеграция TensorRT?

Экспортировать модели Ultralytics YOLO, такие как Ultralytics YOLO11, в формат модели TensorRT очень просто. Давайте пройдемся по всем шагам.

Чтобы начать работу, вы можете установить пакет Ultralytics Python с помощью менеджера пакетов, например 'pip'. Это можно сделать, выполнив команду "pip install ultralytics" в командной строке или терминале.

После успешной установки пакета Ultralytics Python вы сможете обучать, тестировать, настраивать, экспортировать и развертывать модели для различных задач компьютерного зрения, таких как обнаружение объектов, классификация и сегментация экземпляров. При установке пакета, если у вас возникнут какие-либо трудности, вы можете обратиться к руководству по общим проблемам, чтобы найти решения и советы.

Для следующего шага вам понадобится устройство NVIDIA. Используйте приведенный ниже фрагмент кода для загрузки и экспорта модели YOLOv11 в формат TensorRT. Он загружает предварительно обученный нано-вариант модели YOLO11 (yolo11n.pt) и экспортирует его в файл движка TensorRT (yolo11n.engine), делая его готовым для развертывания на устройствах NVIDIA.

После преобразования модели в формат TensorRT вы можете развернуть ее для различных приложений. 

В примере ниже показано, как загрузить экспортированную модель YOLO11 (yolo11n.engine) и запустить на ее основе вывод. Вывод предполагает использование обученной модели для прогнозирования на новых данных. В данном случае для проверки модели мы будем использовать входное изображение собаки. 

После выполнения этого кода в папке runs/detect/predict будет сохранено следующее изображение.

__wf_reserved_inherit
Рис. 3. Результат выполнения вывода по экспортированной модели YOLO11 в формате TensorRT.

Когда следует использовать интеграцию TensorRT

Пакет Ultralytics Python поддерживает различные интеграции, позволяющие экспортировать модели YOLO в различные форматы, такие как TorchScript, CoreML, ONNX и TensorRT. Итак, в каких случаях следует использовать интеграцию TensorRT?

Вот несколько факторов, которые отличают формат моделей TensorRT от других вариантов интеграции экспорта:

  • Меньший размер модели: Экспорт модели YOLO в формат TensorRT с точностью INT8 позволяет значительно уменьшить размер модели. Квантование из FP32 в INT8 может привести к 4-кратному уменьшению размера модели, что позволяет ускорить загрузку, снизить требования к хранению и уменьшить объем памяти при развертывании.
  • Низкое энергопотребление: Квантование INT8 не только уменьшает размер модели, но и снижает энергопотребление. Операции с пониженной точностью для экспортируемых в INT8 моделей YOLO могут потреблять меньше энергии по сравнению с моделями FP32, что особенно полезно для устройств с питанием от батарей, таких как беспилотники, смартфоны или пограничные устройства.
  • Более высокая производительность: Сочетание эффективной архитектуры YOLO с оптимизацией INT8 в TensorRT позволяет повысить скорость вычислений.

Применение YOLO11 и формата моделей TensorRT

Модели Ultralytics YOLO, экспортированные в формат TensorRT, могут применяться в широком спектре реальных сценариев. Эти оптимизированные модели особенно полезны там, где важна быстрая и эффективная работа ИИ. Давайте рассмотрим несколько интересных примеров их использования.

Умные кассы в розничных магазинах

Многие задачи в розничных магазинах, такие как сканирование штрих-кодов, взвешивание товаров или их упаковка, по-прежнему выполняются персоналом вручную. Однако, если полагаться только на сотрудников, это может замедлить работу и привести к разочарованию покупателей, особенно на кассе. Длинные очереди доставляют неудобства как покупателям, так и владельцам магазинов. Умные кассы самообслуживания - отличное решение этой проблемы.

Эти счетчики используют компьютерное зрение и графические процессоры, чтобы ускорить процесс и сократить время ожидания. Компьютерное зрение позволяет этим системам видеть и понимать окружающую среду с помощью таких задач, как обнаружение объектов. Продвинутые модели, такие как YOLO11, при оптимизации с помощью таких инструментов, как TensorRT, могут работать намного быстрее на GPU-устройствах.

Эти экспортируемые модели хорошо подходят для интеллектуальных розничных систем, использующих компактные, но мощные аппаратные устройства, такие как NVIDIA Jetson Nano, созданные специально для приложений краевого ИИ.

__wf_reserved_inherit
Рис. 4. Пример интеллектуальной кассы.

Автоматизированное обнаружение дефектов в производстве

Модель компьютерного зрения, подобную YOLO11, можно настраивать для обнаружения бракованных изделий в обрабатывающей промышленности. После обучения модель можно экспортировать в формат TensorRT для развертывания на предприятиях, оснащенных высокопроизводительными системами искусственного интеллекта. 

По мере движения продукции по конвейеру камеры фиксируют изображения, а модель YOLO11, работающая в формате TensorRT, анализирует их в режиме реального времени, чтобы выявить дефекты. Такая система позволяет компаниям быстро и точно выявлять проблемы, сокращая количество ошибок и повышая эффективность.

Аналогичным образом, такие отрасли, как фармацевтика, используют подобные системы для выявления дефектов в медицинской упаковке. Фактически, мировой рынок интеллектуальных систем обнаружения дефектов вырастет до 5 миллиардов долларов к 2026 году.

__wf_reserved_inherit
Рис. 5. Использование YOLO для обнаружения дефектов в фармацевтической промышленности.

О чем следует помнить при использовании TensorRT

Хотя интеграция с TensorRT дает множество преимуществ, таких как более высокая скорость вычислений и уменьшение задержки, следует помнить о некоторых ограничениях:

  • Небольшое снижение точности: При экспорте модели в формат TensorRT экспортированная модель может быть не такой точной, как оригинал. Такие показатели, как точность, отзыв и то, насколько хорошо модель обнаруживает объекты (оценка mAP), могут немного снизиться. Эту проблему можно решить, используя репрезентативный набор данных при квантовании. 
  • Повышенная сложность отладки: Оптимизации, выполненные в TensorRT, могут усложнить отслеживание ошибок или понимание неожиданного поведения, особенно при сравнении результатов с исходной моделью.
  • Чувствительность к размеру партии: Прирост производительности TensorRT становится более заметным при увеличении размера партии. В приложениях, обрабатывающих отдельные изображения или небольшие партии, прирост производительности может быть менее значительным.

Основные выводы

Экспорт моделей Ultralytics YOLO в формат TensorRT позволяет им работать значительно быстрее и эффективнее, что делает их идеальными для задач реального времени, таких как обнаружение дефектов на заводах, обеспечение работы интеллектуальных систем кассовых аппаратов или мониторинг оживленных городских районов. 

Эта оптимизация помогает моделям лучше работать на графических процессорах NVIDIA, ускоряя предсказания и снижая потребление памяти и энергии. Несмотря на некоторые ограничения, прирост производительности делает интеграцию TensorRT отличным выбором для тех, кто создает высокоскоростные системы компьютерного зрения на оборудовании NVIDIA.

Хотите узнать больше об искусственном интеллекте? Изучите наш репозиторий GitHub, общайтесь с нашим сообществом и ознакомьтесь с нашими вариантами лицензирования, чтобы начать свой проект по компьютерному зрению. Узнайте больше о таких инновациях, как ИИ в производстве и компьютерное зрение в логистике, на страницах наших решений.

Давайте вместе построим будущее
искусственного интеллекта!

Начните свое путешествие в будущее машинного обучения

Начните бесплатно
Ссылка копируется в буфер обмена