1. Trang chủ
  2. » Luận Văn - Báo Cáo

TÌM HIỂU PHƯƠNG PHÁP PCA NHẬN DẠNG KHUÔN MẶT.ỨNG DỤNG MATLAB

27 2K 28
Tài liệu đã được kiểm tra trùng lặp

Đ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 27
Dung lượng 2,01 MB

Nội dung

Trong thế giới ngày nay với sự phát triển mạnh mẽ của kỹ thuật số và mạng toàn cầu, vấn đề đảm bảo an toàn về thông tin cũng như vật chất trở nên ngày càng quan trọng và khó khăn.

Trang 1

Trường Ðại học Công nghiệp Hà Nội

Khoa Công nghệ thông tin

BÁO CÁO BÀI TẬP LỚN PHÝÕNG PHÁP TÍNH TOÁN MỀM

ÐỀ TÀI: TÌM HIỂU PHƯƠNG PHÁP PCA

NHẬN DẠNG KHUÔN MẶT.ỨNG DỤNG MATLAB

1 Nguyễn Thành Trung(NT)

2 Ðỗ Xuân Toại

3 Nguyễn Tuấn Dương

4 Nguyễn Huy Thiện

5 Nguyễn Văn Tín 6.Hồ Viết Dũng

Trang 2

BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

Mục Lục

1 Phép biến đổi Karhunen-Loève: 7

2 Thuật toán PCA: 11

2.1 Giới thiệu chung về thuật toán : 11

2.2 Nội dung thuật toán PCA: 13

3 Áp dụng PCA trong bài toán nhận dạng khuôn mặt : 15

3.1 Giới thiệu chung về các phương pháp nhận dạng mặt người: 15

3.2 Nhận dạng khuôn mặt dựa trên PCA: 16

3.3 Các hàm hiển thị ảnh trong Matlab 18

3.4 Các hàm khác được sử dụng trong đề tài 19

4 Chương trình Demo: 21

Tài liệu tham khảo 26

Trang 3

Bài Toán Nhận Dạng Mặt Người

oOo -

-2.1 Giới thiệu

Trong thế giới ngày nay với sự phát triển mạnh mẽ của kỹ thuật số và mạng toàn cầu, vấn đề đảm bảo an toàn về thông tin cũng như vật chất trở nên ngày càng quan trọng và khó khăn Thỉnh thoảng chúng ta lại nghe nói đến những vụ đánh cắp thẻ tín dụng, đột nhập trái phép vào các hệ thống máy tính hay toà nhà của cơ quan nhà nước, chính phủ Hơn 100 triệu đô la là con số đã bị thất thoát ở Mỹ vào năm 1998 do các vụ gian lận và xâm nhập nói trên (theo Reuters, 1999) [5] Trong đa số các vụ phạm pháp này, bọn tội phạm đã lợi dụng những khe hở cơ bản trong quá trình truy cập vào các hệ thống thông tin và kiểm soát Phần lớn những hệ thống này không thực hiện quyền truy cập của người sử dụng dựa vào thông tin “chúng ta là ai” mà chỉ dựa vào “chúng ta có gì” Nói cách khác, thông tin mà người sử dụng cung cấp cho hệ thống không đặc trưng được cho bản thân họ, mà chỉ là những gì họ hiện đang sở hữu như số chứng minh nhân dân, chìa khoá, mật mã, số thẻ tín dụng hoặc họ tên Rõ ràng những thông tin hay vật dụng này không mang tính đặc trưng mà chỉ mang tính xác thực đối với người sử dụng, và nếu chúng bị đánh cắp hay sao chép thì kẻ trộm hoàn toàn có quyền truy nhập, sử dụng dữ liệu hay phương tiện của chúng ta bất cứ lúc nào họ muốn Hiện nay, những công nghệ hiện đại đã cho phép việc xác thực dựa vào “bản chất” của từng cá

nhân Công nghệ này dựa trên lĩnh vực được gọi là sinh trắc học Kiểm soát bằng sinh

trắc học là những phương pháp tự động cho phép xác thực hay nhận dạng một cá nhân

dựa vào các đặc trưng sinh lý học của người đó như đặc điểm vân tay, gương mặt, gen,… hoặc dựa trên những đặc điểm liên quan đến đặc trưng hành vi như dạng chữ

