Ultralytics YOLO27:

Краткое руководство: Raspberry Pi с Ultralytics YOLO26#

Raspberry Pi — это небольшой и недорогой компьютер, на котором работает Ultralytics YOLO26 для обнаружения объектов в реальном времени на периферийных устройствах — GPU не требуется. В этом руководстве рассказывается, как развернуть YOLO26 на Raspberry Pi 4 и 5: записать ОС на носитель, установить Ultralytics, экспортировать модель в NCNN для максимально быстрого инференса на ARM и запускать предсказания на видео с камеры в реальном времени. Руководство также содержит бенчмарки для восьми форматов экспорта, чтобы ты мог подобрать оптимальный баланс скорости и точности для своего оборудования.

Перейди к разделам: настройка Ultralytics, экспорт в NCNN и запуск инференса, бенчмарки или инференс с камеры.



Смотри: Обновления и улучшения Raspberry Pi 5.
Примечание

Это руководство проверено на 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 SDRAM2 ГБ, 4 ГБ, 8 ГБ, 16 ГБ LPDDR4X-4267 SDRAM
PCIeН/ДН/ДИнтерфейс 1xPCIe 2.0
Максимальное энергопотребление2.5A@5V3A@5V5A@5V (PD enabled)

Что такое Raspberry Pi OS?#

Raspberry Pi OS (ранее известная как Raspbian) — Unix-подобная операционная система на основе дистрибутива Debian GNU/Linux для семейства компактных одноплатных компьютеров Raspberry Pi, выпускаемая фондом Raspberry Pi Foundation. Raspberry Pi OS тщательно оптимизирована для Raspberry Pi с ARM-процессорами и использует легковесную среду рабочего стола, которая по умолчанию работает на Wayland на Raspberry Pi 4 и 5. 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. Он основан на официальном образе Python 3.13-slim-trixie, в котором используется Debian 13 с Python 3.13.

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. Установи пакет ultralytics через pip

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

    sudo reboot

Использование NCNN на Raspberry Pi#

Среди всех поддерживаемых Ultralytics форматов экспорта моделей NCNN обеспечивает наилучшую производительность инференса на устройствах Raspberry Pi, поскольку он хорошо оптимизирован для мобильных и встроенных платформ, таких как устройства на архитектуре ARM. Преобразуй модель YOLO26n PyTorch в NCNN, а затем запусти инференс с экспортированной моделью:

Пример
from ultralytics import YOLO

# Загрузи модель YOLO26n в формате PyTorch
model = YOLO("yolo26n.pt")

# Экспортировать модель в формат NCNN
model.export(format="ncnn")  # creates 'yolo26n_ncnn_model'

# Загрузить экспортированную модель NCNN
ncnn_model = YOLO("yolo26n_ncnn_model")

# Выполнить инференс
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
Совет

Подробнее о поддерживаемых параметрах экспорта см. в руководстве по развертыванию моделей.

Улучшения производительности YOLO26 по сравнению с YOLO11#

YOLO26 специально разработана для работы на устройствах с ограниченными аппаратными ресурсами, таких как Raspberry Pi 5. По сравнению с YOLO11n модель YOLO26n обеспечивает прирост FPS примерно на ~15% (6.79 → 7.79), а также более высокое значение mAP (40.1 против 39.5) при размере входного изображения 640 и использовании моделей, экспортированных в ONNX, на Raspberry Pi 5. Это сравнение показано в таблице и на графике ниже.

YOLO26 benchmarks on RPi 5
Тестирование производительности выполнено с 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#

Команда Ultralytics провела тестирование производительности YOLO26 в восьми форматах моделей, измерив скорость и точность: PyTorch, TorchScript, ONNX, OpenVINO, LiteRT, MNN, NCNN, ExecuTorch. Тестирование проводилось на Raspberry Pi 5 с точностью FP32 precision и размером входного изображения по умолчанию 640.

Сравнительный график#

Мы включили результаты тестирования только для моделей YOLO26n и YOLO26s, поскольку модели других размеров слишком велики для запуска на Raspberry Pi и не обеспечивают приемлемой производительности.

YOLO26 benchmarks on RPi 5
Тестирование производительности выполнено с Ultralytics 8.4.108

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

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

Производительность
ФорматСтатусРазмер на диске (МБ)mAP50-95(B)Время инференса (мс/изобр.)
PyTorch✅5.30.4760299.09
TorchScript✅9.80.4734353.20
ONNX✅9.50.4734125.99
OpenVINO✅9.60.4734104.55
LiteRT✅9.80.4730123.30
MNN✅9.40.474991.87
NCNN✅9.40.478467.03
ExecuTorch✅9.40.4772144.83

Тестирование производительности выполнено с Ultralytics 8.4.108

