Meet YOLO26: next-gen vision AI.

Link to this sectionКраткое руководство: 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.

Link to this sectionЧто такое Raspberry Pi?#

Raspberry Pi — это небольшой и доступный одноплатный компьютер. Он стал популярен для широкого спектра проектов и приложений, от любительской автоматизации дома до промышленного использования. Платы Raspberry Pi способны работать с различными операционными системами и оснащены контактами GPIO (General Purpose Input/Output), которые позволяют легко подключать датчики, приводы и другие аппаратные компоненты. Они выпускаются в различных моделях с разными характеристиками, но все они разделяют общую концепцию: быть недорогими, компактными и универсальными.

Link to this sectionСравнение серии Raspberry Pi#

Raspberry Pi 3Raspberry Pi 4Raspberry Pi 5
CPUBroadcom BCM2837, Cortex-A53 64-битный SoCBroadcom BCM2711, Cortex-A72 64-битный SoCBroadcom BCM2712, Cortex-A76 64-битный SoC
Макс. частота CPU1.4 ГГц1.8 ГГц2.4 ГГц
GPUVideocore IVVideocore VIVideoCore VII
Макс. частота GPU400 МГц500 МГц800 МГц
Память1 ГБ LPDDR2 SDRAM1 ГБ, 2 ГБ, 4 ГБ, 8 ГБ LPDDR4-3200 SDRAM4 ГБ, 8 ГБ LPDDR4X-4267 SDRAM
PCIeН/ДН/Д1xPCIe 2.0 интерфейс
Максимальное энергопотребление2.5A@5V3A@5V5A@5V (с поддержкой PD)

Link to this sectionЧто такое 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.

Link to this sectionУстановка Raspberry Pi OS на Raspberry Pi#

Первое, что нужно сделать, получив Raspberry Pi, — это записать образ Raspberry Pi OS на карту micro-SD, вставить ее в устройство и загрузиться. Следуй подробному руководству по началу работы от Raspberry Pi, чтобы подготовить устройство к первому использованию.

Link to this sectionНастройка Ultralytics#

Ты можешь настроить пакет Ultralytics на Raspberry Pi двумя способами для своего следующего проекта в области Computer Vision:

Link to this sectionНачать с 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.

Link to this sectionНачать без Docker#

Link to this sectionУстановка пакета Ultralytics#

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

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

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. Установи pip-пакет ultralytics с дополнительными зависимостями

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

    sudo reboot

Link to this sectionИспользование 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")
Совет

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

Link to this sectionУлучшения производительности 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.

Link to this sectionРезультаты тестов YOLO26 на Raspberry Pi 5#

Команда Ultralytics провела бенчмарки YOLO26 на десяти различных форматах моделей, измерив скорость и точность: PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch. Бенчмарки проводились на Raspberry Pi 5 при точности FP32 со стандартным размером входного изображения 640.

Link to this sectionСравнительная диаграмма#

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

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.1

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

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

Производительность
ФорматСтатусРазмер на диске (МБ)mAP50-95(B)Время вывода (мс/из)
PyTorch5.30.4798302.15
TorchScript9.80.4764357.58
ONNX9.50.4764130.33
OpenVINO9.60.481870.74
TF SavedModel24.60.4764213.58
TF GraphDef9.50.4764213.5
TF Lite9.90.4764251.41
MNN9.40.478490.89
NCNN9.40.480567.69
ExecuTorch9.40.4764148.36

Тестирование выполнено в Ultralytics 8.4.1

Примечание

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

Link to this sectionВоспроизведи наши результаты#

Чтобы воспроизвести указанные тесты 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 изображений для валидации).

Link to this sectionИспользование камеры 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-контактных), поэтому тебе понадобится переходной кабель с 15 на 22 контакта для подключения камеры Raspberry Pi.

Link to this sectionТестирование камеры#

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

rpicam-hello
Совет

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

Link to this sectionИнференс с помощью камеры#

Существует два способа использования камеры 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()
Совет

Ознакомься с нашим документом об источниках для инференции, если хочешь изменить тип входного изображения или видео

Link to this sectionЛучшие практики при использовании Raspberry Pi#

Существует пара лучших практик, которым стоит следовать для обеспечения максимальной производительности на Raspberry Pi при запуске YOLO26.

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

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

  2. Установка без графического интерфейса (GUI)

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

  3. Разгон Raspberry Pi

    Если ты хочешь немного повысить производительность при запуске моделей Ultralytics YOLO26 на Raspberry Pi 5, ты можешь разогнать CPU с базовых 2.4 ГГц до 2.9 ГГц, а 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

Link to this sectionДальнейшие шаги#

Ты успешно настроил YOLO26 на своем Raspberry Pi. Чтобы двигаться дальше, изучи режим Predict для получения дополнительных опций инференции, режим Export для дополнительных форматов развертывания или руководство по NVIDIA Jetson, если тебе нужно больше вычислительной мощности на периферии. Полную документацию можно найти в документации Ultralytics YOLO26.

Link to this sectionБлагодарности и цитирование#

Это руководство было изначально создано Daan Eeltink для Kashmir World Foundation, организации, занимающейся использованием YOLO для сохранения исчезающих видов животных. Мы признаем их новаторскую работу и образовательный вклад в области технологий обнаружения объектов.

Для получения дополнительной информации о деятельности Kashmir World Foundation ты можешь посетить их веб-сайт.

Link to this sectionFAQ#

Link to this sectionКак настроить Ultralytics YOLO26 на Raspberry Pi без использования Docker?#

Чтобы настроить 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[export]
  3. Перезагрузи устройство, чтобы применить изменения:
    sudo reboot

Подробные инструкции смотри в разделе Начало работы без Docker.

Link to this sectionПочему стоит использовать формат NCNN в Ultralytics YOLO26 для задач ИИ на Raspberry Pi?#

Формат NCNN в Ultralytics YOLO26 глубоко оптимизирован для мобильных и встраиваемых платформ, что делает его идеальным для выполнения задач ИИ на устройствах Raspberry Pi. NCNN максимизирует производительность инференции за счет использования архитектуры ARM, обеспечивая более быструю и эффективную обработку по сравнению с другими форматами. Для получения дополнительной информации о поддерживаемых форматах экспорта см. опции экспорта моделей.

Link to this sectionКак конвертировать модель 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.

Link to this sectionКаковы аппаратные различия между 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 для получения подробной информации.

Link to this sectionКак настроить камеру Raspberry Pi Camera Module для работы с Ultralytics YOLO26?#

Есть два метода настройки камеры 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")

Для получения подробных инструкций по настройке посети раздел Инференс с камерой.

Комментарии