ARCHITECT_SAYS Telegram 500
Об мышиное зрение 2 /памятка для себя самого/

Так как не на каждое изделие можно взгромоздить системный блок, а распознавание картинки требует сложных вычислений, приходится выбирать что-то более портативное. Мой выбор пал пока на творения китайской Rockchip серии RK35xx, оснащенные нейроускорителем. Вариантов исполнения модуля доступно несколько, мне приглянулся самый простой Orange Pi.

Многочисленные тесты показывают на модельке YOLO v5 производительность вывода на кадре 640х640 пикселей такую:

* i7 7700k - 120ms
* i5 13600k - 80ms (npu)
* rk3566 - 100ms

> ПРИЕМЛЕМО <

Ниже пишу шаги, как дойти от готовой модели к работающей системе. Тренировку модели оставим за скобками. Я использовал Python 3.10.15 для всего.

1. Китайцы из Rockchip немного доработали модель YOLO, так что её input/output форматы не совместимы с оригинальной моделью. Причина написана в пункте 2. Код для тренировки модели, а так же код для детекции надо брать в репозитории самого Rockchip, а не у Ultralytics: https://github.com/airockchip/yolov5

2. Если вы сами тренировали модель на своих данных, предстоит её экспортировать из PyTorch в Onnx. Тут надо сделать небольшое отступление. Современные модели давно уже не просто матрицы весов, а целые программы для виртуальных машин, со своими байт-кодами. Они могут быть не совместимы между собой, хотя и используют общий базис операторов. Не все операции поддерживаются аппаратно Rockchip, именно для такой оптимизации модель видоизменена. Модели PyTorch (.pt) и вовсе могут включать в себя сериализованные питон-объекты. Чтобы привести модель к каноническому виду, нужен экспорт в какой-то нейтральный формат. Экспорт делается, как указано тут https://github.com/airockchip/yolov5/blob/master/README_rkopt.md Результатом будет модель формата ONNX. Это тоже промежуточный шаг на пути к плате.

3. Для симуляции работы модели на компьютере следует использовать библиотеку https://github.com/airockchip/rknn-toolkit2/tree/master/rknn-toolkit2, а для работы на плате https://github.com/airockchip/rknn-toolkit2/tree/master/rknn-toolkit-lite2
Библиотеки существуют только для Linux. Ubuntu 24 в WSL2 подойдет.
При этом в симуляции работает только ONNX модель, а на плате для использования ускорения только RKNN.
В исходниках можно найти код загрузки ONNX модели и конвертации её на лету в RKNN модель. Также в репозитории можно найти инструкции, как конвертировать ONNX в RKNN запуском скрипта.

4. Остальной код, включая препроцессинг и постпроцессинг изображений, одинаков и для симуляции, и для платы, и взят тут https://github.com/airockchip/rknn-toolkit2/blob/master/rknn-toolkit2/examples/onnx/yolov5/test.py.

После загрузки RKNN в ускоритель можно подавать в неё кадры и получать положительные результаты.

Картинки детектятся, Python круто, Orange Pi 3B тоже хороша.



tgoop.com/architect_says/500
Create:
Last Update:

Об мышиное зрение 2 /памятка для себя самого/

Так как не на каждое изделие можно взгромоздить системный блок, а распознавание картинки требует сложных вычислений, приходится выбирать что-то более портативное. Мой выбор пал пока на творения китайской Rockchip серии RK35xx, оснащенные нейроускорителем. Вариантов исполнения модуля доступно несколько, мне приглянулся самый простой Orange Pi.

Многочисленные тесты показывают на модельке YOLO v5 производительность вывода на кадре 640х640 пикселей такую:

* i7 7700k - 120ms
* i5 13600k - 80ms (npu)
* rk3566 - 100ms

> ПРИЕМЛЕМО <

Ниже пишу шаги, как дойти от готовой модели к работающей системе. Тренировку модели оставим за скобками. Я использовал Python 3.10.15 для всего.

1. Китайцы из Rockchip немного доработали модель YOLO, так что её input/output форматы не совместимы с оригинальной моделью. Причина написана в пункте 2. Код для тренировки модели, а так же код для детекции надо брать в репозитории самого Rockchip, а не у Ultralytics: https://github.com/airockchip/yolov5

2. Если вы сами тренировали модель на своих данных, предстоит её экспортировать из PyTorch в Onnx. Тут надо сделать небольшое отступление. Современные модели давно уже не просто матрицы весов, а целые программы для виртуальных машин, со своими байт-кодами. Они могут быть не совместимы между собой, хотя и используют общий базис операторов. Не все операции поддерживаются аппаратно Rockchip, именно для такой оптимизации модель видоизменена. Модели PyTorch (.pt) и вовсе могут включать в себя сериализованные питон-объекты. Чтобы привести модель к каноническому виду, нужен экспорт в какой-то нейтральный формат. Экспорт делается, как указано тут https://github.com/airockchip/yolov5/blob/master/README_rkopt.md Результатом будет модель формата ONNX. Это тоже промежуточный шаг на пути к плате.

3. Для симуляции работы модели на компьютере следует использовать библиотеку https://github.com/airockchip/rknn-toolkit2/tree/master/rknn-toolkit2, а для работы на плате https://github.com/airockchip/rknn-toolkit2/tree/master/rknn-toolkit-lite2
Библиотеки существуют только для Linux. Ubuntu 24 в WSL2 подойдет.
При этом в симуляции работает только ONNX модель, а на плате для использования ускорения только RKNN.
В исходниках можно найти код загрузки ONNX модели и конвертации её на лету в RKNN модель. Также в репозитории можно найти инструкции, как конвертировать ONNX в RKNN запуском скрипта.

4. Остальной код, включая препроцессинг и постпроцессинг изображений, одинаков и для симуляции, и для платы, и взят тут https://github.com/airockchip/rknn-toolkit2/blob/master/rknn-toolkit2/examples/onnx/yolov5/test.py.

После загрузки RKNN в ускоритель можно подавать в неё кадры и получать положительные результаты.

Картинки детектятся, Python круто, Orange Pi 3B тоже хороша.

BY Господин Архитектор




Share with your friend now:
tgoop.com/architect_says/500

View MORE
Open in Telegram


Telegram News

Date: |

The group’s featured image is of a Pepe frog yelling, often referred to as the “REEEEEEE” meme. Pepe the Frog was created back in 2005 by Matt Furie and has since become an internet symbol for meme culture and “degen” culture. SUCK Channel Telegram Telegram message that reads: "Bear Market Screaming Therapy Group. You are only allowed to send screaming voice notes. Everything else = BAN. Text pics, videos, stickers, gif = BAN. Anything other than screaming = BAN. You think you are smart = BAN. For crypto enthusiasts, there was the “gm” app, a self-described “meme app” which only allowed users to greet each other with “gm,” or “good morning,” a common acronym thrown around on Crypto Twitter and Discord. But the gm app was shut down back in September after a hacker reportedly gained access to user data. How to build a private or public channel on Telegram?
from us


Telegram Господин Архитектор
FROM American