Запуск Ultralytics YOLO на Raspberry Pi за допомогою OpenVINO

Наші друзі з компаній Intel та Ultralytics — Олександр Нестеров, Дмитро Пастушенков, Франческо Маттіолі та Нувола Ладі — готові розповісти вам, як запустити YOLO на Raspberry Pi за допомогою OpenVINO.

Цей посібник присвячений розгортанню моделей комп’ютерного зору Ultralytics YOLO на Raspberry Pi за допомогою OpenVINO. Ми розглянемо, як встановлюється середовище виконання, як моделі перетворюються на артефакти розгортання, як компіляція та кешування впливають на запуск, а також як забезпечити повторюваність збірки.

Стандартні практики розгортання OpenVINO залишаються в силі. Перетворіть модель, якщо важлива затримка завантаження, скомпілюйте її для цільового пристрою, збережіть скомпільовані артефакти в кеші та явно упакуйте середовище виконання.

Це визначає чітку роль Raspberry Pi. Це не виняток із правил OpenVINO, а скоріше невелика цільова платформа на базі Linux Arm64, до якої можна безпосередньо застосувати стандартну модель розгортання OpenVINO.

Короткий огляд налаштування системи

Рекомендований перший шлях виглядає так:

  • Використовуйте операційну систему Raspberry Pi OS (64-bit) на Raspberry Pi 4 чи Raspberry Pi 5
  • Створити чисте віртуальне середовище Python
  • Встановіть OpenVINO з PyPI
  • Впевніться в тому, OpenVINO бачить девайс CPU
  • Встановіть пакет Ultralytics Python package
  • Для розгортання, коли важливий час запуску, віддайте перевагу OpenVINO IR
  • Увімкніть кешування моделей для служб, які часто перезапускаються
  • Перейдіть на збірку з вихідного коду або крос-збірку, якщо вам потрібно контролювати пакетування середовища виконання OpenVINO, інтеграцію з C++ або створення відтворюваних артефактів релізу

Raspberry Pi — це цільова платформа, а OpenVINO — рівень розгортання

Raspberry Pi — це поширена платформа для практичного застосування систем комп'ютерного зору. Її можна розмістити поруч із камерою, всередині прототипу, біля верстата, на лабораторному столі або у невеликому сервісі, який має працювати без наявності робочої станції поблизу.

OpenVINO забезпечує стандартну конфігурацію для плат Raspberry Pi. Станом на червень 2026 року поточний 64-бітний образ Raspberry Pi OS — це система на базі Debian Trixie для Raspberry Pi 3 Model B та новіших моделей, зокрема Raspberry Pi 4 і Raspberry Pi 5. OpenVINO 2026.2.0 публікує на PyPI пакети Linux Arm64 для CPython 3.10, 3.11, 3.12 та 3.13. Офіційний процес інсталяції відповідає стандартній схемі для Python: створення віртуального середовища, інсталяція пакета та перевірка пристроїв виконання.

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 ГБ оперативної пам'яті Постійні навантаження на камери, більш функціональні периферійні додатки, стандартизовані корпуси Враховуйте охолодження та енергоспоживання як частину проекту

Наведений нижче графік демонструє, що OpenVINO забезпечує високу продуктивність порівняно з іншими фреймворками на Raspberry Pi під час розгортання моделі YOLO26:

“Таблиця порівняння Raspberry Pi (графік наведено за даними компанії Ultralytics тут)”

Практичне питання вже не полягає в тому, «Чи може OpenVINO працювати на Raspberry Pi?», а скоріше в тому, «Який спосіб розгортання OpenVINO забезпечить цьому периферійному додатку оптимальну модель виконання, запуску та обслуговування?»

Як працює OpenVINO на платформі Arm

OpenVINO використовує на Raspberry Pi ту саму модель програмування, що й інші розгортання OpenVINO. Додаток використовує openvino.Core, виявляє пристрої за допомогою available_devices, зчитує або конвертує моделі, а також компілює модель для такого пристрою, як центральний процесор (CPU).

