Перейти к содержимому

Coral Edge TPU на Raspberry Pi с Ultralytics YOLOv8 🚀.

Одноплатный компьютер Raspberry Pi с ускорителем USB Edge TPU

Что такое коралловый край TPU?

Coral Edge TPU - это компактное устройство, которое добавляет в твою систему сопроцессор Edge TPU . Он обеспечивает маломощные и высокопроизводительные ML-инференции для моделей TensorFlow Lite. Подробнее читай на домашней странице Coral Edge TPU .

Увеличь производительность модели Raspberry Pi с помощью Coral Edge TPU

Многие хотят запускать свои модели на встраиваемых или мобильных устройствах, таких как Raspberry Pi, поскольку они очень энергоэффективны и могут использоваться в самых разных приложениях. Однако производительность вычислений на таких устройствах обычно оставляет желать лучшего даже при использовании таких форматов, как onnx или openvino. Coral Edge TPU - отличное решение этой проблемы, поскольку его можно использовать с Raspberry Pi и значительно ускорить производительность вычислений.

Edge TPU на Raspberry Pi с помощью TensorFlow Lite (New)⭐.

Существующее руководство Coral по использованию Edge TPU с Raspberry Pi устарело, а текущие сборки Coral Edge TPU больше не работают с текущими версиями TensorFlow Lite runtime. Кроме того, Google , похоже, полностью покинул проект Coral, и в период с 2021 по 2024 год не было ни одного обновления. В этом руководстве ты узнаешь, как заставить Edge TPU работать с последними версиями среды выполнения TensorFlow Lite и обновленной средой выполнения Coral Edge TPU на одноплатном компьютере Raspberry Pi (SBC).

Пререквизиты

Прогулка по установке

Это руководство предполагает, что у тебя уже есть рабочая установка ОС Raspberry Pi и ты установил ultralytics и всех зависимостей. Чтобы получить ultralytics Установленный, посетите краткое руководство чтобы настроить его, прежде чем продолжить здесь.

Установка среды выполнения Edge TPU

Во-первых, нам нужно установить среду выполнения Edge TPU . Существует множество различных версий, поэтому тебе нужно выбрать подходящую версию для своей операционной системы.

Raspberry Pi OS Высокочастотный режим Версия для скачивания
Бычий глаз 32bit Нет libedgetpu1-std_ ... .bullseye_armhf.deb
Бычий глаз 64bit Нет libedgetpu1-std_ ... .bullseye_arm64.deb
Бычий глаз 32bit Да libedgetpu1-max_ ... .bullseye_armhf.deb
Бычий глаз 64bit Да libedgetpu1-max_ ... .bullseye_arm64.deb
Книжный червь 32bit Нет libedgetpu1-std_ ... .bookworm_armhf.deb
Книжный червь 64bit Нет libedgetpu1-std_ ... .bookworm_arm64.deb
Книжный червь 32bit Да libedgetpu1-max_ ... .bookworm_armhf.deb
Книжный червь 64bit Да libedgetpu1-max_ ... .bookworm_arm64.deb

Скачай последнюю версию отсюда.

Скачав файл, ты можешь установить его с помощью следующей команды:

sudo dpkg -i path/to/package.deb

После установки среды исполнения тебе нужно подключить Coral Edge TPU к порту USB 3.0 на твоей Raspberry Pi. Это связано с тем, что, согласно официальному руководству, новый udev Правило должно вступить в силу после установки.

Важно

Если у тебя уже установлена среда выполнения Coral Edge TPU , удали ее с помощью следующей команды.

# If you installed the standard version
sudo apt remove libedgetpu1-std

# If you installed the high frequency version
sudo apt remove libedgetpu1-max

Экспортируй свою модель в модель, совместимую с Edge TPU .

Чтобы использовать Edge TPU, тебе нужно преобразовать свою модель в совместимый формат. Рекомендуется запускать export на машине Google Colab, x86_64 Linux, используя официальный контейнерUltralytics Docker, или с помощью Ultralytics HUB, так как компилятор Edge TPU недоступен на ARM. Доступные аргументы смотри в разделе " Режим экспорта ".

Экспорт

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/model.pt")  # Load an official model or custom model

# Export the model
model.export(format="edgetpu")
yolo export model=path/to/model.pt format=edgetpu  # Export an official model or custom model

