Exemplo n.º 1
0
 def r_faces(self):
     if self.image is not None:
         faceCascade = cv2.CascadeClassifier('cascades/face.xml')
         eyeCascade = cv2.CascadeClassifier('cascades/haarcascade_eye.xml')
         faceSize = config.DEFAULT_FACE_SIZE
         threshold = 500
         recognizer = train.trainRecognizer('train',
                                            faceSize,
                                            showFaces=True)
         capture = cv2.imread(self.img)
         while True:
             self.image = imutils.resize(capture, height=500)
             for (label, confidence,
                  (x, y, w,
                   h)) in reconocer.RecognizeFace(self.image, faceCascade,
                                                  eyeCascade, faceSize,
                                                  threshold):
                 cv2.rectangle(self.image, (x, y), (x + w, y + h),
                               (0, 255, 0), 2)
                 cv2.putText(
                     self.image,
                     "{} = {}".format(recognizer.getLabelInfo(label),
                                      int(confidence)), (x, y),
                     cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 0), 1, cv2.LINE_AA)
             self.mostrarImagen()
             break
Exemplo n.º 2
0
def RecognizeFace(image, faceCascade, eyeCascade, faceSize, threshold):
    found_faces = []
    recognizer = train.trainRecognizer("train", faceSize, showFaces=True)
    gray, faces = detect.detectFaces(image, faceCascade, eyeCascade, returnGray=1)
    for ((x, y, w, h), eyedim)  in faces:
        label, confidence = recognizer.predict(cv2.resize(detect.levelFace(gray, ((x, y, w, h), eyedim)), faceSize))
        if confidence < threshold:
            found_faces.append((label, confidence, (x, y, w, h)))

    return found_faces
Exemplo n.º 3
0
def prepareImage(filename, FEDetector, cascadeDetector):
    haarFaceCascade = cv2.CascadeClassifier(config.HAAR_FACE_CASCADE_FILE)
    lbpFaceCascade = cv2.CascadeClassifier(config.LBP_FACE_CASCADE_FILE)
    haarEyeCascade = cv2.CascadeClassifier(config.HAAR_EYE_CASCADE_FILE)
    faceSize = config.DEFAULT_FACE_SIZE
    threshold = 500

    recognizer = train.trainRecognizer('Train Set',
                                       FEDetector,
                                       cascadeDetector,
                                       faceSize,
                                       showFaces=True)
    print "recognizer"
    print cascadeDetector
    print FEDetector

    # cv2.namedWindow("camera", 1)
    # capture = cv2.VideoCapture(0)
    # path = "/Users/Mohamad/AUT/B.Sc. Thesis/SR_FR Project/Resources/Test Set/image_0022.jpg"
    path = filename

    # while True:
    # retval, img = capture.read()
    haar_img = cv2.imread(path)
    lbp_img = cv2.imread(path)

    if cascadeDetector == "1":
        # HAAR CASCADE
        for (label, confidence,
             (x, y, w, h)) in recognizeFace(haar_img, haarFaceCascade,
                                            haarEyeCascade, faceSize,
                                            threshold, recognizer):
            cv2.rectangle(haar_img, (x, y), (x + w, y + h), (0, 255, 0), 2)
            cv2.putText(
                haar_img, "{} = {}".format(recognizer.getLabelInfo(label),
                                           int(confidence)), (x, y),
                cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 0), 1, cv2.LINE_AA)
        cv2.imwrite("Resources/Recognized/haar_recognized.jpg", haar_img)
        recognizedPath = "/Users/Mohamad/AUT/B.Sc. Thesis/SR_FR Project/Resources/Recognized/haar_recognized.jpg"
        return recognizedPath
    elif cascadeDetector == "2":
        # LBP CASCADE
        for (label, confidence,
             (x, y, w, h)) in recognizeFace(lbp_img, lbpFaceCascade, None,
                                            faceSize, threshold, recognizer):
            cv2.rectangle(lbp_img, (x, y), (x + w, y + h), (0, 255, 0), 2)
            cv2.putText(
                lbp_img, "{} = {}".format(recognizer.getLabelInfo(label),
                                          int(confidence)), (x, y),
                cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 0), 1, cv2.LINE_AA)
        cv2.imwrite("Resources/Recognized/lbp_recognized.jpg", lbp_img)
        recognizedPath = "/Users/Mohamad/AUT/B.Sc. Thesis/SR_FR Project/Resources/Recognized/lbp_recognized.jpg"
        return recognizedPath
