不同视频来源的人脸检测结果不同

时间:2019-06-15 08:04:54

标签: python opencv neural-network

上面的代码示例应检测视频中的人脸。为了进行检测,我使用来自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)

您可以提供指导吗?

0 个答案:

没有答案