5. Ý nghĩa khoa học và thực tiễn của đề tài
2.3. Bài toán giám sát khuôn mặt tự động
2.3.1. Hệ thống mạng CNN trong nhận dạng mặt người
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 khuôn 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 khuôn mặt để tính toá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.9.
47
Hình 2. 9. Tổng quan về phƣơng pháp nhận dạng 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.10 để rõ hơn về tổng quan cách thức hoạt động:
Hình 2. 10. 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 (ô vuông màu xanh) đang giảm dần và hiệu chỉnh dần theo từng giai đoạn dò tìm:
48
Hình 2. 11. Các giai đoạn dò tìm và hiệu chỉnh
2.3.2. Phương pháp nhận dạng khuôn mặt dựa trên HOG và CNN
Hƣớng tiếp cận giải quyết bài toán tự động phát hiện và nhận dạng mặt ngƣời của chúng tôi bao gồm hai mô-đun. Mô-đun đầu tiên là phát hiện mặt ngƣời với các đặc trƣng HOG: để phát hiện mặt ngƣời với các đặc trƣng HOG ta tiến hành các bƣớc nhƣ sau:
Bƣớc 1: Chuẩn bị P mẫu là ảnh mặt ngƣời và trích xuất các vector đặc trƣng HOG từ các bức ảnh này.
Bƣớc 2:Chuẩn bị N mẫu không phải là ảnh mặt ngƣời (N rất lớn so với P)và trích xuất các vector HOG từ các ảnh này.
Bƣớc 3: Sử dụng một bộ phân loại SVM tuyến tính để học với các vector của các mẫu tích cực (là ảnh mặt ngƣời) và tiêu cực (các ảnh không phải mặt ngƣời) đã chuẩn bị.
Bƣớc 4: Đối với mỗi bức ảnh trong bộ ảnh tiêu cực, sử dụng một cửa sổ trƣợt di chuyển qua tất cả các vị trí có thể của ảnh input. Tại mỗi vị trí của cửa sổ trƣợt, tính vector HOG của cửa sổ và đƣa vào bộ phân lớp. Nếu bộ phân lớp phân lớp sai một cửa sổ là ảnh mặt thì ghi lại vector tƣơng ứng cùng với xác suất phân lớp.
Bƣớc 5: Lấy các mẫu nhận dạng sai ở bƣớc 4 và sắp xếp chúng theo mức xác suất nhận dạng sai và cho bộ phân lớp học lại sử dụng các mẫu sai này.
Bƣớc 6: Áp dụng bộ phân lớp đã đƣợc học lại với các ảnh cần phát hiện khuôn mặt.
49
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 khuôn mặt. Thuật toán sẽ tìm cách khôi phục mặt về hình dáng mặc định ban đầu: gọi khuôn mặt là , hình dạng ban đầu là , thuật toán sẽ tính toán mức tăng hình dạng từ các mô tả sâu (deep descriptors) và cập nhật bằng công thức sau:
( ) (2.3)
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 toán. Ở đây, kiến trúc CNN đƣợc sử dụng tƣơng tự nhƣ Alexnet là mạng DCNN với các trọng số đƣợc xử lý trƣớc cho bộ dữ liệu ImageNet nhƣ hình 2.12 sau:
Hình 2. 12. Kiến trúc DCNN đƣợc sử dụng
Vì mục tiêu mạng DCNN này là xác định khuôn 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 hoà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 trƣng 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
50
để 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 khuôn mặt. Sau khi hoàn thành phát hiện các mốc trên khuôn mặt, mỗi khuôn 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. 13. Ví dụ các điểm mốc trên khuôn mặt ngƣời.
Mô đun tiếp theo là liên kết khuôn 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 khuôn mặt. Do đó, khi một khuôn mặt trong khung hình của video đƣợc phát hiện, hệ thống theo dõi khuôn mặt bằng cách tích hợp các kết quả từ trình phát hiện khuôn mặt, trình theo dõi khuôn mặt và bƣớc liên kết khuôn mặt. Hệ thống áp dụng thuật toán nhận dạng khuôn mặt trong mọi khung hình bằng phƣơng pháp nhận dạng khuôn 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 khuôn 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à:
( ) ( )
( )
51
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 thuật toán Kanade-Lucas-Tomasi (KLT) để theo dõi các khuôn 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 khuôn mặt sẽ bị chấm dứt nếu không có phát hiện khuôn 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 (2.14) thể hiện 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 (bộ dữ liệu mở rộng của IJB-A):
Hình 2. 14. Kết quả mẫu của liên kết khuôn mặt của JANUS CS2 2.4. Kết luận chƣơng 2
Trong chƣơng này, luận văn đã tập trung trình bày về hƣớng tiếp cận bài toán là kỹ thuật mô tả trích rút đặc trƣng HOG cùng với mô hình mạng CNN, và cụ thể hơn là ứng dụng mạng DCNN trong giải quyết bài toán nhận dạng khuôn mặt ngƣời. Ngoài ra, luận văn cũng phân tích đánh giá thuật toán một cách khá đầy đủ.
52
CHƢƠNG 3. THỬ NGHIỆM
3.1. Giới thiệu bài toán
Bài toán phát hiện và nhận dạng khuôn mặt ngƣời là bài toàn rất quan trọng và có ý nghĩa trong hầu hết các lĩnh vực của đời sống và xã hội. Có rất nhiều ứng dụng trong thực tế nhƣ ứng dụng nhận dạng khuôn mặt trong các hệ thống an ninh nhƣ điểm danh tự động, nơi cho phép máy ảnh lấy hình ảnh khuôn mặt và xác định cũng nhƣ định danh ngƣời trong hình ảnh hoặc video là ai. Ngoài ra bài toán cũng đƣợc ứng dụng trong thƣơng mại và tiếp thị, trong thanh toán trực tuyến, trong các bài toán về giao thông v.v.. và bài toán nhận dạng khuôn mặt hiện nay đang đƣợc sự quan tâm rất lớn từ cộng đồng các nhà khoa học trên thế giới cũng nhƣ tại việt Nam. Luận văn tập trung phân tích và thử nghiệm nhận dạng khuôn mặt cho mục đích điểm danh tự động trong hệ thống giám sát tự động.
3.2. Phân tích yêu cầu và thu thập dữ liệu
Nhận dạng khuôn mặt là một lĩnh vực nghiên cứu của ngành thị giác máy tính (Computer Vision), và cũng đƣợc xem là một lĩnh vực nghiên cứu của ngành sinh trắc học (Biometrics) tƣơng tự nhƣ nhận dạng vân tay, mống mắt. Bài toán nhận dạng khuôn mặt còn nhiều thách thức nên hàng năm trong và ngoài nƣớc vẫn có nhiều nghiên cứu về các phƣơng pháp nhận dạng khuôn mặt.
Bài toán nhận dạng khuôn mặt là một trong những công nghệ tiên phong đang đƣợc hỗ trợ thông qua các ứng dụng của trí tuện nhân tạo (AI). Nó có khả năng xác định và xác minh nhận dạng của một ngƣời bằng cách sử dụng hình ảnh kỹ thuật số hoặc khung hình video. Các hệ thống nhận dạng khuôn mặt hoạt động bằng cách so sánh các đặc điểm khuôn mặt đƣợc chọn từ một hình ảnh hoặc trong video với các khuôn mặt có sẵn trong cơ sở dữ liệu.
53
Để thực nghiệm phƣơng pháp chúng ta cần có những tập dữ liệu mẫu nhƣ sau:
Tâp dữ liệu training là tập dùng để huấn luyện là tập ảnh khuôn mặt của 100 ngƣời Lào và Việt Nam.
Tập dữ liệu để nhận dạng là dữ liệu đầu vào có thể là dữ liệu về hình ảnh khuôn mặt hoặc video có khuôn mặt ngƣời.
Đầu vào: Tập ảnh ngƣời đã nhận biết, ảnh/ video đầu vào cần xác định
và nhận dạng khuôn mặt.
Đầu ra: Kết quả nhận dạng danh tính ngƣời trong ảnh/video là ai.
Mô hình tổng quan của bài toán gồm hai phần chính đó là đào tạo (training dữ liệu kết quả đầu ra là một mô hình học) phần thứ hai là nhận dạng khuôn mặt dựa vào mô hình. Mô hình tổng quan của bài toán đƣợc thể hiện nhƣ hình 3.1:
Hình 3. 1. Sơ đồ mô hình tổng quan
54 Bƣớc 1: Phát hiện khuôn mặt
Lần lƣợt duyệt qua tất cả các khuôn mặt xuất hiện trong hình ảnh hoặc video đầu vào. Quá trình này xác định vị trí khu vực khuôn mặt trong hình ảnh và sẽ lấy ra tất cả các khuôn mặt trong một hình ảnh hoặc video đầu vào của tập kiểm thử
Bƣớc 2: Tiền xử lý ảnh.
Sử dụng các bộ lọc nhƣ phân ngƣỡng để lọc nhiễu, nâng cao chất lƣợng ảnh, căn chỉnh ảnh, chuẩn hóa ánh sang của những khung hình có chứa khuôn mặt ở bƣớc một
Bƣớc 3: Lƣu lại đặc trƣng của khuôn mặt dựa vào mô hình.
Bƣớc 4: Bƣớc nhận dạng (recognition) hay phân lớp (classification), tức là xác định danh tính hay nhãn (label) của ảnh dựa vào những đặc trƣng. Từ đó cho ra kết quả đó là ảnh của ai.
3.3. Môi trƣờng cài đặt và kết quả cài đặt thử nghiệm Môi trƣờng cài đặt: Môi trƣờng cài đặt:
Luận văn cài đặt thuật toán nhận diện khuôn mặt với môi trƣờng cài đặt nhƣ sau: CPU: i7. 2.2GHz RAM: 8GB Ổ cứng: HDD 500GB Hệ điều hành: Windows 10 Ngôn ngƣ lập trình: C/C++
Môi trƣờng phát triển: Microsoft visual studio Thƣ viện hỗ trợ: OpenCV 3.0, Tensorflow
Một số kết quả chƣơng trình thực nghiệm:
Hình 3.2 mô tả giao diện chính bắt đầu của chƣơng trình, hình 3.3 minh họa phát hiện và nhận dạng khuôn mặt, hình 3.4 thể hiện trích xuất và nhận
55
dạng khuôn mặt, điều kiện thu nhận có thay đối nhỏ, khuôn mặt chính diện.
56
Hình 3. 3. Phát hiện khuôn mặt và định danh.
Trong hình 3.3 chƣơng trình thử nghiệm phát hiện và nhận dạng trên đăc trƣng HOG và mô hình mạng DCNN, thuật toán nhận dạng tốt cho dữ liệu khuôn mặt chính diện, nền thay đổi ít, có thể bị che khuất ít do dùng đặc trƣng cục bộ HOG trƣớc khi đƣa vào huấn luyện mạng DCNN.
Hình 3.4 minh họa nhận dạng khuôn mặt trên ảnh gồm 2 khuôn mặt, khuôn mặt sau không đƣợc nhận dạng vì không có định danh trong cơ sở dữ liệu đƣợc xác định ban đầu. Do chƣơng trình thực nghiệm nhằm mục đích điểm danh tự động giám sát tự động, nên dữ liệu cũng mục tiêu cho điểm danh tự động.
57
Hình 3.4 Định danh khuôn mặt trong trong hai khuôn mặt
Qua quá trình thử nghiệm trên dữ liệu khuôn mặt ngƣời Lào, kết quả nhận dạng chính xác hơn, do đặc trƣng của ngƣời Lào là khuôn mặt góc cạnh hơn ngƣời Việt Nam, đặc trƣng hƣớng gradient thể hiện rõ nét hơn. Thời gian thực hiện thuật toán nhanh (thời gian thực).
3.4. Đánh giá thực nghiệm
Kết quả xác định và nhận dạng khuôn mặt ứng dụng mô hình CNN đạt đƣợc kết quả chính xác cao. Chƣơng trình thực nghiệm phát hiện nhanh chóng và chính xác hầu hết tất cả các khuôn mặt ngƣời Lào trong cơ sở dữ liệu thu thập. Độ chính xác xấp xỉ 97% với khuôn mặt chính diện, nền thay đổi ít. Một số trƣờng hợp không nhận dạng đƣợc khi khuôn mặt cuối đầu bị
58 che khuất quá 2/3.
Tuy nhiên khi ứng dụng với đối tƣợng live video từ webcam, vẫn xảy ra độ trễ khi đối tƣợng xoay và di chuyển cũng nhƣ không để khuôn mặt ở chính giữa khung hình làm ảnh hƣởng độ chính xác của kết quả nhận dạng.
Hoặc trong trƣờng hợp khi khuôn mặt bị che khuất bởi các đối tƣợng khác khoảng 2/3 phần khuôn mặt thì chƣơng trình thực nghiệm không thể phát hiện ra khuôn mặt và không thể định danh.
3.5. Kết luận chƣơng 3
Trong chƣơng này, luận văn đã tiến hành cài đặt thử nghiệm sử dụng HOG và mô hình học sâu dựa trên CNN đƣợc trình bày trong chƣơng hai nhằm giải quyết bài toán phát hiện và nhận dạng mặt ngƣời trong ảnh đầu vào. Kết quả đánh giá đạt đƣợc là sự thành công từ ý tƣởng và áp dụng các mô hình, kỹ thuật đã đề ra. Độ chính xác nằm ở mức tƣơng đối cao đối với tập dữ liệu không quá lớn. Cần phải nghiên cứu và phát triển hơn về độ chính xác trong thời gian thực khi gặp những trƣờng hợp ngoại cảnh không mong muốn.
59
KẾT LUẬN
1. Nội dung nghiên cứu và kết quả đạt đƣợc của luận văn
Bài toán phát hiện và nhận dạng khuôn mặt ngƣời đã đƣợc đặt ra từ lâu và đi cùng nó là hàng loạt các nghiên cứu và đề tài đƣợc xác lập, các ứng dụng đƣợc triển khai. Bài toán luôn đặt ra nhiều thách thức vì những khó khăn của nó. Các khó khăn chứng tỏ rằng bất cứ phƣơng pháp nào giải quyết bài toán sẽ không thể tránh khỏi một số khiếm khuyết nhất định. Mỗi hƣớng tiếp cận đƣợc đƣa ra đều đã đạt đƣợc những thành quả nhất định, hƣớng nào cũng có những thành công, những hạn chế. Vì bài toán này là bài toán không có lời giải tối ƣu cho mọi trƣờng hợp. Tuy nhiên, do tính cấp thiết từ yêu cầu của thực tế mà đây luôn là một đề tài hấp dẫn các nhà khoa học, các chuyên gia nghiên cứu và ứng dụng.
Trong nội dung nghiên cứu đề tài “Nghiên cứu nhận dạng mặt và ứng dụng trong giám sát tự động” bản thân đã tìm hiểu các thuật toán, mô hình xử
lý và dự báo chuỗi thời gian, cũng nhƣ áp dụng các mô hình này để giải quyết bài toán đặt ra. Qua nghiên cứu, những kết quả chính mà luận văn đã đạt đƣợc nhƣ sau:
- Khái quát về ảnh số và các kỹ thuật xử lý ảnh số cũng nhƣ video. - Trình bày một số kỹ thuật và mô hình đƣợc sử dụng để giải quyết bài toán là mô tả đặc trƣng mạng nơ ron tích chập sâu CNN.
- Cài đặt thử nghiệm thuật toán trích chọn đặc trƣng khuôn mặt HOG và mô hình DCNN để phát hiện và nhận dạng mặt ngƣời với dữ liệu đầu vào là tập ảnh huấn luyện 100 ngƣời cùng đầu vào cần xác định khuôn mặt là ảnh/ video/ live video từ webcam. Kết quả thực nghiệm cho thấy kỹ thuật phát hiện và nhận dạng khuôn mặt khá hiệu quả trong trƣờng hợp khuôn mặt chính diện, nền thay đổi, sự che khuất ít, đặc biệt chính xác gần trên 97% cho khuôn mặt ngƣời Lào.
60
2. Kiến nghị và hƣớng nghiên cứu tiếp theo
Phát hiện và nhận dạng mặt ngƣời, đặc biệt là xử lý trong thời gian thực đã và tiếp tục là một bài toán đƣợc nhiều nhà nghiên cứu và cộng đồng quan tâm với nhiều ứng dụng to lớn, có tầm quan trọng không chỉ trong khoa học mà còn trong thực tiễn.
Tiếp tục phát triển để tăng tốc độ phát hiện và định danh khuôn mặt, cũng nhƣ theo dõi và phát hiện đƣợc khuôn mặt khi khuôn mặt di chuyển