1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

TÌM HIỂU PCA NHẬN DẠNG mặt NGƯỜI (có code)

36 1,9K 31

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 36
Dung lượng 1 MB

Nội dung

TÌM HIỂU PCA NHẬN DẠNG mặt NGƯỜI (có code) .................................. TÌM HIỂU PCA NHẬN DẠNG mặt NGƯỜI (có code) .................................. TÌM HIỂU PCA NHẬN DẠNG mặt NGƯỜI (có code) .................................. TÌM HIỂU PCA NHẬN DẠNG mặt NGƯỜI (có code) .................................. TÌM HIỂU PCA NHẬN DẠNG mặt NGƯỜI (có code) ..................................

Trang 1

TÌM HIỂU PCA NHẬN DẠNG MẶT

NGƯỜI

Trang 2

DANH MỤC CÁC HÌNH VẼ

Trang 4

GUI Graphical User Interface

ICA Independent Component Analysis

MATLAB Matrix Laboratory

PCA Principal Component Analysis

Trang 5

CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI

1.1 Giới thiệu

- Với sự tiến bộ của khoa học công nghệ, những thuật toán về computer vision đãcho phép con người có thể dùng máy móc thay thế cho những việc tưởng chừngnhư khó khăn thành đơn giản với , những việc đòi hỏi không những xử lý nhanh

mà sự hiệu quả mang lại cao gấp nhiều lần so với con người làm

- Nhận dạng mặt người là một trong những ứng dụng tuyệt vời với những giá trị

mà nó mang lại Để tra thông tin về một người, chúng ta có thể mất hàng tiếngđồng hồ để tìm ra được đó là khi trong phạm vi tìm kiếm nhỏ, vậy khi tìm ngườinào đó ở một phạm vi quốc gia thì sao, điều đó là bất khả thi Nhưng với mộtthuật toán để nhận dạng mặt người, chỉ mất vài phút có thể lâu khi cơ sở dữ liệulớn nhưng tính hiệu quả vẫn tốt hơn

- Ứng dụng về nhận dạng mặt người đã xuất hiện trên các smartphone để mở khóamàn hình, có thể dùng điểm danh trong trường học, công ty

1.1.1 Yêu cầu của đề tài

- Phát hiện khuôn mặt, tách khuôn mặt ra riêng Sử dụng thuật toán PCA đểtrainning tạo ra cơ sở dữ liệu và nhận dạng khuôn mặt

1.1.2 Hướng giải quyết

- Viết sơ đồ giải thuật, viết code, tạo giao diện người dùng (GUI) qua phần mềmMATLAB

có tính khả thi khi cho việc áp dụng nhận dạng khuôn mặt với số lượng người

Trang 6

- Giải pháp là tìm thuật toán giải quyết vấn đề thực hiện nhanh việc tính toán vàthuật toán PCA được dùng trong việc nhận dạng mặt người, chiều vector giảm đinhiều so với ảnh đầu vào, trích xuất những đặc trưng về khuôn mặt của mộtngười, tính toán được ma trận hiệp phương sai là bước đệm để tìm ra các trịriêng và vector riêng của ảnh Các vector riêng là chìa khóa giúp tìm ra thông tin

Trang 7

• Sau khi dò tìm được vị trí khuôn mặt, xác định diện tích và tiến hành cắt.

- Sử dụng thuật toán PCA:

• Thuật toán giúp tìm những đặc trưng nhất của khuôn mặt và giữ chúng lại

- So sánh với cơ sở dữ liệu:

• Tạo dữ liệu cho cơ sở dữ liệu

• Kích thước tập cần nhận dạng phải bằng với tập mẫu

• Càng nhiều tập mẫu càng hạn chế sai sót

- Hiển thị kết quả trên GUI:

• Thiết kế giao diện người dùng với các chức năng cần thiết cho quá trình nhậndạng

2.2 Phương pháp dò tìm khuôn mặt

- Một bức ảnh khi đưa vào hệ thống, con người có thể phân biệt được đâu là ảnhquang cảnh, đâu là ảnh có chứa khuôn mặt nhưng đối với máy tính thì không thểnhận biết như chúng ta khi nó chưa được huấn luyện Đi từ bài toán đơn giản làảnh chỉ chứa mỗi khuôn mặt, cho tới vừa có người vừa có khung cảnh, hay gócxoay của khuôn mặt Phát hiện được khuôn mặt sẽ ứng dụng cho nhiều mục đích

Sử dụng thuậttoán PCA

So sánh với

