Я пытаюсь создать блоб из нескольких кадров, используя blobFromImages в модуле dnn.
def batch_process(self, frames):
blob = cv.dnn.blobFromImages(frames, 1./255, (368, 368), (0, 0, 0), swapRB=False, crop=False)
self.net.setInput(blob)
out = self.net.forward()
detected_points = np.zeros((frames.shape[0], 36))
for i in range(frames.shape[0]):
points = np.array([])
for j in range(18):
heatMap = out[i, j, :, :]
_, conf, _, point = cv.minMaxLoc(heatMap)
if conf > 0.1:
points = np.append(points, [point[0], point[1]])
else:
points = np.append(points, [0, 0])
detected_points[i] = points
return detected_points
Но когда я вызываю функцию, я получаю ошибку, подобную этой: -
OpenCV(3.4.1) Error: Assertion failed (image.depth() == 5) in blobFromImages, file /opt/opencv/modules/dnn/src/dnn.cpp
BlobFromImage () отлично работает на похожем одиночном кадре. Насколько я понимаю, blobFromImages () хочет массив кадров.Следовательно, я передаю массив значений (32, 480, 640, 3) в качестве параметра .Может кто-нибудь помочь мне выяснить, что мне не хватает?Я не могу найти примеры с использованием blobFromImages ().Я хотел бы использовать это, поскольку это может уменьшить мое время обработки, чем использование blobFromImage ().