Примечание

Время инференса не включает пред- и постобработку.

Воспроизведение наших результатов#

Чтобы воспроизвести приведённые выше результаты тестирования Ultralytics для всех форматов экспорта, выполни этот код:

Пример
from ultralytics import YOLO

# Загрузи модель YOLO26n в формате PyTorch
model = YOLO("yolo26n.pt")

# Сравнение скорости и точности YOLO26n на наборе данных COCO128 для всех форматов экспорта
results = model.benchmark(data="coco128.yaml", imgsz=640)

Учти, что результаты бенчмарков могут различаться в зависимости от конкретной конфигурации оборудования и программного обеспечения системы, а также от текущей нагрузки на систему во время запуска бенчмарков. Для получения наиболее надёжных результатов используй набор данных с большим количеством изображений, например data='coco.yaml' (5000 валидационных изображений).

Экспорт LiteRT выполняется на внешнем устройстве

Экспорт format=litert (через litert-torch) поддерживается только в Linux x86_64 и macOS, но не на самом Raspberry Pi. Экспортируй модель .tflite на компьютере с Linux x86_64 или Mac, скопируй её на Raspberry Pi и используй Raspberry Pi для инференса.

Использование камеры Raspberry Pi#

При использовании Raspberry Pi в проектах компьютерного зрения может быть важно получать видеопоток в реальном времени для выполнения инференса. Встроенный разъём MIPI CSI на Raspberry Pi позволяет подключать официальные модули камеры Raspberry Pi. В этом руководстве мы использовали Raspberry Pi Camera Module 3 для получения видеопотока и выполнения инференса с моделями YOLO26.

Совет
Примечание

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

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

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

rpicam-hello
Совет

Подробнее об использовании rpicam-hello в официальной документации Raspberry Pi

Инференс с камеры#

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

Запуск инференса с камерой Raspberry Pi

Мы можем использовать picamera2, который уже предустановлен в Raspberry Pi OS, чтобы получить доступ к камере и запустить инференс с моделями YOLO26.

Пример
import cv2
from picamera2 import Picamera2

from ultralytics import YOLO

# Инициализировать 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()

# Загружаем модель YOLO26
model = YOLO("yolo26n.pt")

while True:
    # Захватывать кадры по одному
    frame = picam2.capture_array()

    # Выполнить инференс YOLO26 на кадре
    results = model(frame)

    # Визуализировать результаты на кадре
    annotated_frame = results[0].plot()

    # Отобразить обработанный кадр
    cv2.imshow("Camera", annotated_frame)

    # Прервать цикл, если нажата клавиша 'q'
    if cv2.waitKey(1) == ord("q"):
        break

# Освободить ресурсы и закрыть окна
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), чтобы немного сэкономить оперативную память устройства и выделить больше ресурсов для обработки данных компьютерного зрения.

  3. Разгон Raspberry Pi

    Если ты хочешь немного повысить производительность при запуске моделей Ultralytics YOLO26 на Raspberry Pi 5, можно разогнать CPU с базовой частоты 2.4GHz до 3.0GHz, а GPU — с 800MHz до 1GHz. Если система станет нестабильной или начнёт аварийно завершать работу, снижай значения разгона шагами по 100MHz. Обеспечь надлежащее охлаждение: разгон увеличивает тепловыделение и может привести к троттлингу из-за перегрева.

    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.

Благодарности и цитирование#

Это руководство изначально подготовил Даан Ээлтинг для 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 хорошо оптимизирован для мобильных и встроенных платформ, поэтому он идеально подходит для выполнения задач ИИ на устройствах Raspberry Pi. NCNN максимально повышает производительность инференса за счёт использования архитектуры ARM, обеспечивая более быструю и эффективную обработку по сравнению с другими форматами. Подробнее о поддерживаемых форматах экспорта см. в разделе параметры экспорта моделей.

  • Преобразовать модель YOLO26 PyTorch в формат NCNN можно с помощью команд Python или CLI:

    Пример
    from ultralytics import YOLO
    
    # Загрузи модель YOLO26n в формате PyTorch
    model = YOLO("yolo26n.pt")
    
    # Экспортировать модель в формат NCNN
    model.export(format="ncnn")  # creates 'yolo26n_ncnn_model'
    
    # Загрузить экспортированную модель NCNN
    ncnn_model = YOLO("yolo26n_ncnn_model")
    
    # Выполнить инференс
    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 поддерживает до 8 ГБ SDRAM LPDDR4-3200, а Raspberry Pi 5 оснащён памятью LPDDR4X-4267 SDRAM объёмом 2, 4, 8 или 16 ГБ.

    Эти улучшения повышают производительность моделей 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")

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

Комментарии