【发布时间】:2019-06-26 14:10:36
【问题描述】:
我使用了net = cv2.dnn.readNetFromCaffe(protoFile, weightsFile),然后使用net.forward()循环遍历实时视频帧以获取每个帧的输出。
但net.forward() 每帧需要 7 到 10 秒才能给出结果。请帮助我如何提高性能(减少net.forward() 中的处理时间)。
意思是:从 Step1 到 Step2 每帧需要 7 到 10 秒。
(下面的代码中提到了Step1和Step2)。
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))
【问题讨论】:
-
使用哪种SSD型号?是基于 VGG 还是 MobileNet?
-
@DmitryKurtaev ,我使用了 openpose 预训练模型,这个模型名称是“pose_deploy.prototxt”,openpose 将它们的权重文件存储为“pose_iter_102000.caffemodel”。肯定这个模型是“VGG”类型的。请找到他们的 github 链接:github.com/CMU-Perceptual-Computing-Lab/openpose/tree/master/…
标签: opencv machine-learning computer-vision caffe openpose