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

Coral Edge TPU на Raspberry Pi с Ultralytics YOLO11 🚀

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

Что такое 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 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 , удалите его с помощью следующей команды:

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.

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.

Примечание

Показано время инференса, предварительная / постобработка не включена.

Размер изображенияМодельСтандартное время инференса (мс)Время инференса при высокой частоте (мс)
320YOLOv8n32.226.7
320YOLOv8s47.139.8
512YOLOv8n73.560.7
512YOLOv8s149.6125.3
Размер изображенияМодельСтандартное время инференса (мс)Время инференса при высокой частоте (мс)
320YOLOv8n22.216.7
320YOLOv8s40.132.2
512YOLOv8n53.541.6
512YOLOv8s132.0103.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

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



📅 Создано 1 год назад ✏️ Обновлено 5 дней назад
glenn-jocherRizwanMunawarSkillnoobUltralyticsAssistantlalayantsjk4eMatthewNoyce

Комментарии