Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt
Chuyên đề: “Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt” Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn Hùng MỤC LỤC I. GI I THI UỚ Ệ 4 II. S I KH I PH N M M:Ơ ĐỒ Ố Ầ Ề 5 III. THU TH P VÀ CHU N HÓAẬ Ẩ 6 1. Thu th pậ 6 2. Chu n hóa nhẩ ả 7 a. C t và xoay chu n nh:ắ ẩ ả 7 b. Chu n sáng nhẩ ả 12 III. TRÍCH CH N C TÍNHỌ ĐẶ 13 a. Quá trình h cọ 14 b. Quá trình t o đ c tínhạ ặ 22 IV. QUÁ TRÌNH NH N D NGẬ Ạ 24 V. GIAO DI NỆ 26 TÀI LI U THAM KH OỆ Ả 27 PH L C CÁC HÀM Ụ Ụ 28 - 1 - Chuyên đề: “Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt” Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn Hùng DANH MỤC HÌNH VẼ HÌNH 1. MÔ HÌNH T NG QUÁT 2 KH I CHÍNH C A H TH NG.Ổ Ố Ủ Ệ Ố 5 HÌNH 1. S KH I PH N M M H TH NG NH N D NG M T NG IƠ ĐỒ Ố Ầ Ề Ệ Ố Ậ Ạ Ặ ƯỜ 5 HÌNH 2. QUÁ TRÌNH THU TH P VÀ TÁCH I T NG KH I NH. A. - NHẬ ĐỐ ƯỢ Ỏ Ả Ả N N, B- NH CH A I T NG, C. K T QU TR NH, D. M T N SAU KHIỀ Ả Ư ĐỐ ƯỢ Ế Ả Ừ Ả Ặ Ạ L C NHI U, E – I T NG C TÁCH KH I N N.Ọ Ễ ĐỐ ƯỢ ĐƯỢ Ỏ Ề 7 HÌNH 3. KH I CHU N HÓA NHỐ Ẩ Ả 8 HÌNH 4. XÁC NH VÙNG M T B NG PHÂN TÍCH L C M C XÁMĐỊ Ắ Ằ ƯỢ ĐỒ Ứ 9 HÌNH 4. QUÁ TRÌNH T NG NG TÁCH VÙNG M T.ĐẶ ƯỠ Ắ 9 HÌNH 5. XÁC NH TÂM M T C A I T NG ĐỊ Ắ Ủ ĐỐ ƯỢ 10 HÌNH 5(B). XÁC NH GÓC NGHIÊNG C A KHUÔN M T D A TRÊN TÂM M T.ĐỊ Ủ Ặ Ự Ắ 10 HÌNH 6. XOAY CHU N I T NG THEO GÓC Ẩ ĐỐ ƯỢ 12 HÌNH 7 K T QU CÂN B NG M C XÁM, BI U SAU KHI M C XÁM PHÂN BẾ Ả Ằ Ứ Ể ĐỒ Ứ Ố U H N SO V I BAN U.ĐỀ Ơ Ớ ĐẦ 13 HÌNH 8. S BÊN TRONG KH I TRÍCH CH N C TÍNH S D NG PCAƠ ĐỒ Ố Ọ ĐẶ Ử Ụ 14 HÌNH 9 (A). CÁC NH H C C A B D LI U 1Ả Ọ Ủ Ộ Ữ Ệ 15 HÌNH 9 (B). CÁC NH H C C A B D LI U 2.Ả Ọ Ủ Ộ Ữ Ệ 16 HÌNH 10. CHU N HÓA MA TR N NHẨ Ậ Ả 17 HÌNH 11. TRUNG BÌNH NH C A CÁC T P D LI U H C.Ả Ủ Ậ Ữ Ệ Ọ 17 HÌNH 12. BI U GIÁ TR RIÊNG C A COVARIANCE MATRIX. CH N 34 GIÁỀ ĐỒ Ị Ủ Ọ TR RIÊNG U TIÊN TRÍCH CH N C TÍNH.Ị ĐẦ ĐỂ Ọ ĐẶ 20 HÌNH 13. 34 EIGENFACES TÌM C.ĐƯỢ 20 HÌNH 14. BI U GIÁ TR RIÊNG C A COVARIANCE MATRIX. CH N 26 GIÁỀ ĐỒ Ị Ủ Ọ TR RIÊNG U TIÊN TRÍCH CH N C TÍNH.Ị ĐẦ ĐỂ Ọ ĐẶ 21 HÌNH 15. 26 EIGENFACES TÌM C.ĐƯỢ 22 HÌNH 16. KHÔI PH C NH T CÁC VEC-T C TÍNHỤ Ả Ừ Ơ ĐẶ 23 - 2 - Chuyên đề: “Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt” Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn Hùng HÌNH 17. NH N D NG THEO KHO NG CÁCH EUCLIDE.Ậ Ạ Ả 25 HÌNH 18. GIAO DI N CH NG TRINH, V I K T QU LÀ NH N D NG CỆ ƯƠ Ớ Ế Ả Ậ Ạ ĐƯỢ I T NG.ĐỐ ƯỢ 26 - 3 - Chuyên đề: “Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt” Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn Hùng I. GIỚI THIỆU Nhận dạng mặt người là cách dễ dàng nhất mà con người sử dụng để phân biệt người với người. Tuy nhiên, công việc dễ dàng đối với con người này lại rất khó để thể hiện bằng công thức toán học. Cùng với sự phát triển của toán học và khoa học máy tính, vấn đề nhận dạng mặt người đang có được điều kiện thuận lợi để được giải quyết. Nhận dạng mặt người là một dạng của bài toán nhận dạng mẫu vật (pattern recognition) dựa trên những đặc điểm của một khuôn mặt. Khuôn mặt cần nhận dạng sẽ được đem so sánh với các khuôn mặt mẫu theo một cách nào đó. Kết quả của quá trình nhận dạng là cho biết khuôn mặt có trong ảnh đầu vào là “đã được biết đến” hay “chưa được biết đến”. Trong một hệ thống điều khiển, kết quả đó sẽ được sử dụng để thực hiện các chức năng điều khiển của hệ thống. Cho một ảnh đầu vào có chứa khuôn mặt người cần nhận dạng. Khi đó mối quan hệ giữa mức xám của các điểm ảnh trên ảnh đầu vào sẽ phản ánh các đặc tính của khuôn mặt, ví dụ như: − Vị trí, diện tích của các vùng tóc, vùng mắt, vùng miệng, vùng da mặt,… − Hình dạng khuôn mặt, hình dạng mắt, mũi, miệng,… − Khoảng cách giữa 2 mắt, khoảng cách lông mày,… Từ các mối quan hệ đó, sử dụng kỹ thuật xử lý ảnh số ta có thể tìm được các đặc trưng cho mỗi khuôn mặt. So sánh đối chiếu giữa các đặc trưng của khuôn mặt trong ảnh với cơ sở dữ liệu, ta có thế xác nhận được gương mặt đó là “chưa được biết”, hay “đã được biết” và chỉ ra người đó. Hệ thống xử lý bao gồm các khối sau: T hu nhận, s ố hóa ảnh C am era S ens or P hân tíc h ảnh N hận dạng, ư ớ c lư ợ ng X ử lý kết quả Ảnh số Kết quả Outpu t In p u t TH U TH Ậ P Ả N H X Ử LÝ Ả N H - 4 - Chuyên đề: “Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt” Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn Hùng Hình 1. Mô hình tổng quát 2 khối chính của hệ thống. Quá trình được nhìn theo 2 khối là khối thu thập và khối xử lý nhận dạng. Khối thu thập có nhiệm vụ ghi lại được hình ảnh xuất hiện trước Camera khi được yêu cầu. Khối xử lý có nhiệm vụ xử lý tín hiệu ảnh , gồm các phần chính sau: - Phân tích ảnh: o Khâu chuẩn hóa: Đưa ảnh thu thập về một định dạng chuẩn cho trước (độ sáng, kích thước,…) o Khâu trích chọn đặc tính: tìm đặc tính đặc biệt để có thể phân biệt giữa các đối tượng với nhau. - Nhận dạng, ước lượng o Khâu phân loại và nhận dạng: so sánh đặc tính ảnh đầu vào và cơ sở dữ liệu có trước để xác nhận đối tượng nhận dạng. - Khâu xử lý kết quả nhận dạng: Các thao tác sau khi nhận dạng thành công. Khối phần mềm sẽ đảm nhiệm công việc xử lý ảnh trên. II. SƠ ĐỒI KHỐI PHẦN MỀM: Phần mềm chủ yếu là được viết đối với khối Xủ lý ảnh số. Tiền xử lý Trích chọn đặc tính Thu thập và tách mặt người trong ảnh Cơ sở dữ liệu Phân loại, nhận dạng Xử lý kết quả Ảnh cần nhận dạng Ảnh được chuẩn hóa Vec-tơ đặc tính Xử lý ảnh số Hình 1. Sơ đồ khối phần mềm hệ thống nhận dạng mặt người - 5 - Chuyên đề: “Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt” Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn Hùng III. THU THẬP VÀ CHUẨN HÓA 1. Thu thập Đầu vào của khối: ảnh lấy được từ Webcam. Đầu ra của khối: Ảnh người cần nhận dạng được tách khỏi nền. Khối này sử dụng phương pháp trừ ảnh để tách đối tượng. Cho ảnh nền X và ảnh chứa đối tượng Y có cùng kích thước 600×800. Ảnh kết quả của phép trừ ảnh là I. Xét pixel có tọa độ 0 0 ( , )x y , ta có: 0 0 0 0 0 0 0 0 0 0 1 ( , ) ( , ) ( , ) 0 ( , ) ( , ) khi X x y Y x y I x y khi X x y Y x y ε ε − > = − ≤ Kết quả của phép trừ ảnh là một ảnh nhị phân. Khu vực chứa đối tượng sẽ có màu trắng (giá trị bằng 1), và khu vực còn lại sẽ có màu đen (giá trị bằng 0). Tuy nhiên, do sự thay đổi cường độ sáng ở một mức độ nào đó giữa ảnh nền và ảnh chứa đối tượng, ảnh sẽ có nhiều nhiễu. Lọc nhiễu: - Lọc các nhiễu (các vùng màu trắng không có đối tượng) có diện tích bé. Vùng chứa đối tượng luôn là vùng có diện tích tích lớn nhất. - Lọc các vùng đen bên trong khu vực chứa đối tượng. - 6 - Chuyên đề: “Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt” Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn Hùng (a) (b) (e) (c) (d) Hình 2. Quá trình thu thập và tách đối tượng khỏi ảnh. a. - Ảnh nền, b- Ảnh chưa đối tượng, c. Kết quả trừ ảnh, d. Mặt nạ sau khi lọc nhiễu, e – Đối tượng được tách khỏi nền. 2. Chuẩn hóa ảnh - Đầu vào: Ảnh đối tượng sau khi đã được tách ở khâu thu thập. - Đầu ra: Ảnh có kích thước cố định (310×250 pixels), bao trọn khuôn mặt đối tượng, được xoay thẳng và được cân bằng sáng. a. Cắt và xoay chuẩn ảnh: Để thực hiện nhiệm vụ tìm khung khuôn mặt mà xoay chuẩn, đồ án sử dụng phương pháp tìm tâm 2 mắt để xác định vị trí khuôn mặt. Để xác định vùng mắt, ta nhận thấy mắt là một vùng có ánh sáng tối nằm ở một khu vực riêng trên khuôn mặt, xung quanh là vùng màu da. Do đó, ta sử dụng phương pháp tách vùng để tìm ra vùng chứa mắt. Phương pháp phân ngưỡng được sử dụng. - 7 - Chuyên đề: “Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt” Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn Hùng Các bước thực hiện: Tạo mặt nạ tách ngưỡng màu mắt Loại bỏ vùng có diện tích quá lớn hoặc quá bé Xác định vùng chứa mắt Xác định tâm của 2 mắt Cắt và xoay ảnh I INPUT OUTPUT Mask = I(find(I<thresh)) Mask = bwareaopen(Mask,1000) Mask = bwareaclose(Mask,100) [L1,L2,R1,R2] = LeftRight(Mask) Alpha = Angle(L1,L2,R1,R2] Mask1 = imrotate(Mask, Alpha) I1 = imrotate(I, Alpha) Output = CutImage(I1 .* Mask1) Hình 3. Khối chuẩn hóa ảnh a.1 – Xác định tâm mắt Ta thấy, số pixel quy định gương mặt có tỉ lệ gần như không đổi so với tổng số pixel (điều này do ta đã quy định chặt chẽ điều kiện biên). - 8 - Chuyên đề: “Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt” Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn Hùng Ảnh chứa đối tượng Lược đồ mức xám của ảnh Hình 4. Xác định vùng mắt bằng phân tích lược đồ mức xám Ta thấy khu mực chứa màu mắt khá nổi bật trong lược đồ mức xám. Nhận thấy tỉ lệ của vùng da và nền so với tổng số pixel luôn nằm trong một khoảng cố định, do đó ta có thể tính được ngưỡng của vùng màu mắt. Do diện tích của vùng mắt là nhỏ hơn rất nhiều so với vùng tóc, nên ta sử dụng chương trình lọc để bỏ đi các vùng có diện tích lớn. Vùng có diện tích lớn hơn ngưỡng sẽ được thay thế bằng giá trị 0 (màu đen). Qua khảo sát, đồ án lựa chọn ngưỡng đó là 1000 pixels. Việc đặt ngưỡng thông thường sẽ sinh ra các vùng nhiễu có diện tích bé. Để lọc các vùng này, ta cũng sử dụng hàm lọc giống như trên nhưng chỉ để lọc với các vùng có diện tích bé hơn ngưỡng. Qua khảo sát, đồ án lựa chọn ngưỡng đó là 100 pixels. Sau khi lọc nhiễu, ta có kết quả như sau: Ảnh mặt nạ sau khi đặt ngưỡng tách màu mắt Ảnh mặt nạ sau khi được lọc nhiễu. Vùng mắt được tách Hình 4. Quá trình đặt ngưỡng tách vùng mắt. Sau khi tách được vùng mắt, sử dụng phương pháp tìm tâm của một vùng, ta có được tâm của mắt như sau: - 9 - Chuyên đề: “Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt” Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn Hùng Hình 5. Xác định tâm mắt của đối tượng Tìm được tâm 2 mắt, từ đây ta có thể thực hiện phép xoay ảnh và tách được vùng mặt như mong muốn. a.2– Xoay ảnh và tắt khung mặt Từ tọa độ tâm 2 mắt, ta xác định góc nghiêng α của khuôn mặt so với phương thẳng đứng. Nếu 0 5 α > , ta sẽ thực hiện phép xoay ảnh. α α Mắt phải Mắt trái Hình 5(b). Xác định góc nghiêng của khuôn mặt dựa trên tâm mắt. Giả sử tại tâm 2 mắt có tọa độ tương ứng là (x 1 ,y 1 ) và (x 2 ,y 2 ) khi đó ta có: 2 1 2 1 y x y tg x α − = − Xoay chuẩn đổi tượng thực chất là một phép biến đổi hệ tọa độ. Giả sử ảnh f ban đầu ở trong hệ tạo độ (w,z), thông qua phép biến đổi T ta được ảnh f’ trong hệ tọa độ (x, y); ( ) { } ( , ) ,x y T w z= Phương pháp biến đổi phổ biến hay được dùng là phương pháp affine transform theo phương pháp này thì: - 10 - [...]... 94.8 Các kết quả gần với đối tượng nhất tương ứng với các giá trị σ Hình 17 Nhận dạng theo khoảng cách Euclide - 25 - Chuyên đề: Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn Hùng V GIAO DIỆN Hình 18 Giao diện chương trinh, với kết quả là nhận dạng được đối tượng - 26 - Chuyên đề: Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt Thực... khi xoay, tọa độ của các điểm trong ảnh cũ sẽ bị dịch chuyển đi theo công thức trên Trong hệ tọa độ mới, ta có được khuôn mặt theo tư thế thẳng đứng và hai tâm mới tương ứng với mắt của đối tượng Từ đây, ta có được khung để tách phần mặt mong muốn ra khỏi ảnh Kết quả thực hiện như sau: - 11 - Chuyên đề: Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn... trung bình - 30 - Chuyên đề: Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn Hùng % Output: % + A : Ma trận chuyển đổi % + u : Tập các eigenface % + phi: Biểu diễn của các ảnh học trong không gian % eigenface (vec-tơ đặc tính của các ảnh học) 4 Khối nhận dạng: function [correct, MATCH1, MATCH2, MATCH3] = recognition(im) % Nhận dạng % Input: % + ảnh chứa... đặt trong các thư - 14 - Chuyên đề: Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn Hùng mục khác nhau Trong mỗi thư mục có một file dữ liệu chứa thông tin về người có ảnh đặt trong thư mục đó Các thư mục được đánh số theo thứ tự Các khuôn mặt trong trong bộ dữ liệu 1 được cắt thủ công Tư thế của mỗi khuôn mặt là ngẫu nhiên và chưa được căn chỉnh Các... các khuôn mặt Gọi số ảnh học là N, mỗi ảnh có kích thước R × C S = { Γ1 , Γ 2 , Γ3 , , Γ M } Trung bình N ảnh trên được tính theo công thức: Ψ= 1 M M ∑Γ i =1 i Kết quả thực hiện trên 2 bộ dữ liệu: Average Image Trung bình tập ảnh học của bộ 1 Trung bình tập ảnh học của bộ 2 Hình 11 Trung bình ảnh của các tập dữ liệu học - 17 - Chuyên đề: Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt ... bị nhận dạng khuôn mặt Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn Hùng IV QUÁ TRÌNH NHẬN DẠNG - Đầu vào: Vec-tơ đặc tính của ảnh chứa đối tượng cần nhận dạng - Đầu ra: Trả lời đối tượng “đã được nhận biết” hay “chưa được biết” Quá trình nhận dạng được thực hiện bằng cách so sánh khoảng cách giữa vec tơ đặc tính của ảnh cần nhận dạng và vec-tơ đặc tính của từng ảnh học, tìm ra ảnh học gần với ảnh cần nhận. .. ảnh Γ X trong cơ sở dữ liệu học có khoảng cách ngắn nhất tới đối tượng cần nhận dạng theo công thức sau: ω X = arg min ω − ω k ω σ = ωX − ω Nếu σ < ε , đối tượng đã được biết đến, là người Γ X trong cơ sở dữ liệu học Nếu σ ≥ ε , đối tượng chưa được biết đến - 24 - Chuyên đề: Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn Hùng Input InputẢnh đầu vào... thông qua quá trình học các ảnh mẫu Giai đoạn 2: Chiếu vec-tơ ảnh cần nhận dạng vào không gian eigenface Các vec-tơ đặc tính của ảnh đầu vào là phép chiếu tử ảnh ban đầu vào không gian tạo bởi các eigenface Quá trình trích chọn đặc tính được thể hiện qua lưu đồ sau: - 13 - Chuyên đề: Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn Hùng Khối Trích chọn... đề: Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn Hùng PHỤ LỤC CÁC HÀM Để phục vụ cho các tính toán và mô phỏng thuật toán, trong khuôn khổ đồ án đã có nhiều hàm và chương trình được tự xây dựng Các hàm và chương trình này được viết bằng ngôn ngữ MATLAB Một số hàm thư viện khác của MATLAB cũng được sử dụng trong đồ án sẽ được giới thiệu trong phần. .. Ảnh có kích thước không đổi, % bao trọn khuôn mặt đối tượng 3 Khối trích chọn đặc tính function [x,M] = PCA_input() % Đọc dữ liệu ảnh cho quá trình học % Input: % + Ảnh tại một thư mục mặc định của chương trình % Output: % + x: Tập ảnh học % + M: Số lượng ảnh function res = pre_processing(x) - 29 - Chuyên đề: Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt Thực hiện: Nguyễn Đăng Dũng, Nguyễn . cần nhận dạng Ảnh được chuẩn hóa Vec-tơ đặc tính Xử lý ảnh số Hình 1. Sơ đồ khối phần mềm hệ thống nhận dạng mặt người - 5 - Chuyên đề: Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn. NG.ĐỐ ƯỢ 26 - 3 - Chuyên đề: Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt Thực hiện: Nguyễn Đăng Dũng, Nguyễn Văn Hùng I. GIỚI THIỆU Nhận dạng mặt người là cách dễ dàng nhất mà. ta có được khung để tách phần mặt mong muốn ra khỏi ảnh. Kết quả thực hiện như sau: - 11 - Chuyên đề: Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt Thực hiện: Nguyễn Đăng Dũng,