Coral Edge TPU
и Ultralytics
в одном месте: edge-tpu-silva
. Наш Edge-tpu-silva — это пакет Python, который упрощает установку USB-зависимости Coral TPU и обеспечивает совместимость с PyCoral и Ultralytics. Этот пакет расширяет возможности detection
, segmentation
и classification
объектов на различных периферийных устройствах для достижения более высокого FPS
(скорости процессора в реальном времени).
Coral USB Accelerator Exclusivity
:
Библиотека Edge-TPU-silva специально создана для плавной интеграции с Coral USB Accelerator. Этот мощный аппаратный ускоритель — это не просто необходимость, а стратегический выбор, раскрывающий весь потенциал библиотеки для превосходного detection
, segmentation
и classification
объектов.
Откройте для себя Coral USB Accelerator и испытайте индивидуальный подход к периферийным вычислениям с помощью библиотеки Edge-TPU-silva.
Пакет edge-tpu-silva
сжимается только с python versions <3.10
. Установите конкретную версию Python, если ваша версия Python несовместима.
Пример: для
Raspberry Pi
вы можете нажать «Чтобы получить инструкции по установке конкретной версии Python с помощью pyenv».
Примечание. Рекомендуется использовать Python 3.6–3.9. Нажмите на ссылку выше, чтобы узнать, как установить конкретную версию Python.
Примечание. Убедитесь, что на вашем Raspberry Pi установлена последняя версия. Для этого выполните команду ниже в терминале.
sudo apt-get updatesudo apt-get upgrade
Запустите приведенный ниже код bash в своем терминале, чтобы создать и активировать новую виртуальную среду с именем .venv
. Убедитесь, что вы находитесь в конкретном каталоге, в котором хотите установить эту среду.
python3 -m venv .venv
source .venv/bin/activate
Чтобы установить Edge-tpu-silva , используйте следующую команду pip в указанной среде Python:
pip install edge-tpu-silva
В этой таблице представлен обзор совместимости системы с различными устройствами и операционными системами.
Совместимость | Команда настройки | |
---|---|---|
Малиновый Пи 5 | ✔ | silvatpu-linux-настройка |
Малиновый Пи 4 | ✔ | silvatpu-linux-настройка |
Малиновый Пи 3 | ✔ | silvatpu-linux-настройка |
Джетсон Нано | ✔ | silvatpu-linux-настройка |
Окна | ||
macOS |
Чтобы настроить инструменты настройки для вашей системы, запустите команду настройки в терминале после завершения шага 1.
Пример: если вы используете Raspberry Pi 5, выполните команду ниже в терминале, выполнив шаг 1.
silvatpu-linux-setup
Команда устанавливает стандартную среду выполнения Edge TPU для Linux, запуская устройство на пониженной тактовой частоте. Как вариант, можно установить версию для максимальной скорости, но будьте осторожны с повышенным энергопотреблением и нагревом устройства. Если вы не уверены, в целях безопасности придерживайтесь пониженной частоты. Чтобы установить максимальную частоту работы, укажите в команде настройки скорость max
.
silvatpu-linux-setup --speed max
Вы не можете установить обе версии среды выполнения одновременно, но вы можете переключиться, просто установив альтернативную среду выполнения, как показано выше.
Внимание: использование USB-ускорителя на максимальной тактовой частоте может привести к его опасному перегреву. Во избежание ожогов держите его в недоступном месте или используйте на пониженной тактовой частоте.
Примечание. Убедитесь, что
Coral USB Accelerator
подключен черезusb 3.0 port (for faster speed)
. Если Coral USB Accelerator был подключен во время установки и настройки, отключите и снова подключите его, чтобы обеспечитьproper configuration.
Чтобы раскрыть возможности detection
, segmentation
и classification
объектов с помощью этой библиотеки, вам понадобится модель .tflite, совместимая с Edge TPU. Эти модели следует экспортировать с помощью Ultralytics
, обеспечивая плавную интеграцию с библиотекой Edge-TPU-silva.
ПРИМЕЧАНИЕ. Имейте в виду, что значение
imgsz
указанное во время экспорта YOLO, должно совпадать с тем же значением, которое использовалось при определенииimgsz
для любого из процессов. Последовательность этих настроек имеет решающее значение для оптимальной производительности.
Меньшие модели будут работать быстрее, но могут иметь меньшую точность, тогда как более крупные модели будут работать медленнее, но обычно имеют более высокую точность. Изучите возможности периферийных вычислений с помощью приведенных ниже моделей, используя библиотеку Edge-TPU-silva.
Ссылка для скачивания | Процесс | Базовая модель | imgsz | Классы объектов |
---|---|---|---|---|
Скачать модель | Обнаружение | yolov8n.pt | 240 | КОКО128 |
Скачать модель | Сегментация | yolov8n-seg.pt | 240 | КОКО128 |
Скачать модель | Обнаружение | yolov8n.pt | 192 | КОКО128 |
Скачать модель | Сегментация | yolov8n-seg.pt | 192 | КОКО128 |
Скачать модель | Классификация | yolov8n-cls.pt | 640 | ImageNet |
Скачать модель | Обнаружение | yolov9c.pt | 240 | КОКО128 |
ПРИМЕЧАНИЕ. Модель YOLOv9, особенно версия YOLOv9c.pt, имеет значительный размер, что приводит к тому, что ее версия TensorFlow Lite также является довольно большой. В результате скорость обработки данных на Edge TPU сравнительно ниже.
Чтобы выполнить обнаружение объекта с помощью process_detection
, вы можете следовать этому примеру:
from edge_tpu_silva import process_detection
# Run the object detection process
outs = process_detection ( model_path = 'path/to/your/model.tflite' , input_path = 'path/to/your/input/video.mp4' , imgsz = 192 )
for _ , _ in outs :
pass
process_detection
в терминале: использование точки входа «silvatpu» Чтобы выполнить обнаружение объектов с помощью process_detection
из командной строки, вы можете использовать удобную точку входа silvatpu
. Вот пример команды:
silvatpu -p det -m path/to/model.tflite -i path/to/input/video.mp4 -z 192 -t 0.5 -v True
Чтобы выполнить сегментацию объекта с помощью process_segmentation
, вы можете следовать этому примеру:
from edge_tpu_silva import process_segmentation
# Run the object segmentation process
outs = process_segmentation ( model_path = 'path/to/your/model.tflite' , input_path = 'path/to/your/input/video.mp4' , imgsz = 192 )
for _ , _ in outs :
pass
process_segmentation
в терминале: использование точки входа «silvatpu» Чтобы выполнить сегментацию объекта с помощью process_segmentation
из командной строки, вы можете использовать удобную точку входа silvatpu
. Вот пример команды:
silvatpu -p seg -m path/to/model.tflite -i path/to/input/video.mp4 -z 192 -t 0.5 -v True
detection
процесса, segmentation
и classification
Входные параметры функцииПараметр | Описание | Значение по умолчанию |
---|---|---|
model_path | Путь к модели сегментации объекта. | - |
input_path | Путь к файлу изображения/видео для обработки (Камера(0|1|2)). | - |
imgsz | Определяет размер изображения для вывода. | - |
threshold | Порог обнаружения объектов. | 0.4 |
verbose | Дисплей печатает на терминале. | True |
show | Рамка дисплея с сегментацией. | False |
classes | Фильтрует прогнозы по набору идентификаторов классов. | None |
detection
процесса, segmentation
и classification
Функция ВыходКаждая функция процесса дает следующий результат:
Выходной параметр | Описание |
---|---|
objs_lst | Список объектов, обнаруженных в кадре. |
fps | Количество кадров в секунду (fps) обрабатываемого кадра. |
Пример использования:
from edge_tpu_silva import process_detection
# Run the object detection process
outs = process_detection ( model_path = 'path/to/your/model.tflite' , input_path = 'path/to/your/input/video.mp4' , imgsz = 192 )
for objs_lst , fps in outs :
# Access the output parameters as needed
print ( f"Processed frame with { len ( objs_lst ) } objects. FPS: { fps } " )
print ( "List of object predictions in frame:" )
print ( objs_lst )
Вклады приветствуются! Если вы обнаружите какие-либо проблемы или у вас есть предложения по улучшению, откройте проблему или отправьте запрос на включение.
Специалист по обслуживанию индекса пакетов Python (c) [2024] Дэвид Ньярко