Coral Edge TPU на Raspberry Pi с Ultralytics YOLO26 🚀
Что такое Coral Edge TPU?
Coral Edge TPU — это компактное устройство, которое добавляет в твою систему сопроцессор Edge TPU. Оно обеспечивает высокопроизводительный вывод моделей машинного обучения с низким энергопотреблением для TensorFlow Lite. Подробнее читай на домашней странице Coral Edge TPU.
Watch: How to Run Inference on Raspberry Pi using Google Coral Edge TPU
Повысь производительность Raspberry Pi с помощью Coral Edge TPU
Многие хотят запускать свои модели на встроенных или мобильных устройствах, таких как Raspberry Pi, поскольку они очень энергоэффективны и могут использоваться в самых разных приложениях. Однако производительность вывода на этих устройствах обычно низкая, даже при использовании таких форматов, как ONNX или OpenVINO. Coral Edge TPU — отличное решение этой проблемы, так как его можно использовать с Raspberry Pi для значительного ускорения производительности вывода.
Edge TPU на Raspberry Pi с TensorFlow Lite (Новое)⭐
Существующее руководство от Coral по использованию Edge TPU с Raspberry Pi устарело, и текущие сборки среды выполнения Coral Edge TPU больше не работают с актуальными версиями среды выполнения TensorFlow Lite. Кроме того, похоже, что Google полностью забросила проект Coral, и в период с 2021 по 2025 годы обновлений не было. В этом руководстве ты узнаешь, как заставить Edge TPU работать с последними версиями среды выполнения TensorFlow Lite и обновленной средой выполнения Coral Edge TPU на одноплатном компьютере (SBC) Raspberry Pi.
Предварительные требования
- Raspberry Pi 4B (рекомендуется 2 ГБ или больше) или Raspberry Pi 5 (рекомендуется)
- Raspberry Pi OS Bullseye/Bookworm (64-бит) с рабочим столом (рекомендуется)
- Coral USB Accelerator
- Платформа (не на базе ARM) для экспорта модели Ultralytics PyTorch
Пошаговое руководство по установке
Это руководство предполагает, что у тебя уже установлена Raspberry Pi OS, а также ultralytics и все зависимости. Чтобы установить ultralytics, посети руководство по быстрому старту и настрой все перед тем, как продолжить.
Установка среды выполнения Edge TPU
Сначала нам нужно установить среду выполнения Edge TPU. Доступно много разных версий, поэтому тебе нужно выбрать правильную для твоей операционной системы. Версия с высокой частотой запускает 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 |
| Bookworm 32bit | Нет | libedgetpu1-std_ ... .bookworm_armhf.deb |
| Bookworm 64bit | Нет | libedgetpu1-std_ ... .bookworm_arm64.deb |
| Bookworm 32bit | Да | libedgetpu1-max_ ... .bookworm_armhf.deb |
| Bookworm 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, на машине с Linux x86_64, с использованием официального контейнера Ultralytics Docker или с помощью платформы Ultralytics, так как компилятор 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")Экспортированная модель будет сохранена в папке <model_name>_saved_model/ под именем <model_name>_full_integer_quant_edgetpu.tflite. Убедись, что имя файла заканчивается суффиксом _edgetpu.tflite; в противном случае Ultralytics не определит, что ты используешь модель Edge TPU.
Запуск модели
Прежде чем ты сможешь запустить модель, тебе нужно установить правильные библиотеки.
Если у тебя уже установлен 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")Подробную информацию о режиме предсказания можно найти на странице Predict.
Если у тебя несколько Edge TPU, ты можешь использовать следующий код, чтобы выбрать конкретный 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Бенчмарки
Проверено на Raspberry Pi OS Bookworm 64-bit и USB Coral Edge TPU.
Показано время вывода, предварительная и последующая обработка не включены.
| Размер изображения | Модель | Стандартное время вывода (мс) | Время вывода на высокой частоте (мс) |
|---|---|---|---|
| 320 | YOLOv8n | 32.2 | 26.7 |
| 320 | YOLOv8s | 47.1 | 39.8 |
| 512 | YOLOv8n | 73.5 | 60.7 |
| 512 | YOLOv8s | 149.6 | 125.3 |
В среднем:
- Raspberry Pi 5 на 22% быстрее в стандартном режиме, чем Raspberry Pi 4B.
- Raspberry Pi 5 на 30.2% быстрее в высокочастотном режиме, чем Raspberry Pi 4B.
- Высокочастотный режим на 28.4% быстрее стандартного режима.
Часто задаваемые вопросы (FAQ)
Что такое Coral Edge TPU и как он улучшает производительность Raspberry Pi с Ultralytics YOLO26?
Coral Edge TPU — это компактное устройство, предназначенное для добавления сопроцессора Edge TPU в твою систему. Этот сопроцессор обеспечивает низкоэнергетический, высокопроизводительный вывод машинного обучения, особенно оптимизированный для моделей TensorFlow Lite. При использовании с Raspberry Pi, Edge TPU ускоряет вывод моделей машинного обучения, значительно повышая производительность, особенно для моделей Ultralytics YOLO26. Ты можешь подробнее прочитать о Coral Edge TPU на их домашней странице.
Как установить среду выполнения Coral Edge TPU на Raspberry Pi?
Чтобы установить среду выполнения Coral Edge TPU на свою Raspberry Pi, скачай подходящий пакет .deb для твоей версии Raspberry Pi OS по этой ссылке. После скачивания используй следующую команду для установки:
sudo dpkg -i path/to/package.debУбедись, что удалил все предыдущие версии среды выполнения Coral Edge TPU, следуя инструкциям в разделе Пошаговое руководство по установке.
Могу ли я экспортировать свою модель Ultralytics YOLO26 для совместимости с Coral Edge TPU?
Да, ты можешь экспортировать свою модель Ultralytics YOLO26 для совместимости с Coral Edge TPU. Рекомендуется выполнять экспорт в Google Colab, на машине с Linux x86_64 или используя контейнер Ultralytics Docker. Ты также можешь использовать платформу Ultralytics для экспорта. Вот как ты можешь экспортировать свою модель с помощью 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")Для получения дополнительной информации обратись к документации Режим экспорта.
Что делать, если TensorFlow уже установлен на Raspberry Pi, но я хочу использовать tflite-runtime?
Если у тебя установлен TensorFlow на Raspberry Pi и тебе нужно переключиться на tflite-runtime, сначала удали TensorFlow, используя:
pip uninstall tensorflow tensorflow-aarch64Затем установи или обнови tflite-runtime с помощью следующей команды:
pip install -U tflite-runtimeДля подробных инструкций обратись к разделу Запуск модели.
Как запустить вывод с экспортированной моделью YOLO26 на Raspberry Pi с помощью Coral Edge TPU?
После экспорта твоей модели YOLO26 в формат, совместимый с 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")Подробную информацию о возможностях режима предсказания можно найти на странице Predict.