Невозможно использовать модель openvino - PullRequest
0 голосов
/ 17 апреля 2020

Я использую человек-обнаружение-действие-распознавание-0005 предварительно обученную модель из openvino для обнаружения человека и его действия.

https://docs.openvinotoolkit.org/latest/_models_intel_person_detection_action_recognition_0005_description_person_detection_action_recognition_0005.html

По приведенной выше ссылке я написал скрипт python для получения обнаружений.

Это скрипт.

import cv2 

def main():

    print(cv2.__file__)

    frame = cv2.imread('/home/naveen/Downloads/person.jpg')

    actionNet = cv2.dnn.readNet('person-detection-action-recognition-0005.bin',
                    'person-detection-action-recognition-0005.xml')


    actionBlob = cv2.dnn.blobFromImage(frame, size=(680, 400))
    actionNet.setInput(actionBlob)

    # detection output
    actionOut = actionNet.forward(['mbox_loc1/out/conv/flat',
                'mbox_main_conf/out/conv/flat/softmax/flat',
                'out/anchor1','out/anchor2',
                'out/anchor3','out/anchor4'])


    # this is the part where I dont know how to get person bbox
    # and action label for those person fro actionOut

    for detection in actionOut[2].reshape(-1, 3):
        print('sitting ' +str( detection[0]))
        print('standing ' +str(detection[1]))
        print('raising hand ' +str(detection[2]))

Теперь я не знаю, как получить bbox и метку действия из выходной переменной (actionOut). Я не могу найти какую-либо документацию или блог, объясняющий это.

Есть ли у кого-нибудь идеи или предложения, как это можно сделать?

1 Ответ

0 голосов
/ 18 апреля 2020

Существует демонстрационная программа под названием smart_classroom_demo: link Эта демонстрационная программа использует сеть, которую вы пытаетесь запустить.
Здесь анализируются выходные данные Реализация находится в C ++, но это должно помочь вам понять, как анализируются выходные данные сети.

Надеюсь, это поможет.

...