88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

31
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 -

Transcript of 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

Page 1: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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 -

Page 2: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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 -

Page 3: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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 -

Page 4: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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ả Ou tpu t

In p u t

TH U T H Ậ P Ả N H

X Ử LÝ Ả N H

- 4 -

Page 5: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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 -

Page 6: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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 yI 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 -

Page 7: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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 -

Page 8: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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 -

Page 9: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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 -

Page 10: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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 05α > , 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à (x1,y1) và (x2,y2) khi đó ta có:

2 1

2 1

y

x

ytg

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 -

Page 11: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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

[ ] [ ] [ ]11 12

21 22

31 32

0

1 1 1 0

1

t t

x y w z w z t t

t t

= ⋅ = ⋅

T

Cá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à:

cos sin 0

sin cos 0

0 0 1

α αα α

= −

T

Tương ứng với phương trình toán học:

cos sin

sin cos

x w z

y w z

α αα α

= −= +

Sau 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 -

Page 12: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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

01α =

09α =

Hình 6. Xoay chuẩn đối tượng theo góc α

b. Chuẩn sáng ảnh

Để kiểm tra mức sáng, ta kiểm tra biểu đồ mức xám của ảnh và sử dụng thuật toán

san bằng mức xám (histogram equalization). Ảnh sau khi được san bằng mức xám thì

mức xám của ảnh sẽ phân bố đều từ 0-255.

0 50 100 150 200 250

0

500

1000

1500

0 50 100 150 200 250

0

500

1000

1500

2000

a)b)

c)d)

(a)

0 50 100 150 200 250

0

500

1000

1500

0 50 100 150 200 250

0

500

1000

1500

2000

a)b)

c)d)

(b)

- 12 -

Page 13: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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

0 50 100 150 200 250

0

500

1000

1500

0 50 100 150 200 250

0

500

1000

1500

2000

a)b)

c)d)(c)

0 50 100 150 200 250

0

500

1000

1500

0 50 100 150 200 250

0

500

1000

1500

2000

a)b)

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:

- 13 -

Page 14: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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ốiTrí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ư

- 14 -

Page 15: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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 ả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

- 15 -

Page 16: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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

Database

