Untitled

 avatar
Waqas
plain_text
3 years ago
1.9 kB
3
Indexable
from flask import Flask, jsonify, json, request, Response
import cv2
import numpy as np
import face_recognition
import os
from datetime import datetime

tempImg = ''
path = 'Images'
images = []
names = []
myList = os.listdir(path)
for cl in myList:
    curImg = cv2.imread(f'{path}/{cl}')
    images.append(curImg)
    names.append(os.path.splitext(cl)[0])


def findEncodings(images):
    encodeList = []
    for img in images:
        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
        encode = face_recognition.face_encodings(img)[0]
        encodeList.append(encode)
    return encodeList


encodeListKnown = findEncodings(images)
print('Encoding Complete')

def ImageProcessing(apiImg):

        img = face_recognition.load_image_file(apiImg)
        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

        while True:
            facesCurFrame = face_recognition.face_locations(img)
            encodesCurFrame = face_recognition.face_encodings(img, facesCurFrame)

            for encodeFace, faceLoc in zip(encodesCurFrame, facesCurFrame):
                matches = face_recognition.compare_faces(encodeListKnown, encodeFace)
                faceDis = face_recognition.face_distance(encodeListKnown, encodeFace)
                # print(faceDis)
                matchIndex = np.argmin(faceDis)

                if matches[matchIndex]:
                    name = names[matchIndex]
                    print(name)
                    return name

                else:
                    return "Not match"



app = Flask(__name__)
@app.route("/")
def index():
    print("Welcome")
    return "outer"

@app.route("/upload", methods=['POST'])
def hello_world():
    print("Image Fetched")
    image = request.files["file"]
    print(image)
    result: str = ImageProcessing(image)

    print("result: ",result )

    return json.dumps (result)

app.run(host='192.168.43.67',port=5000, debug=True)