Vì sao hai app quét mặt cho điểm khác nhau
Cùng một tấm ảnh, hai ứng dụng, lệch nhau hai mươi điểm. Khác biệt đến từ điểm mốc, mẫu số, dữ liệu huấn luyện, bộ lọc — kèm cách tự kiểm tra tại nhà.
Trả lời ngắn
Đưa cùng một tấm ảnh vào hai ứng dụng quét mặt, lệch hai mươi điểm là chuyện thường. Cả hai đều không hỏng. Điểm số không phải thuộc tính trên khuôn mặt bạn, mà là đầu ra của một chuỗi xử lý, và mỗi công đoạn trong chuỗi đó đều chứa những lựa chọn. Đổi lựa chọn thì con số đổi theo.
Ba lựa chọn giải thích gần như toàn bộ khoảng cách: đo những điểm nào trên mặt, lấy số đo đó chia cho cái gì, và tỷ lệ thu được nằm ở đâu trên thang điểm của chính ứng dụng. Còn một điều thứ tư ít ai nghĩ tới, và nó xảy ra trước khi ứng dụng nhìn thấy bất cứ thứ gì.
1. Chúng không đo cùng một tập điểm
Các hệ thống phân tích khuôn mặt dựa trên những sơ đồ điểm mốc khác nhau, và chúng không thay thế được cho nhau:
- 68 điểm — bố cục cổ điển của dlib và OpenCV đời đầu. Viền hàm, hai cung mày, sống mũi và chân mũi, hai viền mắt, viền môi trên và dưới.
- 98 điểm — sơ đồ gán nhãn WFLW, được nhiều mô hình nghiên cứu dùng. Ý tưởng tương tự nhưng dày hơn quanh mắt và viền miệng.
- 468 điểm — MediaPipe Face Mesh, một lưới dày phủ toàn bộ khuôn mặt, gồm cả má và trán.
- 478 điểm — vẫn lưới đó, thêm mười điểm tròng mắt, năm điểm mỗi bên.
Chỗ dễ thấy nhất là bề rộng mũi. Với 68 điểm chỉ có hai điểm cánh mũi và một khoảng cách giữa chúng. Trên lưới 468 có vài cặp điểm khả dĩ vắt ngang mũi, và việc công thức chọn cặp nào làm kết quả lệch vài phần trăm. Bề rộng hàm cũng vậy: điểm má ngoài cùng của lưới dày không nằm cùng một vị trí giải phẫu với góc hàm trong sơ đồ 68 điểm. Hai ứng dụng đều có thể ghi thật thà "bề rộng hàm" trong khi đo hai đoạn khác nhau trên mặt bạn.
Nhiều điểm hơn không đồng nghĩa chính xác hơn. Lưới dày cho công thức nhiều lựa chọn hơn, nghĩa là nhiều chỗ để lệch với công cụ bên cạnh.
2. Tỷ lệ nào cũng cần mẫu số, và chúng chọn mẫu số khác nhau
Khoảng cách tính bằng pixel vô nghĩa: nó đổi theo độ phân giải, theo khoảng cách tới camera, theo cách cắt khung. Vì thế mọi công cụ đều chia khoảng cách thô cho một thứ gì đó. Những mẫu số thường gặp:
| Mẫu số | Đặc điểm |
|---|---|
| Khoảng cách đồng tử | Ổn định khi cắt khung, nhưng nhạy với việc bắt đuôi mắt |
| Bề rộng khung bao | Phụ thuộc tóc, tai và mặt nạ nền |
| Bề rộng gò má | Gần với "bề rộng mặt" nhất, nhưng điểm này mềm và hay trôi |
| Chiều cao từ mày đến cằm | Đổi theo biểu cảm và tư thế hàm |
Hai ứng dụng có thể tính ra đúng cùng một đoạn mũi mà vẫn báo tỷ lệ khác nhau, đơn giản vì một bên chia cho bề rộng gò má, bên kia chia cho khung bao. Nếu khung bao ôm cả tóc, mẫu số phình ra và mọi tỷ lệ nhỏ lại đồng loạt. Đó là cách cả một điểm số tụt xuống trong khi mặt bạn không đổi gì.
Cách nhận biết: đổi kiểu tóc mà con số nhảy, đổi biểu cảm mà con số đứng yên — nhiều khả năng nó lấy khung bao làm mẫu số.
3. Dữ liệu huấn luyện không trung lập
Mô hình điểm mốc học từ ảnh đã gán nhãn, và chính những tấm ảnh đó quyết định nó chính xác trên khuôn mặt nào. Ghi chú công khai của Google về Face Mesh nêu tập huấn luyện khoảng 30.000 ảnh. Dù thành phần chính xác ra sao, không tập dữ liệu nào đại diện ngang nhau cho mọi nhóm người, và những điểm yếu quen thuộc của lĩnh vực này khá nhất quán: góc đầu cực đoan, ánh sáng yếu, bị kính, râu hay tóc che, và những tông da ít xuất hiện trong tập gán nhãn.
Trên thực tế, đó là sai số bạn không nhìn thấy. Lệch hai ba pixel ở góc hàm không hiện ra trong khung xem trước, nhưng là thay đổi thật trong một tỷ lệ, và tỷ lệ đó sau này được ánh xạ lên thang 0–100 với độ dốc lớn. Sai số nhỏ ở đầu vào, khác biệt rõ ở đầu ra.
Đó cũng là lý do cùng một khuôn mặt cho điểm khác khi đổi ánh sáng trên cùng một ứng dụng. Không phải tâm trạng, mà là độ tin cậy của bộ dò đang dịch chuyển.
4. Có chuyện xảy ra trước khi mô hình chạy
Gần như điện thoại nào cũng xử lý khung hình trước khi đưa cho ứng dụng: làm mịn da, ánh xạ tông màu, có máy còn chỉnh lại hình dáng khuôn mặt. Hai hệ quả.
Thứ nhất, làm mịn xóa đi các gradient kết cấu mà mô hình dùng để tìm cạnh: đường môi, nếp mí, hai bên sống mũi. Các điểm mốc bắt đầu trôi.
Thứ hai, chỉnh hình dáng làm thay đổi hình học thật. Mô hình sau đó đo khuôn mặt đã bị chỉnh, và đo rất chính xác. Nó làm đúng việc của mình trên một đầu vào sai.
Ứng dụng đọc thẳng bộ đệm camera và ứng dụng đọc khung xem trước đã qua xử lý sẽ cho kết quả khác nhau, kể cả khi thuật toán giống hệt.
5. Bước cuối là thiết kế, không phải đo
Ngay cả khi điểm mốc giống nhau và mẫu số giống nhau, con số vẫn khác, vì biến một tỷ lệ thành điểm số là một quyết định thiết kế. Dạng thường gặp: lấy tỷ lệ r, kẹp giữa một giá trị nhỏ nhất và lớn nhất, ánh xạ tuyến tính lên 0–100. Dịch hai đầu mút thì mọi điểm số dịch theo.
Điểm 70 của ứng dụng A có thể nghĩa là "giữa thang, hơi trên trung bình". Điểm 70 của ứng dụng B có thể là phân vị thứ chín mươi trong mẫu của chính nó. Không đầu mút nào được hiệu chuẩn theo chuẩn bên ngoài: chúng được chọn để phân bố trông hợp lý trên vài trăm ảnh thử.
Vì thế con số tuyệt đối không so sánh được giữa các ứng dụng. Thứ tự thì so được tốt hơn một chút, và chỉ trong nhóm mặt giống nhau.
Một phép so sánh bạn thực sự làm được
Mẹo là loại bỏ chính bạn khỏi phương trình. Một tấm ảnh in ra là hằng số vật lý: cùng hình học, cùng ánh sáng, mỗi lần đều vậy.
- In một chân dung chính diện rõ nét trên giấy mờ, cao khoảng 15 cm.
- Dán lên tường ngang tầm mắt. Chiếu từ phía trước bằng một bóng đèn, kéo rèm lại.
- Quét tờ in bằng từng công cụ hai lần, cách nhau mười phút. Ghi lại cả hai con số.
- Lặp lại với ảnh selfie thật ở khoảng cách 60 cm, ống kính ngang tầm mắt, không bộ lọc.
- Lập bảng: công cụ, điểm tờ in, điểm selfie, chênh lệch.
Cách đọc bảng:
- Tờ in ổn định, selfie nhảy loạn — công cụ nhạy với đầu vào chứ không nhạy với khuôn mặt. Dao động đến từ ánh sáng và tư thế.
- Điểm tờ in lệch xa điểm selfie trên cùng công cụ — tiền xử lý nặng. Tờ in không có kết cấu da để làm mịn, nên hai đầu vào không tương đương.
- Hai công cụ xếp cùng thứ tự cho năm khuôn mặt in — chúng đo thứ tương tự trên hai thang khác nhau.
- Thứ tự đảo ngược — chúng đo hai thứ khác nhau, và cái nhãn đang gánh phần còn lại.
Xếp hạng năm khuôn mặt rồi so thứ tự là phép so sánh duy nhất vượt qua được khác biệt thang đo. Con số tuyệt đối không đi qua được; thứ tự thì đôi khi.
Nếu dao động đến từ phía bạn chứ không phải công cụ, hãy chỉnh đầu vào trước: hướng dẫn góc selfie nói về khoảng cách, độ cao ống kính và ánh sáng, còn công cụ phân tích dáng mặt hữu ích để kiểm tra bằng cách đưa cùng một ảnh vào hai lần.
Vậy nên hiểu con số mình nhận được thế nào
Những điều trên không làm trò này bớt vui. Nó làm trò này đọc được. Khi hai ứng dụng bất đồng về khuôn mặt bạn, sự bất đồng đó là sự thật về các ứng dụng — điểm mốc, mẫu số, tập huấn luyện, thang đo của chúng — chứ không phải sự thật về bạn. Biết điều đó trước khi coi một tấm ảnh chụp màn hình là nghiêm túc cũng đáng.
Câu hỏi thường gặp
Vì sao hai ứng dụng cho điểm khác nhau trên cùng một ảnh?
Sơ đồ điểm mốc khác nhau, mẫu số khác nhau cho cùng một tỷ lệ, dữ liệu huấn luyện khác nhau và hai đầu mút thang điểm khác nhau. Chỉ một trong số đó cũng đủ làm lệch mười điểm.
Điểm cao hơn có chính xác hơn không?
Không. Không tồn tại một giá trị đúng để hướng tới. Điểm cao thường chỉ có nghĩa là thang đo neo thấp hơn, hoặc công thức tình cờ ưu ái một nét mà bạn có.
Bao nhiêu điểm mốc là chính xác nhất?
Không có câu trả lời duy nhất, tùy bài toán. 68 điểm đã được nghiên cứu kỹ và nhẹ; 468 hay 478 cho độ phủ dày, hợp với phân tích hình dạng. Độ chính xác đến từ tập huấn luyện và mức khớp với điều kiện chụp của bạn, không phải từ số điểm.
Thử các bài test quét mặt miễn phí
15 bài test chỉ để giải trí. Tải lên một tấm selfie, nhận điểm, và đối xử với nó đúng mức nó đáng.
Mở các bài test