Số hóa bởi Trung tâm Học liệu
ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
ĐỖ DUY CỐP
NGHIÊN CỨU PHƢƠNG PHÁP
NHẬN DẠNG ẢNH MẶT NGƢỜI VÀ ỨNG DỤNG
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên - 2014
i Số hóa bởi Trung tâm Học liệu
MỤC LỤC
MỤC LỤC i
DANH MỤC CÁC TỪ VIẾT TẮT ii
DANH MỤC CÁC BẢNG ii
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ iii
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
CHƢƠNG 1 TỔNG QUAN VỀ NHẬN DẠNG ẢNH MẶT NGƢỜI 3
1.1 Tổng quan về nhận dạng ảnh mặt ngƣời 3
1.2 Các hƣớng tiếp cận trong nhận dạng mặt ngƣời 4
1.2.1 Phƣơng pháp trích chọn đặc trƣng sử dụng mặt riêng (Eigenface) 4
1.2.2 Phƣơng pháp trích chọn đặc trƣng sử dụng mô hình Markov ẩn 5
1.2.3 Phƣơng pháp phân tích thành phần chính 5
1.3 Bố cục luận văn 6
CHƢƠNG 2 TRÍCH CHỌN ĐẶC TRƢNG 7
2.1 Phƣơng pháp phân tích thành phần chính - PCA 7
2.1.1 Cơ sở toán học 8
2.1.2 Phƣơng pháp PCA 17
2.2 Phƣơng pháp phân tách tuyến tính - LDA 24
ORL (Olivetti Research Laboratory, Surrey University): Cơ sở dữ liệu
ảnh dùng trong luận văn
PCA(Principal Components Analysis): Phƣơng pháp phân tích thành phần
chính
DANH MỤC CÁC BẢNG
Bảng 2.1. Tính toán độ lệch chuẩn 10
Bảng 2.2. Tập dữ liệu hai chiều và tính toán hiệp phương sai 12
Bảng 4.1. Các module chính của chương trình 53
iii Số hóa bởi Trung tâm Học liệu
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 2.1. Ví dụ minh họa PCA 8
Hình 2.2. Dữ liệu và đồ thị biểu diễn dữ liệu 18
Hình 2.3. Đồ thị biểu diễn dữ liệu đã chuẩn hóa với các vector riêng 20
Hình 2.4. Ảnh gốc trong cơ sở dữ liệu ORL 23
Hình 2.5. Ảnh sau khi biến đổi theo PCA 23
Hình 2.6. Ví dụ minh họa LDA 24
Hình 2.7. Ảnh sau khi biến đổi theo LDA 27
Hình 2.8. Sự liên thông 28
Hình 2.9. Phép dãn ảnh nhị phân 31
Hình 2.10. Phép co ảnh nhị phân 32
Hình 2.11. Các toán tử đại số ảnh trên các mảng nhị phân 34
Hình 2.12. Lật và dịch một mảng nhị phân 34
Hình 2.13. Phép dãn ảnh tổng quát dựa theo phép cộng Minkowski 37
Học viên Đỗ Duy Cốp
2 Số hóa bởi Trung tâm Học liệu
LỜI CAM ĐOAN
Tôi là: Đỗ Duy Cốp
Lớp: CK11A
Khoá học: 2012 - 2014
Chuyên ngành: Khoa học máy tính
Mã số chuyên ngành: 60 48 01
Cơ sở đào tạo: Trƣờng Đại học Công nghệ thông tin và Truyền thông Thái
Nguyên.
Giáo viên hƣớng dẫn: TS. Vũ Việt Vũ
Cơ quan công tác: Trƣờng Đại học Kỹ thuật Công nghiệp - Đại học Thái
Nguyên
Tôi xin cam đoan luận văn “Nghiên cứu phương pháp nhận dạng ảnh
mặt người và ứng dụng” này là công trình nghiên cứu của riêng tôi. Các số
liệu sử dụng trong luận văn là trung thực. Các kết quả nghiên cứu đƣợc trình
bày trong luận văn chƣa từng đƣợc công bố tại bất kỳ công trình nào khác.
Thái Nguyên, ngày 20 tháng 05 năm 2014
Học viên Đỗ Duy Cốp
mặt
ngƣời
Trích chọn
đặc trƣng
Nhận dạng
mặt ngƣời
Thông tin
ngƣời đƣợc
nhận dạng
4 Số hóa bởi Trung tâm Học liệu
1.2 Các hƣớng tiếp cận trong nhận dạng mặt ngƣời
Có hai hƣớng tiếp cận chính làm hạt nhân của các kỹ thuật phân tích đặc
trƣng mặt ngƣời: hƣớng tiếp cận hình học và hƣớng tiếp cận hình ảnh.
Hướng tiếp cận hình học sử dụng việc ánh xạ không gian các đặc
trƣng mặt ngƣời. Mặt ngƣời đƣợc phân loại theo khoảng cách hình
học, theo đƣờng bao và theo các góc giữa các điểm.
Hướng tiếp cận hình ảnh bao gồm việc xây dựng các mẫu từ những
đặc trƣng mặt ngƣời. Mẫucủa các đặc trƣng nổi bật, hoặc thậm chí
là toàn khuôn mặt đƣợc thiết lập, việc nhận dạng đƣợc thực
hiệnbằng cách duyệt các khuôn mặt rồi tìm mặt nào khớp nhất với
mẫu.
Hiện nay các hệ thống nhận dạng mặt ngƣời vẫn đang tiếp tục đƣợc phát
triển. Dƣới đây là một số phƣơng pháp trích chọn đặc trƣng:
- Mặt riêng (Eigenface)
- Mô hình Markov ẩn
- Phân tích thành phầnchính(PCA)
đồng thời giữ đƣợc hầu hết các thông tin quan trọng nhất của dữ liệu. PCA
thƣờngđƣợc sử dụng cùng phƣơng pháp mặt riêng. Tập con các vector riêng
đƣợc dùng làm các vector cơ sở của một không gian con, trong đó ta có thể so
sánh vớicác ảnh trong cơ sở dữ liệuđểnhận dạng các ảnh mới. Các vector cơ
sở này còn đƣợc gọi là các thành phần chínhcủa cơ sở dữ liệu ảnh.
Mạng nơron đƣợc sử dụng rộng rãi trong các hệ thống nhận dạng mặt
ngƣời. Kỹ thuật mạng nơron mô phỏnghoạt động của các nơron trong bộnão
ngƣời. Mạng nơron có khả năng điều chỉnh các trọng số dựa trên các mẫu
họctrong quá trình huấn luyện. Kết quả là mạng đạt đƣợc hiệu quả cao trong
việc phân loại các lớp, dựa trên dữ liệu mẫu khả tách tuyến tính hoặc phi
tuyến.
6 Số hóa bởi Trung tâm Học liệu 1.3Bố cục luận văn
Mặc dù các hệ thống nhận dạng mặt ngƣời hiện tạiđã đạt đƣợc hiệu quả
khá cao, tuy nhiên chúngvẫn còn hạn chế là chỉ tập trung vào một hay một vài
phƣơng pháp trích chọn đặc trƣng. Có hệ thống chỉ thực hiện nhận dạng dựa
trên các đặcđiểm về hình học của mặt ngƣời hoặc có hệ thống chỉ dựa trên các
đặcđiểm thống kê.
Trong luận văn này, việc trích chọn đặc trƣng sẽ đƣợc thực hiệndựa trên
những đặcđiểm thống kê của khuôn mặt (cụ thể là phƣơng pháp phân tích
thành phầnchính– PCA và phƣơng pháp phân tách tuyến tính – LDA) và
những đặcđiểm về hình thái của khuôn mặt. Chƣơng 2 trình bàychi tiết về các
phƣơng pháp trích chọn đặc trƣng đƣợc lựa chọn để xây dựng chƣơng trình.
Chƣơng 3 trình bày về mạng noron với thuật toán họclan truyền ngƣợc lỗi,
đƣợc dùng để phân loạiảnh. Chƣơng 4 trình bày cụ thểviệc thiết kế hệ thống
Số hóa bởi Trung tâm Học liệu Hình 2.1. Ví dụ minh họa PCA
Ảnh gốc cần 10304 giá trị để biểu diễn trong khi ảnh biến đổi chỉ cần49
giá trị.
2.1.1 Cơ sở toán học
a. Lý thuyết thống kê
Các nhà thống kê thƣờng quan tâm đến việc lấy mẫutrên một tập dữ liệu.
Ví dụ vềcuộc bầu cử, tập dữ liệu là toàn bộ dân số trong một đất nƣớc, trong
khi đó mẫu là một tập con của dân số nhà thống kê muốn đánh giá. Một vấn
đề lớn của thống kê học là thông qua phƣơng pháp đánh giá một mẫu của dân
số, kết quả thống kê cho phép đánh giá đƣợc xu hƣớng chính của toàn bộdân
số.
Xét một tập ví dụ X = [1 2 4 6 12 15 25 45 68 67 65 98]. Chỉ số dƣới của
ký hiệuX đƣợc dùng để trỏ tới một số cụ thể trong tập. Ví dụ X
3
trỏ tới số thứ
ba trong Xvới giá trị là 4. Lƣu ý rằng X
1
là số đầu tiên trong X. Ngoài ra ký
hiệu ncòn đƣợc sử dụngđể chỉ tổng số các phần tử trong tập X.
Giá trị trung bình của mẫu là:
9 Số hóa bởi Trung tâm Học liệu
Số hóa bởi Trung tâm Học liệu Bảng 2.1. Ví dụ về tính độ lệch chuẩn
Tập 1:
X
i
0
8
12
20
10
2
2
10
100
4
4
100
Tổng
208
Chia cho (n-1)
69.333
Khai căn
8.3266
Tập 2:
X
dùng cho phƣơng sai của một mẫu. Cả hai phƣơng pháp này đều đánh giá độ
trải rộng của dữ liệu. Độ lệch chuẩnlà phƣơng pháp thông dụng hơn, bên
cạnhđóphƣơng sai cũng đƣợc sử dụng.
Hai phƣơng pháp trên chỉ sử dụng đƣợc cho dữ liệu một chiều. Tuy nhiên,
nhiều tập dữ liệu lại có nhiều hơn một chiều và mục đích của việc phân tích
thống kê các tập dữ liệu này là nhằm tìm hiểu mối quan hệ giữa các chiều. Ví
dụ, xét tập dữ liệu về chiều cao của các sinh viên trong một lớp và điểm số
của họ về một môn học nào đó. Ta có thể tiến hành phân tích thống kê xem
ảnh hƣởng của chiều cao sinh viên đếnđiểm số nhƣ thế nào.
Độ lệch chuẩn và phƣơng sai chỉ thực hiện trên một chiều, do đó chúng
cũng chỉ có thể tính toán đƣợccho mỗi chiều của tập dữ liệu một cách độc lập
với các chiều khác. Tuy nhiên, nếu có một phƣơng pháp đánh giá đƣợc sự
biến đổi của các chiều từ giá trị trung bình của mỗi chiều khác, khi đósẽ rất
hữu ích đối với việc thống kê dữ liệu.
Hiệp phƣơng sailà một phƣơng pháp nhƣ vậy. Hiệp phƣơng sai luôn
đánh giá giữa hai chiều. Để tính hiệp phƣơng sai giữa một chiều với chính nó,
có thể sử dụng phƣơng sai. Vớimột tập dữ liệu ba chiều (x, y, z), ta có thể
đánh giá hiệp phƣơng sai giữa các chiều x và y, giữa y và z, giữa z và x.
Công thức tính hiệp phƣơng sai gầngiống với công thức tính phƣơng sai.
Công thức tính phƣơng sai có thể đƣợc viết lại nhƣ sau:
Tƣơng tự, công thức tính hiệp phƣơng saiđƣợc viếtnhƣ sau:
12 Số hóa bởi Trung tâm Học liệu Công thức (2.5) tƣơng tựcông thức (2.4), ngoại trừ ở nhân tử thứ hai, giá
trị của X đƣợc thay bằng giá trị của Y. Việc nàycó thể đƣợcdiễn đạt nhƣ sau:
85
42
Tổng
112
533
Trung bình
12.44
59.22
13 Số hóa bởi Trung tâm Học liệu H
M
9
15
25
14
10
18
0
16
5
39
48.69
51.33
423.45
46.97
182.15
Tổng
1199.61
Trung bình
133.29
Giá trị chính xác không quan trọng bằng dấu của nó (dƣơng hay âm). Nếu
giá trị là dƣơng, nóchỉ ra rằng cả hai chiều cùng nhau tăng, nghĩa là một cách
tổng quát, khi số giờ học tăng lên thì điểm số cũng tăng lên.
Nếu giá trị là âm, khi đó một chiều tăng lên, một chiều giảm đi. Giá trị
hiệp phƣơng sai âm cho thấy rằng chúng đối lập nhau, khi số giờ học tăng lên
thì điểm số giảm đi.
Trƣờng hợp cuối cùng, nếu giá trị hiệp phƣơng sai bằng 0, khi đó hai
chiều độc lập với nhau.
Kết quả điểm số tăng lên khi số giờ học tăng có thể dễ dàng nhận thấy
bằng đồ thị. Tuy nhiên, việc minh họa trực quan nhƣ vậy chỉ có thể thực hiện
đƣợc khi dữ liệu cóhai hoặc ba chiều. Vì giá trị hiệp phƣơng sai có thể đƣợc
14 Số hóa bởi Trung tâm Học liệu
tính giữa hai chiều bất kỳ trong một tập dữ liệu, nên kỹ thuật này thƣờng đƣợc
sử dụng để tìm mối liên hệ giữa các chiều trong các tập dữ liệu nhiều chiều
mà việc biểu diễn trực quan gặp khó khăn.
Từ công thức tính cov(X,Y) trên, bằng cáchđổi chỗ hai nhân tử
−
b. Đại số ma trận
Phần này trình bàymột số kiến thức cơ bản về đại số ma trận đƣợcdùng
trong PCA. Đặc biệt trong đó sẽ xét các vector riêng vàgiá trị riêngcủa một
ma trận cho trƣớc.
Hai ma trận có thể đƣợc nhân với nhau, vớiđiều kiệnchúng có kích thƣớc
phù hợp. Vector riênglà một trƣờng hợp đặc biệt của việc này. Xét hai phép
nhân giữa một ma trận và một vector nhƣsau:
Ví dụ vector thường và vetor riêng
Trong trƣờng hợp thứ nhất, vector kết quả không phải là một bội số của
vector gốc, trong khi đó ở trƣờng hợp thứ hai, vector kết quả bằng đúng 4 lần
vector gốc.Vector (trƣờng hợp thứ hai) biểu diễn một mũi tên từ gốc (0,0)
đến điểm (3,2). Ma trận bênh cạnh là ma trận vuông, có thể coi nhƣ một ma
trận biến đổi. Nếu nhân ma trận này vào phía trái của vector, kết quả sẽ là một
vector khác đã đƣợc biến đổi từ vị trí gốc của nó.Vector này (và tất cả các bội
số của nó, vì chiều dài của vector không ảnh hƣởng đến kết quả) là một vector
riêngcủa ma trận biến đổi đó.
16 Số hóa bởi Trung tâm Học liệu
Các vector riêng có một số tính chất. Thứ nhất,vector riêng chỉ có thể
đƣợc xác định đƣợcđối với các ma trận vuông. Không phải mọi ma trận
vuông đều có vector riêng. Nếu một ma trận nn có vector riêng thì số lƣợng
đólà n.
Thứ hai, khi nhân vectorriêng với một số nàođó, vector kết quả vẫn sẽ
bằng đúng số lần nhƣ vậy của vector gốc. Lý do làkhi lấy một tỉ lệ nào đó của
vector, chỉ đơn giản độ dài của nó bị thay đổi, không ảnh hƣởng đến chiều của
vector. Cuối cùng, mọi vector riêng của một ma trận là trực giao, nghĩa là
Bƣớc 2: Hiệu chỉnh theo giá trị trung bình
Để tínhPCA thuận lợi, các giá trị trên mỗi chiều của dữ liệu sẽ đƣợc trừđi
giá trị trung bình của chiềuđó. Tất cả các giá trị x bị trừ đi (trung bình giá trị
x của tất cả các điểm) và tất cả các giá trị y bị trừ đi (trung bình giá trị y của
tất cả các điểm). Tập dữ liệu nhận đƣợc có giá trị trung bình là 0.
Bƣớc 3: Tính ma trận hiệp phƣơng sai
Do dữ liệu có hai chiều nên kích thƣớc của ma trận hiệp phƣơng sai là
22. Ma trậnthu đƣợclà:
Vì các phần tử nằm ngoài đƣờng chéo chính của ma trận là dƣơng, nên hai
giá trị x và y cùng nhau tăng.
18 Số hóa bởi Trung tâm Học liệu
Dữ liệu gốc
X
Y
Dữ liệu sau
khi chỉnh
X
Y
2.5
0.5
2.2
1.9
3.1
2.3
0.31
0.81
0.31
1.01 Hình 2.2. Dữ liệu và đồ thị biểu diễn dữ liệu
19 Số hóa bởi Trung tâm Học liệu
Bước 4: Tính vector riêng và giá trị riêng của ma trận hiệp phương sai
Vì ma trận hiệp phƣơng sai vuông nên có thể tính vector riêng và giá trị
riêng của ma trận này. Chúng cho biết những thông tin hữu ích về dữ liệu. Hai
vector riêng là và , với hai giá trị riêng
tƣơng ứnglà 0.0490833989 và 1.28402771.
Điều lƣu ý quan trọng rằng các vector riêng ở đây đều là vector đơn vị,
nghĩa là độ dài của chúng bằng 1. Điều này rất quan trọng trong PCA. Hầu hết
các gói phần mềmtoán học, khi tính vector riêng đều trả về kết quả làcác
vector đơn vị.
Nhƣ trên đồ thị dữ liệu ở hình2.3, dữ liệu có một mẫu chủđạo (hƣớng theo
một đƣờng chéo). Ở phía trên của dữ liệu là hai vector riêng, chúng là những
đƣờng chéo hình chấm chấm. Nhƣ đã trình bày ở phần vector riêng, chúng
vuông góc với nhau. Nhƣng quan trọng hơn, chúng cung cấp thông tin về các
mẫu trong dữ liệu. Một trong hai vector riêng nằm theo hƣớng phân
bốchínhcủa dữ liệu.Vector riêng đó cho thấy mối quan hệ giữa dữ liệu với
đƣờng thẳngđó. Vector riêng thứ hai cho thấy một mẫu khác, kém quan trọng
hơn, là tất cả cácđiểmphân bố dọc theo đƣờng chính nhƣng cách đƣờng chính