Coral Edge TPU на Raspberry Pi с Ultralytics YOLO11 🚀
Что такое Coral Edge TPU?
Coral Edge TPU — это компактное устройство, которое добавляет сопроцессор Edge TPU в вашу систему. Он обеспечивает энергоэффективный и высокопроизводительный вывод ML для моделей TensorFlow Lite. Подробнее читайте на домашней странице Coral Edge TPU.
Смотреть: Как запустить вывод на Raspberry Pi с использованием Google Coral Edge TPU
Повышение производительности Raspberry Pi Model с помощью 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 runtime больше не работают с текущими версиями TensorFlow Lite runtime. В дополнение к этому, похоже, что Google полностью забросила проект Coral, и между 2021 и 2025 годами не было никаких обновлений. В этом руководстве показано, как заставить Edge TPU работать с последними версиями TensorFlow Lite runtime и обновленным Coral Edge TPU runtime на одноплатном компьютере Raspberry Pi (SBC).
Предварительные требования
- Raspberry Pi 4B (рекомендуется 2 ГБ или больше) или Raspberry Pi 5 (рекомендуется)
- Raspberry Pi OS Bullseye/Bookworm (64-bit) с рабочим столом (рекомендуется)
- 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 runtime, удалите его с помощью следующей команды.
# 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 machine, используя официальный Ultralytics Docker container, или используя Ultralytics HUB, поскольку компилятор Edge TPU недоступен на ARM. См. Export Mode для получения информации о доступных аргументах.
Экспорт модели
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
Подробную информацию о Predict можно найти на странице для получения полной информации о режиме прогнозирования.
Инференс с несколькими Edge TPU
Если у вас несколько 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 |
Размер изображения | Модель | Стандартное время инференса (мс) | Время инференса при высокой частоте (мс) |
---|---|---|---|
320 | YOLOv8n | 22.2 | 16.7 |
320 | YOLOv8s | 40.1 | 32.2 |
512 | YOLOv8n | 53.5 | 41.6 |
512 | YOLOv8s | 132.0 | 103.3 |
В среднем:
- Raspberry Pi 5 на 22% быстрее в стандартном режиме, чем Raspberry Pi 4B.
- Raspberry Pi 5 на 30,2% быстрее в режиме высокой частоты, чем Raspberry Pi 4B.
- Режим высокой частоты на 28,4% быстрее стандартного режима.
Часто задаваемые вопросы
Что такое 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 runtime на Raspberry Pi, загрузите соответствующий .deb
Пакет для вашей версии Raspberry Pi OS из по этой ссылке. После загрузки используйте следующую команду для ее установки:
sudo dpkg -i path/to/package.deb
Обязательно удалите все предыдущие версии среды выполнения Coral Edge TPU, выполнив действия, описанные в разделе Пошаговое руководство по установке.
Могу ли я экспортировать свою модель Ultralytics YOLO11 для совместимости с Coral Edge TPU?
Да, вы можете экспортировать свою модель Ultralytics YOLO11 для совместимости с Coral Edge TPU. Рекомендуется выполнять экспорт в Google Colab, на машине x86_64 Linux или с использованием Docker-контейнера Ultralytics. Вы также можете использовать 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
Для получения дополнительной информации обратитесь к документации Режим экспорта.
Что делать, если TensorFlow уже установлен на моем Raspberry Pi, но я хочу использовать tflite-runtime вместо него?
Если у вас установлен TensorFlow на Raspberry Pi и вам нужно переключиться на tflite-runtime
, вам сначала нужно удалить TensorFlow, используя:
pip uninstall tensorflow tensorflow-aarch64
Затем установите или обновите tflite-runtime
с помощью следующей команды:
pip install -U tflite-runtime
Подробные инструкции см. в разделе Запуск модели.
Как запустить инференс с экспортированной моделью 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
Подробную информацию о функциях режима полного прогнозирования можно найти на странице прогнозирования.