viết, cách gõ phím, giọng nói…Vì những hệ thống nhận dạng bằng sinh trắc học sửdụng thông tin sinh học của con người nên kết quả chính xác và đặc biệt là rất khó bịgiả mạo

Các đặc trưng sinh lý học là duy nhất ở mỗi người và rất hiếm khi thay đổi, trongkhi đó đặc trưng hành vi có thể thay đổi bất thường do các yếu tố tâm lý như căngthẳng, mệt mỏi hay bệnh tật Chính vì lý do này, các hệ thống nhận dạng dựa trên đặctrưng sinh lý tỏ ra ổn định hơn các hệ thống dựa vào đặc trưng hành vi Tuy nhiên,nhận dạng bằng các đặc trưng hành vi có ưu điểm là dễ sử dụng và thuận tiện hơn :thay vì phải đặt mắt trước một máy quét điện tử hay lấy ra một giọt máu, người sửdụng sẽ cảm thấy thoải mái hơn khi được yêu cầu ký tên hay nói vào một micro

Trang 4

BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

Nhận dạng gương mặt là một trong số ít các phương pháp nhận dạng dựa vào đặctrưng sinh lý cho kết quả chính xác cao đồng thời rất thuận tiện khi sử dụng Hơn nữa,trong số các đặc trưng sinh lý học, gương mặt của mỗi người là yếu tố đầu tiên và quantrọng nhất cho việc nhận biết lẫn nhau cũng như biểu đạt cảm xúc Khả năng nhậndạng nói chung và khả năng nhận biết gương mặt người nói riêng của con người thậtđáng kinh ngạc Chúng ta có khả năng nhận ra hàng ngàn gương mặt của những ngườimình đã gặp, đã giao tiếp trong cuộc sống chỉ bằng một cái nhìn thoáng qua, thậm chísau nhiều năm không gặp cũng như những sự thay đổi trên gương mặt do tuổi tác, cảmxúc, trang phục, màu tóc,…Do đó, việc nghiên cứu các đặc tính của gương mặt người

đã thu hút rất nhiều nhà triết học, nhà khoa học qua nhiều thế kỷ, trong đó có cảAristotle và Darwin [1]

Chính vì những lý do trên, từ những năm 1970, nhận dạng mặt người đã thu hút sựquan tâm của nhiều nhà nghiên cứu trong các lĩnh vực như bảo mật, tâm lý học, xử lýảnh và thị giác máy tính Ngày nay các chương trình máy tính về nhận dạng mặt người

đã tìm được những ứng dụng thực tế như [3] :

ƒ Nhận dạng tội phạm

Các hệ thống nhận dạng mặt người đã được tích hợp vào trong các hệ thốngkiểm soát sân bay và được sử dụng để tìm kiếm và nhận diện những tênkhủng bố hay bọn buôn bán ma tuý

ƒ Kiểm soát truy cập vào các hệ thống máy tính trong môi trường cộng tác

Việc kiểm tra đăng nhập vào các hệ thống máy PC được kết hợp giữa thôngtin mật mã và / hoặc nhận dạng mặt người Điều này giúp người làm việckhông cảm thấy bị rối bời trong các thủ tục truy cập phức tạp đồng thời vẫnđảm bảo được độ tin cậy đối với thông tin khách hàng và các bí mật trongkinh doanh

ƒ Giải pháp bảo mật bổ sung cho các giao dịch rút tiền tự động (ATM)

Trang 5

ƒ Đối sánh ảnh căn cước trong hoạt động của ngành luật pháp

Các cơ quan luật pháp có thể sử dụng các hệ thống nhận dạng mặt người đểđối sánh những mô tả của các nhân chứng với những tên tội phạm được lưutrữ trong cơ sở dữ liệu

ƒ Ứng dụng trong các giao tiếp người – máy

Sau khi xác định được người sử dụng và cảm xúc của họ tại thời điểm đó,các hệ thống máy tính có thể có các ứng xử thích hợp

Trong chương này trước tiên chúng ta sẽ điểm qua một số phương pháp đã được sửdụng trong lĩnh vực nhận dạng mặt người Sau khi đưa ra một mô hình tiêu biểu chomột hệ thống nhận dạng mặt người và bàn luận về một số khó khăn cho toàn bộ quátrình nhận dạng, chúng ta sẽ tập trung vào hai giai đoạn rút trích đặc trưng và phân lớp

với hai phương pháp : phân tích thành phần chính (Principle Components Analysis –

PCA) và mạng lượng hoá vector (Learning Vector Quantization Network – LVQ).

