Coral Edge TPU на Raspberry Pi с Ultralytics YOLO11 🚀.
Что такое коралловый край 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 по 2025 год не было никаких обновлений. В этом руководстве вы узнаете, как заставить Edge TPU работать с последними версиями среды выполнения TensorFlow Lite и обновленной средой выполнения Coral Edge TPU на одноплатном компьютере Raspberry Pi (SBC).
Пререквизиты
- Raspberry Pi 4B (рекомендуется 2 ГБ или больше) или Raspberry Pi 5 (рекомендуется)
- Raspberry Pi OS Bullseye/Bookworm (64-bit) с рабочим столом (рекомендуется)
- Ускоритель Coral USB
- Платформа на базе неARM для экспорта Ultralytics PyTorch модель
Инструкция по установке
В этом руководстве предполагается, что у вас уже есть работающая ОС Raspberry Pi и вы установили 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 |
Книжный червь 32bit | Нет | libedgetpu1-std_ ... .bookworm_armhf.deb |
Книжный червь 64bit | Нет | libedgetpu1-std_ ... .bookworm_arm64.deb |
Книжный червь 32bit | Да | libedgetpu1-max_ ... .bookworm_armhf.deb |
Книжный червь 64bit | Да | libedgetpu1-max_ ... .bookworm_arm64.deb |
Загрузите последнюю версию отсюда.
После загрузки файла вы можете установить его с помощью следующей команды:
После установки среды выполнения вам нужно подключить Coral Edge TPU к порту USB 3.0 на Raspberry Pi. Это необходимо потому, что, согласно официальному руководству, новый udev
правило должно вступить в силу после установки.
Важно
Если у вас уже установлена среда выполнения Coral Edge TPU , удалите ее с помощью следующей команды.
Экспорт в Edge TPU
Чтобы использовать Edge TPU, необходимо преобразовать модель в совместимый формат. Рекомендуется запускать экспорт на машине Google Colab, x86_64 Linux, используя официальный контейнерUltralytics Docker, или с помощью Ultralytics HUB, поскольку компилятор Edge TPU недоступен на ARM. Доступные аргументы см. в разделе Режим экспорта.
Экспорт модели
Экспортированная модель будет сохранена в папке <model_name>_saved_model/
папка с именем <model_name>_full_integer_quant_edgetpu.tflite
. Важно, чтобы ваша модель заканчивалась суффиксом _edgetpu.tflite
иначе ultralytics не будет знать, что вы используете модель Edge TPU .
Запуск модели
Прежде чем запускать модель, необходимо установить нужные библиотеки.
Если tensorflow
установлен, удалите tensorflow с помощью следующей команды:
Затем установите/обновите tflite-runtime
:
Теперь вы можете запустить вывод с помощью следующего кода:
Запуск модели
Полную информацию о режиме прогнозирования можно найти на странице "Прогнозирование".
Выводы с использованием нескольких 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
Бенчмарки
Бенчмарки
Протестировано с 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 на Raspberry Pi, загрузите соответствующий файл .deb
пакет для вашей версии ОС Raspberry Pi из эта ссылка. После загрузки выполните следующую команду для его установки:
Убедитесь, что вы удалили все предыдущие версии 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:
Экспорт модели
Дополнительные сведения см. в документации по режиму экспорта.
Что делать, если на Raspberry Pi уже установлен TensorFlow , но я хочу использовать вместо него tflite-runtime?
Если на вашем Raspberry Pi установлен TensorFlow и вам нужно переключиться на tflite-runtime
Сначала необходимо удалить TensorFlow :
Затем установите или обновите tflite-runtime
с помощью следующей команды:
Для конкретного колеса, например TensorFlow 2.15.0. tflite-runtime
Вы можете скачать его с сайта эта ссылка и установите его с помощью pip
. Подробные инструкции приведены в разделе, посвященном запуску модели Запуск модели.
Как запустить вывод с экспортированной моделью YOLO11 на Raspberry Pi с помощью Coral Edge TPU?
После экспорта модели YOLO11 в формат, совместимый с Edge TPU, вы можете запустить вывод с помощью следующих фрагментов кода:
Запуск модели
Подробную информацию о всех возможностях режима прогнозирования можно найти на странице Predict.