Xem mẫu

  1. Giải thưởng Sinh viên Nghiên cứu khoa học Euréka lần thứ XIX năm 2017 Kỷ yếu khoa học NHẬN DẠNG KHUÔN MẶT NGƯỜI VỚI THÔNG TIN MẶT NGƯỜI KHÔNG ĐẦY ĐỦ Võ Hoàng Trọng* Trường Đại học Khoa học Tự nhiên – Đại học Quốc gia TP. Hồ Chí Minh *Tác giả liên hệ: hoangtrong2305@gmail.com TÓM TẮT Nhận dạng khuôn mặt người có nhiều ứng dụng trong đời sống. Tuy nhiên, bài toán này vẫn còn một số những thách thức nhất định vì ảnh mặt người thu được đôi khi bị mất hay bị nhiễu thông tin. Do đó, tôi trình bày một cách giải quyết vấn đề trên. Từ ảnh ban đầu, tôi phát hiện khuôn mặt và phân vùng mặt theo superpixel, từ đó tách mặt ra thành các vùng riêng biệt. Sau đó, tôi áp dụng Mạng neural tích chập để huấn luyện trên từng vùng mặt. Khi kiểm tra, tôi chỉ sử dụng một vài vùng thông tin có trên khuôn mặt để nhận dạng, sau đó, tôi đề xuất một cách kết hợp trễ các vùng bằng phương pháp bầu chọn, thông qua một hàm tính điểm để từ đó đưa ra kết luận danh tính của khuôn mặt trong ảnh. Tôi thực nghiệm phương pháp này dựa trên toàn mặt cũng như chỉ một vài phần trên khuôn mặt người. Từ khóa: Nhận dạng khuôn mặt người, mạng neural tích chập, superpixel, kết hợp trễ. FACE RECOGNITION BASED ON INCOMPLETED FACE INFORMATION Vo Hoang Trong* University of Science – VNU Ho Chi Minh City *Corresponding Author: hoangtrong2305@gmail.com ABSTRACT Face recognition has many applications in real life. However, this problem still has some major challenges because face image captured from a camera can be lost or has noise information. In this paper, I proposed a solution to solve those problems. Given a face image, first, I detect face on that image and partition face into individual areas by using superpixel. On testing, I recognize face by using areas that exist on the face, used a late fusion by voting method and a score function to determine the identification of the face. I experimented on the frontal face as well as some areas of the face. Keywords: Face recognition, convolutional neural network, superpixel, late fusion. TỒNG QUAN thông ở ngoài đường phố. Ngoài ra, các ứng Nhận dạng khuôn mặt người là một trong dụng liên quan đến nhận dạng khuôn mặt có những bài toán thu hút nhiều sự quan tâm thể kể như: Hệ thống phát hiện tội phạm, hệ trong ngành thị giác máy tính qua hơn 4 thập thống theo dõi nhân sự trong một đơn vị, hệ kỉ. Bài toán này là một phương pháp sinh trắc thống tìm kiếm thông tin trên ảnh, video dựa học giúp xác định danh tính người sở hữu trên nội dung. Tuy nhiên, bài toán này vẫn khuôn mặt cần kiểm tra. Thời gian gần đây, còn một số những thách thức nhất định khi với sự phát triển mạnh mẽ của Máy học, áp dụng vào thực tế vì ảnh mặt người thu nhiều thuật toán ra đời và giải quyết bài toán được đôi khi bị nhiễu sáng, mặt bị nghiêng nhận dạng mặt người với độ chính xác cao. hay chỉ chụp được một phần mặt, khiến Bài toán nhận dạng khuôn mặt người có thể thông tin trên mặt không đầy đủ, do đó áp dụng rộng rãi trong nhiều lĩnh vực khác những phương pháp áp dụng trên toàn khuôn nhau. Để bắt kịp ưu thế của Cuộc cách mạng mặt trước đây đạt kết quả không cao khi áp công nghiệp lần thứ 4 cũng như xây dựng dụng trên một phần khuôn mặt. Do đó, bài Thành phố thông minh, ta cần ứng dụng bài báo này sẽ trình bày một cách giải quyết bài toán nhận dạng khuôn mặt người thông qua toán nhận dạng khuôn mặt người với thông camera giám sát công cộng nhằm phát hiện tin trên mặt người không đầy đủ cũng như đối tượng trong đám đông như ở sân bay, sân khuôn mặt người bị nghiêng. vận động hay phát hiện người vi phạm giao Dựa vào đặc điểm thông tin không đầy đủ 124
  2. Giải thưởng Sinh viên Nghiên cứu khoa học Euréka lần thứ XIX năm 2017 Kỷ yếu khoa học trên mặt người nên tôi giải quyết bài toán Hiệu chỉnh Gamma để khôi phục nguyên theo hướng tiếp cận cục bộ trên mặt, cụ thể, trạng của bề mặt khuôn mặt người. Tôi đề tôi phân vùng mặt ra thành các vùng nhỏ và xuất một phương pháp để tự động xác định 𝛾, nhận dạng trên từng vùng, sau đó, tuỳ thuộc xét tập các mức xám trong vùng có mặt vào lượng thông tin có được trên ảnh kiểm người, tôi tính mật độ xác suất, từ đó tính tra, tôi sẽ lấy kết quả nhận dạng trên từng được giá trị trung vị và mode. Tôi xác định vùng tương ứng, sử dụng cách kết hợp trễ các tập các điểm ảnh tụ nhiều về vùng tối khi giá vùng riêng biệt dựa trên phương pháp bầu trị xám trung vị và mode nằm trong vùng tối, chọn và xây dựng một hàm tính điểm, từ đó còn trung vị và mode nằm trong vùng sáng đưa ra danh tính của ảnh mặt người kiểm tra thì tôi nói tập các điểm ảnh tụ nhiều về vùng sáng, ngược lại thì tập các điểm ảnh tụ nhiều VẬT LIỆU VÀ PHƯƠNG PHÁP về vùng trung bình. Phát hiện mặt người và phân vùng mặt Trên mặt người có những vùng đặc biệt mà bằng Superpixel từ đó tôi có thể phân biệt người này với Cho ảnh ban đầu, tôi sử dụng thuật toán Biểu người kia như mắt, mũi, miệng, làn da, do đồ độ dốc định hướng (Histogram of đó, tôi sẽ tách mặt thành các vùng riêng biệt Oriented Gradients – HOG) để phát hiện như mắt, mũi, miệng, má, trán, nên tôi đề khuôn mặt trong ảnh. Sau khi phát hiện xuất cách chia thành 12 vùng. Tôi thấy rằng khuôn mặt thì mặt có thể bị nghiêng, điều 12 phân vùng tạm thời có chứa những vùng này có thể làm nhiễu một số thông tin trên có nhiều thông tin quan trọng trên mặt như mặt, vì vậy tôi cần phải canh chỉnh lại khuôn miệng (vùng 5), mắt trái (vùng 8), mắt phải mặt bằng cách phân bố 68 điểm mốc lên (vùng 10) và mũi (vùng 11). Nhận xét rằng khuôn mặt. Từ 68 điểm mốc, tôi xác định những vùng da quanh mắt, mũi và miệng có được tâm mắt trái 𝐼mắt trái và tâm mắt phải mức xám tương đương nhau nên tôi sẽ sử 𝐼mắt phải , từ đó, ta có thể canh chỉnh khuôn dụng superpixel trên toàn mặt, mảng mặt (nếu khuôn mặt bị nghiêng) để đường superpixel nằm trong vùng nào nhiều nhất thì thẳng đi qua 𝐼mắt trái và 𝐼mắt phải song song với sẽ thuộc về vùng đó, sau đó ở mỗi vùng tôi cạnh dưới khuôn mặt. Đồng thời, tôi sử dụng lấy biên superpixel là biên của vùng, tôi sẽ những điểm mốc ở ngoài biên mặt để phân được 12 phân vùng mới. Sau khi xác định đoạn mặt người. những vùng tương ứng của mỗi superpixel, Do ảnh mặt người chịu ảnh hưởng bởi nguồn tôi được 12 phân vùng theo biên superpixel. sáng 𝐿 trong quá trình thu ảnh nên tôi dùng Hình 2. Cho ảnh vào (ảnh trái), tôi phát hiện khuôn mặt, hiệu chỉnh Gamma và phân vùng theo superpixel (ảnh giữa), sau đó, tôi thu được 12 phân vùng mới theo biên của superpixel (ảnh phải) 125
  3. Giải thưởng Sinh viên Nghiên cứu khoa học Euréka lần thứ XIX năm 2017 Kỷ yếu khoa học Huấn luyện mỗi vùng bằng CNN học xuống, do đó tôi sử dụng phân rã dạng Ngoài những đặc trưng nổi trội như hình hàm mũ với giá trị tốc độ học mà tôi khai báo dạng, màu sắc của vùng, trên vùng còn có ban đầu để có được giá trị tốc độ học mới khi những đặc trưng nhỏ hơn như nốt ruồi, vết huấn luyện (ban đầu tôi khai báo tốc độ học sẹo, nếp nhăn. Do đó, tôi mong muốn sau khi là 0.001). phân vùng, tôi có thể lấy được nhiều đặc CNN học các trọng số trong quá trình huấn trưng nhỏ trên từng vùng nên tôi sử dụng luyện bằng cách cộng các vector sai số, nhân Mạng neural tích chập (Convolutional Neural với tốc độ học khi trượt dốc ở bước lan Network - CNN) để huấn luyện trên từng truyền ngược để tạo ra các ma trận trọng số. vùng vì CNN có khả năng phát hiện những Khi nhân với tốc độ học, nếu tôi không đặc trưng nhỏ trên vùng đó một cách hiệu chuẩn hóa dữ liệu thì miền phân phối các giá quả. Tôi sử dụng kiến trúc CNN dựa trên trị đặc trưng ở mỗi đặc trưng sẽ khác nhau, kiến trúc của mạng VGG nhưng đơn giản do đó tốc độ học sẽ hiệu chỉnh mỗi chiều hơn, chủ yếu là lớp CONV  CONV  khác nhau, do đó tôi muốn mỗi đặc trưng MAXPOOLING được lặp lại nhiều lần nhằm phải có cùng miền xác định. Tôi tiến hành tiết kiệm thời gian cũng như có bước đánh chuẩn hóa bằng cách tính trung bình và độ giá sơ khởi về đề tài (Hình 3). Trong quá lệch chuẩn từng điểm ảnh trên từng kênh trên trình huấn luyện, tôi dùng softmax kết hợp toàn bộ dữ liệu huấn luyện và kiểm tra, sau cross entropy để tính toán sai số và Adam để đó, ở từng kênh mỗi ảnh tôi sẽ trừ đi giá trị tổi thiểu hoá sai số. Ngoài ra, khi huấn luyện trung bình để trung bình kênh và chia cho độ mô hình, thông thường ta cần giảm tốc độ lệch chuẩn tương ứng của kênh đó. Hình 3. Kiến trúc CNN sử dụng trong đề tài Phương pháp phân loại từ nhiều phân loại chính xác. Khi đó, hệ số 𝛼𝑖 bằng 𝛽𝑖 chia cho khác nhau tổng độ chính xác. Tôi thu được giá trị 𝑃𝑖 (𝑎) Vì lý do thông tin ở các vùng ít và có thể có trong quá trình huấn luyện trên từng vùng, vùng không có thông tin nên tôi xây dựng bộ với 𝑃𝑖 (𝑎) là xác suất vùng 𝑖 của đối tượng 𝑎 phân loại kết hợp trễ từ 𝑛 kết quả của 𝑛 bộ giống với vùng 𝑖 trong ảnh kiểm tra. phân loại trước đó dựa vào trọng số xác suất Sau khi kiểm tra trên 𝑛 vùng, áp dụng biểu của từng bộ phân loại. Mỗi kết quả của một thức arg max 𝑓(𝑢), đối tượng nào có điểm 𝑢 bộ phân loại xem như là một biến ngẫu cao nhất thì tôi kết luận ảnh kiểm tra chính là nhiên. của đối tượng đó. Cho ảnh kiểm tra, giả sử tôi chia mặt ra thành 𝑛 vùng, khi đó với mỗi vùng 𝑖, tôi chọn 𝑘 đối KẾT QUẢ VÀ THẢO LUẬN tượng có vùng 𝑖 trên mặt có xác suất giống Tôi thực nghiệm trên máy sử dụng hệ điều với vùng 𝑖 trên ảnh kiểm tra nhất, sau đó tôi hành Windows 10 Pro bản 64 bit với RAM tính điểm 𝑘 đối tượng đấy. Sau 𝑛 vùng, đối 24GB, Intel(R) Core(TM) i7-6700K CPU @ tượng nào có điểm cao nhất, tôi kết luận đó 4.00GHz, huấn luyện bằng GPU NVIDIA chính là đối tượng thuộc ảnh kiểm tra. Tôi GeForce GTX 980, dung lượng 4 GB. Trong xác định hệ số vùng bằng cách sau khi huấn quá trình huấn luyện, tôi sử dụng Python kết luyện từng vùng 𝑖 trên tập huấn luyện, tôi hợp với thư viện mã nguồn mở TensorFlow đưa vùng 𝑖 trong tập duyệt vào để xác định do Google phát triển. độ chính xác 𝛽𝑖 , sau đó, tôi tính tổng độ Tôi sử dụng bộ dữ liệu FaceScrub (Hình 4), 126
  4. Giải thưởng Sinh viên Nghiên cứu khoa học Euréka lần thứ XIX năm 2017 Kỷ yếu khoa học bộ dữ liệu này sử dụng một số ảnh công khai mỗi đối tượng có 80 ảnh và có đủ 12 vùng trên mạng, bao gồm 530 người nổi tiếng và trên mặt. Tôi chia ra mỗi đối tượng có 48 ảnh tổng cộng có 106863 ảnh, trung bình mỗi huấn luyện, 16 ảnh duyệt và 16 ảnh kiểm tra. người có khoảng 200 ảnh, ảnh trong bộ dữ Để tránh hiện tượng quá khớp khi huấn luyện liệu này rất đa dạng với nhiều góc nghiêng do dữ liệu trên mỗi đối tượng nhỏ, tôi đã tăng của mặt, trong cùng một đối tượng, khuôn số lượng ảnh huấn luyện bằng cách ở mỗi mặt có nhiều đặc điểm khác nhau như đeo ảnh, tôi tạo thêm 30 ảnh khác. Tôi huấn kính, đa dạng về kiểu tóc, râu, ảnh khi già, luyện trên 12 vùng riêng biện bằng CNN, thu trẻ cũng như chất lượng ảnh không đồng đều, được độ chính xác trên từng vùng dựa trên có ảnh bị nhiễu sáng, ảnh bị mờ. Những ảnh tập duyệt. Sau đó, Tôi thực nghiệm bằng này được lấy từ những cảnh thực ở trên mạng cách tổ hợp toàn bộ 12 vùng trên mặt. Ngoài với nhiều điều kiện, môi trường lấy ảnh khác ra, tôi còn nhận dạng mặt nhưng chỉ sử dụng nhau. Bộ dữ liệu FaceScrub được sử dụng một số vùng nhằm đảm bảo tính thiếu thông làm dữ liệu trong cuộc thi về nhận dạng mặt tin trên mặt người. Khi thực nghiệm, tôi sẽ người MegaFace do trường Đại học thực nghiệm trên 3 trường hợp: Tập duyệt, Washington, Hoa kỳ tổ chức. tập kiểm tra và tập kết hợp từ 2 tập duyệt và Khi thực nghiệm, tôi sử dụng 50 đối tượng, kiểm tra. Hình 4. Một số ảnh trong bộ dữ liệu FaceScrub Bảng 1. Một số trường hợp thông tin không đầy đủ trên mặt dùng để thực nghiệm (1) (2) (3) (4) 127
  5. Giải thưởng Sinh viên Nghiên cứu khoa học Euréka lần thứ XIX năm 2017 Kỷ yếu khoa học Bảng 2. Kết quả nhận dạng ở các trường hợp Độ chính xác trên tập Độ chính xác trên tập Độ chính xác khi ghép Trường hợp kiểm tra duyệt tập duyệt và kiểm tra (1) 85.6250% 86.0000% 85.8125% (2) 79.0000% 80.8750% 79.9375% (3) 72.8750% 73.0000% 72.9375% (4) 64.8750% 63.7500% 64.3125% KẾT LUẬN VÀ ĐỀ NGHỊ Bảng 1, tôi thấy rằng khuôn mặt nếu có thêm Công trình này đã đề xuất một phương pháp những vùng chứa nhiều thông tin như mắt, nhận dạng khuôn mặt người với thông tin mũi, miệng thì kết quả nhận dạng cao hơn so không đầy đủ trên mặt người. Tôi đề xuất với vùng chứa ít thông tin như trán, má. phương pháp chia mặt thành 12 vùng theo Hướng phát triển sắp tới, tôi sẽ huấn luyện superpixel, sau đó áp dụng CNN để nhận với nhiều ảnh hơn cũng như nghiên cứu cách dạng từng vùng. Khi đưa ảnh kiểm tra để áp dụng thuật toán vào mặt nghiên hẳn một nhận dạng, tuỳ vào lượng thông tin có trong phía và đề xuất một phương pháp tự phát ảnh, tôi lấy những vùng tương ứng, sau đó áp hiện vùng thông tin có trên mặt người. Ngoài dụng cách kết hợp trễ bằng phương pháp bầu ra, do mỗi vùng trên mặt có những đặc điểm chọn dựa vào vector xác suất, sau tổ hợp kết khác nhau nên cần có những kiến trúc học quả nhận dạng từng vùng, chọn đối tượng có đặc thù thay vì tôi dùng một kiến trúc mạng điểm cao nhất, từ đó đưa ra kết luận ảnh VGG cho toàn bộ 12 vùng. kiểm tra thuộc về đối tượng đấy. Dựa vào TÀI LIỆU THAM KHẢO ACHANTA, R. ET AL., (2012): SLIC superpixels compared to state-of-the-art superpixel methods. IEEE transactions on pattern analysis and machine intelligence, 34(11), pp. 2274-2282. DALAL, N. & TRIGGS, B., (2005): Histograms of oriented gradients for human detection. Computer Vision and Pattern Recognition, 2005. CVPR 2005. IEEE Computer Society Conference on, June, Volume 1, pp. 886-893. GOOGLE BRAIN TEAM, (2015): TensorFlow: An open-source software library for Machine Intelligence. KAZEMI, V. & SULLIVAN, J., (2014): One millisecond face alignment with an ensemble of regression trees. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 1867-1874. KINGMA, D. & BA, J., (2014): Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980. VISION & INTERACTION GROUP, (2016). FaceScrub: A Dataset With Over 100,000 Face Images of 530 People. 128
nguon tai.lieu . vn