Ця узгодженість має важливе значення, оскільки завдяки їй додаток не повинен бути прив’язаним саме до Raspberry Pi. Якщо згодом його буде перенесено на Raspberry Pi, ноутбук на базі x86, пристрій з графічним процесором Intel або іншу периферійну систему, загальна схема роботи OpenVINO на найвищому рівні залишиться незмінною: створення середовища виконання, вибір або запит пристроїв, компіляція моделі та виконання інференції.

Коли програма використовує процесор на Raspberry Pi, інференція проходить через багаторівневий шлях виконання. Програма не звертається безпосередньо до Arm Compute Library або KleidiAI; OpenVINO Runtime завантажує модель, готує її до компіляції та передає до плагіна процесора для цільового процесора. Потім плагін процесора обирає шлях виконання для кожної підтримуваної операції на основі типу операції, форми, точності, розміщення та доступних функцій збірки.

Це розрізнення є важливим як для продуктивності, так і для усунення несправностей. Наявність процесора у списку `available_devices` означає, що плагін OpenVINO для процесора доступний — це не означає, що кожна операція використовує одну й ту саму низькорівневу бібліотеку. Операції згортки, повністю з’єднаного шару, транспонування та резервного варіанту можуть використовувати різні шляхи виконання всередині однієї й тієї самої скомпільованої моделі.

На платформах Arm є дві особливості, які заслуговують на особливу увагу:

По-перше, точність вимагає чітко визначених очікувань. У документації OpenVINO для процесорів зазначено, що платформи Arm виконують квантовані моделі в режимі симуляції, тобто граф — включаючи операції квантування — працює з точністю з плаваючою комою. Квантування все ж може бути корисним, коли той самий робочий процес моделі призначений для інших пристроїв, але експорт у форматі int8 не слід подавати як гарантований спосіб прискорення роботи на Raspberry Pi.

По-друге, кешування моделей є функцією розгортання, а не лише опцією для тестування продуктивності. Компіляція може включати операції, специфічні для конкретної платформи. Якщо увімкнути параметр `cache_dir`, OpenVINO зможе кешувати скомпільовані артефакти та використовувати їх повторно згодом. На невеликому периферійному пристрої, який запускається як служба, перезавантажується після зникнення живлення або перезапускається після оновлень, перші кілька секунд запуску мають велике значення.

Модель комп'ютерного зору

Ultralytics — це компанія, що спеціалізується на штучному інтелекті та ставить за мету зробити комп’ютерний зір доступним завдяки простим у використанні інструментам для створення, навчання, валідації, експорту та розгортання моделей комп’ютерного зору. В основі цієї екосистеми лежить Ultralytics YOLO — сімейство моделей комп’ютерного зору, що працюють у режимі реального часу та здатні аналізувати зображення й відео за один прохід, швидко ідентифікуючи та розпізнаючи візуальну інформацію. Моделі Ultralytics YOLO широко використовуються завдяки тому, що вони забезпечують баланс між швидкістю, точністю та гнучкістю розгортання, що робить їх особливо придатними для застосувань штучного інтелекту в режимі реального часу та на периферійних пристроях, де важливими є затримка, ефективність та надійність.

На відміну від багатьох інших сімейств моделей, Ultralytics YOLO пропонує уніфікований робочий процес, вичерпну документацію, прості інтерфейси на Python та через командний рядок, широку підтримку експорту, а також сумісність із багатьма середовищами розгортання — від хмарних систем до вбудованих пристроїв, таких як Raspberry Pi. Моделі YOLO підтримують основні завдання комп’ютерного зору, зокрема виявлення об’єктів, сегментацію екземплярів, класифікацію зображень, оцінку пози, виявлення орієнтованих обмежувальних прямокутників та відстеження. При використанні з Raspberry Pi та OpenVINO моделі Ultralytics YOLO можна оптимізувати для ефективного інферування на пристрої: Raspberry Pi забезпечує компактну та доступну платформу периферійних обчислень, OpenVINO допомагає конвертувати та оптимізувати моделі для швидшого виконання на підтримуваному апаратному забезпеченні, а Ultralytics спрощує процес експорту та розгортання.

