2.1.2 Nhận dạng khuôn mặt
Nhận dạng khuôn mặt là khả năng nhận diện, lưu trữ,so sánh và phân tích các mẫu dựa trên đường nét khuôn mặt để nhận dạng người từ hình ảnh hoặc video. Hệ thống thường sử dụng các công nghệ để thực hiện nhận dạng khuôn mặt như sử dụng sinh trắc học để ánh xạ các đặc điểm khuôn mặt từ ảnh hoặc video. Hệ thống so sánh thông tin này với một cơ sở dữ liệu đã lưu trữ về các khn mặt để tìm ra một kết quả khớp chính xác
Nhận dạng khn mặt ngày càng được quan tâm trong nhiều lĩnh vực, như Trung Quốc có hệ thống Skynet để chấm điểm cơng dân, hay nhiều chuỗi cửa hàng lớn cũng sử dụng nhận dạng khn mặt khách hàng thân thiết để phân tích thói quen tiêu dùng. Trên thực tế, cơng nghệ nhận dạng khuôn mặt đã nhận được sự chú ý đáng kể vì nó có tiềm năng cho một loạt các ứng dụng liên quan đến thực thi pháp luật cũng như các doanh nghiệp khác.
Hình 2.2: Một minh họa về một số bản đồ đặc trưng của các lớp DC12, conv22, conv32, conv42 và conv52 được đào tạo cho nhiệm vụ nhận dạng khuôn mặt.
2.2. Lịch sử và phát triển
Nhận dạng khuôn mặt tự động là một khái niệm tương đối mới, được phát triển vào những năm 1960. Hệ thống bán tự động đầu tiên cho nhận dạng khuôn mặt cần quản trị viên phải xác định được vị trí các điểm cần được đánh dấu (như mắt, tai, mũi và miệng) trên các bức ảnh, sau đó tính tốn khoảng cách và tỷ lệ đến một điểm tham chiếu chung, cuối cùng đó được so sánh với dữ liệu để ra kết quả.
Vào những năm 1970, Goldstein, Harmon và Lesk1 sử dụng 21 loại thông tin cụ thể, chẳng hạn như màu tóc và độ dày mơi để tự động nhận dạng. Vấn đề với cả hai giải pháp ban đầu này là các phép đo dựa trên vị trí, và cần sự tính tốn thủ cơng của con người để có thể vận hành.
Năm 1988, Kirby và Sirovich áp dụng phân tích các thành phần nổi bật, một kỹ thuật đại số tuyến tính tiêu chuẩn vào việc nhận dạng khuôn mặt. Đây được coi là một phần của cột mốc thay đổi vì dưới một trăm giá trị được u cầu mã hóa chính xác một hình ảnh khn mặt được căn chỉnh và chuẩn hóa phù hợp.
Vào năm 1991, Turk và Pentland phát hiện ra rằng trong khi sử dụng kỹ thuật thành phần riêng, lỗi dư (residual error) có thể được sử dụng để phát hiện khn mặt trong hình ảnh - một khám phá có thể tạo ra được một hệ thống nhận diện khuôn mặt tự động, thời gian thực và đáng tin cậy. Mặc dù cách tiếp cận có phần bị hạn chế bởi các yếu tố máy móc của giai đoạn đó, nhưng nó đã tạo ra sự quan tâm đáng kể trong việc phát triển công nghệ nhận dạng khuôn mặt tự động.
Công nghệ đầu tiên đã thu hút được sự chú ý rất lớn của truyền thông khi triển khai thử nghiệm tại Super Bowl tháng 1 năm 2001, trong đó ghi lại hình ảnh từ camera giám sát và so sánh chúng với một cơ sở dữ liệu kỹ thuật số. Sau sự kiện này, đã có các phân tích về tính cần thiết của việc sử dụng công nghệ để hỗ trợ nhu cầu quốc gia, trong khi vẫn quan tâm đến các mối quan tâm xã hội và quyền riêng tư của cộng đồng. Ngày nay, công nghệ nhận dạng khuôn mặt đang được sử dụng để chống lại gian lận hộ chiếu, hỗ trợ thực thi pháp luật, xác định trẻ em mất tích, và giảm thiểu gian lận danh tính.
2.3. Cách thức hoạt động
Phương pháp bao gồm các bước khác nhau để thực hiện nhận diện khuôn mặt tự động. Đầu tiên là thực hiện phát hiện khuôn mặt để khoanh vùng khn mặt trong từng khung hình ảnh và video. Sau đó, dữ liệu ở bước trên đuợc liên kết với các khuôn mặt được phát hiện với danh tính chung trên các video và căn chỉnh các khuôn mặt thành tọa độ bằng cách sử dụng các mốc được phát hiện. Cuối cùng, hệ thống thực hiện xác minh
khn mặt để tính tốn độ tương tự giữa một cặp hình ảnh / video. Sơ lược phương pháp được minh họa trong hình 2.3.
Hình 2.3: Tổng quan về phương pháp nhận dạng khn mặt người bằng mạng nơ ron tích chập
Cụ thể, ta có thể xem xét ví dụ với thiết kế mạng ở hình 2.4 để rõ hơn về tổng quan cách thức hoạt động:
Hình 2.4: Thiết kế mạng nơ ron để xử lý ảnh
Từ mạng nơ ron trên, ta có thể thấy các bước xử lý ảnh từ trái sang phải. Lần lượt, ta có thể thấy hình ảnh các cửa sổ dị tìm (ơ vng màu xanh) đang giảm dần và hiệu chỉnh dần theo từng giai đoạn dị tìm:
Hình 2.5: Các giai đoạn dị tìm và hiệu chỉnh
2.4 Phương pháp nhận dạng đối tượng từ ảnh chụp của camera
2.4.1 Nhận diện khuôn mặt
Tất cả các khn mặt trong khung hình ảnh / video được phát hiện bằng hệ thống dị khn mặt dựa trên mạng nơ ron tích chập sâu (Deep Convolutional Neural Network – DCNN), được gọi là Mơ hình tháp sâu để phát hiện khuôn mặt (Deep Pyramid Deformable Parts Model for Face Detection - DP2MFD) [38], bao gồm hai mô-đun. Mô- đun đầu tiên tạo ra một hình tháp sâu được chuẩn hóa bảy cấp cho bất kỳ hình ảnh đầu vào nào có kích thước tùy ý, như đã minh họa trong hình ảnh 2.3. Kiến trúc mạng nơ ron tích chập tương tự như Alexnet, được sử dụng để trích xuất các tính năng sâu. Mạng hình tháp này tạo ra một tháp gồm 256 bản đồ đặc trưng ở lớp tích chập thứ 5 (conv5). Bộ lọc được áp dụng để có được lớp max5. Thơng thường, cường độ kích hoạt cho một vùng khuôn mặt giảm theo kích thước của cấp độ của tháp. Do đó, một khuôn mặt lớn được phát hiện bởi cửa sổ trượt có kích thước cố đinh ở cấp độ tháp thấp hơn sẽ có điểm phát hiện cao so với khuôn mặt nhỏ được phát hiện ở cấp độ tháp cao hơn. Để giảm độ lệch này cho kích thước khn mặt, hệ thống áp dụng bước chuẩn hóa điểm z trên các tính năng max5 ở mỗi cấp. Đối với vectơ đặc trưng 256 chiều ở cấp tháp i và vị trí (j, k), tính năng chuẩn hóa được tính như sau:
Trong đó, là vectơ đặc trưng trung bình và là độ lệch chuẩn cho cấp độ tháp
i. Các tính năng max5 được chuẩn hóa là . Sau đó, các tính năng có độ dài từ mỗi
vị trí trong tháp được trích xuất bằng cách sử dụng phương pháp cửa sổ trượt. Mô-đun thứ hai là một SVM tuyến tính (linear SVM), lấy các tính năng này làm đầu vào để phân loại từng vị trí là mặt, hoặc khơng phải là mặt, dựa trên điểm được tính tốn. Mơ hình tháp sâu
để phát hiện khn mặt - DP2MFD có khả năng nhận diện rất tốt trên các độ sáng ảnh khác nhau, cũng như kích cỡ khn mặt. Chúng ta có thể thấy thơng qua ví dụ sau:
Hình 2.6: Kết quả phát hiện mẫu trên ảnh IJB-A bằng phương pháp tháp sâu
2.4.2 Phát hiện các điểm quan trọng trên khuôn mặt
Khi các khuôn mặt được phát hiện, thuật toán thực hiện phát hiện các điểm quan trọng để căn chỉnh khn mặt. Thuật tốn sẽ tìm cách khơi phục mặt về hình dáng mặc định ban đầu: gọi khn mặt là I, hình dạng ban đầu là S0, thuật toán sẽ tính tốn mức tăng hình dạng ∆S từ các mơ tả sâu (deep descriptors) và cập nhật bằng cơng thức sau:
Các tính năng CNN (được biểu thị là Φ trong công thức trên) được thiết kế với bước nhảy và cách gộp hợp lý, được sử dụng làm các tính năng để thực hiện tính tốn. Ở đây, kiến trúc CNN được sử dụng tương tự như Alexnet với các trọng số được xử lý trước cho bộ dữ liệu ImageNet như trong hình sau:
Hình 2.7: Kiến trúc DCNN được sử dụng để trích xuất các mơ tả cục bộ cho nhiệm vụ phát hiện các điểm mốc trên khn mặt
Vì mục tiêu mạng CNN này là phát hiện khn mặt. Do đó, mạng sẽ được căn chỉnh để xử lý dữ liệu khuôn mặt tốt hơn. Các dữ liệu đầu ra ở từng tầng sẽ là dữ liệu đầu vào ở tầng tiếp theo. Trong hình trên, chúng ta có thể thấy có 5 tầng. Sau khi hồn thành
phát hiện các mốc, khuôn mặt sẽ được căn chỉnh theo tọa độ bằng cách sử dụng phép biến đổi và các điểm mốc.
Điều này giúp mạng tìm hiểu các đặc điểm cụ thể đối với khuôn mặt. Hơn nữa, mạng áp dụng hồi quy theo tầng, trong đó đầu ra được tạo bởi giai đoạn đầu tiên sẽ được sử dụng làm đầu vào cho giai đoạn tiếp theo, tổng là năm giai đoạn tích chập được áp dụng trong hệ thống. Các bộ lọc được chọn để trích xuất tính năng được tinh chỉnh trong các giai đoạn sau để cải thiện việc chuẩn hóa các mốc trên khn mặt. Sau khi hồn thành phát hiện các mốc trên khuôn mặt, mỗi khn mặt được căn chỉnh theo tọa độ chính tắc bằng cách sử dụng biến đổi tương tự và các điểm mốc.
Hình 2.8: Ví dụ về các điểm mốc trên khn mặt
2.4.3 Liên kết khn mặt
Vì có nhiều đối tượng xuất hiện trong các khung hình của video, nên việc thực hiện liên kết khuôn mặt để gán từng khuôn mặt cho đối tượng tương ứng là một bước quan trọng để chọn đúng đối tượng khi xác minh khn mặt. Do đó, khi một khn mặt trong khung hình của video được phát hiện, hệ thống theo dõi khn mặt bằng cách tích hợp các kết quả từ trình phát hiện khn mặt, trình theo dõi khn mặt và bước liên kết khuôn mặt.
Hệ thống áp dụng thuật tốn nhận diện khn mặt trong mọi khung hình bằng phương pháp nhận diện khn mặt được trình bày trong phần trước. Vùng phát hiện khuôn mặt được coi như một khn mặt mới nếu khơng có tỷ lệ trùng lặp với bất kỳ vùng phát hiện nào trong các khung hình trước. Tỷ lệ trùng lặp của một vùng phát hiện được phát hiện và vùng phát hiện trong khung hình trước được xác định là:
Qua thực nghiệm, ngưỡng 0,2 là đủ để coi như xuất hiện khuôn mặt mới, do các khung hình của video cách nhau chỉ một phần nhỏ của giây. Để theo dõi khuôn mặt, các nhà khoa học sử dụng giải thuật Kanade-Lucas-Tomasi (KLT) để theo dõi các khn mặt giữa hai khung hình liên tiếp. Hệ thống cập nhật các vùng phát hiện trong quá trình theo dõi dựa vào khung hình mới nhất. Vùng phát hiện sẽ thay thế cho vùng phát hiện nếu nhỏ hơn ngưỡng (0,2). Quá trình theo dõi khn mặt sẽ bị chấm dứt nếu khơng có phát hiện khn mặt tương ứng chồng chéo với nó cho nhiều hơn khung hình.
Hệ thống thường đặt giới hạn bằng 4 khung hình, dựa trên cơ sở thực nghiệm. Hình ảnh kết quả của phương pháp liên kết khuôn mặt cho các video của JANUS CS2:
Hình 2.9: Kết quả mẫu của phương pháp liên kết khuôn mặt cho các video của JANUS CS2, là bộ dữ liệu mở rộng của IJB-A
2.5 Kết quả các thuật toán sử dụng mạng nơ ron nhân tạo
2.5.1 Mơ hình DeepID 2 (NIPS 2014)
Cách thức hoạt động của mơ hình DeepID 2:
Trong quá trình huấn luyện, 200 phần khuôn mặt được cắt với các vị trí, tỉ lệ và kênh màu sắc khác nhau. Mỗi phần khuôn mặt và phần đối xứng được đưa vào ConvNet. Hai vector 160 chiều được trích xuất từ phần khuôn mặt và phần đối xứng. Chọn 25 phần khuôn mặt tốt nhất.
Hình 2.10: Kiến trúc mạng của mơ hình DeepID 2
Một ví dụ về 25 phần khn mặt tốt nhất:
Hình 2.11: 25 phần khn mặt tốt nhất được chọn để trích xuất đặc điểm
Kết quả của mơ hình thể hiện trong bảng.
Bảng 2.1: Thống kê xác minh độ chính xác của khn mặt bằng DeepID2 khi tăng dần số lượng của các phần khuôn mặt
Qua bảng 2.1, ta có thể thấy, khi sử dụng 25 phần khn mặt để trích xuất đặc điểm, độ chính xác của phương pháp rất cao, xấp xỉ tới 99%. Tuy nhiên, khi nhận diện với 25 phần khn mặt, máy tính cần mất 0.035 giây để tính tốn. Mặt khác, với việc chỉ sử dụng một phần khn mặt để trích xuất đặc trưng, thời gian xử lý rất nhanh, chỉ 0,0017 giây, tuy nhiên độ chính xác chỉ cịn 95,43%. Dựa trên bảng thống kê này, các nhà phát triển có thể căn chỉnh số phần khn mặt để tối ưu cho bài tốn thực tế. Ví dụ như, nếu cần một hệ thống phản hồi nhanh mà khơng q ưu tiên độ chính xác, có thể chỉ sử dụng một phần khn mặt để trích xuất đặc trưng, ngược lại, ta có thể tăng số phần khn mặt nhằm tăng độ chính xác.
Bảng 2.2: So sánh độ chính xác của mơ hình DeepID2 với các kết quả mơ hình trước đó trên bộ thư viện LFW
Qua bảng so sánh trên, ta có thể thấy mơ hình DeepID2 khi sử dụng trên bộ thư viện LFW có độ chính xác rất cao, lên tới hơn 99%. Với độ chính xác cao như vậy, DeepID2 có thể đưa ra làm sản phẩm và thương mại hóa.
2.5.2 Mơ hình DeepID3 (arXiv 2015)
Hình 2.12: Kiến trúc mạng của mơ hình DeepID3
DeepID3 là mơ hình nâng cấp của DeepID2+
Bảng 2.3: Kết quả so sánh của mơ hình DeepID3 với các mơ hình trước trên bộ thư viện LFW
Với bộ dữ liệu LFW năm 2015, ta có thể thấy DeepID3 đã có những cải tiến nhất định so với DeepID2+, với độ chính xác được tăng cường lên tới 1%
2.5.3 Mơ hình DeepFace (Facebook, CVPR 2014)
Sơ lược kiến trúc DeepFace: DeepFace sử dụng căn chỉnh 3D để xử lý khn mặt. Sau đó đầu vào được bộ lọc tích chập-gộp chung, tiếp theo được xử lý bởi ba tầng được kết nối cục bộ và hai tầng được kết nối đầy đủ. Màu sắc minh họa dựa trên đặc trưng được xử lý ở mỗi tầng. Mạng bao gồm hơn 120 triệu tham số, trong đó hơn 95% đến từ các lớp cục bộ và được kết nối đầy đủ.
Hình 2.13: Kiến trúc của DeepFace
Bảng 2.4: Kết quả của khi so sánh DeepFace với các công nghệ hiện đại trên bộ dữ liệu LFW
Có thể thấy, mơ hình DeepFace đạt kết quả rất cao, lên đến 0.95 tới 0.97, gần ở mức tiệm cận con người.
2.5.4 Mơ hình FaceNet (Google 2015)
FaceNet là một mơ hình được tạo ra từ google, và được huấn luyện bởi 260 triệu bức ảnh. FaceNet có 2 mơ hình CNN: mơ hình lấy cảm hứng từ Zeiler & Fergus, và mơ hình GoogLeNet.
Hình 2.14: Hình ảnh: Mơ hình lấy cảm hứng từ Zeiler & Fergus
Bảng 2.5: Bảng so sánh hiệu suất của kiến trúc mạng trên FaceNet
Qua bảng trên ta có thể thấy kiến trúc NN2 và NN1 có độ chính xác cao nhất.
Bảng 2.6: Bảng so sánh độ chính xác dựa trên số lượng dữ liệu đào tạo
Quả bảng so sánh độ chính xác dựa trên dữ liệu đào tạo, ta có thể thấy độ chính xác được cải thiện rõ rệt khi dữ liệu tăng lên đáng kể. Do đó, ngồi kiến trúc mạng hợp lý, dữ liệu được sử dụng để đào tạo cũng là một nhân tố góp phần tạo nên độ chính xác cao cho mơ hình.
2.5.5 Mơ hình Baidu (2015)
Mơ hình Baidu, 2015, là mơ hình được tạo ra bởi hãng Baidu, Trung Quốc. Với nguồn lực và lượng thông tin cá nhân lớn, Baidu đã xây dựng được một hệ thống nhận diện khuôn mặt với tỉ lệ lỗi rất thấp.
Bảng 2.7: Tỉ lệ lỗi trên lượng dữ liệu khác nhau
Có thể thấy, ở mơ hình của Baidu, với lượng người càng lớn và số khuôn mặt càng nhiều, hệ thống càng trở nên chính xác.
2.6 Kết luận
Bài tốn nhận dạng đã có từ rất lâu với nhiều phương pháp khác nhau. Tuy nhiên, với các kỹ thuật mới, ta có thể thấy rằng độ chính xác của các phương pháp ngày càng tăng trong khi chi phí tính tốn ngày càng giảm.
Hình 2.17: Thống kê các mơ hình, số lượng bộ dữ liệu sử dụng, và các mốc thời gian xuất bản
Qua cách thức hoạt động và các mơ hình được sử dụng trong bài tốn nhận dạng, ta có thể thấy dữ liệu là chìa khóa rất quan trọng trong việc đào tạo. Nếu mơ hình cịn hạn