Запускать несколько сетей на одном Intel Neural Compute Stick 2 (NCS2/MYRIAD)?

Я хочу загрузить и запустить несколько сетей на одном и том же NCS2: сеть обнаружения объектов одного класса (например, детектор людей) и сеть для некоторого распознавания при этом обнаружении (например, распознавание жестов). Пробовал загружать сети на одном NCS2 через два разных потока. Но при загрузке второй сети программа завершает работу без каких-либо предупреждений или ошибок; сети по отдельности работают нормально (по одной).

Я использую Python на Raspberry pi 4/Raspbian Buster, а сети имеют формат IR (xml + bin).

  1. Можно ли вообще загрузить несколько сетей на один и тот же NCS2?
  2. Если да, то что мне не хватает? Должен ли я сделать некоторую настройку или около того?

person Fardo    schedule 22.05.2020    source источник


Ответы (1)


Да. Это возможно. Никаких особых действий по настройке не требуется.

Примеры такой функциональности есть в репозитории open-model-zoo. Например, вот этот. Демонстрация распознавания действий на основе двух сетей. Демонстрация реализована с использованием Python.

Есть ли шанс поделиться исходным кодом вашего приложения? Было бы намного проще понять, что может пойти не так.

person Artemy Skrebkov    schedule 23.05.2020
comment
Уважаемый Артемий! Большое спасибо за быстрый и точный ответ. Собственно, на основе вашего ответа я смог найти проблему: я пытался загрузить две модели на один и тот же NCS2, но одна из них была реализована с использованием Opencv (т.е. метод cv2.dnn.readnet), а другая была реализовано напрямую с помощью Openvino Python API. Я попытался реализовать первый с помощью API Openvino, и ошибка исчезла. - person Fardo; 24.05.2020
comment
Большой! Да, когда вы смешиваете API, которые используют один и тот же бэкенд, могут происходить странные вещи :) Рад, что вы смогли решить свою проблему. - person Artemy Skrebkov; 24.05.2020