Nghiên cứu thiết kế phần mềm thiết bị nhận dạng khuôn mặt
Trang 1MỤ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
Trang 2DANH 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 Ố Ầ Ề Ệ Ố Ậ Ạ Ặ ƯỜ 5 I 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 ĐƯỢ 20 C 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 ĐƯỢ 22 C HÌNH 16 KHÔI PH C NH T CÁC VEC-T Ụ Ả Ừ Ơ ĐẶ C TÍNH 23
Trang 3
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
ĐỐ ƯỢ 26
Trang 4I 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:
Trang 5Hì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:
- 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 chuẩn hóaẢnh được
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
Trang 6III 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
Trang 7(a) (b)
(e)
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
Trang 8Cá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
[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)
Trang 9
Ả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:
Trang 10Hì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 α >50, ta sẽ thực hiện phép xoay ảnh
α
α
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ó:
yx
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);
Trang 11Các phép chuyển đổi thông thường có thể là: scale, rotation translation,…
Đối với mỗi phương pháp có ma trận T khác nhau, trong trường hợp xoay ảnh thì ma trận T tương ứng sẽ là:
Kết quả thực hiện như sau:
Trang 12α =
09
0 500 1000 1500
0 500 1000 1500 2000
0 500 1000 1500 2000
Trang 13Chuyê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
0 500
0 500 1000 1500 2000
0 500 1000 1500 2000
c)
d)
(d) 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
III TRÍCH CHỌN ĐẶC TÍNH
Các khâu trong quá trình trích chọn đặc tính:
- Đầu vào: Ảnh đã được chuẩn hóa
- Đầu ra: vec-tơ đặc tính của ảnh đầu vào
Để có được vec-tơ đặc tính, ta cần phải qua 2 giai đoạn:
Giai đoạn 1: Tạo ra các eigenfaces 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:
Trang 14Khối Trích chọn đặc tính
Hình 8 Sơ đồ bên trong khối Trích chọn đặc tính sử dụng PCA
a Quá trình học
Mô hình được xây dựng và kiểm nghiệm trên 2 bộ dữ liệu:
- Bộ 1: Ảnh được download từ bộ dữ liệu ảnh mẫu ORL của Cambridge University Engineering Department Bộ dữ liệu lựa chọn có 20 người, ảnh được cắt thủ công, mỗi người 5 ảnh Trong số 5 ảnh của mỗi người ta chọn ngẫu nhiên 2 ảnh để tạo bộ số liệu học, và 3 ảnh còn lại để kiểm tra mô hình Trong bộ ảnh này, các ảnh học được xếp vào cùng một thư mục, có đánh số thứ tự
- Bộ 2: Bộ thu thập trực tiếp từ hệ thống webcam được thiết kế trong khuôn khổ của đồ án Người chụp đứng cách webcam khoảng 1m, tư thế tương đối ngay ngắn Số người được thu thập là 6 người, mỗi người có 5 ảnh để xây dựng mô hình Ảnh để kiểm tra mô hình cũng được lấy trực tiếp từ webcam Trong bộ ảnh này, ảnh được xếp theo nhóm Các ảnh của cùng một người được xếp chung vào một thư mục Những người khác nhau sẽ được đặt trong các thư
Trang 15mụ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 ảnh chưa được chuẩn sáng và san bằng mức xám.
Trong bộ cơ sở dữ liệu 2, các ảnh đều đã được căn chỉnh về tư thế thẳng đứng Các ảnh cũng chưa được chuẩn sáng và san bằng mức xám
Tất cả các ảnh học của mỗi bộ được liệt kê và được thể hiện trên các Hình 9 (a) và Hình 9(b) sau:
Database
Hình 9 (a) Các ảnh học của bộ dữ liệu 1
Trang 16Database
(b) Hình 9 (b) Các ảnh học của bộ dữ liệu 2.
a.1 Chuẩn hóa ma trận ảnh
Chuẩn hóa vec-tơ là khâu đầu tiên cần thực hiện khi sử dụng thuật toán PCA Sự phân bố của một vec-tơ trong không gian được thể hiện qua trung bình (mean) và chuẩn (standart) của vec-tơ đó
Cho vec-tơ X =[x x1, , ,2 x N] , trung bình và chuẩn của vec-tơ X được tính như sau:
1 2 1
1( )
( )
1
N i i N
i i
N x std
Theo công thức trên, từ một ảnh Γ ban đầu, ta có trung bình Γ và chuẩn ( )
std Γ của Γ
Phép chuẩn hóa ma trận ảnh được thực hiện theo công thức sau:
Trang 17
( , )'( , )
trong đó, 'Γ là ma trận ảnh đã được chuẩn hóa, (x, y) là tọa độ điểm ảnh.
Kết quả quá trình chuẩn hóa được thể hiện như sau:
Hình 10 Chuẩn hóa ma trận ảnh
a.2 Tính trung bình tập ảnh đầu vào
Khâu này cho ta xác định được gốc tọa độ của không gian vec-tơ biểu diễn các ảnh Ảnh trung bình được tính bằng trung bình cộng của tất cả các ảnh Ảnh trung bình này thể hiện những điểm giống nhau nhất giữa tất 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×
Ψ = ∑Γ
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.
Trang 18Sau khi tính được ảnh trung bình của bộ ảnh học, các ảnh đầu vào sẽ được so sánh với ảnh trung bình này Ảnh mới sẽ chứa những điểm khác nhau giữa ảnh đầu vào
so với các ảnh còn lại Ta có tập vec-tơ đầu vào mới sau khi so sánh với trung bình:
Cho 2 vec-tơ N chiều X =[x x1, , ,2 x N] và Y=[ y y1, , ,2 y N] Ta có tương quan
giữa 2 vec-tơ trên được tính theo công thức:
Cho một tập M vec-tơ N chiều [ ,Φ Φ1 2, ,ΦM] , xếp thành một ma trận A kích
thước N M× , ta có covariance của ma trận A là một
ma trận C có kích thước N N× , phần tử ( , )C i j được tính như sau:
( , ) cov( ,i j)
Vec-tơ riêng (eigenvector) và giá trị riêng (eigenvalue) :
Cho ma trận vuông C∈¡ N N× , vec-tơ riêng u và giá trị riêng λ khi và chỉ khi:
Trang 19Theo lý thuyết, eigenface chính là
các vec-tơ riêng u ứng với các giá trị riêng v có
giá trị lớn nhất của ma trận covariance:
1
1 M
i i i
L A A Lựa chọn K vec-tơ riêng v ứng với K giá trị riêng lớn nhất của L Ta có
công thức chuyển đổi: u A v Các giá trị riêng của L cũng chính là các giá trị riêng của = ⋅
C
Gọi các giá trị riêng của L là: λ={λ λ1, , ,2 λM} sắp xếp theo thứ tự giảm dần.
K giá trị riêng lớn nhất được lựa chọn theo công thức:
1
1
K i i M i i
λελ
Trong đó, ε là ngưỡng chọn Đồ án lựa chọn ε =0,97
Kết quả tính eigenface cho 2 bộ số
liệu như sau:
Bộ 1: Theo công thức (3.15), 34 giá trị riêng cần tìm được thể hiện trên Hình 12.
10 20 30 40 50 60 70 80 0
5 10 15
x 104
Trang 20Hì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.
Trong hình trên, các giá trị riêng biến thiên rất nhanh về 0 Tổng giá trị của 34 giá trị riêng đầu tiên chiếm hơn 97% tổng giá trị tất cả các giá trị riêng tìm được
34 eigenface tương ứng với 34 giá trị riêng trên được thể hiện trên hình sau:
EIGENFACE
Hình 13 34 eigenfaces tìm được.
Bộ 2: 26 giá trị riêng cần tìm được thể hiện trên Hình 14.
Trang 21
10 20 30 40 50 60 70 0
0.5 1 1.5 2 2.5
x 105
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.
Tương tự bộ 1, các giá trị riêng tìm được cũng biến thiên rất nhanh về 0 Tổng giá trị
26 giá trị riêng đầu tiên chiếm hơn 97% tổng giá trị tất cả các giá trị riêng tìm được Do
đó ta chọn 26 giá trị riêng đầu tiên
26 eigenface tương ứng với 26 giá trị riêng trên được thể hiện qua Hình 15
Trang 22Các eigenface tìm được là các vec-tơ tạo ra không gian mới để thực hiện nhiệm vụ trích chọn đặc tính Vec-tơ đặc tính của đối tượng cần nhận dạng chính là hình chiếu của ảnh đầu vào lên không gian mới này Từ đây, các mô hình nhận dạng sẽ được áp dụng để mang lại hiệu quả nhận dạng cao mà vẫn đáp ứng được yêu cầu về thời gian xử
lý của hệ thống
b Quá trình tạo đặc tính
Cho ảnh đầu vào Γ
Trong không gian được tạo bởi K eigenface, ảnh Γ sẽ được thể hiện bởi các hệ số [w w1, 2, ,w K]
T k
u
ω = Γ − Ψ
Trang 23
Trong đó, Ψ là trung bình các ảnh học đã được tính trong phần học.
Trong không gian eigenface này, ảnh mới Γ′ sẽ được biểu diễn bởi công thức sau:
Sai số Γ − Γ′ càng nhỏ thì lượng thông tin bị mất khi trích chọn đặc tính càng nhỏ,
điều đó có nghĩa là vec-tơ đặc tính tạo ra có chất lượng tốt
Theo công thức trên, kết quả thu được trên 2 bộ số liệu được minh họa trong sau:
Trang 24IV 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 dạng nhất Nếu khoảng cách bé nhất đó bé hơn một ngưỡng xác định, ta
kết luận là đối tượng đã được nhận biết.
Tập ảnh học S = Γ Γ Γ{ 1, , , ,2 3 ΓM} lần lượt được chiếu vào không gian eigenface,
vec-tơ đặc tính của các ảnh học lần lượt là: ω ω1, , ,2 ωM Ảnh chứa đối tượng cần nhận dạng Γ, chiếu vào không gian eigenface ta được vec-tơ đặc tính ω Ta cần tìm ả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:
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