Với API nhận diện khuôn mặt của ML Kit, bạn có thể phát hiện khuôn mặt trong hình ảnh, xác định các đặc điểm chính của khuôn mặt và lấy các đường nét của khuôn mặt được phát hiện. Lưu ý rằng API phát hiện khuôn mặt không bao gồm nhận dạng người với người.
Với API này bạn có thể lấy được các thông tin cần thiết để thực hiện các tác vụ như chỉnh sửa ảnh chân dung, tạo ảnh đại diện từ ảnh người dùng hay tạo các ứng dụng như chat video hay game phản hồi biểu cảm người dùng.
Các tính năng chính:
Chúng ta cùng đi tìm hiểu chi tiết API này và các khái niệm cơ bản trong việc nhận diện khuôn mặt.
Khi một khuôn mặt được phát hiện trong một khung hình, API này cũng sẽ cung cấp cho ta các thông tin liên quan như vị trí, kích thước, hướng khuôn mặt cũng như các thông tin về vị trí mắt, mũi, và các đường viền trên khuôn mặt.
Một số thuật ngữ và khái niệm được sử dụng liên quan đến tính năng nhận diện khuôn mặt của MLKit dưới đây sẽ giúp bạn sử dụng để giải quyết các vấn đề trong ứng dụng của mình.
Thuật ngữ mô tả góc hướng của khuôn mặt đối với máy ảnh.
MLKit sẽ trả về thông tin góc Euler X, Euler Y và Euler Z của khuôn mặt được phát hiện, từ đó ta có thể biết được hướng của khuôn mặt đối với máy ảnh:
Một điểm mốc là một tâm điểm cần quan tâm trong khuôn mặt như: tâm mắt trái, tâm mũi, tâm mắt phải.
MlKit có thể phát hiện khuôn mặt mà không cần tìm các điểm mốc này vì vậy nếu cần các thông tin này chúng ta cần bật tính năng detect landmarks lên (bị tắt theo mặc định).
Bảng tóm tắt dưới đây mô tả các điểm mốc có thể phát hiện được theo góc Euler Y của khuôn mặt liên quan:
Euler Y angle | Detectable landmarks |
---|---|
< -36 degrees | left eye, left mouth, left ear, nose base, left cheek |
-36 degrees to -12 degrees | left mouth, nose base, bottom mouth, right eye, left eye, left cheek, left ear tip |
-12 degrees to 12 degrees | right eye, left eye, nose base, left cheek, right cheek, left mouth, right mouth, bottom mouth |
12 degrees to 36 degrees | right mouth, nose base, bottom mouth, left eye, right eye, right cheek, right ear tip |
> 36 degrees | right eye, right mouth, right ear, nose base, right cheek |
Mỗi điểm mốc được cung cấp bao gồm vị trí liên quan của nó trong khung ảnh.
Contours là tập hợp các điểm trên khuôn mặt thể hiện hình dạng khuôn mặt hoặc các đặc điểm về mắt mũi miệng trên khuôn mặt. Hình ảnh dưới đây minh họa các điểm viền thể hiện trên khuôn mặt:
Khi bạn có được tất cả các điểm trên khuôn mặt cùng một lúc, bạn sẽ có được một mảng gồm 133 điểm, bản đồ này sẽ tạo ra các đường nét như được hiển thị bên dưới:
Xác định xem một đặc điểm khuôn mặt nào đó có hiện diện hay không. Ví dụ, một khuôn mặt có thể được phân loại bằng cách mắt của nó đang mở hay nhắm lại, hoặc khuôn mặt có đang cười hay không.
MLKit trả về một giá trị xác suất cho đặc điểm khuôn mặt hiện tại (smilingProbability; leftEyeOpenProbability; rightEyeOpenProbability): ví dụ smilingProbability 0,7 trở lên khẳng định khả năng một khuôn mặt đang mỉm cười.
Cả hai đặc điểm trên đều dựa trên landmark detection
Chú ý: phân loại “mắt mở” và “mỉm cười” chỉ hoạt động đối với khuôn mặt chính diện, tức là khuôn mặt có góc Euler Y nhỏ (từ -18 đến 18 độ).
Kích thước khuôn mặt tối thiểu là kích thước khuôn mặt mong muốn, được biểu thị bằng tỷ lệ giữa chiều rộng của đầu với chiều rộng của hình ảnh. Ví dụ: giá trị 0,1 có nghĩa là khuôn mặt nhỏ nhất cần tìm kiếm bằng khoảng 10% chiều rộng của hình ảnh.
Kích thước khuôn mặt tối thiểu là sự cân bằng giữa hiệu suất so với độ chính xác: đặt kích thước tối thiểu nhỏ hơn cho phép máy dò tìm các khuôn mặt nhỏ hơn nhưng quá trình phát hiện sẽ lâu hơn; đặt nó lớn hơn có thể loại trừ các khuôn mặt nhỏ hơn nhưng sẽ chạy nhanh hơn.
Kích thước khuôn mặt tối thiểu không phải là giới hạn cứng; máy dò có thể tìm thấy các khuôn mặt nhỏ hơn một chút so với quy định.
You need to login in order to like this post: click here
YOU MIGHT ALSO LIKE