Как улучшить производительность net.forward () для cv2.dnn.readNetFromCaffe (), net.forward, который занимает больше времени (от 7 до 10 секунд / кадр), чтобы получить результат - PullRequest
0 голосов
/ 02 февраля 2019

Я использовал net = cv2.dnn.readNetFromCaffe(protoFile, weightsFile), а затем перебирал живые видеокадры, чтобы получить выходные данные для каждого кадра, используя net.forward().

Но net.forward() занимает от 7 до 10 секунд для каждого кадра, чтобы датьрезультат.Пожалуйста, помогите мне, как улучшить производительность (сократить время, затрачиваемое на обработку в net.forward()).

Значения: от шага 1 до шага 2 для каждого кадра требуется от 7 до 10 секунд.

(шаг 1и Шаг 2 упоминаются в приведенном ниже коде).

import cv2
import time
import numpy as np

protoFile = "deploy.prototxt"
weightsFile = "iter_10.caffemodel"

inWidth = 300
inHeight = 300

# web camera
cap = cv2.VideoCapture(0)
hasFrame, frame = cap.read()

net = cv2.dnn.readNetFromCaffe(protoFile, weightsFile)
k = 0
while 1:
    k+=1
    t = time.time()
    print("Start time = {}".format(t))
    hasFrame, frame = cap.read()

    if not hasFrame:
        cv2.waitKey()
        print("Wait====>")
        break

    inpBlob = cv2.dnn.blobFromImage(frame, 1.0 / 255, (inWidth, inHeight),
                              (0, 0, 0), swapRB=False, crop=False)


    net.setInput(inpBlob)

    # Step1
    print("before forward = {}".format(time.time() - t))

    output = net.forward()

    # Step2
    #taking close to 7 to 10 seconds for each frame
    print("forward = {}".format(time.time() - t))

1 Ответ

0 голосов
/ 08 февраля 2019

Модели OpenPose огромны сами по себе.Есть несколько способов повысить эффективность.

1) Попробуйте версию с транком ( .caffemodel , .prototxt ).

2) Более низкое разрешение входного двоичного объекта.Обратите внимание, что это может значительно снизить точность.

3) Попробуйте другую модель.Вы можете взглянуть на вариант сборки OpenCV с Intel Inference Engine (OpenVINO) и попробовать эту модель: https://github.com/opencv/open_model_zoo/blob/2018/intel_models/human-pose-estimation-0001/description/human-pose-estimation-0001.md. Третий вариант, если только у вас есть процессор или графический процессор Intel или Movidius Neural Compute Stick.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...