Tout d'abord, je suis désolé si le titre est long. Je travaille sur la détection de visage en utilisant python. J'essaye d'écrire un manuscrit où il notifiera l'utilisateur quand il y a même image ou presque même image/visages détectés entre deux dossiers/dossier. Voici le script que j'ai écrit jusqu'ici.comment notifier l'utilisateur s'il y a des visages communs détectés entre deux répertoires avec python et opencv
import cv2
import glob, requests
def detect1():
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')
for img in glob.glob('/Users/Ling/Pythonfiles/Faces/*.jpg'):
cv_img = cv2.imread(img)
gray = cv2.cvtColor(cv_img, cv2.COLOR_BGR2GRAY)
faces1 = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces1:
cv2.rectangle(cv_img,(x,y),(x+w,y+h),(255,0,0),2)
def detect2():
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')
for image in glob.glob('/Users/Ling/Pythonfiles/testfolder/*.jpg'):
cv_image = cv2.imread(image)
gray = cv2.cvtColor(cv_image, cv2.COLOR_BGR2GRAY)
faces2 = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces2:
cv2.rectangle(cv_image,(x,y),(x+w,y+h),(255,0,0),2)
def notify():
if detect2 == detect1:
key = "<yourkey>"
sandbox = "<yoursandbox>.mailgun.org"
recipient = "<recipient's email>"
request_url = 'https://api.mailgun.net/v2/{0}/messages'.format(sandbox)
request = requests.post(request_url, auth=('api', key),
data={
'from': '<sender's email',
'to': recipient,
'subject': 'face detect',
'text': 'common face detected'
})
print 'Status: {0}'.format(request.status_code)
print 'Body: {0}'.format(request.text)
Il n'y a pas d'erreur mais il n'y a pas de notification non plus. J'ai un dossier avec 10 photos de visages aléatoires je l'ai téléchargé de Google Image (juste pour l'apprentissage) et un autre dossier avec 2 photos de personnes que leur visage est identique à la partie de l'image dans le dossier précédent. L'image avec le même visage est dans un angle différent.
J'ai écrit le script en me référant au tutoriel de https://pythonprogramming.net/haar-cascade-face-eye-detection-python-opencv-tutorial/ et d'ajouter une ligne pour envoyer la notification si le programme détecte le même visage du dossier.
Ma question est comment est-ce que j'indique exactement à l'utilisateur s'il y a des mêmes visages détectés. Je crois que ce code est incomplet et espère que quelqu'un peut me donner des suggestions sur ce qu'il faut ajouter/modifier ou ce que je ne devrais pas écrire dans ce script.
Merci d'avance.
merci pour votre réponse. Je vais essayer comme vous le suggérez. Je ne peux pas le tester dès que possible car j'ai un autre projet. Si j'ai le temps, j'essaierai certainement comme vous l'avez suggéré. – Ling