Компіляція або експорт моделей у формат, призначений саме для цільового пристрою, є надзвичайно важливою, оскільки периферійні пристрої мають обмежені обчислювальні потужності, обсяг пам’яті та енергоспоживання; етапи оптимізації, такі як перетворення графа, регулювання точності та квантування, допомагають моделі працювати швидше, споживати менше ресурсів та надійно функціонувати на цільовому пристрої.

Моделі Ultralytics YOLO за замовчуванням доступні за ліцензією AGPL-3.0, що сприяє відкритій співпраці та прозорості. Розробники, які використовують Ultralytics YOLO, повинні або оприлюднити весь проект як відкрите програмне забезпечення за ліцензією AGPL-3.0, або отримати корпоративну ліцензію Ultralytics для закритого, внутрішнього, комерційного використання, науково-дослідних робіт або розгортання на периферійних пристроях. Дізнайтеся більше на сторінці ліцензування Ultralytics.

Швидкий старт з OpenVINO Runtime та пакетом Ultralytics для Python

Найпрактичніший варіант початкового налаштування передбачає явне створення середовища OpenVINOt:

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 доступний для середовища виконання.

Наступне рішення стосується формату моделі. OpenVINO може безпосередньо зчитувати моделі у форматі ONNX, що зручно під час розробки. Для розгортання, якщо важлива затримка завантаження, краще конвертувати модель у формат OpenVINO IR:

ovc your_model.onnx --output_model your_model_ir

Install the Ultralytics Python Package that provides all the tools and interface to download and operate Ultralytics YOLO models.

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"))

Головне — це схема розгортання: виявлення пристроїв, увімкнення кешування, завантаження моделі, компіляція для ЦП та забезпечення явного функціонування служби інференції.

Три способи розгортання OpenVINO

Для першого робочого розгортання почніть з PyPI. Це дозволить вам перевірити модель, попередню обробку даних, траєкторію руху камери та логіку роботи сервісу на платі, перш ніж вносити зміни в саму платформу OpenVINO. У міру вдосконалення розгортання з’являється необхідність у повторюваності процесів перекомпіляції, пакування, передачі даних, перевірки та оновлення без створення налаштувань, специфічних для конкретної плати.

Шлях до PyPI — це шлях до програми. Використовуйте його, якщо ваш продукт є програмою на Python, а пакет OpenVINO можна розглядати як будь-яку іншу залежність. Дивіться документацію щодо встановлення OpenVINO через PyPI.

Шлях до компіляції з вихідного коду є шляхом управління середовищем виконання. Це доцільно, коли сама OpenVINO є частиною того, що ви перевіряєте: інтеграція з C++, власні параметри компіляції, створення локальних файлів wheel або налагодження проблем середовища виконання, пов’язаних із конкретною платформою. Це простий процес, але він забирає час процесора та пам’ять Raspberry Pi. Дивіться документацію OpenVINO щодо компіляції OpenVINO для Raspberry Pi.

Шлях перехресної компіляції — це шлях інженерії релізів. Використовуйте його, коли вам потрібні артефакти OpenVINO для Linux AArch64 на Raspberry Pi, але ви не хочете, щоб кожна компіляція відбувалася безпосередньо на самій платі. Він підходить для безперервної інтеграції (CI), відтворюваних релізів та учасників проекту, які працюють на настільних комп’ютерах. Дивіться посібник з перехресної компіляції OpenVINO.

Деталі, що забезпечують надійність розгортання

Видимою частиною периферійного ШІ є модель. А те, чи залишається розгортання надійним, часто залежить від середовища виконання та робіт з пакетування, пов’язаних із моделлю.

Спочатку перевірте архітектуру. Якщо команда uname -m не повертає значення aarch64, то припущення, викладені в цій статті, не застосовуються.

Перевірте версію Python. OpenVINO 2026.2.0 було випущено в червні 2026 року. Для його роботи потрібна версія Python 3.10 або новіша, а його пакети «wheel» для Linux Arm64 опубліковано для CPython 3.10, 3.11, 3.12 та 3.13 із тегом manylinux_2_35_aarch64. Перед тим, як вибрати версію Python для нового образу, перевірте актуальний список пакетів wheel на PyPI. На практиці помилки під час встановлення пакетів wheel на Raspberry Pi часто пов’язані з версією користувацького простору або версією Python, а не з тим, що OpenVINO не підтримує цю плату.