cơ sở dữ liệu

Hiển thị kếtquả trên GUI

Hình 2-1: Sơ đồ khối

Trang 8

- Việc phát hiện khuôn mặt là kĩ thuật cần thiết trong việc tiền nhận dạng khuônmặt Cơ sở xác định khuôn mặt trong đề tài này dùng hướng tiếp cận dựa vàodiện mạo, bằng cách dùng một bộ phân loại mạnh Adaboost là tập hợp của các

bộ phân loại yếu của đặc trưng Haar Like để tìm khuôn mặt

2.2.1 Đặc trưng Haar Like

- Đặc trưng này do hai người Jones và Viola công bố, để tìm khuôn mặt cần phải

có 4 đặc trưng cơ bản

Hình 2-2: Bốn đặc trưng Haar Like cơ bản

- Ba đặc trưng được mở rộng từ những đặc trưng cơ bản bao gồm: đặc trưng cạnh,đường và xung quanh tâm

Hình 2-3: Ba đặc trưng Haar Like mở rộng

- Giá trị của đặc trưng Haar Like là hiệu giữa tổng các pixel vùng đen và vùngtrắng Giá trị này dùng để so sánh với giá trị của các vung pixel thô trước đó.Nhằm giúp việc phân loại diễn ra đơn giản hơn

Trang 9

- Tuy nhiên, việc tính tổng các pixel trên ảnh diễn ra lâu không khả thi Do vậy

mà Jones và Viola đã đưa ra khái niệm về Integral Image, có cùng kích thướcvới ảnh gốc Mỗi phần tử trong này được tính bằng tổng của pixel ở phía trên vàbên trái của nó, bắt đầu từ pixel phía trên, bên trái xuống vị trí phía dưới, bênphải

Hình 2-4: Tìm Integral Image

Hình 2-5: Tính vùng xám bất kì

- Giá trị mức xám tại S được tính như sau :

• S = A - B - C + D

2.2.2 Bộ phân loại Adaboost

- Adaboost hoạt động dựa trên tập hợp tuyến tính các weak classifiers để hìnhthành một strong classifiers Sử dụng việc đánh trọng số, với mỗi weakclassifiers được xây dựng sẽ được cập nhật lại trọng số để hình thành weakclassifiers kế tiếp bằng việc tăng khi nhận dạng sai và giảm khi nhận dạng đúng

- Mô hình phân tầng là sự kết hợp giữa bộ phân loại Adaboost với các đặc trưngHaar Like

Trang 10

Hình 2-6: Mô hình phân tầng Cascade

Hình 2-7: Tập hợp các weak classifiers

2.2.3 Xác định vị trí khuôn mặt

- Từ hình gốc ban đầu, tính toán thành Integral Image để các bước sau thực thinhanh hơn Sau đó, ước lượng đặc trưng thông qua các đặc trưng Haar Like vàdùng Adaboost để giảm đi một số đặc trưng không có khả năng chứa khuôn mặt.Cuối cùng nếu bộ phân loại yếu là khuôn mặt thì hệ thống cho ra kết quả làkhuôn mặt

- Trong việc tìm khuôn mặt, các ảnh con sẽ được kiểm tra với các đặc trưng HaarLike, nếu đặc trưng nào chứa khuôn mặt thì sẽ cần xét tới các đặc trưng kế tiếp.Thứ tự các đặc trưng đó dựa vào việc đánh trọng số thông qua Adaboost

Trang 11

Hình 2-8: Hệ thông dò tìm khuôn mặt

2.3 Phân tích thành phần chính PCA

- Phân tích thành phần chính là một kỹ thuật phân tích đa thay đổi được nghiêncứu khá rộng rãi và biết đến nhiều nhất Thuật toán này lần đầu tiên được giớithiệu bởi Pearson, và được phát triển một cách độc lập bởi Hotelling Ý tưởngchính của thuật toán phân tích thành phần chính là giảm số chiều của tập dữ liệu

mà chứa một sự tương quan lớn giữa các biến Mặc dù giảm số chiều của biếnnhưng vẫn giữ được những thông tin quan trọng nhất có thể của tập dữ liệu banđầu

- Sự giảm này được thực hiện bởi phép biến đổi để hình thành tập những biến mớihay những thành phần chính Đặc điểm của những biến mới này là không cònđặc tính tương quan giữa chúng Một đặc điểm khác của các biến là chúng đượcsắp xếp để một vài biến đầu tiên nhất thể hiện hầu như đặc trưng của tất cả cácbiến ban đầu

