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

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 установлен, удалите 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

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



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

Комментарии