Trang 6

BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

Trang 7

1 Phép biến đổi Karhunen-Loève :

Các phép biến đổi Karhunen-Loève (KL) có liên quan với các giải thích cấu trúc dữ liệu thông qua một số tuyến tính kết hợp của các biến Giống như PCA, phép biến đổi KL cũng là cách tối ưu cho dự án d - chiều điểm để giảm điểm chiều sao cho sai số của dự

án (tức là tổng của khoảng cách bình phương (SSD)) là tối thiểu (Fukunaga, 1990)

Cho D {x 1 , x 2 , , x n} là một tập dữ liệu không gian d chiều, và X là đồng vị ma trận dxd,nghĩa là X= (xij)nxd với xij là giá trị j thành phân của xi

x i( i =1,2,Κ,n) là vector d chiều Chúng có thể hiển thị không lỗi bằng phép tính tổng vector tuyến tính độc lập như

Các ma trận d × d cơ sở φ và chúng ta biết thêm có thể cho rằng những hàng φ hình thứcmột bộ trực giao, nghĩa là:

Trang 8

BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

Vì vậy, Y chỉ đơn giản là một biến đổi trực giao của X φj được gọi là vectơ thứ j tính năng và yij là thành phần thứ j của mẫu xi trong không gian tính năng này Để giảm bớt chiều, chúng ta chỉ chọn m(m<d) tính năng vectơ có thể gần đúng X tốt Xấp xỉ có thể được thu được bằng cách thay thế các thành phần của yj với hằng chọn trước

Y(1,m) là ma trận nxm có được bằng cột m đầu tiên của Y, có nghĩa là Y(1,m) = (yij)nxm

và một ma trận n×(md)với (i, j) nhập từ bi,m+j

Không mất tổng quát, chúng ta giả định rằng chỉ có các thành phần m đầu tiên của mỗi

yj được tính toán Sau đó, các lỗi của các kết quả là xấp xỉ

Trang 9

Nhóm 5 – KHMT2K3 – Đại học Công nghiệp Hà Nội 9

Trang 10

BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

Trang 11

2 Thuật toán PCA:

2.1 Giới thiệu chung về thuật toán :

PCA (Principle Components Analysic) là một thuật toán được sử dụng để tạo ra một ảnhmới từ ảnh ban đầu Ảnh mới này có kích thước nhỏ hơn nhiều so với ảnh ban đầunhưng 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ậndạ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

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ộttập hợp các vector trong không gian cho trước Trong không gian mới, người ta hi vọngrằ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

Trang 12

BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

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

Ưu điểm của phương pháp PCA :

 Tìm được các đặc tính tiêu biểu của đối tượng cần nhận dạng mà không cần phảixác định các thành phần và mối quan hệ giữa các thành phần đó

 Thuật toán có thể thực hiện tốt với các cảnh có độ phân giải cao, do PCA sẽ thu gọnảnh thành một ảnh có kích thước nhỏ hơn

 PCA có thể kết hợp với các phương pháp khác như mạng Nơron, Support VectorMachinge… để mạng lại hiệu quả nhận dạng cao hơn

Nhược điểm của PCA :

 PCA phân loại theo chiều lớn nhất của tập vector Tuy nhiên, chiều phân bố lớnnhất không phải lúc nào cũng mang lại hiệu quả tốt nhất cho bài toán nhận dạng Đây là

Trang 13

2.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 :

A=  W = với K<<N

W=T.AVới T là ma trận chuyển đổi, T có kích thước K x N

Gọi M là số ảnh đầu vào, mỗi ảnh được chuyển thành vector N chiều Ta có tập hợpđầu vào

X={x1, x2,…,xM} (xi € RN)Trung bình của các vector đầu vào :

Trang 14

BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

được gọi là một eigenface Tập hợp các vector ban đầu được biểu diễn trong không giantạo bởi n eugenface theo mô tả :

= (x-xtb) = UT.(x-xtb)

Vấn đề cần giải quyết ở đây là ma trận tương quan C=A.AT có kích thước N2

Với N=180x200=36000, khối lượng tính toán sẽ rất lớn Do đó, để tính được cáceigenface mà không cần tính cả ma trận C, người ta đưa ra phương pháp tính nhanh dựavào vector 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

Cách tính như sau :

Gọi v i , μ i lần lượt là vector riêng và giá trị riêng của ma trận L :

