Как сочетается программный стек RK3588 NPU

Программный стек RKNN Rockchip отделяет подготовку модели от ее выполнения на устройстве. RKNN-Toolkit2 предоставляет инструменты преобразования и оценки. RKNN-Toolkit-Lite2 предоставляет интерфейс Python на поддерживаемых целевых платформах, а RKNN Runtime предоставляет интерфейсы C/C++. Драйвер ядра подключает среду выполнения к NPU. Проверьте совместимость этих компонентов с пакетом поддержки платы, поставляемым для вашего модуля.

Полезная запись о развертывании идентифицирует плату и версию SoM, образ Linux, драйвер, среду выполнения, версию инструмента преобразования, исходную модель и преобразованную модель. Сохраните сценарий сборки и настройки предварительной обработки рядом с артефактом модели. Имя файла, например detector.rknn само по себе не может объяснить, почему одно развертывание ведет себя иначе, чем другое.

ПодготовьтесьЭталонная модель, входы и ожидаемые результаты
КонвертироватьПроверка целевой конфигурации и точности
РазвертываниеВремя выполнения, приложение и постоянное тестирование

Шаг 1: установите ссылку перед преобразованием

Запустите исходную модель на репрезентативном наборе проверки. Сохраняйте необработанные выходные данные и важные показатели приложения: точность классификации, качество обнаружения или другие показатели, специфичные для конкретной задачи. Для детектора сохраните порядок меток, доверительные пороги и настройки постобработки. Это становится точкой сравнения конвертированной модели.

Запишите весь входной контракт. Включите размеры, размер партии, порядок RGB или BGR, макет, числовой диапазон, нормализацию, изменение размера и заполнение. Правильная модель может дать плохие результаты, если приложение помещает изображение в почтовый ящик иначе, чем при обучении, или дважды вычитает смещение. Столь же тщательно документируйте постобработку вне сети.

Используйте Rockchip RKNN Модель Зоопарка в качестве отправной точки, если он включает в себя соответствующую модель и цель. Его примеры преобразования и вывода более полезны, чем предположение, что любая экспортированная сеть будет работать без изменений. Выберите известную версию репозитория и следуйте инструкциям для этого конкретного примера.

Шаг 2: преобразуйте модель и проверьте поддержку оператора.

  1. Соответствуйте цели. Выберите цель RK3588 и набор инструментов, совместимый с предполагаемым образом платы.
  2. Осмотрите график. Подтвердите формы, предварительную обработку, выходные данные и поддержку фактических операций в экспортированной модели.
  3. Создайте ссылочное преобразование. Используйте параметры точности, поддерживаемые этим графиком и версией программного обеспечения.
  4. Прочтите полный журнал сборки. Устраняйте сбои и исследуйте предупреждения перед добавлением сбора данных с камеры или пользовательского интерфейса.
  5. Сравните результаты. Пропустите одни и те же входные данные через исходную и преобразованную модели с одинаковой постобработкой.

Неподдерживаемая операция может потребовать другого экспорта, перезаписи графа или явного этапа обработки ЦП. Не предполагайте, что среда выполнения будет прозрачно выполнять каждый неподдерживаемый уровень. Если часть рабочей нагрузки перемещается на ЦП, включите передачу и синхронизацию в измерение производительности.

Шаг 3: оцените INT8 на соответствие вашим требованиям к точности.

Квантование меняет числовое представление. Если выбранный процесс преобразования использует данные калибровки, выберите входные данные, соответствующие развертыванию: освещение, размер объекта, фон и условия эксплуатации. Сохраните отдельный набор проверок для оценки результата. Успешно завершившееся преобразование все равно требует проверки точности.

Сравните выходные данные приложения, а не только разницу между двумя тензорами. Например, небольшое числовое изменение может переместить обнаружение за пределы доверительного порога. Изучите сложные случаи, классы с небольшим количеством примеров и условия, в которых исходная модель уже была маргинальной. Если точность падает ниже допустимого предела, вернитесь к калибровке и предварительной обработке, прежде чем менять оборудование.

ONNX Документация по квантованию во время выполнения является полезной базой для численных компромиссов и исследования точности. Параметры преобразования RKNN и поддерживаемую точность по-прежнему необходимо проверять в собственной документации Rockchip для выбранной версии.

Шаг 4: измерить больше, чем время вывода

