mirror of
https://github.com/serengil/deepface.git
synced 2025-06-07 12:05:22 +00:00
detectFace bug + robust eye detector
This commit is contained in:
parent
cca16c56d3
commit
057f06c09c
@ -794,9 +794,7 @@ def detectFace(img_path, detector_backend = 'opencv', enforce_detection = True):
|
|||||||
Returns:
|
Returns:
|
||||||
deteced and aligned face in numpy format
|
deteced and aligned face in numpy format
|
||||||
"""
|
"""
|
||||||
|
|
||||||
functions.initialize_detector(detector_backend = detector_backend)
|
|
||||||
|
|
||||||
img = functions.preprocess_face(img = img_path, detector_backend = detector_backend
|
img = functions.preprocess_face(img = img_path, detector_backend = detector_backend
|
||||||
, enforce_detection = enforce_detection)[0] #preprocess_face returns (1, 224, 224, 3)
|
, enforce_detection = enforce_detection)[0] #preprocess_face returns (1, 224, 224, 3)
|
||||||
return img[:, :, ::-1] #bgr to rgb
|
return img[:, :, ::-1] #bgr to rgb
|
||||||
|
@ -42,7 +42,8 @@ def detect_face(detector, img, align = True):
|
|||||||
|
|
||||||
faces = []
|
faces = []
|
||||||
try:
|
try:
|
||||||
faces = detector["face_detector"].detectMultiScale(img, 1.3, 5)
|
#faces = detector["face_detector"].detectMultiScale(img, 1.3, 5)
|
||||||
|
faces = detector["face_detector"].detectMultiScale(img, 1.1, 10)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -60,7 +61,8 @@ def align_face(eye_detector, img):
|
|||||||
|
|
||||||
detected_face_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #eye detector expects gray scale image
|
detected_face_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #eye detector expects gray scale image
|
||||||
|
|
||||||
eyes = eye_detector.detectMultiScale(detected_face_gray, 1.3, 5)
|
#eyes = eye_detector.detectMultiScale(detected_face_gray, 1.3, 5)
|
||||||
|
eyes = eye_detector.detectMultiScale(detected_face_gray, 1.1, 10)
|
||||||
|
|
||||||
if len(eyes) >= 2:
|
if len(eyes) >= 2:
|
||||||
|
|
||||||
@ -76,7 +78,7 @@ def align_face(eye_detector, img):
|
|||||||
df = pd.DataFrame(items, columns = ["length", "idx"]).sort_values(by=['length'], ascending=False)
|
df = pd.DataFrame(items, columns = ["length", "idx"]).sort_values(by=['length'], ascending=False)
|
||||||
|
|
||||||
eyes = eyes[df.idx.values[0:2]] #eyes variable stores the largest 2 eye
|
eyes = eyes[df.idx.values[0:2]] #eyes variable stores the largest 2 eye
|
||||||
|
|
||||||
#eyes = eyes[0:2]
|
#eyes = eyes[0:2]
|
||||||
|
|
||||||
#-----------------------
|
#-----------------------
|
||||||
|
@ -24,16 +24,17 @@ print("Running unit tests for TF ", tf.__version__)
|
|||||||
from deepface.basemodels import VGGFace, OpenFace, Facenet, FbDeepFace
|
from deepface.basemodels import VGGFace, OpenFace, Facenet, FbDeepFace
|
||||||
from deepface.extendedmodels import Age, Gender, Race, Emotion
|
from deepface.extendedmodels import Age, Gender, Race, Emotion
|
||||||
|
|
||||||
|
print("-----------------------------------------")
|
||||||
#-----------------------------------------
|
#-----------------------------------------
|
||||||
|
|
||||||
if False:
|
print("DeepFace.detectFace test")
|
||||||
print("Detector tests")
|
detectors = ['opencv', 'ssd', 'dlib', 'mtcnn', 'retinaface']
|
||||||
import matplotlib.pyplot as plt
|
for detector in detectors:
|
||||||
detectors = ['opencv', 'ssd', 'dlib', 'mtcnn', 'retinaface']
|
img = DeepFace.detectFace("dataset/img11.jpg", detector_backend = detector)
|
||||||
for detector in detectors:
|
print(detector," test is done")
|
||||||
img = DeepFace.detectFace("dataset/img11.jpg", detector_backend = detector)
|
#import matplotlib.pyplot as plt
|
||||||
plt.imshow(img)
|
#plt.imshow(img)
|
||||||
plt.show()
|
#plt.show()
|
||||||
|
|
||||||
#-----------------------------------------
|
#-----------------------------------------
|
||||||
print("-----------------------------------------")
|
print("-----------------------------------------")
|
||||||
@ -168,7 +169,7 @@ dataset = [
|
|||||||
['dataset/img1.jpg', 'dataset/img2.jpg', True],
|
['dataset/img1.jpg', 'dataset/img2.jpg', True],
|
||||||
['dataset/img5.jpg', 'dataset/img6.jpg', True],
|
['dataset/img5.jpg', 'dataset/img6.jpg', True],
|
||||||
['dataset/img6.jpg', 'dataset/img7.jpg', True],
|
['dataset/img6.jpg', 'dataset/img7.jpg', True],
|
||||||
#['dataset/img8.jpg', 'dataset/img9.jpg', True],
|
['dataset/img8.jpg', 'dataset/img9.jpg', True],
|
||||||
|
|
||||||
['dataset/img1.jpg', 'dataset/img11.jpg', True],
|
['dataset/img1.jpg', 'dataset/img11.jpg', True],
|
||||||
['dataset/img2.jpg', 'dataset/img11.jpg', True],
|
['dataset/img2.jpg', 'dataset/img11.jpg', True],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user