(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ơ [ ]1 2, ,..., Nx x x=X , trung bình và chuẩn của vec-tơ X được tính như sau:

1

2

1

1( )

( )( )

1

N

ii

N

ii

mean xN

xstd

N

=

=

= =

−=

X X

XX

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:

- 16 -

Page 17: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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

( , )'( , )

( )

x yx y

std

Γ − ΓΓ =Γ

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:

Ảnh đầu vào Ảnh sau chuẩn hóa

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× .

{ }1 2 3, , ,..., MS = Γ Γ Γ Γ

Trung bình N ảnh trên được tính theo công thức:

1

1 M

iiM =

Ψ = Γ∑

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 -

Page 18: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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

Sau 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:

1 2[ , ,..., ]

, 1,

M

i i i M

= Φ Φ Φ

Φ = Γ − Ψ =

A

a.3. Tính eigenface

Ma trận Covariance (covariance matrix) thể hiện sự tương quan của từng

vec-tơ đối với các vec-tơ còn lại trong không gian.

Cho 2 vec-tơ N chiều [ ]1 2, ,..., Nx x x=X và [ ]1 2, ,..., Ny y y=Y . Ta có tương quan

giữa 2 vec-tơ trên được tính theo công thức:

1

( )( )cov( , )

1

N

i ii

x y

N=

− −=

∑ X YX Y

Nếu hai véc tơ đã được chuẩn hóa trước, ứng với 0, 0= =X Y , ta có:

1 1cov( , ) ( )

1 1

N

i iTi

x y

N N== = ⋅

− −

∑X Y X Y

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 jC i j = Φ Φ

Vec-tơ riêng (eigenvector) và giá trị riêng (eigenvalue) :

Cho ma trận vuông N N×∈C ¡ , vec-tơ riêng u và giá trị riêng λ khi và chỉ khi:

λ⋅ = ⋅C u u

Eigenface:

- 18 -

Page 19: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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

Theo 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 MT T

i iiM =

= Φ Φ = ⋅∑C A A

Để tính nhanh các eigenface này, người ta chuyển sang tính toán với ma trận

T= ⋅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

iiM

ii

λε

λ=

=

≥∑

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 800

5

10

15

x 104

- 19 -

Page 20: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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 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.

- 20 -

Page 21: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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

10 20 30 40 50 60 700

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

- 21 -

Page 22: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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

EIGENFACE

Hình 15. 26 eigenfaces tìm được.

Qua các Hình 13 và Hình 15, ta có thể thấy được sự biến thiên của các eigenface

tìm được.Các eigenface đầu tiên rất rõ rệt, đặc trưng cho chiều biến thiên mạnh nhất của

bộ dữ liệu học. Các eigenface sau “nhạt” dần, thể hiện cho các hướng biến thiên giảm

dần của bộ dữ liệu học. Các eigenface cuối cùng tương ứng với các giá trị riêng gần

bằng 0. Số lượng eigenface quyết định số chiều của vec-tơ đặc tính.

Cá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ố

[ ]1 2, ,..., Kw w wω = được tính theo công thức sau:

( )Tkuω = Γ − Ψ

- 22 -

Page 23: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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

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:

1 1 2 2 ... K Kw w w′Γ = Ψ + ⋅ + ⋅ + + ⋅u u u

Trong đó { }1 2, ,..., Ku u u u= là các eigenface.

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:

Bộ 1

Bộ 2

Ảnh đầu vào Ảnh tái tạo từ các vec-tơ đặc tính.

Hình 16. Khôi phục ảnh từ các vec-tơ đặc tính

Ta thấy, ảnh được khôi phục lại từ vec-tơ đặc tính trong không gian mới hầu như

không bị mất thông tin. Từ đây là có thể đánh giá được chất lượng các vec-tơ đặc tính

được tạo ra là tốt.

- 23 -

Page 24: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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

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 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 { }1 2 3, , ,..., MS = Γ Γ Γ Γ 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:

arg minX 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 -

Page 25: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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 đầu vào Ảnh tách đượcInput 61.6488 66.8392 94.8698

61.6σ =

Input 61.6488 66.8392 94.8698

66.7σ =

Input 61.6488 66.8392 94.8698

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 -

Page 26: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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 -

Page 27: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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

TÀI LIỆU THAM KHẢO

[1] Gonzalez R C., Wood R.E., “Digital Image Processing Using Matlab”, Prentice Hall,

2004.

[2] Lương Mạnh Bá , Nguyễn Thanh Thủy. “Nhập môn xử lý ảnh số”, Đại học Bách khoa

Hà Nội, 2000

[3] Phạm Thế Bảo, Nguyễn Thành Nhựt, Cao Minh Thịnh, Trần Anh Tuấn, Phan Phúc

Doãn. “Tổng quan các phương pháp xác định khuôn mặt người”.

[4] Ilker Atalay – Computer Engineer M.Sc. “Face Recognition Using Eigenfaces”,

Istanbul Technical University , January 1996

[5] M. Tunk and A. Pentland. “Face recognition using eigenfaces”, Proc. of IEEE

Conference on Computer vision and Partten Recognition, pp.586-591, June 1991

[6] Lindsay I. Smith. “A tutorial on Principal Components Analysis”, February 26, 2002

[7] Alla Eleyan, Hasan Demirel. “PCA and LDA based Neural Networks for Human Face

Recognition”, Eastern Mediterranean University Northern Cyprus, 2007.

[8] Kamran Etemad ,Rama Chellappa. “Discriminant analysis for recognition of human

face images”, Department of Electrical Engineering and Center for Automation

Research, University of Maryland, College Park,Maryland, 1996

[9] A. Hossein Sahoolizadeh, B. Zargham Heidari, and C. Hamid Dehghan. “A New Face

Recognition Method using PCA, LDA and Neural Network”, Proceeding of world

Academy of Science, Engineering and Technology, Vol 31, 2008.

[10] Michelle M. Mendonça , Juliana G. Denipote, “Illumination Normalization Methods

for Face Recognition”, Universidade de São Paulo, 2006.

[11] Martin D. Levine, Maulin R. Gandhi, Jisnu Bhattacharyya. “Image Normalization for

Illumination Compensation in Facial Images”, Department of Electrical & Computer

Engineering & Center for Intelligent Machines McGill University, Montreal, Canada,

2004.

[12] P. Campadelli, R. Lanzarotti G. Lipori. “Automatic Facial Feature Extraction for Face

Recognition”, University of Milan, Italy, 2008.

[13] Vo Dinh Minh Nhat, SungYoung Lee. “Image-based Subspace Analysis for Face

Recognition”, Kyung Hee University Korea, 2008.

- 27 -

Page 28: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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

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 tài liệu tham khảo.

1. Khối tách ảnh đối tượngfunction res = SubImages(im,ba,thresh)

% Tru anh voi nen

% Input:

% + im: ảnh đầu vào chứa đối tượng.

% + ba: ảnh nền

% + thresh: ngưỡng trừ ảnh

% Output:

% + res: Kết quả của phép trừ ảnh

function res = OuterBox(x,T)

% Tạo mặt nạ đối tượng

% + Lọc nhiễu

% + Bỏ phần chứa thân người

% Input:

% + x : ảnh cần xử lý (kết quả của phép trừ ảnh)

% + T : Thông số của hàm

% Ouput:

% + Ảnh đã được xử lý

function res = FFE(im,ba)

% Face Frame Extraction

% Tách vùng chứa đối tượng ra khỏi ảnh

% Input:

% + im: Ảnh đầu vào

- 28 -

Page 29: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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

% + ba: Ảnh nền

% Output:

% + res: Ảnh chứa đối tượng tách

2. Khối tiền xử lý

function [L1,L2, R1, R2] = LeftRight(im)

% Tìm tâm 2 mắt

% Input:

% +im: ảnh đã được tách sau khối FFE.

% Output:

% + L1, L2: Tọa độ tâm mắt trái

% + R1, R2: Tọa độ tâm mắt phải

function res = RotTrans(im)

% Xoay và tách đối tượng dựa vào đường nối tâm 2 mắt

% Input:

% + anh sau ham FFE (Face Frame Extraction)

% Output:

% + res: Ả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 -

Page 30: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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 tiền xử lý: Chuẩn hóa ánh sáng, san bằng mức xám và

% lọc nhiễu ảnh vào.

% Input:

% + Tập ảnh học

% Output:

% + res: Tập ảnh sau khi được tiền xử lý.

function S = normalization(x)

% Chuẩn hóa ma trận điểm ảnh

% Input:

% + Tập ảnh học đã qua bước tiền xử lý

% Output:

% + S: Tập ảnh sau khi chuẩn hóa và

% được chuyển vào ma trận S.

function [res1, MEAN] = average(S)

% Tính ảnh trung bình, xác định sai lệch của từng ảnh học

% so với ảnh trung bình

% Input:

% + Ma trận tạo bởi các ảnh học sau bước chuẩn hóa

% (normalization)

% Output:

% + MEAN: Ảnh trung bình

% + res1: sai lệch của các ảnh so với ảnh trung bình

function [A,u,phi] = eigen(x)

% Tính các eigenface, ma trận chuyển đổi và

% biểu diễn của các ảnh học trong không gian mới.

% Input:

% + Tập ảnh học sau khi được chuẩn hóa và

% và tính sai lệch so với ảnh trung bình.

- 30 -

Page 31: 88477621 Do an Mon Xu Ly Anh Va Mon Nhan Dang

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 đối tượng

% Output:

% + correct: Cho biết kết quả nhận dạng. correct nhận các giá %

trị 0 hoặc 1.

% correct = 0 ==> ảnh chưa được biết đến.

% correct = 1 ==> ảnh đã được biết đến.

% + MATCH1, MATCH2, MATCH3: thứ tự 3 người trong

% tập ảnh học gần với đối tượng nhất

function [name, age, offical_im] = info(K)

% Đọc thông tin về đối tượng đã nhận dạng được

% Input:

% + K: Số thứ tự của ảnh học gần với đối tượng nhất.

% Output:

% + name: Tên của đối tượng.

% + age : Tuổi của đối tượng.

% + official_im: Ảnh đại diện của đối tượng.

- 31 -