Je me demande simplement s'il est possible de détecter si le visage est aligné correctement, directement sur l'appareil photo avec DLIB et OpenCV?Vérification de l'alignement du visage avec DLIB
J'ai essayé ce code pour détecter la forme et obtenir les points de visage:
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor(args["shape_predictor"])
vs = VideoStream(0).start()
while True:
# grab the frame from the threaded video stream, resize it to
# have a maximum width of 400 pixels, and convert it to
# grayscale
frame = vs.read()
frame = imutils.resize(frame, width=400)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# detect faces in the grayscale frame
rects = detector(gray, 0)
# loop over the face detections
for rect in rects:
# determine the facial landmarks for the face region, then
# convert the facial landmark (x, y)-coordinates to a NumPy
# array
shape = predictor(gray, rect)
shape = face_utils.shape_to_np(shape)
# loop over the (x, y)-coordinates for the facial landmarks
# and draw them on the image
for (x, y) in shape:
print x,y
cv2.circle(frame, (x, y), 1, (0, 0, 255), -1)
cv2.putText(frame, "Aptiktas veidas", (10, 30),
cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2)
# show the frame
cv2.imshow("Frame", frame)
key = cv2.waitKey(1) & 0xFF
Mise à jour d'une question avec un code et une image. – Streem