Нажимая “Принять все файлы cookie”, вы соглашаетесь на сохранение файлов cookie на вашем устройстве с целью улучшения навигации по сайту, анализа использования сайта и помощи в наших маркетинговых усилиях. Подробнее
Настройки cookie
Нажимая “Принять все файлы cookie”, вы соглашаетесь на сохранение файлов cookie на вашем устройстве с целью улучшения навигации по сайту, анализа использования сайта и помощи в наших маркетинговых усилиях. Подробнее
Узнайте, как экспортировать модели Ultralytics YOLO с использованием интеграции TensorRT для более быстрой и эффективной работы AI на графических процессорах NVIDIA в приложениях реального времени.
Представьте себе беспилотный автомобиль, движущийся по оживленной улице, у которого есть всего миллисекунды, чтобы обнаружить пешехода, сходящего с тротуара. В то же время ему может потребоваться распознать знак остановки, частично скрытый деревом, или быстро отреагировать на автомобиль поблизости, выезжающий на его полосу движения. В таких ситуациях скорость и реакция в реальном времени имеют решающее значение.
Именно здесь искусственный интеллект (ИИ), в частности компьютерное зрение — раздел ИИ, который помогает машинам интерпретировать визуальные данные, — играет ключевую роль. Чтобы решения компьютерного зрения надежно работали в реальных условиях, им часто необходимо быстро обрабатывать информацию, справляться с несколькими задачами одновременно и эффективно использовать память.
Один из способов добиться этого — аппаратное ускорение, использование специализированных устройств, таких как графические процессоры (GPU), для более быстрого запуска моделей. Графические процессоры NVIDIA особенно хорошо известны для таких задач благодаря своей способности обеспечивать низкую задержку и высокую пропускную способность.
Однако, запуск модели на GPU как есть не всегда гарантирует оптимальную производительность. Модели Vision AI обычно требуют оптимизации, чтобы в полной мере использовать возможности аппаратных устройств. Чтобы добиться максимальной производительности с конкретным оборудованием, необходимо скомпилировать модель для использования определенного набора инструкций для этого оборудования.
Например, TensorRT — это формат экспорта и библиотека оптимизации, разработанная NVIDIA для повышения производительности на высокопроизводительных машинах. Он использует передовые методы для значительного сокращения времени логического вывода при сохранении точности.
Рис. 1. NVIDIA TensorRT позволяет моделям оптимально работать на различных устройствах NVIDIA.
В этой статье мы рассмотрим интеграцию TensorRT, поддерживаемую Ultralytics, и расскажем, как экспортировать модель YOLO11 для более быстрого и эффективного развертывания на оборудовании NVIDIA. Давайте начнем!
Обзор TensorRT
TensorRT — это набор инструментов, разработанный NVIDIA, чтобы помочь моделям ИИ работать быстрее и эффективнее на графических процессорах NVIDIA. Он предназначен для реальных приложений, где скорость и производительность действительно важны, таких как самоуправляемые автомобили и контроль качества в производстве и фармацевтике.
TensorRT включает в себя такие инструменты, как компиляторы и оптимизаторы моделей, которые могут работать в фоновом режиме, чтобы обеспечить работу ваших моделей с низкой задержкой и высокой пропускной способностью.
Интеграция TensorRT, поддерживаемая Ultralytics, работает путем оптимизации вашей модели YOLO для более эффективной работы на графических процессорах с использованием таких методов, как снижение точности. Это относится к использованию форматов с меньшим количеством битов, таких как 16-битное число с плавающей запятой (FP16) или 8-битное целое число (INT8), для представления данных модели, что снижает использование памяти и ускоряет вычисления с минимальным влиянием на точность.
Кроме того, совместимые слои нейронной сети объединяются в оптимизированных моделях TensorRT для уменьшения использования памяти, что приводит к более быстрому и эффективному выводу.
Прежде чем мы обсудим, как вы можете экспортировать YOLO11 с помощью интеграции TensorRT, давайте рассмотрим некоторые ключевые особенности формата модели TensorRT:
Простая интеграция с фреймворками: TensorRT поддерживает прямую интеграцию с популярными фреймворками искусственного интеллекта, такими как 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.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="engine")
После преобразования вашей модели в формат TensorRT вы можете развернуть ее для различных приложений.
В примере ниже показано, как загрузить экспортированную модель YOLO11 (yolo11n.engine) и запустить с ее помощью инференс. Инференс подразумевает использование обученной модели для прогнозирования на новых данных. В данном случае мы будем использовать входное изображение собаки для тестирования модели.
При запуске этого кода следующее выходное изображение будет сохранено в папке runs/detect/predict.
Рис. 3. Результат запуска инференса с использованием экспортированной модели YOLO11 в формате TensorRT.
Когда следует использовать интеграцию TensorRT
Python-пакет Ultralytics поддерживает различные интеграции, позволяющие экспортировать модели YOLO в различные форматы, такие как TorchScript, CoreML, ONNX и TensorRT. Итак, когда следует использовать интеграцию TensorRT?
Вот несколько факторов, которые отличают формат модели TensorRT от других вариантов интеграции экспорта:
Меньший размер модели: Экспорт модели YOLO в формат TensorRT с точностью INT8 может значительно уменьшить размер модели. Квантование из FP32 в INT8 может привести к 4-кратному уменьшению размера модели, что обеспечивает более быстрое время загрузки, снижение требований к хранению и уменьшение объема памяти во время развертывания.
Снижение энергопотребления: Квантование INT8 не только уменьшает размер модели, но и снижает энергопотребление. Операции с уменьшенной точностью для экспортированных моделей YOLO INT8 могут потреблять меньше энергии по сравнению с моделями FP32, что особенно выгодно для устройств с батарейным питанием, таких как дроны, смартфоны или периферийные устройства.
Более высокая производительность: Объединение эффективной архитектуры YOLO с оптимизацией INT8 TensorRT может повысить скорость инференса.
Применение YOLO11 и формата модели TensorRT
Модели Ultralytics YOLO, экспортированные в формат TensorRT, могут быть развернуты в широком спектре реальных сценариев. Эти оптимизированные модели особенно полезны там, где важна быстрая и эффективная работа ИИ. Давайте рассмотрим несколько интересных примеров того, как их можно использовать.
Интеллектуальные кассы самообслуживания в розничных магазинах
Широкий спектр задач в розничных магазинах, таких как сканирование штрих-кодов, взвешивание продуктов или упаковка товаров, по-прежнему выполняется вручную персоналом. Однако опора исключительно на сотрудников может замедлить операции и привести к разочарованию клиентов, особенно на кассе. Длинные очереди неудобны как для покупателей, так и для владельцев магазинов. Умные кассы самообслуживания — отличное решение этой проблемы.
Эти счетчики используют компьютерное зрение и графические процессоры для ускорения процесса, помогая сократить время ожидания. Компьютерное зрение позволяет этим системам видеть и понимать окружающую среду посредством таких задач, как обнаружение объектов. Продвинутые модели, такие как YOLO11, при оптимизации с помощью таких инструментов, как TensorRT, могут работать намного быстрее на устройствах GPU.
Эти экспортированные модели хорошо подходят для интеллектуальных розничных установок с использованием компактных, но мощных аппаратных устройств, таких как NVIDIA Jetson Nano, разработанных специально для периферийных приложений ИИ.
Рис. 4. Пример интеллектуальной кассы самообслуживания.
Автоматизированное обнаружение дефектов в производстве
Модель компьютерного зрения, такая как YOLO11, может быть специально обучена для обнаружения дефектной продукции в обрабатывающей промышленности. После обучения модель может быть экспортирована в формат TensorRT для развертывания на предприятиях, оснащенных высокопроизводительными системами искусственного интеллекта.
Когда продукты перемещаются по конвейерным лентам, камеры захватывают изображения, и модель YOLO11, работающая в формате TensorRT, анализирует их в режиме реального времени для выявления дефектов. Эта настройка позволяет компаниям быстро и точно выявлять проблемы, сокращая количество ошибок и повышая эффективность.
Аналогично, такие отрасли, как фармацевтика, используют системы такого типа для выявления дефектов в медицинской упаковке. Фактически, мировой рынок интеллектуальных систем обнаружения дефектов к 2026 году вырастет до 5 миллиардов долларов.
Рис. 5. Использование YOLO для обнаружения дефектов в фармацевтической промышленности.
Рекомендации, которые следует учитывать при использовании TensorRT
Хотя интеграция TensorRT предоставляет множество преимуществ, таких как более высокая скорость инференса и уменьшенная задержка, вот несколько ограничений, о которых следует помнить:
Небольшое снижение точности: При экспорте модели в формате TensorRT экспортированная модель может быть не такой точной, как оригинал. Метрики производительности, такие как точность, полнота и то, насколько хорошо модель обнаруживает объекты (оценки mAP), могут немного снизиться. Это можно смягчить, используя репрезентативный набор данных во время квантования.
Повышенная сложность отладки: Оптимизации, выполненные TensorRT, могут затруднить отслеживание ошибок или понимание неожиданного поведения, особенно при сравнении результатов с исходной моделью.
Чувствительность к размеру пакета: Улучшения производительности TensorRT более заметны при больших размерах пакета. Для приложений, обрабатывающих отдельные изображения или небольшие пакеты, улучшения производительности могут быть менее значительными.
Основные выводы
Экспорт моделей Ultralytics YOLO в формат TensorRT значительно ускоряет и повышает эффективность их работы, что делает их идеальными для задач, выполняемых в реальном времени, таких как обнаружение дефектов на заводах, обеспечение работы интеллектуальных касс или мониторинг оживленных городских районов.
Эта оптимизация помогает моделям лучше работать на графических процессорах NVIDIA, ускоряя прогнозы и снижая использование памяти и энергии. Несмотря на некоторые ограничения, повышение производительности делает интеграцию TensorRT отличным выбором для всех, кто создает высокоскоростные системы компьютерного зрения на оборудовании NVIDIA.