- Trong PCA độ dư thừa có thể đo được bởi sự tương quan giữa các nhân tố dữliệu Thực chất của bài toán PCA là giải quyết bài toán tìm trị riêng vector riêngcho ma trận đối xứng

2.3.1 Các khái niệm liên quan tới thuật toán PCA

2.3.1.1 Kỳ vọng Phương sai

- Kỳ vọng là trung bình cộng của tất cả các giá trị

Trang 12

X =

- Phương sai là thước đo sự phân tán thống kê của biến ngẫu nhiên, nó có nghĩa làcác giá trị của biến ngẫu nhiên cách giá trị kỳ vọng bao xa Phương sai mà càngnhỏ thì khoảng cách đến kỳ vọng của các dữ liệu càng gần, ngược lại thì khoảngcách càng xa Phương sai của một biến ngẫu nhiên được biểu diễn bởi công thứcsau:

2 =

2.3.1.2 Hiệp phương sai

- Hiệp phương sai là thước đo sự biến thiên cùng nhau của hai biến ngẫu nhiên.Nếu hai biến có xu hướng thay đổi cùng nhau, nghĩa là khi một biến có giá trịcao hơn giá trị kỳ vọng thì biến kia cũng có xu hướng cao hơn giá trị kỳ vọng,thì hiệp phương sai giữa hai biến có giá trị dương và ngược lại Hiệp phương saigiữa hai biến được tính dựa vào công thức tính phương sai của một biến

- Hiệp phương sai của biến đang xét với chính nó:

cả các giá trị hiệp phương sai giữa các biến vào một ma trận

- Ma trận hiệp phương sai của n biến ngẫu nhiên là một ma trận vuông có kíchthước n x n, trong đó các phần tử nằm trên đường chéo chính lần lượt là hiệpphương sai của chính phần tử đó (var(X)= cov (X,X)) Ma trận có dạng đơn giảnnhư sau:

C =

- Trong khi các phần tử còn lại không nằm trên đường chéo chính là hiệp phươngsai của một cặp biến ngẫu nhiên khác nhau trong tập hợp, các giá trị này có thểdương, âm hay bằng 0 Nếu giá trị đó bằng 0 thì hai biến đó không tương quanvới nhau

Trang 13

2.3.1.4 Trị riêng và vector riêng

- Cho ma trận vuông A cấp n.λ được gọi là trị riêng của ma trận A nếu tồn tạivector khác không ν thỏa mãn phương trình:

A.v = λ.v

- Vector khác không ν được gọi là vector riêng của ma trận A Để tìm trị riêng vàvector riêng của một ma trận ta thực hiện các bước sau:

• Lập và giải phương trình đặc trưng |A - λ.I| = 0

• Giải phương trình đặc trưng tìm các nghiệm thực Các nghiệm này là các trịriêng của ma trận A

• Đối với mỗi trị riêng tìm các vector riêng tương ứng với bằng cách giải hệphương trình thuần nhất (A - ).ν = 0

2.3.1.5 Khoảng cách Euclid

- Là độ dài của đoạn thẳng AB được nối bởi hai điểm A (x1,y1) và B (x2,y2) Cócác không gian tính khoảng cách Euclid như không gian hai chiều, ba chiềuhoặc n chiều

- Đối với không gian hai chiều:

2.3.2 Các bước thực hiện trong PCA

2.3.2.1 Chuẩn hóa về kích thước

- Để thuận tiện cho quá trình minh họa, ta xét một tập dữ liệu đầu vào hai chiều.Đặc trưng của tập dữ liệu này là nó có thể cho ta thấy biểu đồ của dữ liệu vàcách thức PCA phân tích dữ liệu tại mỗi bước là rõ ràng nhất Để đảm bảo yêucầu trong quá trình xử lý tất cả dữ liệu của tập huấn luyện phải được chuẩn hóa

về cùng một đầu kiện ban đầu Với M khuôn mặt từ F1, F2, FM

Trang 14

- Các ảnh khuôn mặt có kích thước NxN được biểu diễn thành vector N2x1.

2.3.2.3 Tạo ma trận hiệp phương sai

- Khi dữ liệu đưa vào là hai chiều thì ma trận hiệp phương sai được tạo ra là matrận hai chiều Nếu khi dữ liệu đưa vào là n chiều thì ma trận hiệp phương saiđược tạo ra sẽ là n chiều Tất cả các phần tử không nằm trên đường chéo là cácđại lương dương, và với kì vọng là cả hai biến x và y cùng tăng lên Tập hợpmột số lượng lớn các vector là đối tượng chính của PCA

