ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CNTT&TT THÁI NGUYÊN
PHẠM VĂN DŨNG
MẠNG NƠRON TRONG BÀI TOÁN NHẬN DẠNG
KHUÔN MẶT VÀ ỨNG DỤNG
Ngành: Công nghệ thông tin
Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01 01
LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: TS. Dương Chính Cương
THÁI NGUYÊN, 2016
i
LỜI CAM ĐOAN
Tên tôi là: Phạm Văn Dũng
Sinh ngày: 13/06/1986
Học viên lớp cao học CK13A - Trường Đại học Công nghệ Thông tin và Truyền
thông – Đại học Thái Nguyên.
Hiện đang công tác tại: Liên đoàn Lao động tỉnh Hà Nam.
Xin cam đoan: Đề tài “Mạng nơron trong bài toán nhận dạng khuôn mặt và
ứng dụng” do Thầy giáo TS. Dương Chính Cương hướng dẫn là công trình nghiên cứu
của riêng tôi. Tất cả tài liệu tham khảo đều có nguồn gốc, xuất xứ rõ ràng.
Tác giả xin cam đoan tất cả những nội dung trong luận văn đúng như nội dung
LỜI CẢM ƠN .............................................................................................................ii
MỤC LỤC
............................................................................................................. iii
DANH MỤC CÁC HÌNH ẢNH ................................................................................. vi
DANH MỤC BẢNG BIỂU ......................................................................................viii
DANH MỤC CÁC TỪ VIẾT TẮT ............................................................................. ix
LỜI MỞ ĐẦU ............................................................................................................. 1
CHƯƠNG 1 TỔNG QUAN VỀ NHẬN DẠNG KHUÔN MẶT ................................. 4
1.1.1 Mô tả bài toán nhận dạng khuôn mặt........................................................... 4
1.1.2 Hệ thống nhận dạng khuôn mặt ................................................................... 5
1.1.3 Một số ứng dụng của hệ thống nhận dạng khuôn mặt .................................. 7
1.1.4 Ứng dụng của hệ thống nhận dạng khuôn mặt trong bài toán nhận dạng thí
sinh dự thi ................................................................................................... 8
1.2.1 Theo định hướng tìm ra cách trích chọn đặc trưng ...................................... 9
1.2.2 Theo định hướng ra quyết định ................................................................. 10
1.3.1 Phương pháp PCA. ................................................................................... 11
1.3.1.1 Nguyên lý chung ................................................................................ 11
1.3.1.2 Nội dung thuật toán PCA .................................................................... 12
1.3.1.3 Áp dụng PCA vào trích chọn vector đặc tính cho bài toán nhận dạng
khuôn mặt ........................................................................................... 14
1.3.1.4 Đánh giá thuật toán ............................................................................. 16
1.3.2 Phương pháp phân tách tuyến tính – LDA................................................. 16
1.3.2.1 Nguyên lý chung ................................................................................ 16
1.3.2.2 Nội dung thuật toán ............................................................................ 17
1.3.2.3 Áp dụng LDA vào trích chọn vector đặc tính cho bài toán nhận dạng
khuôn mặt ........................................................................................... 18
1.3.2.4 Đánh giá thuật toán ............................................................................. 20
v
2.2.2.2 Huấn luyện mạng................................................................................ 44
2.2.2.3 Khả năng ứng dụng cho nhận dạng ảnh .............................................. 48
2.4.1 Sơ đồ hệ thống nhận dạng thí sinh............................................................. 52
2.4.2 Xây dựng vector đặc trưng ........................................................................ 53
2.4.3 Phân lớp bằng mạng nơron truyền thẳng nhiều lớp MLP........................... 55
CHƯƠNG 3 XÂY DỰNG PHẦN MỀM MÔ PHỎNG NHẬN DẠNG THÍ SINH DỰ
THI ............................................................................................................. 56
3.2.1 Cơ sở dữ liệu ảnh ...................................................................................... 57
3.2.2 Lưu đồ kiểm tra thí sinh ............................................................................ 59
3.2.3 Môi trường cài đặt .................................................................................... 59
3.2.4 Cài đặt ...................................................................................................... 60
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI ........................................... 66
TÀI LIỆU THAM KHẢO.......................................................................................... 68
vi
DANH MỤC CÁC HÌNH ẢNH
Hình 1.1. Mô hình bài toán nhận dạng mặt người ........................................................ 5
Hình 1.2. Cấu trúc tổng quát của hệ thống nhận dạng khuôn mặt [2]............................ 5
Hình 1.3. Các hướng tiếp cận trích chọn đặc trưng trong nhận dạng khuôn mặt [3]...... 9
Hình 1.4. Không gian mới (p1,p2) theo hướng phân bố mạnh nhất của các vector trong
không gian (x1,x2) tìm theo PCA [6]. ......................................................................... 11
Hình 1.5. Dạng của vector tạo từ bức ảnh về khuôn mặt [6]. ...................................... 14
Hình 2.19. Mạng nơron lan truyền ngược cho nhận dạng khuôn mặt.......................... 55
Hình 3.1. Mạng nơron lan truyền ngược cho nhận dạng khuôn mặt . Error! Bookmark
not defined.
Hình 3.1. Ảnh gốc trong cơ sở dữ liệu ....................................................................... 58
Hình 3.2. Giao diện chính của chương trình ứng dụng ............................................... 61
Hình 3.3. Giao diện của chương trình Tạo cơ sở dữ liệu từ webcam .......................... 62
Hình 3.4. Giao diện của chương trình Tạo cơ sở dữ liệu từ nguồn ảnh tĩnh ................ 62
Hình 3.5. Giao diện của chương trình Tạo vector đặc trưng ....................................... 63
Hình 3.6. Phần thực, ảo, biên độ của bộ lọc Gabor và ảnh đặc trưng khi qua bộ lọc ... 63
Hình 3.7. Kết quả luyện mạng nơron và kiểm tra ....................................................... 64
viii
DANH MỤC BẢNG BIỂU
Bảng 2.2. Một số công trình công bố sử dụng mạng nơron cho nhận dạng khuôn mặt 50
Bảng 3.1. Các module chính của chương trình ........................................................... 60
ix
DANH MỤC CÁC TỪ VIẾT TẮT
Từ hoặc
cụm từ
Từ tiếng Anh
Từ tiếng Việt
Cơ sở dữ liệu
Mạng Nơron
PCA
Principal Component Analysis
Phương pháp phân tích thành phần chính
SVM
Support Vector Machine
Học máy véc tơ hỗ trợ
1
LỜI MỞ ĐẦU
1. Tính khoa học và cấp thiết của đề tài
Hiện nay, rất nhiều quốc gia trên thế giới phải đối mặt với tình hình bất ổn về chính
trị, an ninh. Hậu quả của vụ khủng bố 11/9 cũng như một loạt các vụ khủng bố xả súng,
đánh bom liều chết gần đây làm cho vấn đề an ninh bảo mật trở thành yêu cầu khắt khe.
Hệ quả là, các hệ thống xác định, nhận dạng con người được ra đời và cải tiến liên tục
sao cho đạt được độ tin cậy cao nhất. Một trong những bài toàn nhận dạng con người
được quan tâm nhất hiện nay đó là nhận dạng qua khuôn mặt [8] .
Thực tế, ngay từ xa xưa, nhận dạng khuôn mặt đã là cách thức truyền thống để con
người nhận ra nhau. Với sự phát triển vượt bậc của ngành công nghệ thông tin, vào
những năm 60 của thế kỷ trước, các nhà khoa học đã nghiên cứu sử dụng máy tính vào
việc nhận dạng khuôn mặt. Tuy nhận dạng khuôn mặt không chính xác được như nhận
-
Tập trung làm rõ cơ sở lý thuyết cũng như các ứng dụng của phương pháp nhận
dạng khuôn mặt sử dụng mạng nơron.
-
Phân tích bài toán, lựa chọn thuật toán, thiết kế và cài đặt thử nghiệm phần mềm
mô phỏng nhận dạng thí sinh dự thi ứng dụng mạng nơron.
Chính vì vậy, đối tượng của luận văn là: Các phương pháp nhận dạng khuôn mặt
sử dụng mạng nơron.
Về phạm vi nghiên cứu: luận văn sẽ khảo sát và đánh giá một số phương pháp
thường dùng trong nhận dạng khuôn mặt sử dụng mạng nơron; Lựa chọn phương pháp
phù hợp nhất đối với bài toán nhận dạng thí sinh dự thi; Tập trung sâu vào cài đặt thử
nghiệm phần mềm nhằm chứng minh tính đúng đắn và khả năng ứng dụng trong thực tế
của phương pháp lựa chọn.
3. Phương pháp luận nghiên cứu
-
Phương pháp nghiên cứu lý thuyết: Tổng hợp, nghiên cứu các tài liệu về nhận
dạng khuôn mặt; Nghiên cứu các phương pháp, thuật toán nhận dạng khuôn mặt
sử dụng mạng nơron; Tìm hiểu các kiến thức liên quan như lý thuyết xử lý ảnh,
kỹ thuật lập trình.
-
Phương pháp nghiên cứu thực nghiệm: Sau khi nghiên cứu lý thuyết, phát biểu
bài toán, đưa ra giải pháp xử lý; cài đặt thử nghiệm chương trình phần mềm dùng
công cụ Matlab; Đánh giá các kết quả đạt được.
CHƯƠNG 1 TỔNG QUAN VỀ NHẬN DẠNG KHUÔN MẶT
Tổng quan về hệ thống nhận dạng khuôn mặt
1.1.1 Mô tả bài toán nhận dạng khuôn mặt
Như chúng ta đã biết, con người khi sinh ra đã có những đặc điểm sinh học tự
nhiên riêng biệt phân biệt giữa người này với người kia, rất khó có thể trùng lặp. Các
đặc điểm đó có thể bị thay đổi trong cuộc sống trừ những tác động khách quan hoặc chủ
quan như: tai nạn, tổn thương, phẫu thuật chỉnh hình... Chính bởi yếu tố riêng biệt đó,
các nhà khoa học tập trung nghiên cứu, tìm hiểu đặc trưng sinh trắc của con người và áp
dụng vào các biện pháp giúp nhận dạng, xác định danh tính của mỗi người. Dựa vào
những đặc điểm sinh trắc học của con người, các hệ thống nhận dạng sinh trắc học ra
đời nhằm giải quyết nhiều vấn đề có liên quan tới bảo mật, an ninh, khoa học hay các
nhu cầu khác trong cuộc sống.
Các đặc trưng sinh trắc khuôn mặt là những đặc điểm riêng trên khuôn mặt mỗi
người gần như không thay đổi theo thời gian, các đặc điểm này phân biệt giữa người
này và người kia, rất khó có thể xảy ra trùng lặp. Dựa trên nhận xét thực tế, con người dễ
dàng nhận biết các khuôn mặt và các đối tượng trong các tư thế khác nhau và điều kiện ánh
sáng khác nhau, thì phải tồn tại các thuộc tính hay đặc trưng không thay đổi. Chính vì thế,
việc xác định danh tính, nhận dạng khuôn mặt người thông qua các đặc trưng sinh trắc học
đó sẽ đảm bảo được độ chính xác, tin cậy cao.
Bản thân con người có thể nhận dạng ảnh khuôn mặt của mọi người một cách dễ
dàng. Thậm chí, ảnh đó có thể nằm trong một ảnh nền phức tạp. Tuy nhiên, đối với hệ
máy thì việc nhận dạng này là một công việc rất phức tạp và khó khăn. Chính vì vậy,
trong những năm gần đây, lĩnh vực nhận dạng khuôn mặt đã nhận được sự quan tâm
nghiên cứu lớn từ các nhà khoa học nhằm tạo ra các hệ hỗ trợ quyết định phục vụ trong
rất nhiều lĩnh vực của cuộc sống.
Giả sử ta có một cơ sở dữ liệu ảnh đã được lưu trong máy về một số người (Hình
1.1), bài toán nhận dạng là làm sao để khi đưa ảnh khuôn mặt của một người bất kỳ vào
thì máy sẽ tự động nhận dạng ra người này trong cơ sở dữ liệu.
Tiền xử lý (Pre-Processing): Bước này nhằm mục đích lọc nhiễu, nâng cao chất
lượng ảnh để chuẩn hóa ảnh cần tìm giúp cho việc tìm kiếm được hiệu quả hơn
[13] . Các công việc trong bước tiền xử lý có thể là: Chuẩn hóa kích cỡ giữa ảnh
trong CSDL và ảnh cần tìm, hiệu chỉnh độ sáng, tối của ảnh; lọc nhiễu, chuẩn
hóa về vị trí, tư thế ảnh mặt.
-
Trích chọn đặc trưng (FE): Tìm ra các đặc trưng chính của ảnh mặt, từ các đặc
trưng này hình thành các vector đặc trưng, các vector này sẽ được sử dụng để đối
sánh sự giống nhau giữa ảnh mặt cần tìm và ảnh mặt trong CSDL.
-
Nhận dạng/Phân lớp: Bước nhận dạng (recognition) hay phân lớp
(classification), tức là xác định danh tính (identity) hay nhãn (label) của ảnh đó
là ảnh của ai.
-
Dữ liệu hệ thống nhận dạng: Dữ liệu hệ thống nhận dạng được chia làm 3 tập
gồm tập huấn luyện (training set), tập tham chiếu (reference set) và tập để nhận
dạng (probe set). Tập training gồm các ảnh được dùng để huấn luyện, thông
thường tập này được dùng để sinh ra một không gian con là một ma trận. Tập
reference gồm các ảnh đã biết danh tính được chiếu vào không gian con ở bước
training... Sau khi thực hiện chiếu tập reference vào không gian con, hệ thống lưu
lại kết quả là một ma trận với mỗi cột của ma trận là một vector tương ứng với
ảnh (định danh đã biết) để thực hiện nhận dạng (hay phân lớp).
-
Lưu trữ hình ảnh khuôn mặt những người rút tiền từ máy ATM, hiện nay có tình
trạng những người bị người khác lấy mất mã số PIN và những người ăn cắp này
đi rút tiền. Hoặc những người chủ thẻ đi rút tiền nhưng lại báo mất thẻ và mất
tiền. Các ngân hàng có nhu cầu khi giao dịch tiền sẽ kiểm tra hay lưu trữ khuôn
mặt người rút tiền để sau đó đối chứng và xử lý.
-
Các hệ thống mở cửa, chấm ngày công lao động của các nhân viên vào ra trong
công ty. Hệ thống nhận dạng mặt người sẽ cho phép các nhân viên vào ra những
khu vực cho phép, hay đăng nhập máy tính hoặc đăng nhập máy tính cá nhân của
mình mà không cần mật khẩu,…
-
Phân tích các cảm xúc của con người trên khuôn mặt.
-
Tương lai sẽ phát triển các loại thẻ thông minh có tích hợp sẵn đặc trưng của
người dùng trên đó, khi bất cứ người dùng nào khác dùng để truy cập hay xử lý
tại các hệ thống sẽ được yêu cầu kiểm tra các đặc trưng của khuôn mặt so với thẻ
để biết có phải là chủ thẻ hay không.
8
1.1.4 Ứng dụng của hệ thống nhận dạng khuôn mặt trong bài toán nhận dạng thí
sinh dự thi
chính (tiền xử lý, tách vùng mặt, trích chọn đặc trưng, đối sánh). Mỗi một khâu đều có
tác động đến độ chính xác của hệ thống. Tuy nhiên, hai khâu quan trọng nhất vẫn là trích
chọn đặc trưng và đối sánh (ra quyết định). Chính vì vậy, qua khảo sát các công trình
nghiên cứu liên quan đến nhận dạng khuôn mặt [3], [10] [12] , ta có thể thấy các công
trình công bố đều chủ yếu tập trung vào cải tiến hai bước chính là trích chọn đặc trưng
và ra quyết định.
1.2.1 Theo định hướng tìm ra cách trích chọn đặc trưng
Các phương pháp trích chọn đặc trưng khuôn mặt
Dựa trên mô hình các chi tiết
Dựa trên tổng thể khuôn mặt
Linear
PCA
LDA
ICA
Ohters
Non-linear
KPCA
ISOMAP
LLE
2D
EBGM
AAM
Trích chọn các đặc trưng phi tuyến: KPCA, ISOMAP
Nhận dạng sử dụng mô hình về khuôn mặt (Model-based face recognition ):
Đây là phương pháp nhận dạng khuôn mặt dựa trên việc xác định các đặc trưng hình
học của các chi tiết trên một khuôn mặt (như vị trí, diện tích, hình dạng của mắt, mũi,
miệng…), và mối quan hệ giữa chúng (như khoảng cách của hai mắt, khoảng cách
của hai lông mày…). Một số phương pháp được dùng cho loại này như:
-
Nhận dạng 2D: EBGM, Active Appearance Model.
-
Nhận dạng 3D: 3D Morphable Model.
Ưu điểm của phương pháp này là nó gần với cách mà con người sử dụng để nhận
biết khuôn mặt. Hơn nữa với việc xác định đặc tính và các mối quan hệ, phương pháp
này có thể cho kết quả tốt trong các trường hợp ảnh có nhiều nhiễu như bị nghiêng, bị
xoay hoặc ánh sáng thay đổi.
1.2.2 Theo định hướng ra quyết định
Theo định hướng tìm ra thuật toán ra quyết định hiệu quả sao cho sai số nhỏ nhất,
có một số hướng tiếp cận như sau:
-
Khoảng cách Euclides là phương pháp đơn giản nhất. Nó cho kết quả tốt đối với
trường hợp đối tượng đã được tạo thành các nhóm cách xa nhau. Vector đặc tính
của đối tượng cần nhận dạng sẽ được so sánh lần lượt với vector đặc tính của
từng ảnh mẫu trong tập các ảnh học. Các khoảng cách ngắn nhất sẽ được lưu lại
và được dùng trong việc ra quyết định.
Một số phương pháp tiêu biểu trong trích chọn đặc trưng khuôn mặt
1.3.1 Phương pháp PCA.
1.3.1.1 Nguyên lý chung
70.00
60.00
50.00
x2
40.00
30.00
20.00
10.00
0.00
0.00
50.00
100.00
150.00
200.00
250.00
x1
70.00
60.00
PCA là một thuật toán để được sử dụng để tạo ra một ảnh mới từ ảnh ban đầu.
Ảnh mới này có kích thước nhỏ hơn rất nhiều so với ảnh đầu vào và vẫn mang những
đặc trưng cơ bản nhất của ảnh cần nhận dạng. PCA không cần quan tâm đến việc tìm ra
các đặc điểm cụ thể của thực thể cần nhận dạng và mối quan hệ giữa các đặc điểm đó.
Tất cả các chi tiết đó đều được thể hiện ở ảnh mới được tạo ra từ PCA [6] .
Về bản chất, PCA tìm ra một không gian mới theo hướng biến thiên mạnh nhất
của một tập hợp các vector trong không gian cho trước. Trong không gian mới, người
ta hy vọng rằng việc phân loại sẽ mang lại kết quả tốt hơn so với không gian ban đầu.
1.3.1.2 Nội dung thuật toán PCA
Không gian mới được tạo bởi PCA được cấu thành từ K vector đơn vị có chiều
là N. Mỗi vector được gọi là một Eigenface.
Phép biến đổi:
a1
w1
a
w
2
2
.
.
A W với K
13
Gọi A=[Ф1,Ф2,…,ФM] ta có ma trận tương quan của A là:
C
1
M
M
i 1
i
T
i
A. AT
(1.5)
Gọi các giá trị riêng của C là λ1, λ2,…, λN sắp xếp theo thứ tự giảm dần, tương
ứng với N vector riêng u1, u2,…, uN. Các vector riêng này trực giao từng đôi một. Mỗi
vector riêng ui được gọi là một eigenface. Tập hợp các vector ban đầu được biểu diễn
trong không gian tạo bởi N eigenface theo mô tả:
N
x x w1u1 w2 u 2 ... wN u N wi ui
(1.6)
riêng và giá trị riêng của ma trận L=AT.A có kích thước MxM với M là số ảnh đầu vào.
Ta có thể chứng minh như sau: gọi vi, µi lần lượt là vector riêng và giá trị riêng của ma
trận L:
AT.A.vi=µi.vi
(1.8)
14
Nhân cả 2 vế với A ta có:
A.AT.A.vi=µi.A.vi
(1.9)
Ta thấy A.vi chính là vector riêng của C=A.AT ứng với giá trị riêng µi
1.3.1.3 Áp dụng PCA vào trích chọn vector đặc tính cho bài toán nhận dạng khuôn mặt
Một bức ảnh về khuôn mặt được coi như là một vector, nếu bức ảnh có kích thước
là w*h pixels thì không gian chứa vector này có số chiều là N=w*h. Mỗi pixel sẽ được
mã hóa bởi một thành phần của vector. Cấu trúc của vector được tạo từ ảnh có thể được
hình dung như Hình 1.5
Hình 1.5. Dạng của vector tạo từ bức ảnh về khuôn mặt [6] .
Khâu quan trọng nhất trong bài toán nhận dạng đó là trích chọn vector đặc tính.
Các bước trích chọn vector đặc tính mang những đặc tính riêng của mặt cần nhận dạng:
(1).
Tạo một tập X gồm M ảnh (ảnh học), mỗi ảnh có kích thước N, các ảnh
được chuyển thành vector N chiều.
X={x1,x2,…,xM}
(2).
15
(5).
Xây dựng các ảnh mới vi theo M vector u:
vi uit i
Ω=[v1,v2,…,vM]T
(1.13)
Trong đó vi uiT i là vector đặc tính của ảnh thứ i trong không gian mới. Ω ở
đây là tập các eigenface, các thành phần cơ bản cho bức ảnh cần nhận dạng.
Hình 1.6 mô tả các ảnh gốc được lấy từ cơ sở dữ liệu ORL (Olivetti Research
Laboratory, Surrey University). Mỗi ảnh có kích thước 112×92, có thể được coi là một
vector 10304 chiều, hoặc tương đương với một điểm trong không gian 10304 chiều.
Áp dụng PCA để giảm số chiều của không gian khổng lồ trên, kết quả thu được là
các ảnh đã được biến đổi sau khi phân tích theo các thành phần đặc trưng, các vector
riêng được chọn theo các giá trị riêng tương ứng có giá trị lớn hơn 10 -3, số lượng vector
riêng là 49, nghĩa là mỗi ảnh biểu diễn một điểm trong không gian 49 chiều (Hình 1.7).
Hình 1.6. Ảnh gốc trong cơ sở dữ liệu ORL