Измерьте развернутую рабочую нагрузку после прогрева и еще раз во время продолжительной тренировки. Запишите температуру, режим питания, параллельные процессы, а также корпус или систему охлаждения. Полезным результатом является воспроизводимый диапазон рабочих характеристик, включая точность и задержку, в условиях, в которых будет работать изделие.

ИзмерениеЧто это отвечаетЧто записывать
Продолжительность выполнения моделиСколько времени занимает этот вызов во время выполнения?Форма ввода, точность, временные границы и версия времени выполнения.
Сквозная задержкаСколько лет наблюдению на момент получения результата?Время захвата, предварительная обработка, постановка в очередь, вывод и время вывода
Стабильная производительностьСколько завершенных результатов будет получено с течением времени?Длина выполнения, выполненные запросы и отброшенные или пропущенные входные данные
Точность примененияСоответствует ли развернутая модель требованиям задачи?Набор проверки, метрика задачи и пороги принятия решения
Термическое поведениеСтабилен ли результат после прогрева системы?Условия окружающей среды, охлаждение, температура и часы, если таковые имеются.

В качестве наглядного примера: приложение, получающее новый кадр каждые 40 мс, должно поддерживать скорость 25 кадров в секунду, если оно обрабатывает каждый кадр. Измерение вывода 12 мс оставило бы остальную часть этого бюджета на приобретение, подготовку и доставку только в соответствии с запланированным проектом. Это не доказывает задержку от камеры до результата 12 мс. Эти цифры являются примером планирования, а не измерения производительности ForgeEdge.

Используйте монотонные часы для продолжительности программного обеспечения. Сообщайте о медиане и задержке хвоста, а не об одном лучшем наблюдении, и сохраняйте необработанные измерения. Для нескольких камер учитывайте нагрузку всех активных потоков, включая декодирование, преобразование изображения, перемещение памяти и запись. Очередь, которая растет на протяжении всего теста, указывает на то, что средняя емкость ниже входящей рабочей нагрузки.

Общие симптомы развертывания

СимптомПервое расследование
Правильная модель, неправильные этикетки или коробки.Порядок цвета, нормализация, изменение размера/заполнение, макет вывода и постобработка.
Преобразованная модель не может инициализироватьсяВыбор цели, совместимость среды выполнения/драйвера и целостность артефактов модели.
Хороший короткий тест, плохая устойчивая производительностьТемпература, режим питания, нехватка памяти и конкурирующая работа
Приемлемое время вывода, видимая задержка результатовБуферизация захвата, возраст очереди, копии и планирование вывода
Вывод INT8 теряет полезные обнаруженияКалибровка, эквивалентность предварительной обработки и проверка на уровне задачи

Превратите прототип в повторяемый продукт

Упакуйте модель, среду выполнения и конфигурацию приложения в контролируемый выпуск. Определите проверки при запуске, отчеты об ошибках, восстановление и путь отката. Перед подключением камеры проведите небольшой тест эталонного входа, который может выявить неправильное развертывание. Отделите эту программную проверку от проверки физического датчика, которая также проверяет кабели, драйверы и настройки экспозиции.

Если для платы требуются другие разъемы, преобразователи питания или интерфейсы датчиков, просмотрите Решение SoM против SBC и базовая плата для процесса проектирования вычислительного модуля. Эти решения определяют, как успешная демонстрация модели станет поддерживаемой системой.

RK3588 NPU Вопросы по развертыванию

Может ли каждая модель ONNX работать на RK3588 NPU?

Совместимость зависит от фактического графика, фигур, операций и выбранной цепочки инструментов. Обеспечьте поддержку путем преобразования и проверки на устройстве модели, которую вы собираетесь поставлять.

Предсказывает ли заявленный рейтинг ускорителя FPS приложения?

Нет. Сеть, точность, поведение памяти, предварительная обработка и время выполнения определяют измеренную пропускную способность приложения. При сравнении платформ используйте целевую рабочую нагрузку и ее полный путь к данным.

Должен ли я сначала оптимизировать нейронную сеть?

Профиль в первую очередь. Если преобладают сбор, преобразование изображений или постановка в очередь, сокращение времени выполнения модели может мало повлиять на срок хранения результатов в приложении.

Технические ссылки

Определите объем рабочей нагрузки Edge AI.

Поделитесь моделью, входным разрешением, интерфейсами камеры, требуемой скоростью обработки результатов и диапазоном мощности. Мы можем оценить работу по интеграции платформы на базе RK3588 для локальной обработки.