AT.A.v = μ v

Trang 15

Ta thấy A.vi chính là vector riêng của C=A.AT ứng với giá trị riêng μi.

3 Áp dụng PCA trong bài toán nhận dạng khuôn mặt :

3.1 Giới thiệu chung về các phương pháp nhận dạng mặt người:

a Các phương pháp nhận dạng khuôn mặt người :

Các phương pháp nhận dạng hiện nay có 2 loại :

 Nhận dạng dựa trên các đặc trưng phần tử trên khuôn mặt (Feature based facerecognition)

 Nhận dạng dựa trên xét tổng thể khuôn mặt (Apppearance base face recognition )

b Nhận dạng dựa trên mối quan hệ giữa các phần tử :

Đâ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ìnhhọc của các chi tiết trên 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 2 mắt, khoảng cách 2 lôngmày…)

Ư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ếtkhuông mặt Hơn nữa, với việc xác định đặc tính và 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, bị nghiêng, bị xoay và ánhsáng thay đổi

Nhược điểm của phương pháp này là cài đặt thuật toán phức tạp do việc xác định mốiquan hệ giữa các đặc tính đòi hỏi các thuật toán phức tạp Mặt khác với ảnh kích thước

bé thì các đặc tính sẽ khó phân biệt

c Nhận dạng khuôn mặt dựa trên xét toàn diện khuôn mặt :

Nội dung chính của hướng tiếp cận này là xem mỗi ảnh có kích thước RxC là mộtvector trong không gian RxC chiều Ta sẽ xây dựng một không gian mới có chiều nhỏhơn sao cho khi biểu diễn trong không gian đó các đặc điểm chính của một khuôn mặt

Trang 16

BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

không bị mất đi Trong không gian đó, các ảnh của cùng một người sẽ được tập trung lạithành một nhóm gần nhau và cách xa các nhóm khác

Thuật toán PCA ( Principle Components Analysis) thuộc nhóm này

3.2 Nhận dạng khuôn mặt dựa trên PCA:

Kohonen đã đưa ra phương pháp dùng vector riêng để nhận dạng khuôn mặt, ông dùngmột mạng neural đơn giản để chứng tỏ khả năng của phương pháp này trên các ảnh

đã được chuẩn hóa Mạng neural tính một mô tả của khuôn mặt bằng cách xấp xỉ cácvector riêng của ma trận tương quan của ảnh Các vector riêng sau này được biết đến vớicái tên Eigenface Kirby và Sirovich chứng tỏ các ảnh có các khuôn mặt có thể được mãhóa tuyến tính bằng một số lượng vừa phải các ảnh cơ sở Tính chất này dựa trên biếnđổi Karhunen-Lòeve, mà còn được gọi dưới một cái tên khác là PCA và biến đổiHotelling Ý tưởng này được xem là của Pearson trình bày đầu tiên vào năm 1901và sau

đó là Hotelling vào năm 1933 Cho một tập các ảnh huấn luyện có kích thước n x mđược mô tả bởi các vector có kích thước m x m, các vector cở sở cho một không giancon tối ưu được xác định thông qua lỗi bình phương trung bình khi chiếu các ảnh huấnluyện vào không gian con này Các tác giả gọi tập các vector cơ sở tối ưu này là ảnhriêng sau đó gọi cho đơn giản là vector riêng của ma trận hiệp phương sai được tính từcác ảnh khuôn mặt đã vector hóa trong tập huấn luyện Nếu cho 100 ảnh, mà mỗikhuôn mặt có kích thước 91x50 thì có thể chỉ dùng 50 ảnh riêng, trong khi vẫn duy trìđược một khả năng giống nhau hợp lý (giữ được 95% tính chất) Turk và Pentland ápdụng PCA để xác định và nhận dạng khuôn mặt Tương tự, dùng PCA trên tập huấnluyện ảnh các khuôn mặt để sinh các ảnh riêng (còn gọi là eigenface) để tìm một khônggian con (không gian khuôn mặt) trong không gian ảnh Các ảnh khuôn mặt được chiếuvào không gian con này và được gom nhóm lại Tương tự các ảnh không có khuôn mặtdùng để huấn luyện cũng được chiếu vào cùng không gian con và gom nhóm lại Các

Trang 17

