Skip to content

fix 5-landmark dlib eye points - #249

Open
goigle wants to merge 1 commit into
PyImageSearch:masterfrom
goigle:master
Open

fix 5-landmark dlib eye points#249
goigle wants to merge 1 commit into
PyImageSearch:masterfrom
goigle:master

Conversation

@goigle

@goiglegoigle commented Jun 1, 2021

Copy link
Copy Markdown

Currently, the points for the 5 landmark dlib model are wrong. The range uses 1 point for each eye, when it should be two points. The range for dlib 68 for the eyes are 36-42 (6 pts) and 42-48 (6pts). For dlib 5, it's 0-1 (1pt) and 2-3 (1pt) respectively. Changing the range to 0-2 and 2-4 correctly gives 2 pts for each eye and allows properly calculating the centerpoint of the eye.

This fix makes the face aligner work identically for both dlib models, like intended:

 if (len(shape)==68):
# extract the left and right eye (x, y)-coordinates
(lStart, lEnd) = FACIAL_LANDMARKS_68_IDXS["left_eye"]
(rStart, rEnd) = FACIAL_LANDMARKS_68_IDXS["right_eye"]
else:
(lStart, lEnd) = FACIAL_LANDMARKS_5_IDXS["left_eye"]
(rStart, rEnd) = FACIAL_LANDMARKS_5_IDXS["right_eye"]
leftEyePts = shape[lStart:lEnd]
rightEyePts = shape[rStart:rEnd]

Here's a chart showing the proper indexes for dlib's 5 and 68 face landmark models

@ariG23498

Copy link
Copy Markdown

Hey @goigle

Thanks for the PR! We are looking into this 😄

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@goigle@ariG23498