def reconocer(image):
    # Lee argumentos
    faceCascade = cv2.CascadeClassifier('cascades/face.xml')
    eyeCascade = cv2.CascadeClassifier('cascades/haarcascade_eye.xml')
    faceSize = config.DEFAULT_FACE_SIZE
    threshold = 500

    recognizer = train.trainRecognizer('train', faceSize, showFaces=True)

    # Crea la ventana con el nombre 'Reconocimiento Facial!'
    # cv2.namedWindow("Reconocimiento Facial!", 1)
    # Pasa como parametro la imagen recibida como argumento
    array = numpy.frombuffer(image, dtype='uint8')
    capture = cv2.imdecode(array, -1)

    results = []
    for (label, confidence,
         (x, y, w, h)) in RecognizeFace(capture, faceCascade, eyeCascade,
                                        faceSize, threshold):
        results.append(
            dict(label=recognizer.getLabelInfo(label), confidence=confidence))
    result = {"results": results}
    print(result)
    return result
Exemplo n.º 5
0
        # returns the label only.
        #label = recognizer.predict(cv2.resize(detect.levelFace(gray, ((x, y, w, h), eyedim)), faceSize))
        #confidence = -1
        if confidence < threshold:
            found_faces.append((label, confidence, (x, y, w, h)))

    return found_faces


if __name__ == '__main__':
    faceCascade = cv2.CascadeClassifier(config.FACE_CASCADE_FILE)
    eyeCascade = cv2.CascadeClassifier(config.EYE_CASCADE_FILE)
    faceSize = config.DEFAULT_FACE_SIZE
    threshold = 500

    recognizer = train.trainRecognizer('imgdb', faceSize, showFaces=True)

    cv2.namedWindow("camera", 1)
    capture = cv2.VideoCapture(0)

    while True:
        retval, img = capture.read()

        for (label, confidence, (x, y, w, h)) in RecognizeFace(img, faceCascade, eyeCascade, faceSize, threshold):
            cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
            cv2.putText(img, "{} = {}".format(recognizer.getLabelInfo(label), int(confidence)), (x, y), cv2.FONT_HERSHEY_PLAIN, 1, (0,255,0), 1, cv2.LINE_AA)

        cv2.imshow("camera", img)

        if cv2.waitKey(30) & 0xFF == ord('q'):
            break
Exemplo n.º 6
0
    for ((x, y, w, h), eyedim)  in faces:
        label, confidence = recognizer.predict(cv2.resize(detection.levelFace(gray, ((x, y, w, h), eyedim)), faceSize))
        if confidence > threshold:
            found_faces.append((label, confidence, (x, y, w, h)))

    return found_faces



if __name__ == '__main__':
    faceCascade = cv2.CascadeClassifier(resource.FACE_CASCADE)
    eyeCascade = cv2.CascadeClassifier(resource.EYE_CASCADE)
    faceSize = resource.DEFAULT_FACE_SIZE
    threshold = 100

    recognizer = train.trainRecognizer('imgdb', faceSize)

    cv2.namedWindow("camera", 1)
    capture = cv2.VideoCapture(0)

    while True:
        retval, img = capture.read()

        for (label, confidence, (x, y, w, h)) in RecognizeFace(img, faceCascade, eyeCascade, faceSize, threshold):
            cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
            cv2.putText(img, "{} = {}".format(recognizer.getLabelInfo(label), int(confidence)), (x, y), cv2.FONT_HERSHEY_PLAIN, 1, (0,255,0), 1, cv2.LINE_AA)

        cv2.imshow("camera", img)

        if cv2.waitKey(30) & 0xFF == ord('q'):
            break
Exemplo n.º 7
0
def entrenamiento_service():
    trainRecognizer('train', showFaces=False, forceTrain=True)
    result = "Entrenamiento: OK"
    print(result)
    return jsonify(result)