Spaces:
Sleeping
Sleeping
File size: 3,468 Bytes
aef1d09 001ebc6 8f521b9 001ebc6 aef1d09 001ebc6 c8228aa aef1d09 001ebc6 2938d1f 001ebc6 aef1d09 2938d1f aef1d09 001ebc6 aef1d09 001ebc6 aef1d09 001ebc6 547ab93 c66ec38 001ebc6 6d97ae5 001ebc6 aef1d09 001ebc6 c66ec38 001ebc6 0e614d5 8f521b9 c343a71 9237940 9e3b685 8f521b9 9237940 8f521b9 9e3b685 8f521b9 9237940 0e614d5 6d97ae5 dee1a4f aef1d09 6d97ae5 001ebc6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
####### Section 1 ###################
from PIL import Image
import numpy as np
import cv2
import requests
import face_recognition
import os
import streamlit as st
from urllib import request
####### Section 2 ###################
p1 = "sarwan.jpg"
p2 = "rattantata.png"
p3 = "Ravinder.jpg"
st.title("Face Recognition ")
Images = []
classnames = []
# read images and train the face_recognition package
img1 = cv2.imread(p1)
Images.append(img1)
classnames.append("Sarwan")
img2 = cv2.imread(p2)
Images.append(img2)
classnames.append("RattanTata")
img3 = cv2.imread(p3)
Images.append(img3)
classnames.append("RavinderKaur")
# Load images for face recognition
encodeListknown = [face_recognition.face_encodings(img)[0] for img in Images]
####### Section 3 ###################
# Take picture using the camera
img_file_buffer = st.camera_input("Take Your picture")
# recognise the face in the uploaded image
if img_file_buffer is not None:
test_image = Image.open(img_file_buffer)
image = np.asarray(test_image)
image = image.copy()
imgS = cv2.resize(image, (0, 0), None, 0.25, 0.25)
imgS = cv2.cvtColor(imgS, cv2.COLOR_BGR2RGB)
facesCurFrame = face_recognition.face_locations(imgS)
encodesCurFrame = face_recognition.face_encodings(imgS, facesCurFrame)
faceMatchedflag = 0
# run looop to find match in encodeListknown list
for encodeFace, faceLoc in zip(encodesCurFrame, facesCurFrame):
# Assuming that encodeListknown is defined and populated in your code
matches = face_recognition.compare_faces(encodeListknown, encodeFace)
faceDis = face_recognition.face_distance(encodeListknown, encodeFace)
matchIndex = np.argmin(faceDis)
if matches[matchIndex]:
name = classnames[matchIndex].upper()
#st.write (name)
# show the name on image to user
y1, x2, y2, x1 = faceLoc
y1, x2, y2, x1 = y1 * 4, x2 * 4, y2 * 4, x1 * 4
cv2.rectangle(image , (x1, y1), (x2, y2), (0, 255, 0), 2)
cv2.rectangle(image , (x1, y2 - 35), (x2, y2), (0, 255, 0), cv2.FILLED)
cv2.putText(image , name, (x1 + 6, y2 - 6), cv2.FONT_HERSHEY_COMPLEX, 1, (255, 255, 255), 2)
########## update website
# # using Get Method
# url = "https://fc11.glitch.me/submit?email=pm&message=faceReco&name="
# url = url + name
# st.write(url)
# res = urllib.request.urlopen(url)
# response = requests.post(url )
# # using post method
url = "https://aimljul24f.glitch.me/save"
# url1 = "/save"
data = {'rollno': '99','name': name, 'email': '[email protected]','pwd': '**' }
# response = requests.post(url +url1 , data=data)
# Post Method is invoked if data != None
req = request.Request(url , method="POST", data=data)
# Response
resp = request.urlopen(req)
# if response.status_code == 200:
# st.success("Data updated on: " + "https://aimljul24f.glitch.me/")
# else:
# st.warning("Data not updated")
########### end update website
faceMatchedflag = 1
st.image(image , use_column_width=True, output_format="PNG")
if(faceMatchedflag == 0) :
st.warning("No faces detected in the image.")
|