ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
LÊ PHÚ QUÍ
NHẬN DẠNG KHUÔN MẶT
SỬ DỤNG MẠNG NƠ-RON
KHÓA LUẬN CAO HỌC
NGÀNH KHOA HỌC MÁY TÍNH
Mã số: 60480101
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS ĐINH ĐỨC ANH VŨ
TP HỒ CHÍ MINH - 2015
Cao học KHMT Khóa 8
ĐH CNTT – ĐHQG TP.HCM
LỜI CÁM ƠN
ĐH CNTT – ĐHQG TP.HCM
MỤC LỤC
Lời cam đoan
Mục lục
DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT ..........................................................5
DANH MỤC CÁC BẢNG..........................................................................................6
DANH MỤC HÌNH ẢNH ..........................................................................................7
MỞ ĐẦU .....................................................................................................................8
1. Phát biểu vấn đề nghiên cứu ................................................................................8
2. Mục tiêu, nhiệm vụ, đối tượng và phạm vi nghiên cứu .......................................8
3. Ý nghĩa khoa học và thực tiễn .............................................................................9
CHƯƠNG 1: TỔNG QUAN VỀ NHẬN DẠNG KHUÔN MẶT ............................10
1.1. Gới thiệu .........................................................................................................10
1.2. Các ứng dụng liên quan đến nhận dạng mặt người ........................................10
1.3. Các hướng tiếp cận nhận dạng khuôn mặt dùng mạng Nơ-ron ......................11
1.4. Những khó khăn của nhận dạng khuôn mặt ...................................................11
CHƯƠNG 2: MỘT SỐ CƠ SỞ LÝ THUYẾT .........................................................13
2.1. Giới thiệu về mạng Nơ-ron. ............................................................................13
2.1.1. Khái niệm mạng Nơ-ron...........................................................................13
2.1.1.1. Mạng Nơ-ron nhân tạo là gì? .............................................................13
2.1.1.2. Sơ lược về Nơ-ron sinh học ...............................................................13
2.1.1.3. Nơ-ron nhân tạo .................................................................................15
2.1.2. Mô hình cơ bản của mạng Nơ-ron ...........................................................17
2.1.3. Phân loại mạng Nơ-ron ............................................................................18
2.1.3.1. Phân loại theo kiểu liên kết Nơ-ron ...................................................18
Cao học KHMT Khóa 8
ĐH CNTT – ĐHQG TP.HCM
3.1.1. Tiền xử lý .................................................................................................46
3.1.2. Trích rút đặc trưng ....................................................................................47
3.2. Nhận dạng khuôn mặt bằng mạng Nơ-ron .....................................................50
3.2.1. Cấu hình mạng Nơ-ron .............................................................................50
3.2.2. Quá trình huấn luyện mạng ......................................................................51
CHƯƠNG IV: CÀI ĐẶT CHẠY THỬ NGHIỆM ...................................................52
4.1. Bài toán ...........................................................................................................52
4.2. Cơ sở dữ liệu và môi trường cài đặt ...............................................................52
4.2.1. Cơ sở dữ liệu ............................................................................................52
4.2.2. Môi trường cài đặt ....................................................................................53
4.3. Một số xử lý trong quá trình cài đặt chương trình ..........................................53
4.4. Kết quả cài đặt ................................................................................................54
4.4.1. Giao diện chương trình .............................................................................54
4.4.2. Huấn luyện mạng Nơ-ron (tạo tập dữ liệu mẫu) ......................................54
4.4.3. Nhận dạng khuôn mặt ..............................................................................56
CHƯƠNG V: KẾT LUẬN........................................................................................58
TÀI LIỆU THAM KHẢO .........................................................................................59
Cao học KHMT Khóa 8
ĐH CNTT – ĐHQG TP.HCM
DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT
BPNN: BackPropagation Neural Network.
DoG: Difference of Gauss.
EBM: Edge-like Blob Map.
Hình 2.4: Mạng tiến với một mức Nơ-ron. ..............................................................19
Hình 2.5: Mạng tiến kết nối đầy đủ với một mức ẩn và một mức đầu ra. ...............20
Hình 2.6: Mạng quy hồi không có Nơ-ron ẩn và không có vòng lặp tự phản hồi. ..21
Hình 2.7: Mạng quy hồi có các Nơ-ron ẩn...............................................................21
Hình 2.8: Mô phỏng liên kết giữa các Nơ-ron. .........................................................22
Hình 2.9: Mô hình mạng lan truyền tiến . .................................................................29
Hình 2.10: Đồ thị hàm truyền sigmoid . ...................................................................32
Hình 2.11: Lan truyền ngược . ..................................................................................36
Hình 2.12: Minh họa việc tính δj cho việc tính nút ẩn j ............................................38
Hình 2.13: Ví dụ về 1 non-eigenvector và 1 eigenvector .........................................43
Hình 2.14: Ví dụ về 1 eigenvector có tỉ lệ khác vẫn 1 là eigenvector. .....................44
Hình 3.1: Hệ thống nhận dạng khuôn mặt cơ bản.....................................................46
Hình 3.2: Sơ đồ khối trích chọn đặc trưng sử dụng PCA. ........................................47
Hình 4.1 : Sơ đồ luồng xử lý chương trình thử nghiệm ...........................................53
Hình 4.2: Giao diện chính của chương trình. ..........................................................54
Hình 4.3: Giao diện huấn luyện. ...............................................................................55
Hình 4.4: Quá trình huấn luyện. ................................................................................55
Hình 4.5: Kết quả huấn luyện. ..................................................................................56
Hình 4.6: Giao diện nhận dạng khuôn mặt. ..............................................................56
Hình 4.7: Index của ảnh cần tìm. ..............................................................................56
Hình 4.8: Kết quả nhận dạng.....................................................................................57
7
Cao học KHMT Khóa 8
ĐH CNTT – ĐHQG TP.HCM
MỞ ĐẦU
Cao học KHMT Khóa 8
ĐH CNTT – ĐHQG TP.HCM
Đối tượng nghiên cứu bao gồm:
Lý thuyết về nhận dạng khuôn mặt.
Các vấn đề liên quan đến các phương pháp nhận dạng khuôn mặt.
Phương pháp nhận dạng khuôn mặt bằng mạng Nơ-ron.
3. Ý nghĩa khoa học và thực tiễn
Ý nghĩa khoa học:
Nghiên cứu việc nhận dạng khuôn mặt.
Nghiên cứu về mạng Nơ-ron trong việc nhận dạng khuôn mặt.
Tạo tiền đề cho những nghiên cứu tiếp theo trong tương lai.
Ý nghĩa thực tiễn:
Cung cấp các thuật toán hỗ trợ cho các thiết bị phát hiện và nhận dạng
khuôn mặt người.
Giúp giảm giá thành cho công tác bảo vệ và bảo mật.
Tạo tiền đề cho việc xây dựng cơ sở dữ liệu nhận dạng khách hàng một
cách tự động thông qua khuôn mặt.
9
Cao học KHMT Khóa 8
ĐH CNTT – ĐHQG TP.HCM
CHƯƠNG 1: TỔNG QUAN VỀ NHẬN DẠNG KHUÔN MẶT
1.1. Gới thiệu
trong những nghiên cứu đầu tiên dùng Nơ-ron trong nhận dạng ảnh mặt người trong
[25] đã sử dụng mạng Kohonen nhận dạng ảnh trong một tập mẫu nhỏ các ảnh mặt
người và cho kết quả tốt ngay cả khi ảnh bị nhiễu hay mất một phần ảnh. Mạng Nơron cũng được hiện thực dùng phần cứng để nhận dạng ảnh mặt người trong [23].
Trong [24], mạng Nơ-ron được sử dụng để phân loại giới tính dùng vector có 16
thuộc tính như độ dày của lông mày, độ rộng của mũi và miệng, … Đầu ra của 2
mạng Nơ-ron được so sánh, giới tính của người trong ảnh nhận dạng thử được xác
định bởi mạng có đầu ra lớn hơn. Tỷ lệ nhận dạng đúng được công bố là 92.5% với
ảnh test đã được huấn luyện và 87.5% với ảnh test chưa được huấn luyện.
Trong nhiều nghiên cứu nhận dạng ảnh mặt người dùng mạng Nơ-ron, loại mạng
Nơ-ron được cho là hiệu quả nhất là mạng Nơ-ron perception đa lớp lan truyền ngược
(backpropagation MLP). Trong [26] hệ thống nhận dạng khuôn mặt người dùng mạng
MLP lan truyền ngược sử dụng cơ sở dữ liệu gồm 100 ảnh của 10 người khác nhau
tự thu thập, tỷ lệ nhận dạng đúng được công bố là 95.6%.
Để giảm số chiều của vector ảnh đầu vào làm giảm khối lượng tính toán của
mạng Nơ-ron. Nhiều nghiên cứu gần đây đề xuất dùng đầu vào của mạng Nơ-ron là
vector PCA (vector phân tích các thành phân cơ bản – Principal Component
Analysis).
Trong [27] hệ thống nhận dạng ảnh mặt người được xây dựng dùng vector PCA và
mạng Nơ-ron lan truyền ngược. Cơ sở dữ liệu gồm 200 ảnh được trích từ cơ sở dữ
liệu ảnh công cộng của Yale, hệ thống không chỉ cho kết quả nhận dạng tốt hơn mà
còn giảm thời gian huấn luyện, nhận dạng so với các nghiên cứu trước đó.
1.4. Những khó khăn của nhận dạng khuôn mặt
Bài toán nhận dạng mặt người là bài toán đã được nghiên cứu từ những năm
11
Cao học KHMT Khóa 8
ĐH CNTT – ĐHQG TP.HCM
ĐH CNTT – ĐHQG TP.HCM
CHƯƠNG 2: MỘT SỐ CƠ SỞ LÝ THUYẾT
2.1. Giới thiệu về mạng Nơ-ron.
2.1.1. Khái niệm mạng Nơ-ron
2.1.1.1. Mạng Nơ-ron nhân tạo là gì?
Định nghĩa: Mạng Nơ-ron nhân tạo, Artificial Neural Network (ANN) gọi tắt
là mạng Nơ-ron, neural network, là một mô hình xử lý thông tin phỏng theo cách thức
xử lý thông tin của các hệ Nơ-ron sinh học. Nó được tạo lên từ một số lượng lớn các
phần tử (gọi là phần tử xử lý hay Nơ-ron) kết nối với nhau thông qua các liên kết (gọi
là trọng số liên kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể
nào đó.
Một mạng Nơ-ron nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận
dạng mẫu, phân loại dữ liệu, ...) thông qua một quá trình học từ tập các mẫu huấn
luyện. Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các Nơron.
2.1.1.2. Sơ lược về Nơ-ron sinh học
Qua quá trình nghiên cứu về bộ não, người ta thấy rằng: bộ não con người bao
gồm khoảng 1011 Nơ-ron tham gia vào khoảng 1015 kết nối trên các đường truyền.
Mỗi đường truyền này dài khoảng hơn một mét. Các Nơ-ron có nhiều đặc điểm chung
với các tế bào khác trong cơ thể, ngoài ra chúng còn có những khả năng mà các tế
bào khác không có được, đó là khả năng nhận, xử lý và truyền các tín hiệu điện hóa
trên các đường mòn Nơ-ron, các con đường này tạo nên hệ thống giao tiếp của bộ
não.
13
Cao học KHMT Khóa 8
mỗi đầu vào đến từ một liên kết. Đặc trưng của Nơ-ron là một hàm kích hoạt
phi tuyến chuyển đổi tổ hợp tuyến tính của tất cả các tín hiệu đầu vào thành tín
hiệu đầu ra. Hàm kích hoạt (hàm truyền) này đảm bảo tính chất phi tuyến cho
tính toán của mạng Nơ-ron.
Hình 2.2: Mô hình một Nơ-ron nhân tạo [6].
Một Nơ-ron được cầu tạo gồm các thành phần chính : liên kết Nơ-ron,
bộ cộng , hàm kích hoạt.
Liên kết Nơ-ron là một thành phần của mạng Nơ-ron nhận tạo để liên kết
giữa các Nơ-ron, nó nối đầu ra của Nơ-ron lớp này với đầu vào của một Nơron trong lớp khác. Đặc trưng của thành phần liên kết là một trọng số mà mỗi
tín hiệu đi qua đều được nhân với trọng số này. Các trọng số liên kết chính là
các tham số tự do cơ bản của mạng Nơ-ron, có thể thay đổi được nhằm thích
nghi với môi trường xung quanh.
15
Cao học KHMT Khóa 8
ĐH CNTT – ĐHQG TP.HCM
Bộ cộng dùng để tính tổng các tín hiệu đầu vào của Nơ-ron, đã được
nhân với các trọng số liên kết tương ứng, phép toán được mô tả ở đây tạo nên
một bộ hợp tuyến tính.
Hàm kích hoạt hay còn gọi hàm kích hoạt phi tuyến, chuyển đổi một tổ
hợp tuyến tính của tất cả các tín hiệu đầu vào thành tín hiệu đầu ra. Hàm kích
hoạt này đảm bảo tính chất phi tuyến cho tính toán mạng Nơ-ron. Nó được xem
như là một hàm giới hạn, nó giới hạn phạm vi biên độ cho phép của tín hiệu
đầu ra trong một khoảng giá trị hữu hạn. Mô hình Nơ-ron trong hình 2.2 còn
bao gồm một hệ số điều chỉnh b tác động từ bên ngoài. Hệ số điều chỉnh b có
4. Satlin
a=0
với n < 0
a=n
với 0 n 1
a=1
với n > 1
a = -1
với n < 0
a=n
với 0 n 1
5. satlins
16
Cao học KHMT Khóa 8
1
1 e n
2.1.2. Mô hình cơ bản của mạng Nơ-ron
Hình 2.3: Sơ đồ đơn giản về một mạng Nơ-ron nhân tạo [6].
Mô hình mạng Nơ-ron ở trên gồm 3 lớp: lớp nhập (input), lớp ẩn và lớp xuất
(output). Mỗi nút trong lớp nhập nhận giá trị của một biến độc lập và chuyển vào
mạng.
17
Cao học KHMT Khóa 8
ĐH CNTT – ĐHQG TP.HCM
Dữ liệu từ tất cả các nút trong lớp nhập được tích hợp – ta gọi là tổng trọng
hóa – và chuyển kết quả cho các nút trong lớp ẩn. Gọi là “ẩn” vì các nút trong lớp
này chỉ liên lạc với các nút trong lớp nhập và lớp xuất, và chỉ có người thiết kế mạng
mới biết lớp này (người sử dụng không biết lớp này).
Các nút trong lớp xuất nhận các tín hiệu tổng trọng hóa từ các nút trong lớp
ẩn. Mỗi nút trong lớp xuất tương ứng với một biến phụ thuộc.
2.1.3. Phân loại mạng Nơ-ron
2.1.3.1. Phân loại theo kiểu liên kết Nơ-ron
Ta có mạng Nơ-ron truyền thẳng và Nơ-ron mạng quy hồi.
Trong mạng truyền thẳng các Nơ-ron đi theo một hướng nhất định tạo thành
Hình 2.4: Mạng tiến với một mức Nơ-ron [6].
Như vậy, mạng thực sự là không có chu trình. Nó được minh hoạ trong hình
2.4 cho trường hợp ba nút đối với cả mức đầu ra và đầu vào. Một mạng như vậy được
gọi là một mạng đơn mức. “Đơn mức” tức là chỉ có một mức, chính là mức đầu ra
gồm các nút tính toán (các Nơ-ron). Chúng ta không tính mức đầu vào của các nút
nguồn vì không có tính toán nào được thực hiện ở đây.
Các mạng dẫn tiến đa mức:
Lớp thứ hai của một mạng Nơ-ron dẫn tiến được phân biệt bởi sự có mặt của
một hay nhiều mức ẩn, mà các nút tính toán của chúng được gọi là các Nơ-ron ẩn hay
các đơn vị ẩn (thuật ngữ “ẩn” ở đây mang ý nghĩa là không tiếp xúc với môi trường).
Chức năng của các Nơ-ron ẩn là can thiệp vào giữa đầu vào và đầu ra của mạng một
cách hữu hiệu. Bằng việc thêm một vài mức ẩn, mạng có khả năng rút ra được các
thống kê bậc cao của tín hiệu đầu vào. Khả năng các Nơ-ron ẩn rút ra được các thống
kê bậc cao đặc biệt có giá trị khi mức đầu vào có kích thước lớn.
19
Cao học KHMT Khóa 8
ĐH CNTT – ĐHQG TP.HCM
Mạng Nơ-ron trong hình 2.5 được gọi là kết nối đầy đủ với ý nghĩa là tất cả
các nút trong mỗi mức của mạng được nối với tất cả các nút trong mức tiếp sau. Nếu
một số kết nối không tồn tại trong mạng, chúng ta nói rằng mạng là kết nối không
đầy đủ.
Mức đầu vào
Hình 2.6: Mạng quy hồi không có Nơ-ron ẩn và không có vòng lặp tự phản hồi [6].
Hình 2.7: Mạng quy hồi có các Nơ-ron ẩn [6].
2.1.4. Xây dựng mạng Nơ-ron
Về cơ bản ta có thể hiểu mạng Nơ-ron là một đồ thị có hướng. Trong đó các
đỉnh của đồ thị là các Nơ-ron và các cạnh của đồ thị là các liên kết giữa các Nơ-ron.
21
Cao học KHMT Khóa 8
ĐH CNTT – ĐHQG TP.HCM
h
g
h
f
g
h
Hình 2.8: Mô phỏng liên kết giữa các Nơ-ron.
Vì vậy để xây dựng một mạng Nơ-ron ta xây dựng một đồ thị có hướng: số
đỉnh của đồ thị bằng số Nơ-ron trong mạng, giá trị của các cạnh chính là trọng số liên
kết Nơ-ron.
Giải thuật xây dựng mạng Nơ-ron đơn giản:
2.1.5.1. Phương pháp học
Một mạng Nơ-ron được huyấn luyện sao cho với một tập các vector đầu vào
X, mạng có khả năng tạo ra tập các vector đầu ra mong muốn Y của nó. Tập X được
sử dụng cho huấn luyện mạng được gọi là tập huấn luyện (training set). Các phần tử
x thuộc X được gọi là các mẫu huấn luyện (training example). Quá trình huấn luyện
bản chất là sự thay đổi các trọng số liên kết của mạng. Trong quá trình này, các trọng
số của mạng sẽ hội tụ dần tới các giá trị sao cho với mỗi vector đầu vào x từ tập huấn
luyện, mạng sẽ cho ra vector đầu ra y như mong muốn.
Có ba phương pháp học phổ biến là học có giám sát (supervised learning), học
không giám sát (unsupervised learning) và học tăng cường (Reinforcement learning):
♦ Học có giám sát: Là quá trình học có sự tham gia giám sát của một “thầy
giáo”. Cũng giống như việc ta dạy một em nhỏ các chữ cái. Ta đưa ra một chữ “a” và
bảo với em đó rằng đây là chữ “a”. Việc này được thực hiện trên tất cả các mẫu chữ
cái. Sau đó khi kiểm tra ta sẽ đưa ra một chữ cái bất kì (có thể viết hơi khác đi) và hỏi
em đó đây là chữ gì?
23