Ultralytics YOLO27:

Краткое руководство: 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 3Raspberry Pi 4Raspberry Pi 5
CPUBroadcom BCM2837, 64-битная SoC Cortex-A53Broadcom BCM2711, 64-битная SoC Cortex-A72Broadcom BCM2712, 64-битная SoC Cortex-A76
Максимальная частота CPU1.4GHz1.8GHz2.4GHz
GPUVideocore IVVideocore VIVideoCore VII
Максимальная частота GPU400Mhz500Mhz800Mhz
Память1 ГБ LPDDR2 SDRAM1 ГБ, 2 ГБ, 4 ГБ, 8 ГБ LPDDR4-3200 SDRAM4 ГБ, 8 ГБ LPDDR4X-4267 SDRAM
PCIeН/ДН/ДИнтерфейс PCIe 2.0 1x
Максимальное энергопотребление2.5A@5V3A@5V5A@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 $t

Docker-образ уже содержит Ultralytics, поэтому ты можешь сразу перейти к экспорту своей модели в NCNN.

Начало работы без Docker#

Установка пакета Ultralytics#

Здесь мы установим пакет Ultralytics на Raspberry Pi. Зависимости для экспорта в такие форматы, как NCNN, автоматически устанавливаются при первом экспорте модели PyTorch, поэтому здесь достаточно базового пакета.

  1. Обнови список пакетов, установи pip и выполни обновление до последней версии

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. Установи pip-пакет ultralytics

    pip install ultralytics
  3. Перезагрузи устройство

    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. В таблице и на графике ниже показано это сравнение.

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.14
Производительность
МодельmAP50-95(B)Время инференции (мс/изображение)
YOLO26n40.1128.42
YOLO26s47.8352.84
YOLO26m52.5993.78
YOLO26l54.41259.46
YOLO26x56.92636.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 и не обеспечивают приемлемую производительность.

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.108

Подробная сравнительная таблица#

В таблице ниже представлены результаты тестирования двух моделей (YOLO26n, YOLO26s) в восьми форматах (PyTorch, TorchScript, ONNX, OpenVINO, MNN, NCNN, ExecuTorch, LiteRT), выполненного на Raspberry Pi 5. Для каждой комбинации указаны статус, размер, метрика mAP50-95(B) и время инференции.

Производительность
ФорматСтатусРазмер на диске (МБ)mAP50-95(B)Время инференции (мс/изображение)
PyTorch5.30.4760299.09
TorchScript9.80.4734353.20
ONNX9.50.4734125.99
OpenVINO9.60.4734104.55
MNN9.40.474991.87
NCNN9.40.478467.03
ExecuTorch9.40.4772144.83
LiteRT9.80.4730123.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 выполняется вне устройства

В 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 5 используются разъемы CSI меньшего размера, чем в Raspberry Pi 4 (15 контактов против 22), поэтому для подключения камеры Raspberry Pi тебе понадобится переходной кабель с 15 на 22 контакта.

Проверка камеры#

После подключения камеры к Raspberry Pi выполни следующую команду. Ты должен увидеть видеопоток с камеры в реальном времени примерно в течение 5 секунд.

rpicam-hello
Совет

Инференция с камеры#

Есть два способа использовать камеру Raspberry Pi для выполнения инференции на моделях YOLO26.

Запуск инференции с камеры Raspberry Pi

Мы можем использовать 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, соблюдай несколько рекомендаций.

  1. Используй SSD

    При круглосуточном использовании Raspberry Pi рекомендуется использовать SSD для системы, поскольку SD-карта не выдержит непрерывных операций записи и может выйти из строя. Благодаря встроенному разъему PCIe в Raspberry Pi 5 теперь можно подключать SSD с помощью адаптера, например NVMe Base для Raspberry Pi 5.

  2. Запись без графического интерфейса

    При записи Raspberry Pi OS можно не устанавливать среду рабочего стола (Raspberry Pi OS Lite), что позволит сэкономить немного RAM на устройстве и оставить больше места для обработки задач компьютерного зрения.

  3. Разгон Raspberry Pi

    Если ты хочешь немного повысить производительность при запуске моделей Ultralytics YOLO26 на Raspberry Pi 5, то можешь разогнать CPU с базовых 2,4 ГГц до 3,0 ГГц, а GPU — с 800 МГц до 1 ГГц. Если система становится нестабильной или происходят сбои, уменьшай значения разгона шагами по 100 МГц. Убедись, что обеспечено надлежащее охлаждение, так как разгон увеличивает тепловыделение и может привести к троттлингу.

    a. Обнови программное обеспечение

    sudo apt update && sudo apt dist-upgrade

    b. Открой файл конфигурации для редактирования

    sudo nano /boot/firmware/config.txt

    c. Добавь следующие строки в конец файла

    arm_freq=3000
    gpu_freq=1000
    force_turbo=1

    d. Сохрани файл и выйди, нажав 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, выполни следующие шаги:

    1. Обнови список пакетов и установи pip:
      sudo apt update
      sudo apt install python3-pip -y
      pip install -U pip
    2. Установи пакет Ultralytics:
      pip install ultralytics
    3. Перезагрузи устройство, чтобы применить изменения:
      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 можно двумя способами:

    1. С использованием 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()
    2. С использованием TCP-потока:

      rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888
      from ultralytics import YOLO
      
      model = YOLO("yolo26n.pt")
      results = model("tcp://127.0.0.1:8888")

    Подробные инструкции по настройке см. в разделе Инференс с камеры.

Комментарии