CHƯƠNG 1: KHÁI QUÁT VỀ NHẬN DIỆN KHUÔN MẶT ĐOÁN TUỔI 1.1 Tổng quan về nhận diện khuôn mặt đoán tuổi Nhận dạng khuôn mặt là một bài toán lâu đời và được nghiên cứu rộng rãi trong khoảng hơn 30 năm trở lại đây. Bài toán nhận dạng khuôn mặt có thể áp dụng rộng rãi trong nhiều lĩnh vực khác nhau. Các ứng dụng liên quan đến nhận dạng khuôn mặt có thể kể như: Hệ thống phát hiện tội phạm, hệ thống theo dõi nhân sự trong một đơn vị, hệ thống tìm kiếm thông tin trên ảnh, video dựa trên nội dung, … Và chắc hẳn đã nghe qua câu truyện SharkTank Việt Nam có một startup làm một cây bán hàng, khi khách hàng đến đứng trước camera sẽ dự đoán được tuổi, giới tính của khách để chuẩn bị những mặt hàng phù hợp đúng không? Phải nói là mình rất thú vị và ấn tượng với bài toán đó của họ và hôm nay chúng ta sẽ cùng làm bài toán đoán tuổi qua khuôn mặt.2 Bài toán dự đoán tuổi Nhiệm vụ của bài toán này là đưa ra ước lượng tuổi của một người từ bức ảnh chụp khuôn mặt của họ. Bài toán này được giới thiệu lần đầu tiên bởi Kwon và Lobo trong đó, họ sử dụng phương pháp phát hiện và tính toán tỷ lệ của các nếp nhăn trên khuôn mặt để có thể dự doán độ tuổi và sau đó nó được cải tiến bởi Ramanathan và Chellappa.
Tuy nhiên, phương pháp này có thể phân biệt được độ tuổi giữa người lớn và trẻ em, nhưng rất khó có thể phân biệt được độ tuổi giữa những người lớn với nhau. Một cách tiếp cận khác do Geng cùng các cộng sự trình bày là sử dụng AGES cho hiệu quả cao hơn nhưng thuật toán này cần một lượng lớn hình ảnh khuôn mặt của từng người và đặc biệt hình ảnh đầu vào này cần phải ở chính giữa, mặt hướng thẳng và được căn chỉnh đúng kích thước. Tuy nhiên, trên thực tế thì các bức ảnh chụp lại rất ít khi thỏa mãn điều kiện như vậy do đó cách tiếp cận này không được phù hợp với nhiều ứng dụng thực tế. Để có thể dự đoán được tuổi qua khuôn mặt thì trước hết chúng ta cần phải có một hệ thống nhận dạng khuôn mặt người.Hệ thống nhận dạng mặt người là một hệ thống nhận vào là một ảnh hoặc một đoạn video (một chuỗi các ảnh).
Qua xử lý tính toán hệ thống xác định được vị trí mặt người trong ảnh (nếu có) và xác định là người Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 9 nào trong số những người hệ thống đã được biết (qua quá trình học) hoặc là người lạ. Sau khi đã có thông tin khuôn mặt chúng ta đưa khuôn mặt vào thuật toán để thuật đoán đưa ra độ tuổi của khuôn mặt mới được đưa vào.3 Yêu cầu đề tài Từ ảnh chụp một phần (hay một góc) của khuôn mặt, ta cần xác định xem mặt đó là của ai. Yêu cầu ảnh phải đảm bảo thấy được ít nhất 50% diện tích khuôn mặt và ít nhất một phần chi tiết ở mắt, mũi, miệng … Từ đó xác định được tuổi của khuôn mặt Hình 1. 1 Xác định tuổi của khuôn mặt Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 10 CHƯƠNG 2: CÁC THUẬT TOÁN NHẬN DIỆN KHUÔN MẶT 2.
Khái quát về xử lý ảnh 2. Một số khái niệm cơ bản Xử lý ảnh là một trong những mảng quan trọng nhất trong kỹ thuật thị giác máy tính, là tiền đề cho nhiều nghiên cứu thuộc lĩnh vực này. Hai nhiệm vụ cơ bản của quá trình xử lý ảnh là nâng cao chất lượng thông tin hình ảnh và xử lý số liệu cung cấp cho các quá trình khác trong đó có việc ứng dụng thị giác vào điều khiển. Quá trình bắt đầu từ việc thu nhận ảnh nguồn (từ các thiết bị thu nhậnảnh dạng số hoặc tương tự) gửi đến máy tính.
Dữ liệu ảnh được lưu trữ ở định dạng phù hợp với quá trình xử lý. Người lập trình sẽ tác động các thuật toán tương ứng lên dữ liệu ảnh nhằm thay đổi cấu trúc ảnh phù hơp với các ứng dụng khác nhau. Quá trình xử lý nhận dạng ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm cho ra kết quả mong muốn. Kết quả đầu ra của một quá trình xử lý ảnh có thể là một ảnh “đã được xử lý” hoặc một kết luận.
Ảnh được xử lý Ảnh Xử lý ảnh Kết luận Hình 2. 1 Quá trình xử lý ảnh Ảnh có thể xem là tập hợp các điểm ảnh và mỗi điểm ảnh được xem như là đặc trưng cường độ sáng hay một dấu hiệu nào đó tại một vị trí nào đó của đối tượng trong không gian và nó có thể xem như một hàm n biến P(c,c1,c2, …).Do đó,ảnh trong xử lý ảnh có thể xem như ảnh n chiều. * Sơ đồ tổng quát của một hệ thống xử lý ảnh: Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 11 Hệ quyết định Chọn đặc Đối sánh rút Thu Tiền xử ra kết luận Hậu nhận lý điểm xử lý Lưu trữ Hình 2. 2 Các bước cơ bản trong một hệ thống xử lý ảnh 2.
Các hệ thống xử lý ảnh a. Tiền xử lý Tiền xử lý là giai đoạn đầu tiên trong xử lý ảnh số. Tuỳ thuộc vào quá trình xử lý tiếp theo trong giai đoạn này sẽ thực hiện các công đoạn khác nhau như: nâng cấp, khôi phục ảnh, nắn chỉnh hình học, khử nhiễu v. Trích chọn đặc điểm Các đặc điểm của đối tượng được trích chọn tuỳ theo mục đích nhận dạng trong quá trình xử lý ảnh.
Trích chọn hiệu quả các đặc điểm giúp cho việc nhận dạng các đối tượng ảnh chính xác, với tốc độ tính toán cao và dung lượng nhớ lưu trữ giảm. Đối sánh, nhận dạng Nhận dạng tự động (automatic recognition), mô tả đối tượng, phân loại và phân nhóm các mẫu là những vấn đề quan trọng trong thị giác máy, được ứng dụng trong nhiều ngành khoa học khác nhau. Ví dụ mẫu có thể là ảnh của vân tay, ảnh của một vật nào đó được chụp, một chữ viết, khuôn mặt người hoặc một ký đồ tín hiệu tiếng nói. Khi biết một mẫu nào đó, để nhận dạng hoặc phân loại mẫu đó.Hệ thống nhận dạng tự động bao gồm ba khâu tương ứng với ba giai đoạn chủ yếu sau đây: Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 12 Thu nhận dữ liệu và tiền xử lý.
Biểu diễn dữ liệu. Nhận dạng, ra quyết định. Bốn cách tiếp cận khác nhau trong lý thuyết nhận dạng là: Đối sánh mẫu dựa trên các đặc trưng được trích chọn. Phân loại thống kê.
Đối sánh cấu trúc. Phân loại dựa trên mạng nơ-ron nhân tạo. Trong các ứng dụng rõ ràng là không thể chỉ dùng có một cách tiếp cận đơn lẻ để phân loại “tối ưu” do vậy cần sử dụng cùng một lúc nhiều phương pháp và cách tiếp cận khác nhau. Do vậy, các phương thức phân loại tổ hợp hay được sử dụng khi nhận dạng và nay đã có những kết quả có triển vọng dựa trên thiết kế các hệ thống lai (hybrid system) bao gồm nhiều mô hình kết hợp.Xây dựng hệ thống đưa ra tuổi từ khuôn mặt Một hệ thống nhận diện khuôn mặt người có thể được xây dựng qua rất nhiều công đoạn khác nhau và rất phúc tạp, nhưng ta có thể khái quát chung mọi hệ thông nhận dạng khuôn mặt người gồm có 3 bước cơ bản sau: Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 13 Hình 2.
3 Hệ thống nhận diện mặt người đặc trưng Tiền xứ lý: hệ thống nhận vào một ảnh tĩnh, sau đó có thể sử lý ảnh cho chất lượng tốt hơn, như chỉnh lại độ sáng, giảm độ nhiễu. điều này giúp cho quá trình rút trích các đặc trưng của khuôn mặt được dễ dáng hơn rất nhiều. Quá trình tiền xử lý thường khá đơn giản và nhanh gọn nên không cần dùng các thuật toán phức tạp và mất nhiều thời gian. Trích rút các đặc trưng: Trích rút đặc trưng là kỹ thuật sử dụng các thuật toán để lấy ra những thông tin mang những đặc điểm riêng biệt của một người.
Nhận diện khuôn mặt: sau khi đã rút trích các đặc trưng, sẽ đưa vào khối nhận dạng để phân lớp đối tượng. Đưa ra tuổi: Thông qua các file mô tả khuôn mặt cũng như thông tin mặt người gồm ngày, tháng, năm sinh, quê quán,…của file Wiki ta chuyển Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 14 thông tin ngày, tháng, năm sinh về năm sinh sau đó lấy thời gian chụp ảnh hiện tại trừ đi năm sinh để có được tuổi. Nhận dạng khuôn mặt sử dụng Bag- of- Words 2.1 Chi tiết thuật toán Các ảnh khuôn mặt đều cùng một loại vật thể, cho nên nếu ta trính xuất đặc trưng khuôn mặt bằng cách thành tập các phần nhỏ thì điểu này không đảm bảm rõ thông tin của khuôn mặt Hình 2. 4 Sơ đồ thuật toán Khối Bag of Word Ta chia ảnh thành các khối 5 × 5 và xem mỗi khối nhỏ là vùng quan tâm (ROI – Region of Interest).
Với mỗi ROI, ta tính đặc trưng SIFT đặc trên mỗi đoạn lấy mẫu dài 2 điểm ảnh, thu được vector SIFT 128 chiều, từ đó, mỗi khối ta thu được một tập các vector SIFT. Ở bước huấn luyện, sử dụng thuật toán -means chuyển đổi vector SIFT ở mỗi ROI thành các codeword. Ở trong một ROI, ta phân vùng các đặc trưng SIFT ở mỗi đoạn thành cụm, khi đó ta định nghĩa codeword là tâm của cụm. Một codebook bao gồm codeword của cùng một ROI và từ dữ liệu huấn luyện, ta được 5 × 5 codebook.
Cuối cùng, ta đối chiếu mỗi vector SIFT của mỗi đoạn ở mỗi ROI với codebook tương ứng, sử dụng biểu đồ tần số của các codeword khác nhau và dùng biểu đồ này làm đặc trưng của ROI, sau đó ta nối dài 5 × 5 biểu đồ để thu được một vector biểu diễn ảnh khuôn mặt. Sử dụng SVM tuyến tính để huấn luyện biểu đồ của từng người. Ở bước kiểm tra, ta cũng chia ảnh thành 5 × 5 khối, thu được 5 × 5 Downloaded by SAU DO (saudinh3@gmail.com) lOMoARcPSD|39270902 15 biểu đồ codeword sử dụng codebook đã huấn luyện. Nối dài biểu đồ này thu được vector biểu diễn ảnh, ta phân loại ảnh bằng phân loại SVM với mô hình huấn luyện.
Kết Quả Thực Nghiệm Nhóm tác giả sử dụng bộ dữ liệu AR và XM2VTS để thực nghiệm. 5 Ảnh trong bộ dữ liệu AR. Ảnh vào được nét xuống kích thước 270 × 230, nhóm thực nghiệm trên bộ dữ liệu AR với 119 đối tượng, huấn luyện trong bộ AR01, sủ dụng bộ AR02 – AR08, AR11, AR15 - AR21 và AR24 để kiểm tra. Kết quả thực nghiệm với 3 trạng thái: Cảm xúc khuôn mặt, Ảnh sáng, Che khuất Hình 2.