- Ma trận hiệp phương sai:

- Với ma trận A là tập hợp các ảnh A = []

- Ma trận hiệp phương sai khi tìm được sẽ có kích thước là N2xN2 vì kích thướcnày quá lớn nên ta phải tính bằng cách AT.A vì ma trận này có kích thước làMxM

Trang 15

• C =

2.3.2.4 Tìm các trị riêng và vector riêng tương ứng

- Ma trận hiệp phương sai là ma trận vuông, có thể tìm được các vector riêng màtrị riêng của ma trận này dựa vào các bước đã được trình bày ở phần trên Khônggian được tạo nên từ các vector riêng được gọi là không gian con của tập ảnhhuấn luyện

- Chỉ giữ lại K chiều vector riêng ứng với những trị riêng lớn nhất trong số Mvector riêng và tất nhiên K << N2 Đây là mục đích của thuật toán PCA giảiquyết

2.3.2.6 Biểu diễn trên không gian mới

- Với mỗi khuôn mặt thì sẽ được biểu diễn ứng với K vector riêng tìm được trongkhông gian mới :

= trong đó =

Cụ thể hơn là: =

Trang 16

- Không gian mới tìm này chỉ còn kích thước Kx1, các bước trong việc thiết lập

cơ sở dữ liệu mới đã xong với số chiều nhỏ hơn ban đầu, thuận lợi trong việc khi

cơ sở dữ liệu có dữ liệu la rất lớn

- Thiết lập một ngưỡng Tr để so sánh với khoảng cách vừa tìm được Dr, nếu Dr <

Tr thì có thể đây là ảnh của khuôn mặt thứ i trong cơ sở dữ liệu

2.5 Phân tích thành phần độc lập ICA

- ICA là phương pháp thống kê dùng để tách dữ liệu trong các thành phần thôngtin hỗn hợp hay bị xáo trộn thành các dữ liệu riêng biệt nhau nhờ việc phân tíchcác thành phần độc lập của dữ liệu đó Nghĩa là khi biết một thành phần nào đó

ta không suy ra được thành phần còn lại Cho thành phần xi thuộc vector x = (x1,

x2, … xm)T biểu diễn các phần tử trộn, s là vector ngẫu nhiên của các phần tửnguồn si và s=(s1, s2, … sn)T A là ma trận trộn chứa các hệ số aij Các vector x, sđược hiểu như là các vector cột Mô hình ICA trở thành:

x = A.s

- Mô hình này gọi là mô hình ICA tuyến tính cơ bản hay là mô hình chuẩn Vớitừng thành phần được tính theo công thức sau:

x i = a i1. s 1 + a i2. s 2 +…+ a in. s n i = 1…m

- Cho hai đại lượng vô hướng y1 và y2, chúng sẽ được gọi là độc lập nếu thông tincủa chúng loại trừ lẫn nhau Tính độc lập có thể được định nghĩa bởi những hàmmật độ xác suất:

P(y 1 ,y 2 ) = P 1 (y 1 ).P 2 (y 1 )

- Kỳ vọng của những biến độc lập có đặc trưng sau đây:

Trang 17

E{h 1 (y 1 ) h 2 (y 2 )} = E{h 1 (y 1 )}.E{h 2 (y 2 )}

- ICA phân tích cơ sở đặc trưng của tập dữ liệu mà các thành phần của chúng làđộc lập ICA tìm ma trận tách WICA để biểu thị vector đặc trưng bằng sự kết hợptuyến tính x = (x1, x2, … xm) với thành phần vector độc lập Y = (y1, y2, … ym) Ta

có thể viết:

Y = X

- Mục đích của ICA là cực tiểu phương sai và các thống kê bậc cao hơn của dữliệu và nó cố gắng tìm cơ sở mà dữ liệu là độc lập với nhau Các thành phần độclập là không tương quan nhau Hiệu quả của thuật toán ICA cho nhận dạng mặtngười cũng đang được nghiên cứu khá rộng rãi và đạt được hiệu quả cao

Hình 2-10: Sự thay đổi không gian của dữ liệu

- Nguyên lý thực hiện phương pháp ICA là dùng tính phi Gauss Mục đích là sẽtìm ma trận tách W sao cho tín hiệu đầu ra có tính phi Gauss cực đại

Hình 2-11: Định lý giới hạn trung tâm

2.6 Thiết kế giao diện

Trang 18

