Перейти к содержанию

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

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

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

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



Смотреть: Как запустить вывод на Raspberry Pi с помощью Google 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. Кроме того, 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 Высокочастотный режим Версия для загрузки
Bullseye 32bit Нет libedgetpu1-std_ ... .bullseye_armhf.deb
Bullseye 64bit Нет libedgetpu1-std_ ... .bullseye_arm64.deb
Bullseye 32bit Да libedgetpu1-max_ ... .bullseye_armhf.deb
Bullseye 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, необходимо преобразовать модель в совместимый формат. Рекомендуется запускать экспорт на машине 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. Важно, чтобы ваша модель заканчивалась суффиксом _edgetpu.tfliteВ противном случае ultralytics не будет знать, что вы используете модель Edge TPU .

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

Прежде чем запускать модель, необходимо установить нужные библиотеки.

Если tensorflow установлен, удалите tensorflow с помощью следующей команды:

pip uninstall tensorflow tensorflow-aarch64

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

pip install -U tflite-runtime

Теперь вы можете запустить вывод с помощью следующего кода:

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

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/<model_name>_full_integer_quant_edgetpu.tflite")  # Load an official model or custom model

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

Полную информацию о режиме прогнозирования можно найти на странице "Прогнозирование".

Выводы с использованием нескольких Edge TPU

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

from ultralytics import YOLO

# Load a model
model = YOLO("path/to/<model_name>_full_integer_quant_edgetpu.tflite")  # Load an official model or custom model

# Run Prediction
model.predict("path/to/source.png")  # Inference defaults to the first TPU

model.predict("path/to/source.png", device="tpu:0")  # Select the first TPU

model.predict("path/to/source.png", device="tpu:1")  # Select the second TPU

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

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

Coral Edge TPU - это компактное устройство, предназначенное для добавления сопроцессора Edge TPU в вашу систему. Этот сопроцессор обеспечивает малое энергопотребление и высокую производительность машинного обучения, особенно оптимизированную для моделей TensorFlow Lite. При использовании Raspberry Pi Edge TPU ускоряет вывод ML-моделей, значительно повышая производительность, особенно для моделей Ultralytics YOLO11 . Подробнее о 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 , выполнив шаги, описанные в разделе Installation Walkthrough.

Можно ли экспортировать модель Ultralytics YOLO11 для совместимости с Coral Edge TPU?

Да, вы можете экспортировать свою Ultralytics YOLO11 модель для совместимости с Coral Edge TPU. Рекомендуется выполнять экспорт на Google Colab, Linux-машине x86_64 или с помощью контейнера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. Подробные инструкции приведены в разделе, посвященном запуску модели Запуск модели.

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

После экспорта модели YOLO11 в формат, совместимый с 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.

📅 Создано 9 месяцев назад ✏️ Обновлено 1 месяц назад

Комментарии