上面的代码示例应检测视频中的人脸。为了进行检测,我使用来自caffe的露脸检测DL模型。仅当视频源是网络摄像机时,面部检测才起作用的问题。当我尝试检测视频文件上的脸孔时
我已经尝试过更改视频的亮度和对比度,分辨率以及使用不同对象位置的视频。没有结果。但是,当从网络摄像机开始对流视频进行识别时,即使没有适当的光线,它也可以检测到很小的面孔。我猜问题出在我从图像创建斑点的地方。
while True:
frame = vs.read()
frameHeight = frame.shape[0]
frameWidth = frame.shape[1]
blobface = cv2.dnn.blobFromImage(cv2.resize(frame, (300, 300)) ,1, (300, 300), [130, 117, 123], False, False)
facenet.setInput(blobface)
detf = facenet.forward()
bboxes = []
for i in range(detf.shape[2]):
conff = detf[0, 0, i, 2]
if conff > 0.7:
x1 = int(detf[0, 0, i, 3] * frameWidth)
y1 = int(detf[0, 0, i, 4] * frameHeight)
x2 = int(detf[0, 0, i, 5] * frameWidth)
y2 = int(detf[0, 0, i, 6] * frameHeight)
bboxes.append([x1, y1, x2, y2])
cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), int(round(frameHeight/150)), 2)
您可以提供指导吗?