В руководстве описывается, как устанавливается runtime, как модели превращаются в артефакты для развёртывания, как компиляция и кэширование влияют на скорость запуска, и как сделать сборки воспроизводимыми.
Авторы подчёркивают, что стандартные практики развёртывания OpenVINO применимы и здесь: модель конвертируется, когда важна задержка загрузки, компилируется под целевое устройство, скомпилированные артефакты кэшируются, а runtime упаковывается явным образом. Raspberry Pi при этом не рассматривается как особый случай — это просто ещё одна платформа Linux Arm64, к которой применяется обычная модель развёртывания OpenVINO.
Подготовка системы
Рекомендуемый первый шаг включает:
-
использование 64-битной Raspberry Pi OS на Raspberry Pi 4 или Raspberry Pi 5;
-
создание отдельного виртуального окружения Python;
-
установку OpenVINO из PyPI;
-
проверку того, что OpenVINO видит устройство CPU;
-
установку пакета Ultralytics для Python;
-
предпочтительное использование формата OpenVINO IR при развёртывании, если важно время запуска;
-
включение кэширования модели для сервисов, которые часто перезапускаются;
-
переход к сборке из исходников или кросс-сборке, если требуется контроль над упаковкой runtime, интеграцией с C++ или воспроизводимыми релизными артефактами.
Raspberry Pi как цель, OpenVINO как слой развёртывания
Raspberry Pi часто используется в задачах прикладного компьютерного зрения: рядом с камерой, внутри прототипа, около станка, на лабораторном столе или в компактном сервисе, которому не нужна рабочая станция поблизости.
По состоянию на июнь 2026 года актуальный образ Raspberry Pi OS (64-бит) построен на Debian Trixie и подходит для Raspberry Pi 3 Model B и более новых моделей, включая Raspberry Pi 4 и 5. OpenVINO версии 2026.2.0 публикует на PyPI колёса (wheels) для Linux Arm64 под CPython 3.10–3.13. Стандартный процесс установки следует обычной для Python схеме: создать виртуальное окружение, установить пакет, проверить доступные устройства runtime.
В материале отдельно отмечается, что Raspberry Pi 4 и Raspberry Pi 5 обладают разной производительностью и не должны рассматриваться как одна и та же платформа. Raspberry Pi 4 оснащён четырёхъядерным процессором Cortex-A72 с частотой 1,8 ГГц и может комплектоваться памятью LPDDR4 до 8 ГБ. Raspberry Pi 5 использует четырёхъядерный Cortex-A76 на 2,4 ГГц и поддерживает до 16 ГБ памяти.
Для планирования развёртывания Raspberry Pi 4 больше подходит для прототипов и лёгких сервисов, тогда как Raspberry Pi 5 даёт больше запаса для устойчивой работы с камерой и более сложной логики приложения вокруг инференса.
|
Плата |
Аппаратный профиль |
Оптимальное применение с OpenVINO |
На что обратить внимание |
|---|---|---|---|
|
Raspberry Pi 4 |
Cortex-A72, 1,8 ГГц, до 8 ГБ ОЗУ |
Прототипы, однокамерные конвейеры, лёгкие сервисы |
Использовать 64-битную ОС, не перегружать первый пайплайн |
|
Raspberry Pi 5 |
Cortex-A76, 2,4 ГГц, до 16 ГБ ОЗУ |
Продолжительная работа с камерой, более сложные edge-приложения, воспроизводимая упаковка |
Учитывать охлаждение и питание как часть проектирования |
По данным сравнительного графика, приведённого Ultralytics, на Raspberry Pi при развертывании модели YOLO26 OpenVINO демонстрирует высокую производительность относительно других фреймворков. Авторы отмечают, что теперь актуален не вопрос «может ли OpenVINO работать на Raspberry Pi», а вопрос выбора конкретного сценария развёртывания, который даст приложению нужный runtime, скорость запуска и удобство сопровождения.
Как OpenVINO работает на Arm
На Raspberry Pi OpenVINO следует той же программной модели, что и на других платформах: приложение обращается к openvino.Core, обнаруживает устройства через available_devices, читает или конвертирует модели и компилирует модель под конкретное устройство, например CPU.
Такая согласованность важна: приложению не нужно становиться специфичным именно для Raspberry Pi. При переносе между Raspberry Pi, ноутбуком на x86, машиной с GPU Intel или другой edge-платформой общая схема работы с OpenVINO остаётся неизменной — создать runtime, выбрать устройство, скомпилировать модель, запустить инференс.
Когда приложение использует CPU на Raspberry Pi, инференс проходит через многослойный путь выполнения. Само приложение не обращается напрямую к Arm Compute Library или KleidiAI — OpenVINO Runtime загружает модель, готовит её к компиляции и передаёт плагину CPU для целевого процессора. Плагин CPU, в свою очередь, выбирает исполнительный путь для каждой поддерживаемой операции в зависимости от её типа, формы данных, точности, разметки памяти и доступных возможностей сборки.
Это различие важно и для производительности, и для отладки: наличие CPU в списке available_devices означает лишь доступность плагина CPU в OpenVINO, но не то, что все операции используют одну и ту же низкоуровневую библиотеку. Свёртка, полносвязный слой, транспонирование и резервная операция в рамках одной скомпилированной модели могут задействовать разные исполнительные пути.
Авторы выделяют два момента, требующих особого внимания на платформах Arm:
Точность требует явных ожиданий. Согласно документации OpenVINO по CPU, на платформах Arm квантованные модели выполняются в режиме симуляции — то есть весь граф, включая операции квантования, фактически считается в плавающей точке. Квантование по-прежнему полезно, если один и тот же пайплайн модели нацелен и на другие устройства, но экспорт в int8 не стоит преподносить как гарантированный способ ускорения именно на Raspberry Pi.
Кэширование модели — это не только опция для бенчмарков, но и элемент развёртывания. Компиляция может включать работу, специфичную для целевого устройства. Если включить cache_dir, OpenVINO сможет кэшировать скомпилированные артефакты и повторно использовать их позже. На небольшом устройстве, которое запускается как сервис, перезагружается после сбоя питания или обновления, первые секунды старта имеют значение.
Модель компьютерного зрения
Ultralytics — компания, специализирующаяся на том, чтобы сделать компьютерное зрение доступным благодаря удобным инструментам для создания, обучения, валидации, экспорта и развёртывания моделей зрения. В центре этой экосистемы — семейство моделей реального времени Ultralytics YOLO, способных анализировать изображения и видео за один проход для быстрого распознавания визуальной информации. Популярность моделей YOLO объясняется балансом между скоростью, точностью и гибкостью развёртывания, что делает их удобными для приложений реального времени и edge AI, где важны задержка, эффективность и надёжность.
По сравнению со многими альтернативными семействами моделей, Ultralytics YOLO предлагает единый рабочий процесс, подробную документацию, простые интерфейсы Python и командной строки, широкую поддержку экспорта и совместимость с разными платформами — от облачных систем до встраиваемых устройств вроде Raspberry Pi. Модели YOLO поддерживают ключевые задачи компьютерного зрения: детекцию объектов, сегментацию экземпляров, классификацию изображений, оценку позы, детекцию ориентированных ограничивающих рамок и трекинг. При использовании с Raspberry Pi и OpenVINO модели Ultralytics YOLO можно оптимизировать для эффективного инференса на устройстве: Raspberry Pi даёт компактную и доступную edge-платформу, OpenVINO помогает конвертировать и оптимизировать модели под поддерживаемое оборудование, а Ultralytics упрощает процесс экспорта и развёртывания.
Компиляция или экспорт моделей в формат под конкретную платформу важны, поскольку edge-устройства ограничены по вычислительным ресурсам, памяти и энергопотреблению; такие шаги оптимизации, как конвертация графа, изменение точности и квантование, помогают модели работать быстрее, потреблять меньше ресурсов и стабильно функционировать на целевом устройстве.
Модели Ultralytics YOLO по умолчанию распространяются по лицензии AGPL-3.0, что поддерживает открытое сотрудничество и прозрачность. Разработчики, использующие Ultralytics YOLO, должны либо открыть исходный код всего проекта под AGPL-3.0, либо приобрести коммерческую лицензию Ultralytics Enterprise для проприетарных, внутренних, коммерческих, исследовательских или edge-развёртываний.
Быстрый старт с OpenVINO Runtime и пакетом Ultralytics для Python
Наиболее практичная первоначальная настройка предполагает явное задание окружения OpenVINO:
sudo apt update
sudo apt install -y python3-venv python3-pip git libglib2.0-0 libgl1
python3 -m venv ~/venvs/ov-rpi
source ~/venvs/ov-rpi/bin/activate
python -m pip install --upgrade pip
python -m pip install openvino onnx
python -c "from openvino import Core; print(Core().available_devices)"
Если в выводе присутствует CPU — OpenVINO установлен, а плагин CPU виден runtime.
Следующий шаг — выбор формата модели. OpenVINO умеет напрямую читать модели ONNX, что удобно на этапе разработки. Для развёртывания, когда важна задержка загрузки, предпочтительнее конвертировать модель в формат OpenVINO IR:
ovc your_model.onnx --output_model your_model_ir
Далее устанавливается пакет Ultralytics для Python, который предоставляет инструменты для загрузки и работы с моделями YOLO:
python -m pip install ultralytics
В качестве примера в статье используется модель YOLO26. Для первого запуска на OpenVINO рекомендуется экспортировать самую компактную референсную модель без дополнительных настроек точности:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="openvino", imgsz=640)
Такой подход упрощает проверку первого результата. Ultralytics также поддерживает для экспорта в OpenVINO дополнительные параметры — half, int8, dynamic, nms и другие, но их стоит подключать уже после того, как базовый вариант модели проверен на самой плате.
Для прямого управления через OpenVINO Runtime используется следующий код:
import openvino as ov
import openvino.properties as props
core = ov.Core()
print("Available devices:", core.available_devices)
core.set_property({props.cache_dir: "./ov_cache"})
model = core.read_model("yolo26n_openvino_model/yolo26n.xml")
compiled_model = core.compile_model(model, "CPU")
print("Compiled for:", compiled_model.get_property("EXECUTION_DEVICES"))
Здесь важна сама схема развёртывания: обнаружение устройств, включение кэширования, чтение модели, компиляция под CPU и явное определение сервиса инференса.
Три пути развёртывания OpenVINO
Установка через PyPI — это путь для приложений: он позволяет проверить модель, предобработку, работу с камерой и логику сервиса на плате ещё до внесения изменений в сам OpenVINO. Подходит, когда продукт — это Python-приложение, а пакет OpenVINO можно рассматривать как обычную зависимость.
Сборка из исходников (native build) — путь для тех, кому нужен контроль над самим runtime: интеграция с C++, нестандартные параметры сборки, генерация локальных wheel-пакетов или отладка проблем, специфичных для платформы. Такой способ прост, но требует процессорного времени и памяти самой Raspberry Pi.
Кросс-сборка — путь для релизной инженерии. Он используется, когда нужны артефакты OpenVINO под Linux AArch64 для Raspberry Pi, но нежелательно, чтобы каждая сборка выполнялась непосредственно на плате. Подходит для CI, воспроизводимых релизов и работы контрибьюторов с настольных машин.
Что делает развёртывание надёжным
Видимая часть edge AI — это модель, но надёжность развёртывания чаще всего определяется работой с runtime и упаковкой вокруг неё. Авторы дают несколько практических советов:
-
Сначала проверить архитектуру. Если команда uname -m не возвращает aarch64, базовые допущения статьи не применимы.
-
Проверить версию Python. OpenVINO 2026.2.0 вышел в июне 2026 года и требует Python 3.10 или новее; его колёса для Linux Arm64 публикуются под CPython 3.10–3.13 с тегом manylinux_2_35_aarch64. Перед выбором версии Python для нового образа стоит свериться с актуальным списком колёс на PyPI — на практике ошибки установки чаще связаны с возрастом пользовательского окружения или версией Python, чем с отсутствием поддержки платы.
-
Не перегружать критичный путь запуска. OpenVINO может загружать модели ONNX напрямую, но для сервисов обычно лучше использовать IR вместе с кэшированием: модель конвертируется один раз, упаковывается, а запуск приложения сосредоточен на загрузке и компиляции под целевое устройство.
-
Явно указывать устройство. На Raspberry Pi стоит использовать CPU, когда именно CPU является целью, и AUTO — для осознанной переносимости между устройствами. Для фиксированного развёртывания на Raspberry Pi явный выбор CPU упрощает проверку поведения системы.
-
Учитывать питание и охлаждение как часть runtime. Постоянный инференс, захват видео с камеры, работа с хранилищем, сетью и логами могут выполняться одновременно на небольшой плате. Для Raspberry Pi 5 особенно важно закладывать запас по охлаждению и питанию уже на этапе проектирования.
Участие в развитии OpenVINO и Ultralytics
OpenVINO и Ultralytics — проекты с открытым исходным кодом, и вклад сообщества напрямую улучшает экосистему для всех пользователей, включая владельцев Raspberry Pi. Авторы статьи предлагают несколько способов поучаствовать: выбрать задачу с меткой «Good first issue» (для Arm-специфичных задач используется метка platform: arm), сообщить о проблемах, обнаруженных при реальном развёртывании, улучшить документацию либо присоединиться к обсуждениям в GitHub Discussions проекта OpenVINO. Заинтересованным в Ultralytics предлагается ознакомиться с условиями лицензирования и репозиторием проекта на GitHub.
Исходный код плагина CPU, который используется на Raspberry Pi, находится в каталоге src/plugins/intel_cpu репозитория OpenVINO — любое улучшение там, будь то новый JIT-эмиттер, исправление производительности или расширение тестового покрытия для Arm, напрямую идёт на пользу описанному в статье сценарию развёртывания на Raspberry Pi.