Экспортированная модель будет сохранена в <model_name>_saved_model/ папку с именем <model_name>_full_integer_quant_edgetpu.tflite.

Запуск модели

После того как ты экспортировал свою модель, ты можешь запустить с ней вывод, используя следующий код:

Бег

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/edgetpu_model.tflite")  # Load an official model or custom model

# Run Prediction
model.predict("path/to/source.png")
yolo predict model=path/to/edgetpu_model.tflite source=path/to/source.png  # Load an official model or custom model

Полную информацию о режиме предсказания ты найдешь на странице Predict.

Важно

Тебе следует запустить модель, используя tflite-runtime и не tensorflow. Если tensorflow установлен, удали tensorflow с помощью следующей команды:

pip uninstall tensorflow tensorflow-aarch64

Затем установи/обнови tflite-runtime:

pip install -U tflite-runtime

Если ты хочешь tflite-runtime Колесо для tensorflow 2.15.0 скачать с здесь и установи его с помощью pip или твой менеджер пакетов на выбор.

ВОПРОСЫ И ОТВЕТЫ

Что такое Coral Edge TPU и как он повышает производительность Raspberry Pi с помощью Ultralytics YOLOv8 ?

Coral Edge TPU - это компактное устройство, предназначенное для добавления в твою систему сопроцессора Edge TPU . Этот сопроцессор обеспечивает маломощный и высокопроизводительный вывод данных машинного обучения, особенно оптимизированный для моделей TensorFlow Lite. При использовании Raspberry Pi Edge TPU ускоряет вывод ML-моделей, значительно повышая производительность, особенно для моделей Ultralytics YOLOv8 . Подробнее о Coral Edge TPU ты можешь прочитать на их домашней странице.

Как установить среду выполнения Coral Edge TPU на Raspberry Pi?

Чтобы установить среду выполнения Coral Edge TPU на свой Raspberry Pi, скачай соответствующий .deb пакет для твоей версии ОС Raspberry Pi из по этой ссылке. После загрузки используй следующую команду для его установки:

sudo dpkg -i path/to/package.deb

Обязательно удали все предыдущие версии Coral Edge TPU runtime, выполнив шаги, описанные в разделе Installation Walkthrough.

Можно ли экспортировать модель Ultralytics YOLOv8 , чтобы она была совместима с Coral Edge TPU?

Да, ты можешь экспортировать свою Ultralytics YOLOv8 модель, чтобы она была совместима с Coral Edge TPU. Рекомендуется выполнять экспорт на Google Colab, x86_64 Linux-машине или с помощью Ultralytics Docker-контейнера. Ты также можешь использовать для экспорта Ultralytics HUB. Вот как ты можешь экспортировать свою модель, используя Python и CLI:

Экспорт

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/model.pt")  # Load an official model or custom model

# Export the model
model.export(format="edgetpu")
yolo export model=path/to/model.pt format=edgetpu  # Export an official model or custom model

За дополнительной информацией обращайся к документации по режиму экспорта.

Что делать, если на Raspberry Pi уже установлен TensorFlow , но вместо него я хочу использовать tflite-runtime?

Если у тебя на Raspberry Pi установлен TensorFlow и тебе нужно переключиться на tflite-runtimeСначала тебе нужно будет удалить TensorFlow :

pip uninstall tensorflow tensorflow-aarch64

Затем установи или обнови tflite-runtime с помощью следующей команды:

pip install -U tflite-runtime

Для конкретного колеса, например, TensorFlow 2.15.0. tflite-runtimeТы можешь скачать его с сайта по этой ссылке и установи его с помощью pip. Подробные инструкции доступны в разделе о запуске модели Запуск модели.

Как запустить вывод с экспортированной моделью YOLOv8 на Raspberry Pi с помощью Coral Edge TPU?

После экспорта твоей модели YOLOv8 в формат, совместимый с Edge TPU, ты можешь запустить вывод, используя следующие фрагменты кода:

Бег

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/edgetpu_model.tflite")  # Load an official model or custom model

# Run Prediction
model.predict("path/to/source.png")
yolo predict model=path/to/edgetpu_model.tflite source=path/to/source.png  # Load an official model or custom model

Исчерпывающую информацию о полных возможностях режима предсказания можно найти на странице Predict.



Создано 2024-02-12, Обновлено 2024-07-05
Авторы: glenn-jocher (7), Skillnoob (1)

Комментарии