trí trong ảnh và không gian ảnh Khoảng cách này dùng để xem xét có hay không cókhuôn mặt người, kết quả khi tính toán các khoảng cách sẽ cho ta một bản đồ về khuônmặt Có thể xác định được từ cực tiểu địa phương của bản đồ này Có nhiều nghiêncứu về xác định khuôn mặt, nhận dạng, và trích đặc trưng từ ý tưởng vector riêng, phân

rã, và gom nhóm Sau đó Kim phát triển cho ảnh màu, bằng cách phân đoạn ảnh để tìmứng để không gian tìm kiếm bớt đi

Bước đầu tiên trong nhận dạng khuôn mặt dựa trên PCA là trích chọn vector đặctính Một bức ảnh về khuôn mặt được coi như 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

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ácbước trích chọn bao gồm :

i 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ểnthành vector N chiều

v Xây dựng các ảnh mới vi theo M vector u :

Trang 18

BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH TOÁN MỀM

vi = uit Φi

Ω=[v1, v2,… ,vM]TTrong đó, 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

Sau khi trích chọn được các vector đặc tính, cần đối chiếu vector này với cơ sở dữ liệu,

từ đó đưa ra kết quả nhận dạng Trong bài toán, kết quả nhận dạng sẽ là nhận biết đượchoặc chưa nhận biết được

Để thực hiện phân loại có rất nhiều phương pháp như khoảng cách Euclid, mạngNoron… trong đó khoảng cách Euclid 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ínhcủa đố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 đặctí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ưulại:

εk= ||Ω- Ωk || với k=1, ,M

Ở đây Ωk là vector của khuôn mặt thứ k trong CSDL Nếu εk nhỏ hơn một số được xácđịnh trước thì bức ảnh được nhận dạng là khuôn mặt thứ k trong CSDL

3.3 Các hàm hiển thị ảnh trong Matlab

Để hiển thị ảnh, Matlab cung cấp 2 hàm cơ bản là image và imagesc Ngoài ra, trong

Image Processing Toolboxcũng có hai hàm hiển thị khác là imview và imshow

- Hàm image(x,y,c) hiển thị hình ảnh biểu diễn bởi ma trận c kích thước mxn lên hệ

trục tọa độ x,y là các véctơ xác định vị trí của các điểm c(1,1) và c(m,n)

Ngày đăng: 26/04/2013, 15:43

HÌNH ẢNH LIÊN QUAN

Bảng 3.3 Các hàm xử lý hình ảnh cơ bản trong Matlab - TÌM HIỂU PHƯƠNG PHÁP PCA NHẬN DẠNG KHUÔN MẶT.ỨNG DỤNG MATLAB
Bảng 3.3 Các hàm xử lý hình ảnh cơ bản trong Matlab (Trang 19)
Hình 4.0: Sơ đồ khối tổng quát của chương trình - TÌM HIỂU PHƯƠNG PHÁP PCA NHẬN DẠNG KHUÔN MẶT.ỨNG DỤNG MATLAB
Hình 4.0 Sơ đồ khối tổng quát của chương trình (Trang 21)
Hình 4.1: Mở chương trình trên Matlab - TÌM HIỂU PHƯƠNG PHÁP PCA NHẬN DẠNG KHUÔN MẶT.ỨNG DỤNG MATLAB
Hình 4.1 Mở chương trình trên Matlab (Trang 22)
Hình 4.3: Chọn ảnh cần kiểm tra - TÌM HIỂU PHƯƠNG PHÁP PCA NHẬN DẠNG KHUÔN MẶT.ỨNG DỤNG MATLAB
Hình 4.3 Chọn ảnh cần kiểm tra (Trang 23)
Hình 4.4: Ảnh cần kiểm tra - TÌM HIỂU PHƯƠNG PHÁP PCA NHẬN DẠNG KHUÔN MẶT.ỨNG DỤNG MATLAB
Hình 4.4 Ảnh cần kiểm tra (Trang 23)
Hình 4.5: Ảnh trung bình - TÌM HIỂU PHƯƠNG PHÁP PCA NHẬN DẠNG KHUÔN MẶT.ỨNG DỤNG MATLAB
Hình 4.5 Ảnh trung bình (Trang 24)
Hình 4.7: Ảnh cần tìm - TÌM HIỂU PHƯƠNG PHÁP PCA NHẬN DẠNG KHUÔN MẶT.ỨNG DỤNG MATLAB
Hình 4.7 Ảnh cần tìm (Trang 25)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w