Краткое руководство: 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 3, также будет работать при условии установки той же Raspberry Pi OS Bookworm.
Что такое Raspberry Pi?#
Raspberry Pi — это небольшой и доступный одноплатный компьютер. Он стал популярен для широкого спектра проектов и приложений, от любительской автоматизации дома до промышленного использования. Платы Raspberry Pi способны работать с различными операционными системами и оснащены контактами GPIO (General Purpose Input/Output), которые позволяют легко подключать датчики, приводы и другие аппаратные компоненты. Они выпускаются в различных моделях с разными характеристиками, но все они разделяют общую концепцию: быть недорогими, компактными и универсальными.
Сравнение серии Raspberry Pi#
| Raspberry Pi 3 | Raspberry Pi 4 | Raspberry Pi 5 | |
|---|---|---|---|
| CPU | Broadcom BCM2837, Cortex-A53 64-битный SoC | Broadcom BCM2711, Cortex-A72 64-битный SoC | Broadcom BCM2712, Cortex-A76 64-битный SoC |
| Макс. частота CPU | 1.4 ГГц | 1.8 ГГц | 2.4 ГГц |
| GPU | Videocore IV | Videocore VI | VideoCore VII |
| Макс. частота GPU | 400 МГц | 500 МГц | 800 МГц |
| Память | 1 ГБ LPDDR2 SDRAM | 1 ГБ, 2 ГБ, 4 ГБ, 8 ГБ LPDDR4-3200 SDRAM | 4 ГБ, 8 ГБ LPDDR4X-4267 SDRAM |
| PCIe | Н/Д | Н/Д | 1xPCIe 2.0 интерфейс |
| Максимальное энергопотребление | 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 глубоко оптимизирована для процессоров ARM в Raspberry Pi и использует модифицированную среду рабочего стола 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 двумя способами для своего следующего проекта в области Computer Vision:
Начать с 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 $tВ Docker-образ уже включен Ultralytics, поэтому ты можешь сразу перейти к экспорту своей модели в NCNN.
Начать без Docker#
Установка пакета Ultralytics#
Здесь мы установим пакет Ultralytics на Raspberry Pi с дополнительными зависимостями, чтобы можно было экспортировать модели PyTorch в другие форматы.
-
Обнови список пакетов, установи pip и обнови его до последней версии
sudo apt update sudo apt install python3-pip -y pip install -U pip -
Установи pip-пакет
ultralyticsс дополнительными зависимостямиpip install ultralytics[export] -
Перезагрузи устройство
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 не поставляется с wheel-пакетом Linux для 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-контактных), поэтому тебе понадобится переходной кабель с 15 на 22 контакта для подключения камеры Raspberry Pi.
Тестирование камеры#
Выполни следующую команду после подключения камеры к Raspberry Pi. Ты должен увидеть прямую трансляцию с камеры в течение примерно 5 секунд.
rpicam-helloУзнай больше об использовании rpicam-hello в официальной документации Raspberry Pi
Инференс с помощью камеры#
Существует два способа использования камеры 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#
Существует пара лучших практик, которым стоит следовать для обеспечения максимальной производительности на Raspberry Pi при запуске YOLO26.
-
Используй SSD
При использовании Raspberry Pi в режиме работы 24/7 рекомендуется использовать SSD для системы, так как SD-карта не выдержит постоянной перезаписи и может выйти из строя. Благодаря встроенному разъему PCIe на Raspberry Pi 5 теперь можно подключать SSD с помощью адаптера, такого как NVMe Base для Raspberry Pi 5.
-
Установка без графического интерфейса (GUI)
При установке Raspberry Pi OS ты можешь выбрать вариант без графической среды (Raspberry Pi OS Lite), что позволит сэкономить немного оперативной памяти на устройстве, освободив больше места для обработки компьютерного зрения.
-
Разгон Raspberry Pi
Если ты хочешь немного повысить производительность при запуске моделей Ultralytics YOLO26 на Raspberry Pi 5, ты можешь разогнать CPU с базовых 2.4 ГГц до 2.9 ГГц, а 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 ты можешь посетить их веб-сайт.
FAQ#
Как настроить Ultralytics YOLO26 на Raspberry Pi без использования Docker?#
Чтобы настроить Ultralytics YOLO26 на Raspberry Pi без Docker, выполни следующие шаги:
- Обнови список пакетов и установи
pip:sudo apt update sudo apt install python3-pip -y pip install -U pip - Установи пакет Ultralytics с дополнительными зависимостями:
pip install ultralytics[export] - Перезагрузи устройство, чтобы применить изменения:
sudo reboot
Подробные инструкции смотри в разделе Начало работы без Docker.
Почему стоит использовать формат NCNN в Ultralytics YOLO26 для задач ИИ на Raspberry Pi?#
Формат NCNN в Ultralytics YOLO26 глубоко оптимизирован для мобильных и встраиваемых платформ, что делает его идеальным для выполнения задач ИИ на устройствах Raspberry Pi. NCNN максимизирует производительность инференции за счет использования архитектуры ARM, обеспечивая более быструю и эффективную обработку по сравнению с другими форматами. Для получения дополнительной информации о поддерживаемых форматах экспорта см. опции экспорта моделей.
Как конвертировать модель YOLO26 в формат NCNN для использования на Raspberry Pi?#
Ты можешь конвертировать модель PyTorch YOLO26 в формат 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.
Каковы аппаратные различия между Raspberry Pi 4 и Raspberry Pi 5, важные для запуска YOLO26?#
Основные различия:
- CPU: Raspberry Pi 4 использует 64-битный SoC Broadcom BCM2711, Cortex-A72, в то время как Raspberry Pi 5 использует 64-битный SoC Broadcom BCM2712, Cortex-A76.
- Максимальная частота CPU: Raspberry Pi 4 имеет максимальную частоту 1.8 ГГц, тогда как Raspberry Pi 5 достигает 2.4 ГГц.
- Память: Raspberry Pi 4 предлагает до 8 ГБ LPDDR4-3200 SDRAM, а Raspberry Pi 5 оснащена LPDDR4X-4267 SDRAM и доступна в вариантах 4 ГБ и 8 ГБ.
Эти улучшения способствуют более высоким показателям производительности для моделей YOLO26 на Raspberry Pi 5 по сравнению с Raspberry Pi 4. Обратись к таблице Сравнение серий Raspberry Pi для получения подробной информации.
Как настроить камеру Raspberry Pi Camera Module для работы с Ultralytics YOLO26?#
Есть два метода настройки камеры 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")
Для получения подробных инструкций по настройке посети раздел Инференс с камерой.