Phương pháp phân tích thành phần chính (PCA Principal Component Analysis) là phương pháp trích rút đặc trưng nhằm giảm số chiều của ảnh tuy đơn giản nhưng mang lại hiệu quả tốt. Nhận dạng khuôn mặt dùng PCA kết hợp với mạng noron là phương pháp mang lại hiệu quả nhận dạng cao bởi nó phát huy được ưu điểm của PCA và mạng nơron
Trang 12
Trang 23
M ỤC LỤC
MỤC LỤC 3
MỞ ĐẦU 4
1 HỆ THỐNG NHẬN DẠNG KHUÔN MẶT 5
2 PHƯƠNG PHÁP TRÍCH CHỌN ĐẶC TRƯNG PCA 6
3 MẠNG NORON NHÂN TẠO 8
3.1 MẠNG NORON TRUYỀN THẲNG 8
3.2 THUẬT TOÁN LAN TRUYỀN NGƯỢC SAI SỐ 10
4 NHẬN DẠNG KHUÔN MẶT 12
5 CHƯƠNG TRÌNH TRÊN MATLAB 14
6 KẾT LUẬN 19
Trang 34
MỞ ĐẦU
Nhận dạng khuôn mặt người là một công nghệ được ứng dụng rộng rãi trong đời sống hằng ngày của con người như các hệ thống giám sát, quản lý vào
ra, tìm kiếm thông tin một người nổi tiếng,…Có rất nhiều phương pháp nhận
dạng khuôn mặt để nâng cao hiệu suất tuy nhiên dù ít hay nhiều những phương pháp này đang vấp phải những thử thách
Phương pháp phân tích thành phần chính (PCA - Principal Component Analysis) là phương pháp trích rút đặc trưng nhằm giảm số chiều của ảnh tuy đơn giản nhưng mang lại hiệu quả tốt Nhận dạng khuôn mặt dùng PCA kết hợp với mạng noron là phương pháp mang lại hiệu quả nhận dạng cao bởi
nó phát huy được ưu điểm của PCA và mạng nơron Hệ thống hoạt động ổn định
và có tính thích nghi cao khi dữ liệu đầu vào thay đổi nhiều về độ sáng, hướng nghiêng, kích thước ảnh, hay ảnh hưởng của tham số môi trường
Trang 45
1 HỆ THỐNG NHẬN DẠNG KHUÔN MẶT
Các bước nhận dạng khuôn mặt cơ bản trong một hệ thống
Hình 1: H ệ thống nhận dạng khuôn mặt cơ bản
Ảnh cần nhận dạng: Ảnh mặt người cần nhận dạng
Tiền xử lý: Đây là quá trình xử lý đối với ảnh khuôn mặt Mục đích của
quá trình này nhằm nâng cao chất lượng ảnh, chuẩn hóa dữ liệu, kích thước ảnh
Trích ch ọn đặc trưng: Là kỹ thuật sử dụng các thuật toán để lấy ra những
thông tin mang tính đặc trưng của đối tượng cần nhận dạng Trong nội dung sẽ trình bày phương pháp phân tích thành phần chính PCA Đây là một phương pháp có nhiều ưu điểm, phương pháp này giúp giảm chiều dữ liệu; thay vì giữ
lại các trục tọa độ của không gian cũ, PCA xây dựng lên một không gian mới ít chiều hơn, nhưng có khả năng biểu diễn dữ liệu tốt tương đương không gian cũ
Bộ phân loại: Các đặc trưng của các đối tượng sau khi được trích chọn sẽ
được đưa vào bộ phân loại (nhận dạng) để so sánh với các dữ liệu trong Cơ sở
d ữ liệu khuôn mặt huấn luyện, từ đó nhận dạng đối tượng Có nhiều phương
pháp khác nhau cho nhận dạng khuôn mặt Trong nội dung trình bày phương pháp nhận dạng bằng mạng noron
Trang 56
2 PHƯƠNG PHÁP TRÍCH CHỌN ĐẶC TRƯNG PCA
Ý tưởng chính của phương pháp phân tích thành phần chính (PCA– Principal Component Analysis) là tìm các vector biểu diễn những sự phân bố đặc trưng nhất của các ảnh trong toàn bộ không gian ảnh Những vector này hình thành nên một không gian con của các ảnh được gọi là “không gian khuôn
mặt” (eigenface)
Đọc các ảnh từ tập huấn luyện
Chuyển các ảnh thành các vector cột
Tính vector trung bình
Tính sai lệch của mỗi vector đối với vector trung bình
Biểu diễn các ảnh của tập huấn luyện trong không gian khuôn mặt (eigenface)
Bắt đầu
Tính ma trận hiệp phương sai
Tính trị riêng và
vector riêng của ma
trận hiệp phương sai
Chọn số đặc trưng để
tạo không gian khuôn
Hình 2: Lưu đồ thuật toán cho trích chọn đặc trưng bằng PCA
Đầu tiên, các ảnh trong tập huấn luyện phải cùng kích thước, khuôn mặt trong các ảnh phải chính diện
- Giả sử có tập ảnh mẫu S gồm m ảnh Mỗi ảnh có kích thước r x c Mỗi ảnh được chuyển thành một vector cột Γ có n= r x c chiều i
[ 1, 2, , ]
=
S Γ Γ Γm
- Tính vector trung bình:
1
1 m
i i
m =
- Tính sai lệch của các ảnh đầu vào so với ảnh trung bình
Φ Γ Ψ
- Tính ma trận hiệp phương sai
Trang 67
T
=
C A A với A=[Φ Φ1, 2, ,Φm]
- Tính trị riêng và vector riêng của ma trận hiệp phương sai
Do ma trận C có kích thước quá lớn (n x n) nên để tìm vector riêng và trị riêng của C ta tìm vector riêng và trị riêng của ma trận L:
T
=
L A A
Ma trậnL sẽ có kích thước: m x m Giả sử vL, uLvà vector riêng và trị riêng của ma trậnL, khi đó ma trận vector riêng vCcủa ma trận C sẽ là:
=
vC A.vL
- Ma trận vector riêng vC có kích thước nxn Ta có thể bỏ đi k vector riêng ứng với các trị riêng nhỏ nhất và giữ lại n-k vector riêng ứng với các trị riêng lớn hơn Khi đó ma trận vC sẽ có kích thước n x (n-k)
- Tập hợp các vector cột trong ma trận vC tạo ra một eigenface (Không gian khuôn mặt)
- Chiếu các vector ảnh trong tập huấn luyện lên không gian mới này ta được các vector đặc tính tương ứng Các vector này có kích thước nhỏ hơn nhiều
so với kích thước ảnh, nhưng vẫn mang đặc trưng của ảnh
- Ma trận các vector đặc tính:
T
P = vC A
Mỗi cột trong ma trận P là một vector đặc tính tương ứng với mỗi ảnh trong tập mẫu
Mỗi cột trong ma trận P sẽ là một vector đầu vào của mạng noron để huấn luyện mạng
Trang 78
3 M ẠNG NORON NHÂN TẠO
Nơron nhân tạo và mạng nơron nhân tạo được hình thành trên cơ sở các kiến thức về cấu trúc và chức năng của nơron thần kinh và hệ thống thần kinh sinh học Mạng nơron nhân tạo giải quyết được nhiều bài toán thực tế như nhận dạng, phân loại mẫu, xấp xỉ hàm phi tuyến…cũng như các bài toán xử lý thông tin, hình thành tín hiệu điều khiển… mà một nơron đơn không thể giải quyết được Thông thường, mỗi mạng nơron bao gồm nhiều lớp, mỗi lớp lại có nhiều nơron liên kết theo các dạng khác nhau
Mạng noron sử dụng để nhận dạng khuôn mặt trong bài toán là mạng noron truyền thẳng nhiều lớp, luyện mạng với thuật toán lan truyền ngược giảm độ dốc với momentum và quy tắc học thích nghi
3.1 Mạng noron truyền thẳng
Mạng nơron truyền thẳng (liên kết thẳng) bao gồm nhiều lớp nơron liên kết nối tiếp với nhau, đầu ra của lớp này được nối với đầu vào của lớp kế tiếp Tín hiệu truyền thẳng từ đầu vào đến đầu ra của mạng Một mạng nơron truyền thẳng thường có ba lớp chính:
- Lớp đầu vào (input layer), đầu vào của lớp này liên kết với vectơ đầu vào,
số lượng nơron trong lớp này bằng với số lượng tín hiệu của vectơ đầu vào;
- Lớp ẩn (hidden layer), là lớp trung gian giữa lớp vào và lớp ra, số lượng lớp
ẩn có thể là một hoặc nhiều hơn Lớp ẩn đóng vai trò chủ yếu trong việc xử lý và biến đổi tín hiệu đầu vào Số các lớp ẩn và số lượng nơron trong một lớp ẩn, hàm chuyển đổi của nơron trong lớp ẩn phụ thuộc vào tính chất và mức độ phức tạp của nhiệm vụ mà mạng nơron cần phải giải quyết
- Lớp ra (output layer), thường có hàm chuyển đổi là hàm tuyến tính, số
lượng nơron trong lớp này bằng với kích thước của vectơ đầu ra
Trang 89
Hình 3 : Cấu trúc mạng noron truyền thẳng 3 lớp
Hàm kích hoạt sử dụng cho mỗi lớp trong hệ thống nhận dạng khuôn mặt
là hàm logsig
Hình 4: Hàm logsig
Mạng noron truyền thẳng nhiều lớp sử dụng thuật toán lan truyền ngược sai số là một dạng huấn luyện có giám sát
Hình 5: Mô hình h ọc có giám sát
Trang 910
3.2 Thuật toán lan truyền ngược sai số
Thuật toán này yêu cầu cung cấp cả vector đầu vào và vector mục tiêu
(vector đầu ra mong muốn) Khi tiến hành luyện mạng, vector đầu ra a của mạng
sẽ được so sánh với vector mục tiêu t Trong trường hợp có sự khác nhau giữa 2 vector, các trọng số và bias của mạng sẽ được điều chỉnh để giảm thiểu sự khác
nhau đấy Khi bắt đầu luyện mạng, trọng số và bias của mạng được cài đặt ngẫu nhiên
Hình 6: Mô hình m ạng noron truyền thẳng 3 lớp
Đối với mạng nhiều lớp lan truyền thẳng, đầu ra của lớp trước là đầu vào của lớp kế tiếp Phương trình biểu diễn mối quan hệ nối tiếp nhau này có dạng:
trong đó là số lớp của mạng Các nơron của lớp đầu tiên nhận các tín hiệu đầu vào đưa đến mạng:
0 1
=
Các đầu ra của nơron của lớp cuối cùng là đầu ra của mạng:
m
a = a Với mỗi vectơ đầu vào đưa đến mạng, giá trị đầu ra của mạng sẽ được so sánh với giá trị đích Thuật toán phải điều chỉnh các tham số của mạng nhằm
mục đích tối thiểu hóa hàm số đối với sai số trung bình bình phương:
( ) E[e ] = E[(t - a) ]
trong đó là vectơ tham số của trọng lượng và bias của mạng
Nếu như mạng có nhiều đầu ra thì:
( ) E[e e] = E[( - ) ( - )]T T
Giống như thuật toán giảm độ dốc lớn nhất (LMS), thực hiện xấp xỉ hóa hàm số của sai số trung bình bình phương bằng hàm số:
( ) ( (k) - (k)) ( (k)- (k))=T T(k) (k)
Trang 1011
trong đó kỳ vọng của sai số bình phương được thay thế bằng sai số bình phương
tại bước lặp thứ k
Thuật toán giảm độ dốc lớn nhất để xấp xỉ sai số trung bình bình phương,
áp dụng đối với trọng số và bias của các nơron trong mạng có dạng:
,
w
i j
F
∂
i
F
b
α ∂
∂
Trang 1112
4 NHẬN DẠNG KHUÔN MẶT
Tập ảnh được sử dụng để huấn luyện được lấy từ cơ sở dữ liệu ORL (Olivetti Research Laboratory, Surrey University) Các ảnh ở đây tương đối đa dạng, chúng có thể được chụp ở những thời điểm khác nhau, với những góc nghiêng khác nhau, những trạng thái khác nhau như cười hoặc không cười, đeo kính hoặc không, nheo mắt, miệng mở hoặc đóng…… Tập ảnh gồm ảnh
của 40 người, mỗi người có 10 ảnh khác nhau Các ảnh đều là ảnh xám, có kích thước 112x92 Ngoài ra có thể tạo thêm các ảnh khác để đưa vào tập huấn luyện Các ảnh trong tập huấn luyện sẽ được lưu trong thư mục Anh train Trong thư mục này, ảnh của mỗi người sẽ được lưu trong một thư mục riêng Các thư
mục này được đặt tên theo thứ tự: S1, S2, S3… Các ảnh trong mỗi thư mục được đặt tên bằng các số theo thứ tự: 1,2,3,4…n (n: số ảnh của một người) Các
ảnh sử dụng có đuôi: bmp hoặc pgm
Người thứ 1
Người thứ 2
Người thứ k
Người thứ m
PCA đặc trưngVector Mạng noron
1 0
0
0
0 1
0
0
0 0
1
0
0 0
0
1
Người thứ: 1 2… k… m
Đầu ra mạng
Tập ảnh
huấn luyện
Hình 7: Quá trình hu ấn luyện tập ảnh huấn luyện
Trang 1213
PCA đặc trưngVector Mạng noron
a 1
a2
a k
am
Ảnh cần
nhận
dạng
ai_max=Max(ai)
So sánh với ngưỡng a 0
Không giống trong
tập ảnh huấn luyện
Ảnh nhận dạng giống ảnh người thứ i trong tập huấn luyện
ai_max < a0
Hiển thị ảnh và thông tin của ảnh
Hình 8: Quá trình nh ận dạng ảnh
Ảnh cần nhận dạng sẽ được chuẩn hóa kích thước theo ảnh trong tập huấn luyện, biểu diễn trong không gian eigenface của tập huấn luyện để tạo ra một vector đặc trưng cho ảnh Sau đó vector đặc trưng cho ảnh này được đưa vào mạng noron để kiểm tra Đầu ra của mạng là một vector cột Xác định phần tử lớn nhất trong vector, so sánh với một ngưỡng để xác định ảnh đấy có giống với ảnh nào trong tập huấn luyện không và xác định ảnh giống đấy
Trang 1314
5 CHƯƠNG TRÌNH TRÊN MATLAB
- Để chạy chương trình, chạy file: XLA_CDT29.m
Hình 9: Giao di ện chính của chương trình Các nút ch ức năng trong giao diện:
- Them doi tuong mau: Chọn Các đối tượng mẫu để đưa vào luyện mạng + Anh trong 1 lop: S ố ảnh của cùng một người
+ So lop them: Số người sẽ được đưa vào tập mẫu để luyện mạng
+ So lop da them: S ố người đã được đưa vào tập mẫu
- Xoa toan bo du lieu: Xóa toàn b ộ tập mẫu đã được xây dựng
- Thay doi lop du lieu: Cho phép thay đổi dữ liệu về một người đã được
đưa vào tập huấn luyện Lựa chọn lớp cần thay đổi, sau đó nhấn Thay doi và
chọn vào thư mục chứa ảnh của lớp cần thay đổi
- Tao doi tuong mau: Lựa chọn mở ra giao diện cho phép xây dựng các ảnh mẫu để đưa vào tập huấn luyện Có thể xây dựng ảnh mẫu từ webcam hoặc
từ một ảnh khác
Trang 1415
Hình 10: Giao di ện tạo đối tượng mẫu
- Thiet lap mang noron: Cho phép thiết lập các tham số của mạng noron
Hình 11: Thi ết lập mạng noron
Trang 1516
Nút View: Hiển thị cấu trúc mạng được sử dụng để luyện mạng
Hình 12: C ấu trúc mạng sử dụng
- TRAINING: Tiến hành luyện mạng
Hình 13: Hình hi ển thị khi tiến hành luyện mạng
- Nhan dang anh: Lựa chọn cho phép nhận dạng từ ảnh Ảnh cần nhận
dạng được đưa vào bằng cách nhấn Chon anh, tìm đến file ảnh cần nhận dạng
Sau đó tách khuôn mặt từ ảnh bằng các sử dụng 2 nút nhấn Tu dong hoặc Bang
tay:
Trang 1617
+ Tu dong: Cho phép tách khuôn mặt từ ảnh một cách tự động Chương trình sẽ tự động phát hiện các khuôn mặt có trong ảnh Mỗi lần nhấn Tu dong, một khuôn mặt trong ảnh sẽ được chọn và hiển thị sang bên phải Sau đó nhấn
nút Nhan dang để tiến hành nhận dạng khuôn mặt Nếu nhận dạng được ảnh thì các thông tin về ảnh sẽ được hiển thị ở các mục bên dưới ảnh, một ảnh trong tập huấn luyện sẽ được hiện thị vào vị trí của ảnh phía trên các mục thông tin về ảnh
Mục So thu tu: Hiển thị lớp trong tập huấn luyện giống ảnh cần nhận
dạng
Nếu không nhận dạng được, mục So thu tu sẽ hiện thị: Khong xac dinh
+ Bang tay: Chọn khuôn mặt bằng cách sử dụng chuột để tạo một
khung hình chữ nhật bao quanh khuôn mặt cần nhận dạng
- Nhan dang webcam: Cho phép phát hiện và nhận dạng khuôn mặt từ webcam Nếu đối tượng được nhận dạng thì trên góc trái cùng của khuôn mặt sẽ hiển thị lớp trong tập huấn luyện mà đối tượng đó thuộc về và tên của đối tượng, nếu không nhận dạng được, thì sẽ hiện thị “00000”
Hình 14: Nh ận dạng qua webcam
Trang 1718
- Nhan dang Video: Cho phép lựa chọn video, chương trình sẽ phát hiện các khuôn mặt trong video và tiến hành nhận dạng các khuôn mặt phát hiện
được
Hình 15 Nh ận dạng qua video
- Cách hiển thị thông tin nhận dạng được như trường hợp nhận dạng qua
webcam
Trang 1819
6 KẾT LUẬN
Với kiến thức được trang bị trong môn học, nhóm thực hiện đã xây dựng được chương trình Nhận dạng khuôn mặt bằng mạng noron và phương pháp PCA trên phần mềm matlab Mạng noron sử dụng là mạng noron truyền thẳng nhiều lớp, luyện mạng với thuật toán lan truyền ngược giảm độ dốc với momentum và quy tắc học thích nghi Chương trình cho phép tạo đối tượng mẫu
để đưa và tập huấn luyện, thiết lập các tham số của mạng noron Chương trình
có khả năng phát hiện nhiều khuôn mặt trong ảnh, video, webcam và nhận dạng các ảnh phát hiện được Tuy nhiên, do kiến thức và thời gian thực hiện còn hạn
chế nên chương trình còn một số hạn chế như: chưa chuẩn hóa được (về chất lượng) các ảnh xây dựng để đưa vào tập mẫu, tốc độ nhận dạng qua video và webcam thấp, chưa đáp ứng được thời gian thực…