- Trong MATLAB nhằm giúp người dùng dễ sử dụng đó là giao diện GUI, vớicách thiết kế gồm đầy đủ các phím chức năng để hình thành một chương trìnhhoàn chỉnh.

- Thiết kế giao diện với vùng hiển thị kết quả như Pushbutton, Axes, Panel, EditText Trong nút Pushbutton quan trọng là hai thuộc tính tag và string Để mộthàm thực hiện khi nhấn vào Pushbutton là các tham số sau:

• hObject: handle của thuộc tính tag

• Eventdata

• handles: dùng truy xuất dữ liệu từ nơi khác

- Giao diện được thiết kế với các chức năng: truy xuất cơ sở dữ liệu, nhập ảnh đầuvào, nhận dạng ảnh

Hình 2-12: Giao diện thiết kế

Trang 19

Hình 2-13: Giao diện cho người dùng

CHƯƠNG 3 GIẢI THUẬT3.1 Dò tìm khuôn mặt

Trang 20

Hình 3-14: Giải thuật dò tìm khuôn mặt

- Ảnh đầu vào:

• Các ảnh có chứa khuôn mặt

- Integral Image:

• Dùng để tính tổng mức xám tại bất kì vị trí trên ảnh trở nên dễ hơn

- Ước lượng đặc trưng Haar Like:

• Đặc trưng Haar Like được tính bằng sự chênh lệch giữa tổng mức xám vùngđen và trắng

- Phân loại Adaboost:

• Kết hợp với đăc trưng Haar Like để tạo ra mô hình phân tầng phát hiệnkhuôn mặt

Trang 21

3.2 Tạo cơ sở dữ liệu

Hình 3-15: Khởi tạo cơ sở dữ liệu

- Chuẩn hóa kích thước:

Trang 22

• Đưa về cùng một chuẩn kích thước để có thể thực hiện các phép toán trên matrận giữa cơ sở dữ liệu và ảnh cần nhận dạng.

- Trừ trung bình ảnh:

• Giảm giá trị của các vector xuống, để việc tính toán không phải là những con

số quá lớn

- Tạo ma trận hiệp phương sai:

• Làm cơ sở để tính các trị riêng, vector riêng

-Trị riêng vector riêng:

• Hai thành phần giữ vai trò quan trọng trong việc đánh giá mực độ quan trọngcủa dữ liệu

- Sắp xếp trị riêng theo giá trị giảm dần:

• Chỉ giữ lại những trị riêng có lượng thông tin quan trọng nhất

- Hình thành tập dữ liệu:

• Tập dữ liệu tổng hợp các bức ảnh mẫu chỉ còn K chiều sau các bước trên

3.3 Nhận dạng khuôn mặt

Trang 23

Hình 3-16: Nhận dạng khuôn mặt

- Các bước ở phần nhận dạng giống với tạo tập dữ liệu, chỉ khác ở phần so sánh

Trang 24

khoảng cách từ ảnh đầu vào đến tập dữ liệu Nếu khoảng cách gần hoặc bé hơnngưỡng thì có thể ảnh đó có trong tập dữ liệu và ngược lại.

CHƯƠNG 4 KẾT QUẢ VÀ NHẬN XÉT

1.1 Kết quả

- Kết quả thu được ở phép thử 80 bức ảnh trong cơ sở dữ liệu như sau:

• Thử với khuôn mặt bình thường thì tỷ lệ sai vẫn xảy ra nhưng ít và có thểchấp nhận được Đây là phép thử dễ nhất và tỷ lệ nhận dạng phải càng caocàng tốt

Trang 25

• Thử với khuôn mặt bị che một phần bằng khẩu trang, tỷ lệ nhận dạng đúngrất thấp Phép thử này tương đối khó vì khuôn mặt bị che đi một phần thì đặctrưng trích xuất sẽ không đủ, dẫn đến việc nhận dạng bị sai

• Thử với trường hợp là khuôn mặt quay ở góc 900̊, nếu có các ảnh trong cơ sở

dữ liệu thì việc nhận dạng đúng sẽ xảy ra nhưng không có thì 100% là khôngnhận dạng được Đây là phép thử khó tương tự như trên

Bảng 4-1: Số liệu thống kê

Điều kiện

ánh sáng

Đặc trưng củakhuôn mặt

Thời gian

xử lý

Số lượngngười

Số lượng ảnhtrong cơ sở

dữ liệu

Tỷ lệ nhậndạng đúng

Ngày đăng: 23/02/2018, 19:46

TỪ KHÓA LIÊN QUAN

w