Не включайте операції запуску в «гарячий шлях». OpenVINO може завантажувати моделі ONNX безпосередньо, але для сервісів часто краще використовувати IR у поєднанні з кешуванням моделей. Перетворіть модель один раз, упакуйте перетворену модель і дозвольте процесу запуску додатка зосередитися на завантаженні та компіляції для цільового пристрою.

Вкажіть пристрій явно і чітко. На Raspberry Pi використовуйте CPU, якщо цільовим пристроєм є саме процесор, а для забезпечення переносимості між різними пристроями використовуйте AUTO. У разі стаціонарного розгортання на Raspberry Pi явне вибрання процесора спрощує перевірку поведінки системи.

Розглядайте енергоспоживання та охолодження як залежності, пов’язані з роботою системи. Тривалі операції інференції, зйомка з камери, зберігання даних, робота в мережі та ведення журналів можуть виконуватися одночасно на невеликій платі. Зокрема, при проектуванні Raspberry Pi 5 слід враховувати резерви потужності та охолодження.

Долучайтеся до розробки OpenVINO та Ultralytics

OpenVINO та Ultralytics — це проєкти з відкритим кодом, і внесок спільноти безпосередньо сприяє вдосконаленню екосистеми для всіх, зокрема для користувачів Raspberry Pi. Якщо ця стаття допомогла вам розгорнути модель на Raspberry Pi, будь ласка, розгляньте можливість внести свій вклад у розвиток OpenVINO та Ultralytics — чи то виправленням виявленої помилки, чи вдосконаленням документації, чи реалізацією операції, якої бракує для бекенду Arm.

Є кілька способів долучитися:

  • Виберіть хороший перший квиток: дошка «Good first issues» містить завдання, призначені для новачків; квитки, що стосуються архітектури ARM, позначені тегом platform: arm.
  • Повідомляйте про проблеми, що виникають під час реального впровадження: якщо ви зіткнулися з проблемою в роботі OpenVINO, створіть заявку.
  • Вдосконалюйте документацію: якщо під час налаштування Raspberry Pi вам щось у цій статті або в офіційній документації було незрозуміло, повідомте нам про це — це цілком прийнятний напрямок для вашого внеску.
  • Приєднуйтесь до спільноти: сторінка «Обговорення» OpenVINO на GitHub — це саме те місце, куди варто звертатися з питаннями щодо проектування та пропозиціями щодо нових функцій. Цікавитесь Ultralytics? Ознайомтеся з їхніми варіантами ліцензування, щоб впровадити рішення в галузі комп’ютерного зору у свої проєкти. Відвідайте їхній репозиторій на GitHub та приєднуйтесь до спільноти.

Вихідний код плагіна для процесора, що працює на Raspberry Pi, розміщений у папці src/plugins/intel_cpu. Кожне вдосконалення в цьому коді — новий JIT-емітер, виправлення, що підвищує продуктивність, покращене тестове покриття для Arm тощо — безпосередньо сприяє реалізації сценарію розгортання на Raspberry Pi, описаного в цій статті.

Вперед — будуймо!

Raspberry Pi залишається конкретною цільовою платформою для периферійних обчислень: вона компактна, звична та її легко розмістити поруч із датчиками. YOLO26 залишається конкретним прикладом моделі: вона наочна, впізнавана та її легко експортувати. Технічний акцент робиться саме на OpenVINO.

Та сама модель виконання, потік конвертації, вибір процесора, поведінка кешування та варіанти пакетування можуть підтримувати розгортання на Raspberry Pi, не перетворюючи його на виняток, специфічний для певної платформи. Створюйте додаток на основі моделі розгортання OpenVINO: чисте середовище, конвертована модель, явно визначений пристрій, постійний кеш та шлях пакетування, що відповідає процесу випуску.