Экспорт для Hailo для моделей Ultralytics YOLO#
ИИ-ускорители Hailo запускают скомпилированные модели в исполняемом формате Hailo Executable Format (HEF) на периферийных устройствах, таких как Raspberry Pi AI Kit и AI HAT+. Ultralytics экспортирует модели YOLO для детектирования, сегментации, семантической сегментации, оценки глубины, классификации, позы и OBB напрямую в HEF с помощью компилятора Hailo Dataflow Compiler (DFC).
Развертывание Hailo разработано для компьютерного зрения на периферии: камер, роботов, промышленных систем, шлюзов и других устройств, которым необходимо локальное обнаружение объектов без отправки каждого кадра в облако. Скомпилированный HEF содержит квантованную сеть, распределение аппаратных ресурсов, планирование и опциональную постобработку HailoRT, необходимые для выбранного ускорителя.
Для новых развертываний оборудования также оцени Axelera и DeepX, которые ориентированы на более новые платформы периферийных ускорителей и могут предложить более высокую производительность. Hailo рекомендует использовать не менее 1 024 репрезентативных калибровочных изображений для достижения наилучшей точности; встроенные наборы данных для конкретных задач подходят только для быстрого тестирования.
Зачем развертывать Ultralytics YOLO на Hailo?#
Комбинация Ultralytics YOLO с нейронным процессором (NPU) Hailo обеспечивает практический путь от обучения модели до низкопотребляющего периферийного AI-вывода. Распространенные сценарии использования включают:
- Умные камеры и видеоаналитика: Запуск обнаружения объектов в реальном времени рядом с камерой для задач безопасности, розничной торговли, дорожного движения и контроля заполняемости.
- Робототехника и автономные системы: Обнаружение людей, транспортных средств, посылок, инструментов или препятствий без зависимости от постоянного подключения к облаку.
- Промышленное компьютерное зрение: Развертывание кастомных моделей YOLO для инспекции, подсчета, мониторинга безопасности и контроля качества.
- Проекты на базе Raspberry Pi AI: Добавление ускоренного визуального вывода в системы Raspberry Pi с использованием AI Kit или AI HAT+.
- Периферийные шлюзы и AI ПК: Обработка нескольких потоков видео или данных с датчиков локально при снижении требований к пропускной способности сети и облачным вычислениям.
Локальный вывод может повысить конфиденциальность и сократить время отклика, так как изображения остаются на устройстве развертывания. Фактическая пропускная способность, задержка и энергопотребление зависят от размера модели YOLO, входного разрешения, архитектуры Hailo, хост-системы и конвейера приложения.
Как работает экспорт Hailo#
Ultralytics владеет полным рабочим процессом экспорта, стоящим за format="hailo":
YOLO (.pt) -> ONNX -> Hailo parse -> INT8 optimization -> HEF compileЭкспортер выполняет эти этапы автоматически:
- Экспортирует статический граф ONNX с настройками, совместимыми с компилятором.
- Выбирает выходные данные «головы» архитектуры модели.
- Генерирует директивы для нормализации, активации и постобработки.
- Создает репрезентативный калибровочный поток и квантует модель до INT8.
- Компилирует оптимизированный граф для выбранного ускорителя Hailo.
- Сохраняет HEF с метаданными Ultralytics и удаляет промежуточный файл ONNX.
Модели детектирования YOLOv8 и YOLO11 используют HailoRT YOLO NMS в скомпилированном конвейере. Модели детектирования YOLO26 используют свои выходы «один к одному» без NMS, поэтому экспортер автоматически выбирает другой путь вывода и квантования. Сегментация, поза и OBB в YOLOv8/YOLO11 компилируют тензоры необработанной головки, которые Ultralytics декодирует при выводе, а классификация в YOLOv8/YOLO11/YOLO26 запускает softmax на чипе, поэтому HEF возвращает вероятности классов напрямую. Для семантической сегментации YOLO26 экспортер следует за ускорителем: Hailo-8/8L (DFC v3.x) возвращают логиты классификатора для повышения дискретизации и уменьшения на хосте, в то время как Hailo-10/15 (DFC v5.x) компилируют многоклассовые головы ArgMax на чипе и возвращают компактную карту классов. Одноклассовые головы используют путь логитов хоста на каждой цели, поскольку им требуется пороговое значение вместо ArgMax. Модели глубины YOLO26 компилируют плотную свертку логитов в a16 и восстанавливают метрическую карту глубины на хосте (свертку/экспоненту и изученную лог-аффинную калибровку, которые следуют за головой, поэтому квантователь сохраняет свой самый широкий диапазон на сыром логите). Пользователям не нужно искать конечные узлы ONNX, писать скрипт модели Hailo (.alls) или создавать JSON NMS вручную.
Установка#
Установи Ultralytics и скачай wheel-файл DFC для твоего целевого оборудования из Hailo Developer Zone (требуется бесплатная регистрация):
pip install ultralytics
pip install /path/to/hailo_dataflow_compiler-*.whlДля компиляции Hailo требуется Linux x86_64. Скомпилируй модель на поддерживаемой рабочей станции, затем скопируй выходную директорию на целевое устройство. DFC не требуется для выполнения вывода.
Hailo-8 и Hailo-8L используют DFC v3.x. Hailo-10 и Hailo-15 используют DFC v5.x. Установи версию компилятора, соответствующую целевому ускорителю.
Ultralytics Platform предоставляет управляемый экспорт Hailo, поэтому локальная учетная запись Hailo или установка DFC не требуются.
Экспорт модели Hailo HEF#
Используй format="hailo" и выбери целевой ускоритель с помощью name:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
output = model.export(format="hailo", name="hailo8l")
print(output) # yolo11n_hailo_model/Эквивалентная команда CLI:
yolo export model=yolo11n.pt format=hailo name=hailo8lЭкспорт Hailo поддерживает только INT8. Ultralytics автоматически загружает специфичный для задачи набор данных калибровки, если data не предоставлен. Для пользовательских моделей используй репрезентативные изображения обучения или валидации:
Ultralytics принудительно задает уровень оптимизации DFC 2 и настраивает тонкую настройку на использование фактического размера набора данных калибровки. Hailo рекомендует не менее 1 024 различных изображений; встроенные легкие наборы данных компилируются на уровне 2, но могут не представлять производственный домен. Для продакшн-экспорта HEF передай репрезентативный набор данных с помощью data="path/to/dataset.yaml".
model.export(format="hailo", name="hailo8l", data="path/to/dataset.yaml")Компиляция использует фиксированную форму входа. Установи imgsz в соответствии с разрешением, используемым на устройстве:
model.export(format="hailo", name="hailo8l", imgsz=640)Поддерживаемые модели и оборудование#
Экосистема Hailo охватывает широкий спектр задач компьютерного зрения, но экспортер Ultralytics format="hailo" в настоящее время проверяет стандартные головы YOLO для обнаружения, сегментации, семантической сегментации, оценки глубины, классификации, позы и OBB. В таблице задач описаны доступные пути экспортера; аппаратная валидация перечислена отдельно ниже.
| Задача Ultralytics | Прямой экспорт Hailo | Поддерживаемые семейства моделей | Примечания |
|---|---|---|---|
| Обнаружение объектов | ✅ | YOLOv8, YOLO11, YOLO26 | Стандартные головы Ultralytics Detect, включая пользовательские модели |
| Сегментация экземпляров | ✅ | YOLOv8, YOLO11 | «Сырые» тензоры «головы», декодируемые Ultralytics при инференсе; YOLO26-seg в настоящее время не поддерживается |
| Семантическая сегментация | ✅ | YOLO26 | Hailo-8/8L и одноклассовые головы возвращают логиты; Hailo-10/15 формируют многоклассовые карты |
| Оценка глубины | ✅ | YOLO26 | Плотный логит скомпилирован в a16; Ultralytics восстанавливает метрическую карту глубины при инференсе |
| Классификация изображений | ✅ | YOLOv8, YOLO11, YOLO26 | Softmax выполняется на чипе; HEF возвращает вероятности классов напрямую |
| Оценка позы | ✅ | YOLOv8, YOLO11 | «Сырые» тензоры головы декодируются Ultralytics при инференсе; YOLO26-pose в настоящее время не поддерживается |
| Ориентированное обнаружение объектов | ✅ | YOLOv8, YOLO11 | «Сырые» тензоры головы декодируются Ultralytics при инференсе; YOLO26-OBB в настоящее время не поддерживается |
Специализированные семейства для детекции, такие как YOLOv10, YOLO-World, YOLOE и RT-DETR, также ❌ не поддерживаются. Ultralytics отклоняет эти задачи и семейства моделей перед компиляцией, вместо того чтобы создавать невалидный HEF.
| Семейство моделей | Hailo-8 / Hailo-8L | Hailo-10 / Hailo-15 | Выходные данные |
|---|---|---|---|
| Детекция в YOLOv8 / YOLO11 | ✅ | ✅ | HEF с HailoRT YOLO NMS |
| Детекция в YOLO26 | ✅ | ✅ | Выходы детекционной головы без NMS для поддерживаемых сред выполнения |
| YOLOv8-seg / YOLO11-seg | ✅ | ✅ | «Сырые» тензоры сегментации, декодируемые Ultralytics при инференсе |
| YOLOv8-pose / YOLO11-pose | Проверено на Hailo-8L | Не проверено | «Сырые» тензоры позы, декодируются Ultralytics при инференсе |
| YOLOv8-obb / YOLO11-obb | Проверено на Hailo-8L | Не проверено | «Сырые» тензоры OBB, декодируются Ultralytics при инференсе |
| YOLOv8-cls / YOLO11-cls / YOLO26-cls | Проверено на Hailo-8L | Не проверено | Softmax на чипе; HEF возвращает вероятности классов |
| YOLO26-sem | Проверено на Hailo-8L | Не проверено | Логиты или сформированная многоклассовая карта на Hailo-10/15 |
| YOLO26-depth | Проверено на Hailo-8L | Не проверено | Плотный логит; метрическая карта глубины декодируется Ultralytics |
Поза, OBB, классификация, семантическая сегментация YOLO26 и оценка глубины YOLO26 (путь Hailo-8/8L) прошли валидацию на Hailo-8L с HailoRT 4.23 и DFC 3.33. Экспортер принимает другие перечисленные цели, но эти новые пути задач требуют валидации с соответствующим компилятором и устройством перед использованием в продакшене.
Выбери одно из этих значений name:
name | Целевой ускоритель |
|---|---|
hailo8 | Hailo-8 |
hailo8l | Hailo-8L |
hailo10h | Hailo-10H |
hailo15h | Hailo-15H |
hailo15l | Hailo-15L |
hailo8l является значением по умолчанию. Установи поколение DFC, соответствующее выбранной цели.
Поколения оборудования и SDK Hailo#
Семейства ускорителей Hailo используют разные поколения компиляторов. Сгенерированный HEF должен соответствовать целевому оборудованию, поэтому выбери name для устройства, которое будет выполнять инференс, а не для машины, выполняющей экспорт.
| Семейство оборудования | Поколение DFC | Типичные примеры развертывания |
|---|---|---|
| Hailo-8 / Hailo-8L | DFC v3.x | Модули ускорителей, Raspberry Pi AI Kit/HAT+ |
| Hailo-10H | DFC v5.x | Новые развертывания периферийного AI и Raspberry Pi |
| Hailo-15H / Hailo-15L | DFC v5.x | Умные камеры и встраиваемые системы зрения |
Компилятор работает на Linux x86_64, а полученный HEF выполняется на устройстве Hailo через HailoRT. Это разделение позволяет компилировать модель на рабочей станции или в Ultralytics Platform и развертывать небольшой артефакт среды выполнения на периферийном хосте ARM или x86.
Примечания о совместимости#
Компиляция Hailo специфична для оборудования и использует фиксированную форму входных данных. Учитывай эти ограничения:
- Выбранный
nameдолжен соответствовать ускорителю развертывания. - Калибровочные изображения должны отражать освещение, точки обзора, объекты и фон, ожидаемые в реальной эксплуатации.
- HEF, скомпилированный с одним
imgsz, не становится динамически изменяемым по размеру во время выполнения. - Количество кастомных классов поддерживается, так как Ultralytics генерирует конфигурацию постобработки из метаданных модели.
- Поддерживаются модели обнаружения со стандартными головами Ultralytics
Detect, сегментация, поза и OBB модели YOLOv8/YOLO11, модели классификации YOLOv8/YOLO11/YOLO26, а также модели семантической сегментации и оценки глубины YOLO26; экспорт сегментации экземпляров, позы и ориентированных ограничивающих прямоугольников YOLO26, а также YOLO-World, YOLOE, YOLOv10 и RT-DETR в настоящее время не поддерживается. - Артефакты Hailo-8/8L и Hailo-10/15 компилируются разными поколениями DFC и не являются взаимозаменяемыми.
Калибровка и квантование INT8#
Экспорт Hailo HEF использует квантование INT8 для эффективного отображения сети YOLO на ускорителе. Калибровочный набор данных оценивает диапазоны активации; он не переобучает модель и не требует меток во время компиляции.
Когда data опущен, Ultralytics использует легкий набор данных калибровки для конкретной задачи, например COCO128 для обнаружения, cityscapes8 для семантической сегментации или depth8 для оценки глубины. Голова плотной глубины особенно чувствительна к домену калибровки: калибровка модели глубины с помощью несвязанных изображений обнаружения сглаживает предсказанную карту, а большие наборы внутри домена повышают точность. Для пользовательской модели компьютерного зрения укажи data на ее YAML-файл набора данных, чтобы компилятор видел репрезентативные изображения из фактического домена развертывания:
model.export(format="hailo", name="hailo8l", data="my_dataset.yaml")fraction выбирает часть набора данных, используемую для калибровки. Большее количество изображений помогает только тогда, когда они представляют домен развертывания; изображения вне домена могут снизить квантованную точность и увеличить время оптимизации. Если INT8 HEF теряет точность по сравнению с исходной моделью PyTorch, сначала улучши данные калибровки перед изменением настроек модели или среды выполнения.
Ожидаемая точность по семействам моделей#
При измерении на Hailo-8L с внутридоменной калибровкой (COCO128, 128 изображений) экспорт INT8 HEF сохраняет следующую долю своего PyTorch mAP50 при том же протоколе оценки:
| Модель | Сохранение mAP50 | Примечания |
|---|---|---|
| YOLOv8n | ~100% | DFL-голова с NMS на чипе |
| YOLO11n | ~96% | Блоки внимания (attention) в бэкбоне более чувствительны к INT8 |
| YOLO26n | ~93% | Сквозная (end-to-end) голова плюс блоки внимания; смотри примечание о доверии |
При сохранении обе модели сравниваются при одном и том же пороге уверенности. HEF YOLOv8 и YOLO11 встраивают conf времени экспорта (по умолчанию 0,25) в NMS на кристалле, поэтому проверка по базовой линии PyTorch при ее низком пороге по умолчанию объединяет большую часть кривой точности-полноты и преувеличивает разрыв квантования.
Помимо детекции, пути экспорта для сегментации, оценки поз, OBB и классификации были проверены на том же Hailo-8L (DFC 3.33, HailoRT 4.23). Каждый INT8 HEF сравнивался с его чекпоинтом PyTorch на той же валидационной выборке с использованием внутридоменной калибровки:
| Задача | Метрика (валидационная выборка) | YOLOv8n | YOLO11n |
|---|---|---|---|
| Сегментация экземпляров | Сохранение mask mAP50 (COCO128-seg) | 98.0% | 93.6% |
| Поза | Сохранение box mAP50 (COCO8-pose) | 98.1% | 90.8% |
| Ориентированный ограничивающий прямоугольник | Сохранение mAP50 (DOTA128) | ~100% | 96.9% |
| Классификация | Сохранение top-1 (валидация ImageNet) | 92.6% | 95.4% |
Сегментация, поза и OBB были откалиброваны с использованием набора по умолчанию для каждой задачи в рамках домена (COCO128-seg, COCO8-pose, DOTA128); классификация была откалибрована с помощью ImageNet100. Из этих значений по умолчанию вытекают два предостережения: COCO8-pose содержит всего 8 изображений, поэтому воспринимай позу как ориентировочную и передавай больший data= для продакшна, а DOTA8 насыщает mAP50 почти до 100% для обеих моделей, поэтому OBB считывается на DOTA128. Классификация также является единственной задачей, где YOLO11 сохраняет больше, чем YOLOv8; для остальных бэкэнд внимания YOLO11 более чувствителен к INT8.
Из измерений устройства следуют три практических правила:
- Всегда проводи калибровку внутри домена. Тонкая настройка (fine-tuning) с изображениями вне домена эквивалентна полному отключению тонкой настройки: YOLO26n, откалиброванный на 1238 изображениях вне домена, сохраняет ту же точность (85.7%), что и модель, скомпилированная без тонкой настройки. Небольшой внутридоменный набор лучше большого внедоменного.
- Снизь
confпримерно на 0,05 для развертываний YOLO26. Квантование снижает оценки YOLO26 в среднем примерно на 0,05, поэтому порог, настроенный в PyTorch, отбрасывает допустимые обнаружения на HEF. Использованиеconf=0.20на устройстве соответствует количеству обнаружений в PyTorch приconf=0.25, а небольшое дальнейшее снижение (околоconf=0.15) восстанавливает практически весь оставшийся разрыв mAP50 ценой увеличения числа обнаружений с низкой уверенностью. Квантование также меняет порядок примерно 20% обнаружений — постоянный эффект упорядочивания, который не отменяет ни один порог, — но это перетасовывание не блокирует восстановление mAP50 при более низком пороге. - Штраф за внимание является структурным на Hailo-8/8L (DFC 3.33). Блоки внимания компилируются в операции
matmul, которые сохраняют входные данные активации INT8 в каждом режиме, предлагаемом компилятором для них; режим 16-битного вывода не может выделить память для этого графа, и повышение точности окружающих слоев не помогает, так как матричное умножение в любом случае повторно квантует свои входы в INT8 (защита глубинных и выходных сверток на 16 битах оставила mAP неизменным в наших тестах). Когда приоритетом является точность, а модель является взаимозаменяемой, YOLO11 в настоящее время квантуется здесь лучше, чем YOLO26; более новые поколения Hailo (DFC 5.x) предоставляют больше параметров смешанной точности и могут отличаться.
Экспортированные артефакты#
Экспорт создает директорию, содержащую развертываемый HEF и метаданные Ultralytics:
yolo11n_hailo_model/
├── yolo11n.hef
├── metadata.yaml
└── nms_config.json*.hef— это скомпилированная модель, загружаемая HailoRT.metadata.yamlсохраняет имена моделей, задачу, размер входа, шаг и информацию о цели Hailo.nms_config.jsonзаписывает созданную конфигурацию HailoRT NMS для моделей обнаружения YOLOv8 и YOLO11. Обнаружение YOLO26 и все задачи, не связанные с обнаружением (сегментация, семантика, глубина, классификация, поза, OBB), этот файл не используют.
Промежуточный граф ONNX удаляется после компиляции.
Выполнение вывода на оборудовании Hailo#
Установи HailoRT на целевое устройство. Пользователи Raspberry Pi AI Kit и AI HAT+ могут следовать руководству по программному обеспечению Raspberry Pi AI:
sudo apt install hailo-all
hailortcli fw-control identifyСкопируй полный каталог экспорта на устройство, чтобы metadata.yaml оставался рядом с HEF. Ultralytics использует HailoRT для запуска predict и val непосредственно в экспортированном каталоге:
from ultralytics import YOLO
model = YOLO("yolo11n_hailo_model")
results = model.predict("path/to/image.jpg")Для моделей обнаружения бэкэнд автоматически конвертирует вывод HailoRT NMS для YOLOv8 и YOLO11 и декодирует выводы «один к одному» для YOLO26. Он декодирует сырые тензоры сегментации, позы и OBB, возвращает вероятности классификации на чипе и создает карты семантических классов посредством уменьшения на хосте на Hailo-8/8L и всех одноклассовых головах или ArgMax на чипе для многоклассовых голов Hailo-10/15. TAPPAS, GStreamer и помощник picamera2.devices.Hailo для Raspberry Pi остаются доступными для конвейеров, специфичных для приложений.
Для развертывания GStreamer передай HEF в hailonet:
gst-launch-1.0 filesrc location=video.mp4 ! decodebin ! videoconvert ! \
hailonet hef-path=yolo11n_hailo_model/yolo11n.hef ! \
hailofilter function-name=yolov8 ! hailooverlay ! autovideosinkВарианты развертывания Hailo#
HEF — это единый развертываемый артефакт модели для нескольких интерфейсов среды выполнения Hailo. Выбери интерфейс, который подходит для твоего приложения:
| Вариант среды выполнения | Наилучший вариант для |
|---|---|
| Python или C/C++ API HailoRT | Кастомных приложений и прямого контроля вывода |
picamera2.devices.Hailo для Raspberry Pi | Проектов на базе модуля камеры для Raspberry Pi |
| Приложения GStreamer и Hailo | Потоки видео в реальном времени и многоэтапные конвейеры |
hailortcli | Проверка устройства, инспекция HEF и бенчмаркинг |
Храни metadata.yaml вместе с HEF, когда приложению требуются имена классов Ultralytics, размер входа, шаг или другая информация о модели. Сам HEF не заменяет логику уровня приложения для захвата с камеры, визуализации, отслеживания, оповещений или хранения.
Проверь устройство Hailo и HEF#
Перед интеграцией камеры или видеоконвейера проверь среду выполнения и ускоритель независимо:
hailortcli fw-control identify
hailortcli parse-hef yolo11n_hailo_model/yolo11n.hefЗамеры производительности только на устройстве позволяют отделить инференс Hailo от декодирования видео, изменения размера изображения, отрисовки и ввода-вывода приложения. Измеряй работу всего приложения отдельно, когда оцениваешь сквозную задержку или количество кадров в секунду.
Hailo в сравнении с другими форматами экспорта YOLO#
Выбирай формат экспорта в зависимости от оборудования, на котором будет выполняться модель:
| Цель развертывания | Формат экспорта Ultralytics |
|---|---|
| Hailo NPU | Hailo HEF (format="hailo") |
| GPU NVIDIA | TensorRT |
| Intel CPU, GPU или NPU | OpenVINO |
| Оборудование Apple | CoreML |
| Qualcomm Snapdragon NPU | QNN |
| Rockchip NPU | RKNN |
| Raspberry Pi AI Camera | Sony IMX500 |
| Портативное кросс-платформенное использование | ONNX |
HEF — правильный выбор, когда конечное устройство содержит ускоритель Hailo. ONNX остается полезным как портативный промежуточный формат, но HailoRT выполняет именно аппаратный HEF, созданный DFC, а не исходную модель ONNX.
Оптимизация производительности компьютерного зрения на Hailo#
Выбор модели и конвейера часто важнее, чем флаги компилятора:
- Начни с небольшой модели YOLO и увеличивай размер только тогда, когда этого требует точность.
- Выбери наименьшее фиксированное
imgsz, которое все еще сохраняет объекты, важные для приложения. - По возможности используй калибровочные изображения с реальной камеры и среды.
- Держи сеть Hailo активной между кадрами, вместо того чтобы открывать HEF заново для каждого инференса.
- Отделяй время инференса на устройстве от предобработки, декодирования видео, пост-обработки, визуализации и сетевого ввода-вывода.
- Используй потоковый конвейер, такой как GStreamer, для постоянных видеозадач.
- Проверяй экспортированный HEF на том же ускорителе и версии HailoRT, которые используются в продакшене.
Аргументы экспорта#
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
name | str | hailo8l | Целевая архитектура ускорителя Hailo |
imgsz | int, list | 640 | Фиксированный размер входных данных модели |
data | str | None | YAML-файл датасета калибровки; для классификации вместо этого используется директория датасета или встроенное имя датасета. Если параметр опущен, Ultralytics выбирает датасет калибровки, специфичный для конкретной задачи. |
fraction | float | 1.0 | Доля используемых калибровочных изображений |
quantize | int | 8 | Экспорт Hailo использует квантование INT8 |
simplify | bool | True | Упростить промежуточный граф ONNX |
conf | float | 0.25 | Порог уверенности YOLOv8/YOLO11 HailoRT NMS |
iou | float | 0.7 | Порог IoU YOLOv8/YOLO11 HailoRT NMS |
Для экспорта обнаружения YOLOv8 и YOLO11 получают HailoRT NMS, в то время как YOLO26 сохраняет свои выходы «один к одному» без NMS. Сегментация, поза и OBB используют сырые тензоры головы, классификация возвращает вероятности на чипе, а семантическая сегментация возвращает сырые логиты на Hailo-8/8L и всех одноклассовых головах или запеченные карты классов для многоклассовых голов Hailo-10/15. Оценка глубины возвращает сырой логит глубины, который Ultralytics декодирует в метрическую карту глубины при инференсе. Не передавай end2end; явные переопределения отклоняются. Динамические формы, батчи размером больше единицы, встроенный NMS Ultralytics, FP16 и FP32 также не поддерживаются.
Устранение неполадок экспорта Hailo#
Ошибка импорта Hailo Dataflow Compiler#
Если экспорт сообщает об отсутствии hailo_sdk_client, установи пакет wheel DFC для поколения целевого оборудования в той же среде Python, что и Ultralytics. Hailo-8/8L и Hailo-10/15 требуют разных поколений компиляторов.
Неподдерживаемая операционная система или архитектура#
Компиляция HEF поддерживается на Linux x86_64. Экспортируй через Ultralytics Platform или используй совместимую рабочую станцию, если локальный компьютер работает на macOS, Windows, Raspberry Pi или другой ARM-системе.
Экспорт занимает много времени#
Оптимизация DFC — самый ресурсоемкий этап. Время компиляции растет вместе с размером модели, разрешением входа и данными калибровки. Поддерживаемый GPU может ускорить оптимизацию, в то время как компиляция только на CPU может быть значительно медленнее.
Падение точности квантованной модели#
Используй калибровочные изображения, похожие на производственные входные данные и содержащие важные объекты, масштабы, условия освещения и фоны. Сравни исходную модель PyTorch и экспортированный HEF на одном и том же валидационном наборе перед развертыванием. Умеренный разрыв, зависящий от семейства, сохраняется даже при хорошей калибровке; см. Ожидания точности по семействам моделей для измеренных базовых показателей.
HEF не загружается на устройстве#
Убедись, что name соответствует физической архитектуре Hailo и что драйвер устройства, прошивка и пакеты HailoRT совместимы друг с другом. Проверь артефакт с помощью hailortcli parse-hef и верифицируй ускоритель с помощью hailortcli fw-control identify.
Разбор вывода выглядит некорректным#
Храни metadata.yaml рядом с HEF, чтобы Ultralytics мог выбрать подходящий путь постобработки YOLOv8, YOLO11 или YOLO26. Пользовательские приложения HailoRT должны аналогичным образом сопоставлять постобработку с экспортированным семейством моделей.
Резюме#
Экспорт Ultralytics в Hailo предоставляет прямой путь от обученной модели YOLO к развертываемому HEF:
- Загрузи модель детекции или классификации YOLOv8, YOLO11 или YOLO26, модель сегментации, позы или OBB YOLOv8/YOLO11, либо модель семантической сегментации или оценки глубины YOLO26.
- Экспортируй с помощью
format="hailo"и выбери целевую архитектуру. - Откалибруй и скомпилируй локально с помощью соответствующего DFC или используй управляемый экспорт в платформе Ultralytics.
- Скопируй HEF и
metadata.yamlна периферийное устройство на базе Hailo. - Запусти инференс с использованием HailoRT, Raspberry Pi Picamera2 или видеоконвейера GStreamer.
Другие цели развертывания компьютерного зрения см. в разделах Режим экспорта, Режим бенчмарка и руководство по интеграциям. Связанные руководства по оборудованию включают ONNX, OpenVINO, TensorRT, NCNN, RKNN, Sony IMX500 и Qualcomm QNN.
FAQ#
Нет. Запускай DFC на поддерживаемой системе Linux x86_64 и развертывай полученный HEF на Raspberry Pi.
Поддерживаемый GPU значительно сокращает время оптимизации DFC. Компиляция на CPU возможна, но может занять существенно больше времени.
Прямой экспорт поддерживает модели детекции со стандартной «головой» детекции YOLOv8, YOLO11 или YOLO26, модели сегментации, позы и OBB для YOLOv8/YOLO11, а также модели классификации для YOLOv8/YOLO11/YOLO26. Сюда входят обученные на заказ модели, созданные на основе этих стандартных архитектур. Модели семантической сегментации и оценки глубины YOLO26 также поддерживаются. Инстансная сегментация, поза и OBB для YOLO26, а также YOLOv10, YOLO-World, YOLOE и RT-DETR отклоняются, а не приводят к созданию невалидированного HEF.
Да. Используй ту же команду
format="hailo"с пользовательскими весами.ptи передай YAML-файл обучающего набора данных черезdataдля репрезентативной калибровки INT8. Имена классов и количество классов считываются из метаданных модели.Нет. DFC компилирует фиксированную форму входа в HEF. Выбери
imgszво время экспорта в соответствии с разрешением, используемым конвейером развертывания.YOLO26 использует голову детекции «один-к-одному» без NMS. Ultralytics компилирует эти выходные тензоры напрямую, вместо того чтобы прикреплять HailoRT NMS в стиле YOLOv8, используемый для YOLOv8 и YOLO11.
Hailo Dataflow Compiler преобразует и квантует модель в специфичный для оборудования HEF на сборочной машине с Linux x86_64. HailoRT загружает и запускает этот HEF на целевом устройстве.
Развертывай скомпилированный HEF в среду выполнения Hailo. ONNX — это промежуточное представление, используемое при экспорте, и оно удаляется после успешной компиляции.
Скачай wheel-пакет компилятора для твоего поколения оборудования в Hailo Developer Zone. Компилятор требуется только для создания HEF; HailoRT запускает его на целевом ускорителе.