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

Это подробное руководство содержит пошаговую инструкцию по развертыванию Ultralytics YOLO26 на устройствах Raspberry Pi. Кроме того, здесь приведены результаты тестирования производительности, демонстрирующие возможности YOLO26 на этих компактных и мощных устройствах.



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 3Raspberry Pi 4Raspberry Pi 5
CPUBroadcom BCM2837, Cortex-A53 64Bit SoCBroadcom BCM2711, Cortex-A72 64Bit SoCBroadcom BCM2712, Cortex-A76 64Bit 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)

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

Raspberry Pi OS (ранее известная как Raspbian) — это Unix-подобная операционная система на базе дистрибутива Debian GNU/Linux для семейства компактных одноплатных компьютеров Raspberry Pi, распространяемых Raspberry Pi Foundation. Raspberry Pi OS хорошо оптимизирована для Raspberry Pi с ARM-процессорами и использует модифицированную среду рабочего стола 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. Он основан на образе arm64v8/debian, который содержит Debian 12 (Bookworm) в окружении Python3.

t=ultralytics/ultralytics:latest-arm64
sudo docker pull $t && sudo docker run -it --ipc=host $t

После этого переходи к разделу Использование NCNN на Raspberry Pi.

Начни без Docker

Установка пакета 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

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

Из всех форматов экспорта моделей, поддерживаемых Ultralytics, NCNN обеспечивает лучшую производительность вывода при работе с устройствами Raspberry Pi, поскольку NCNN высоко оптимизирован для мобильных/встраиваемых платформ (таких как архитектура ARM).

Конвертация модели в NCNN и выполнение вывода

Модель 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")
Совет

Для получения дополнительной информации о поддерживаемых вариантах экспорта посети страницу документации Ultralytics по вариантам развертывания.

Улучшения производительности 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
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, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch. Тестирование проводилось на Raspberry Pi 5 с точностью FP32 и стандартным размером входного изображения 640.

Сравнительная диаграмма

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

YOLO26 benchmarks on RPi 5
Benchmarked with Ultralytics 8.4.1

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

В таблице ниже представлены результаты тестирования для двух различных моделей (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

Примечание

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

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

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

Использование камеры 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.

Проверь камеру

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

rpicam-hello
Совет

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

Инференс с помощью камеры

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

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

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

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

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

  3. Разгон Raspberry Pi

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

Следующие шаги

Ты успешно настроил YOLO на своей Raspberry Pi. Для дальнейшего обучения и поддержки посети документацию Ultralytics YOLO26 и Kashmir World Foundation.

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

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

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

Часто задаваемые вопросы (FAQ)

Как установить 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

Для подробных инструкций обратись к разделу Start without Docker.

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

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

Как я могу конвертировать модель 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")

Для получения подробной информации см. раздел Use NCNN on 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 Series Comparison для получения более подробной информации.

Как настроить модуль камеры Raspberry Pi для работы с 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")

Для получения подробных инструкций по настройке посети раздел Inference with Camera.

Комментарии