Краткое руководство: Raspberry Pi с Ultralytics YOLO26#
Raspberry Pi — это небольшой доступный компьютер, на котором Ultralytics YOLO26 выполняет обнаружение объектов в реальном времени на периферии — GPU не требуется. В этом руководстве описано развертывание YOLO26 на Raspberry Pi 4 и 5: запись ОС на карту, установка Ultralytics, экспорт в NCNN для максимально быстрой инференции на ARM и запуск предсказаний на видеопотоке с камеры. Также приведены результаты тестов производительности для восьми форматов экспорта, чтобы ты мог выбрать оптимальный компромисс между скоростью и точностью для своего оборудования.
Перейти к разделам настройки Ultralytics, экспорта в NCNN и запуска инференции, тестов производительности или инференции с камеры.
Watch: Raspberry Pi 5 updates and improvements.
Это руководство протестировано на Raspberry Pi 4 и Raspberry Pi 5 с последней версией Raspberry Pi OS Bookworm (Debian 12). Руководство также должно работать на более старых устройствах Raspberry Pi, например Raspberry Pi 3, если на них установлена та же Raspberry Pi OS Bookworm.
Что такое Raspberry Pi?#
Raspberry Pi — это небольшой доступный одноплатный компьютер. Он стал популярным для самых разных проектов и задач: от домашней автоматизации для энтузиастов до промышленного применения. Платы Raspberry Pi поддерживают различные операционные системы и оснащены контактами GPIO (универсального ввода/вывода), которые упрощают подключение датчиков, исполнительных механизмов и других аппаратных компонентов. Существуют разные модели с различающимися характеристиками, но все они придерживаются одной базовой концепции: низкая стоимость, компактность и универсальность.
Сравнение серий Raspberry Pi#
| Raspberry Pi 3 | Raspberry Pi 4 | Raspberry Pi 5 | |
|---|---|---|---|
| CPU | Broadcom BCM2837, 64-битная SoC Cortex-A53 | Broadcom BCM2711, 64-битная SoC Cortex-A72 | Broadcom BCM2712, 64-битная SoC Cortex-A76 |
| Максимальная частота CPU | 1.4GHz | 1.8GHz | 2.4GHz |
| GPU | Videocore IV | Videocore VI | VideoCore VII |
| Максимальная частота GPU | 400Mhz | 500Mhz | 800Mhz |
| Память | 1 ГБ LPDDR2 SDRAM | 1 ГБ, 2 ГБ, 4 ГБ, 8 ГБ LPDDR4-3200 SDRAM | 4 ГБ, 8 ГБ LPDDR4X-4267 SDRAM |
| PCIe | Н/Д | Н/Д | Интерфейс PCIe 2.0 1x |
| Максимальное энергопотребление | 2.5A@5V | 3A@5V | 5A@5V (при включенном PD) |
Что такое Raspberry Pi OS?#
Raspberry Pi OS (ранее известная как Raspbian) — Unix-подобная операционная система на базе дистрибутива Debian GNU/Linux для семейства компактных одноплатных компьютеров Raspberry Pi, распространяемых Raspberry Pi Foundation. Raspberry Pi OS оптимизирована для Raspberry Pi с ARM CPU и использует измененную среду рабочего стола LXDE с оконным менеджером Openbox. Raspberry Pi OS активно развивается с акцентом на повышение стабильности и производительности максимально возможного числа пакетов Debian на Raspberry Pi.
Запись Raspberry Pi OS на Raspberry Pi#
Первое, что нужно сделать после покупки Raspberry Pi, — записать Raspberry Pi OS на карту micro-SD, вставить ее в устройство и загрузить ОС. Подробные инструкции по подготовке устройства к первому запуску приведены в документации Raspberry Pi для начинающих.
Настройка Ultralytics#
Ты можешь установить пакет Ultralytics на Raspberry Pi двумя способами для следующего проекта по компьютерному зрению:
Начало работы с Docker#
Самый быстрый способ начать работу с Ultralytics YOLO26 на Raspberry Pi — запустить готовый Docker-образ для Raspberry Pi.
Выполни приведенную ниже команду, чтобы загрузить Docker-контейнер и запустить его на Raspberry Pi. В основе лежит Docker-образ arm64v8/ubuntu, запускающий Ubuntu 24.04 в окружении Python3.
t=ultralytics/ultralytics:latest-arm64
sudo docker pull $t && sudo docker run -it --ipc=host $tDocker-образ уже содержит Ultralytics, поэтому ты можешь сразу перейти к экспорту своей модели в NCNN.
Начало работы без Docker#
Установка пакета Ultralytics#
Здесь мы установим пакет Ultralytics на Raspberry Pi. Зависимости для экспорта в такие форматы, как NCNN, автоматически устанавливаются при первом экспорте модели PyTorch, поэтому здесь достаточно базового пакета.
-
Обнови список пакетов, установи pip и выполни обновление до последней версии
sudo apt update sudo apt install python3-pip -y pip install -U pip -
Установи pip-пакет
ultralyticspip install ultralytics -
Перезагрузи устройство
sudo reboot
Использование NCNN на Raspberry Pi#
Из всех поддерживаемых Ultralytics форматов экспорта NCNN обеспечивает лучшую производительность инференции на устройствах Raspberry Pi, поскольку он сильно оптимизирован для мобильных и встраиваемых платформ, таких как архитектура ARM. Преобразуй модель YOLO26n PyTorch в NCNN, затем запусти инференцию с экспортированной моделью:
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates 'yolo26n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("yolo26n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")Подробнее о поддерживаемых вариантах экспорта см. в руководстве по вариантам развертывания моделей.
Преимущества производительности YOLO26 по сравнению с YOLO11#
YOLO26 специально разработан для работы на устройствах с ограниченными ресурсами, таких как Raspberry Pi 5. По сравнению с YOLO11n модель YOLO26n обеспечивает примерно ~15% прироста FPS (6.79 → 7.79) и более высокий показатель mAP (40.1 против 39.5) при размере входных данных 640 для моделей, экспортированных в ONNX, на Raspberry Pi 5. В таблице и на графике ниже показано это сравнение.
| Модель | mAP50-95(B) | Время инференции (мс/изображение) |
|---|---|---|
| YOLO26n | 40.1 | 128.42 |
| YOLO26s | 47.8 | 352.84 |
| YOLO26m | 52.5 | 993.78 |
| YOLO26l | 54.4 | 1259.46 |
| YOLO26x | 56.9 | 2636.26 |
Тестирование выполнено с Ultralytics 8.4.14.
Результаты тестов YOLO26 на Raspberry Pi 5#
Тесты производительности YOLO26 команда Ultralytics провела для восьми форматов моделей, измерив скорость и точность: PyTorch, TorchScript, ONNX, OpenVINO, MNN, NCNN, ExecuTorch, LiteRT. Тесты проводились на Raspberry Pi 5 с точностью FP32 и размером входного изображения 640 по умолчанию.
Сравнительный график#
Мы включили результаты тестов только для моделей YOLO26n и YOLO26s, поскольку модели других размеров слишком велики для запуска на Raspberry Pi и не обеспечивают приемлемую производительность.
Подробная сравнительная таблица#
В таблице ниже представлены результаты тестирования двух моделей (YOLO26n, YOLO26s) в восьми форматах (PyTorch, TorchScript, ONNX, OpenVINO, MNN, NCNN, ExecuTorch, LiteRT), выполненного на Raspberry Pi 5. Для каждой комбинации указаны статус, размер, метрика mAP50-95(B) и время инференции.
| Формат | Статус | Размер на диске (МБ) | mAP50-95(B) | Время инференции (мс/изображение) |
|---|---|---|---|---|
| PyTorch | ✅ | 5.3 | 0.4760 | 299.09 |
| TorchScript | ✅ | 9.8 | 0.4734 | 353.20 |
| ONNX | ✅ | 9.5 | 0.4734 | 125.99 |
| OpenVINO | ✅ | 9.6 | 0.4734 | 104.55 |
| MNN | ✅ | 9.4 | 0.4749 | 91.87 |
| NCNN | ✅ | 9.4 | 0.4784 | 67.03 |
| ExecuTorch | ✅ | 9.4 | 0.4772 | 144.83 |
| LiteRT | ✅ | 9.8 | 0.4730 | 123.30 |
Тестирование выполнено с Ultralytics 8.4.108
Время инференции не включает предварительную и последующую обработку.
Воспроизведение наших результатов#
Чтобы воспроизвести приведенные выше результаты тестов Ultralytics для всех форматов экспорта, выполни этот код:
from ultralytics import YOLO
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Benchmark YOLO26n speed and accuracy on the COCO128 dataset for all export formats
results = model.benchmark(data="coco128.yaml", imgsz=640)Учти, что результаты тестирования могут различаться в зависимости от точной конфигурации аппаратного и программного обеспечения системы, а также ее текущей нагрузки во время тестов. Для наиболее надежных результатов используй датасет с большим количеством изображений, например data='coco.yaml' (5000 изображений для валидации).
В litert-converter отсутствует Linux wheel aarch64, поэтому экспорт format=litert поддерживается только в Linux x86_64 и macOS, но не на самом Raspberry Pi. Экспортируй модель .tflite на компьютере с Linux x86_64 или Mac, скопируй ее на Raspberry Pi и используй Pi для инференции.
Использование камеры Raspberry Pi#
При использовании Raspberry Pi в проектах по компьютерному зрению может быть необходимо получать видеопоток в реальном времени для выполнения инференции. Встроенный разъем MIPI CSI на Raspberry Pi позволяет подключать официальные модули камер Raspberry Pi. В этом руководстве мы использовали модуль камеры Raspberry Pi Camera Module 3 для получения видеопотока и выполнения инференции с моделями YOLO26.
Узнай больше о различных модулях камер, предлагаемых Raspberry Pi, а также о том, как начать работу с модулями камер Raspberry Pi.
В Raspberry Pi 5 используются разъемы CSI меньшего размера, чем в Raspberry Pi 4 (15 контактов против 22), поэтому для подключения камеры Raspberry Pi тебе понадобится переходной кабель с 15 на 22 контакта.
Проверка камеры#
После подключения камеры к Raspberry Pi выполни следующую команду. Ты должен увидеть видеопоток с камеры в реальном времени примерно в течение 5 секунд.
rpicam-helloИнференция с камеры#
Есть два способа использовать камеру Raspberry Pi для выполнения инференции на моделях YOLO26.
Мы можем использовать picamera2, предустановленный в Raspberry Pi OS, для доступа к камере и выполнения инференции на моделях YOLO26.
import cv2
from picamera2 import Picamera2
from ultralytics import YOLO
# Initialize the Picamera2
picam2 = Picamera2()
picam2.preview_configuration.main.size = (1280, 720)
picam2.preview_configuration.main.format = "RGB888"
picam2.preview_configuration.align()
picam2.configure("preview")
picam2.start()
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
while True:
# Capture frame-by-frame
frame = picam2.capture_array()
# Run YOLO26 inference on the frame
results = model(frame)
# Visualize the results on the frame
annotated_frame = results[0].plot()
# Display the resulting frame
cv2.imshow("Camera", annotated_frame)
# Break the loop if 'q' is pressed
if cv2.waitKey(1) == ord("q"):
break
# Release resources and close windows
cv2.destroyAllWindows()Если ты хочешь изменить тип входных данных изображения или видео, ознакомься с документом Источники инференции.
Рекомендации по использованию Raspberry Pi#
Чтобы обеспечить максимальную производительность YOLO26 на Raspberry Pi, соблюдай несколько рекомендаций.
-
Используй SSD
При круглосуточном использовании Raspberry Pi рекомендуется использовать SSD для системы, поскольку SD-карта не выдержит непрерывных операций записи и может выйти из строя. Благодаря встроенному разъему PCIe в Raspberry Pi 5 теперь можно подключать SSD с помощью адаптера, например NVMe Base для Raspberry Pi 5.
-
Запись без графического интерфейса
При записи Raspberry Pi OS можно не устанавливать среду рабочего стола (Raspberry Pi OS Lite), что позволит сэкономить немного RAM на устройстве и оставить больше места для обработки задач компьютерного зрения.
-
Разгон Raspberry Pi
Если ты хочешь немного повысить производительность при запуске моделей Ultralytics YOLO26 на Raspberry Pi 5, то можешь разогнать CPU с базовых 2,4 ГГц до 3,0 ГГц, а GPU — с 800 МГц до 1 ГГц. Если система становится нестабильной или происходят сбои, уменьшай значения разгона шагами по 100 МГц. Убедись, что обеспечено надлежащее охлаждение, так как разгон увеличивает тепловыделение и может привести к троттлингу.
a. Обнови программное обеспечение
sudo apt update && sudo apt dist-upgradeb. Открой файл конфигурации для редактирования
sudo nano /boot/firmware/config.txtc. Добавь следующие строки в конец файла
arm_freq=3000 gpu_freq=1000 force_turbo=1d. Сохрани файл и выйди, нажав CTRL + X, затем Y и ENTER
e. Перезагрузи Raspberry Pi
Следующие шаги#
Ты успешно настроил YOLO26 на своем Raspberry Pi. Чтобы продолжить, изучи режим Predict для получения дополнительных вариантов инференции, режим Export для дополнительных форматов развертывания или руководство по NVIDIA Jetson, если тебе требуется больше вычислительных ресурсов на периферии. Полную документацию см. в документации Ultralytics YOLO26.
Благодарности и цитирование#
Изначально это руководство создал Daan Eeltink для Kashmir World Foundation — организации, занимающейся использованием YOLO для охраны исчезающих видов. Мы признаем их новаторский вклад и образовательную деятельность в области технологий обнаружения объектов.
Подробнее о деятельности Kashmir World Foundation можно узнать на их сайте.
Часто задаваемые вопросы#
Чтобы настроить Ultralytics YOLO26 на Raspberry Pi без Docker, выполни следующие шаги:
- Обнови список пакетов и установи
pip:sudo apt update sudo apt install python3-pip -y pip install -U pip - Установи пакет Ultralytics:
pip install ultralytics - Перезагрузи устройство, чтобы применить изменения:
sudo reboot
Подробные инструкции см. в разделе Запуск без Docker.
- Обнови список пакетов и установи
Формат NCNN Ultralytics YOLO26 оптимизирован для мобильных и встраиваемых платформ, поэтому он идеально подходит для выполнения AI-задач на устройствах Raspberry Pi. NCNN повышает производительность инференса за счёт использования архитектуры ARM, обеспечивая более быструю и эффективную обработку по сравнению с другими форматами. Подробнее о поддерживаемых форматах экспорта см. в разделе варианты экспорта модели.
Ты можешь преобразовать модель YOLO26 в формате PyTorch в формат NCNN с помощью команд Python или CLI:
Примерfrom ultralytics import YOLO # Load a YOLO26n PyTorch model model = YOLO("yolo26n.pt") # Export the model to NCNN format model.export(format="ncnn") # creates 'yolo26n_ncnn_model' # Load the exported NCNN model ncnn_model = YOLO("yolo26n_ncnn_model") # Run inference results = ncnn_model("https://ultralytics.com/images/bus.jpg")Подробнее см. в разделе Использование NCNN на Raspberry Pi.
Основные различия:
- CPU: Raspberry Pi 4 использует 64-битную SoC Broadcom BCM2711 на базе Cortex-A72, а Raspberry Pi 5 — 64-битную SoC Broadcom BCM2712 на базе Cortex-A76.
- Максимальная частота CPU: максимальная частота Raspberry Pi 4 составляет 1.8GHz, а Raspberry Pi 5 достигает 2.4GHz.
- Память: Raspberry Pi 4 поддерживает до 8GB памяти LPDDR4-3200 SDRAM, а Raspberry Pi 5 оснащён памятью LPDDR4X-4267 SDRAM объёмом 4GB или 8GB.
Эти улучшения обеспечивают более высокие результаты тестов производительности моделей YOLO26 на Raspberry Pi 5 по сравнению с Raspberry Pi 4. Подробнее см. в таблице Сравнение серий Raspberry Pi.
Настроить камеру Raspberry Pi для инференса YOLO26 можно двумя способами:
-
С использованием
picamera2:import cv2 from picamera2 import Picamera2 from ultralytics import YOLO picam2 = Picamera2() picam2.preview_configuration.main.size = (1280, 720) picam2.preview_configuration.main.format = "RGB888" picam2.preview_configuration.align() picam2.configure("preview") picam2.start() model = YOLO("yolo26n.pt") while True: frame = picam2.capture_array() results = model(frame) annotated_frame = results[0].plot() cv2.imshow("Camera", annotated_frame) if cv2.waitKey(1) == ord("q"): break cv2.destroyAllWindows() -
С использованием TCP-потока:
rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model("tcp://127.0.0.1:8888")
Подробные инструкции по настройке см. в разделе Инференс с камеры.
-