Tải bản đầy đủ (.pptx) (30 trang)

Hệ thống dò và nhận dạng khuôn mặt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.27 MB, 30 trang )

MÔN HỌC : XỬ LÝ ẢNH VÀ ỨNG DỤNG

HỆ THỐNG DÒ VÀ NHẬN DẠNG KHUÔN MẶT

Giảng viên : Mai Tiến Dũng.
Nhóm 3


Noäi Dung





Khái niệm hệ thống dò và nhận dạng khuôn mặt.
Các thuật toán dò và phát hiện khuôn mặt.
Phương pháp Viola-Jones –Thuật toán nhận dạng Haar-Cascade dựa vào mô hình
AdaBoost.





Các thuật toán nhận dạng khuôn mặt.
Thuật toán- phương thức PCA – EigenFaces .
Demo chương trình.


Khái niệm về phát hiện khuôn mặt

Phát hiệøn khuôn mặt là phương thức mà thông qua đó máy tính có thể xác đònh được vò trí


và tự động đònh dạng được kích thước của hình ảnh khuôn mặt dựa vào các hình ảnh thực
tế ta đưa vào hoặc từ đoạn video webcam.
Nó sẽ dò và nhận dạng các đặc điểm của khuôn mặt và tự động loại bỏ các chi tiết còn
lại của hình ảnh như cây cối, đường sá ,
tòa nhà ..v.v.

Hình ảnh minh họa.


Khái niệm về phát hiện khuôn mặt

Hình ảnh thu được
sau khi hệ thống
đã tự động dò tìm
khuôn mặt.

Phương thức phát hiện khuôn mặt được xem như là một thành phần của lớp đối tượng
nhận dạng (Object-class detection .)
Lớp này sẽ thực hiện khi truyền đủ các tham số và hình ảnh cần được nhận dạng .


Khái niệm về nhận dạng khuôn mặt

Nhận dạng khuôn mặt là phương thức mà nó sẽ xác đònh các đối tượng khuôn mặt trên
hình ảnh là ai (là người đã biết hay chưa biết) sau khi dò và đònh dạng được vò trí của các
khuôn mặt trên hình ảnh.
Phương thức này dựa vào một cơ sở dữ liệu có sẵn chứa các hình ảnh và tên để xác đònh
khuôn mặt đưa vào đã tồn tại hay chưa .



Khái niệm về nhận dạng khuôn mặt

Hình ảnh minh họa sau khi hệ thống
đã phát hiện và nhận dạng được
đối tượng từ hình ảnh đưa vào.
(Các đối tượng này đã được lưu vào
database nên có kết quả thu được
như hình ảnh)


Các hướng tiếp cận phát hiện khuôn mặt

Có rất nhiều phương pháp để thực hiện dò và nhận dạng đối tượng khuôn mặt. Dựa vào tính chất
của các phương pháp ,ta chia ra làm 4 nhóm chính :
+ Hướng tiếp cận dựa trên tri thức .
+ Hướng tiếp cận dựa trên đặc tả không thay đổi .
+ Hướng tiếp cận dựa trên so khớp mẫu.
+ Hướng tiếp cận dựa vào diện mạo .


Các phương pháp và thuật toán
phát hiện khuôn mặt
Hướng tiếp cận tri thức :
Mã hóa hiểu biết của con người về các loại khuôn mặt và tạo ra tập luật để xác đònh khuôn mặt .

Hướng tiếp cận dựa trên đặc tả không thay đổi :
Tạo ra các thuật toán với mục tiêu : tìm ra các đặc trưng mô tả cấu trúc của khuôn mặt (tư thế , vò trí đặt camera
,màu sắc, độ sáng tối,độ tương phản).

Hướng tiếp cận dựa vào so khớp mẫu :

Sử dụng các mẫu khuôn mặt chuẩn hay các đặc trưng của mặt người để thực hiện so khớp .

Hướng tiếp cận dựa vào diện mạo :
Dựa vào diện mạo đặc trưng ,sử dụng phương pháp học từ một tập ảnh huấn luyện mẫu để xác đònh mặt người.


Các phương pháp và thuật toán
phát hiện khuôn mặt
Thuật toán “Sung & Poggio” với chiến lược “Bootstrapping” dựa vào hướng tiếp cận tri thức .

Thuật toán “Osuna & Rhomdhani” dựa vào hướng tiếp cận so khớp mẫu .
(tạo ra các vector từ ảnh mẩu để máy có thể so khớp ) và về sau được Rhomdhani cải thiện tốc độ với “SVM based
face detector”.

“Propose a statistical model” do Schneiderman & Kanade phát hiện .

“Nhận dạng khuôn mặt dựa vào mạng neural network” của Rowley.

“AdaBoost to create HaarCascade Classifier” của Viola-Jones để kết hợp với các đặc trưng của Haar-like và dựa vào
hướng tiệp cận diện mạo để tạo ra quy trình học máy qua từng tầng của mô hình .


Các phương pháp và thuật toán
phát hiện khuôn mặt
Hướng tiếp cận được sử dụng là : Hướng tiếp cận dựa vào diện mạo .
Hướng tiếp cận này sẽ dựa vào bộ phân loại mạnh AdaBoost do Viola và Jones triển khai vào
năm 2001 cùng với sự kết hợp của các đặc trưng Haar-Like để tạo ra một mô hình phân tầng có
tên là “Haar Cascade Classifier”.
Đây là một mô hình để phân loại các vùng hình ảnh dựa vào các mô hình AdaBoost ở mỗi tầng
,từ đó đònh dạng ra hình ảnh khuôn mặt .

AdaBoost là một thuật toán máy học để tạo ra quá trình huấn luyện và từ đó xây dựng được một
tập huấn luyện từ quy trình phân tầng sau :


Các phương pháp và thuật toán
phát hiện khuôn mặt
Mô hình phân tầng do thuật toán của Viola-Jones tạo ra :

asdash

Hk là một bộ
phân loại yếu(weak
classifier) và được

bie

biểu diễn như trên.


Mô hình phân tầng CascadeThuật toán Viola-Jones
Bước đầu của thuật toán nhận dạng này :
Scale tỉ lệ hình ảnh dò tìm . Phân tích ma trận (mảng 2 chiều) hình ảnh đầu vào thành một ma trận tích phân với kích
thước bằng kích thước của ảnh
cần tính các giá trò Haar-like .

1

1

1


1

2

3

1

1

1

2

4

6

1

1

1

3

6

9


Với mỗi phần tử của mảng này được tính bằng cách tính tổng điểm ảnh phía trên (dòng - 1) và bên trái (cột -1) của
nó.
Đây là cách chuyển đổi để tính mức xám của một vùng bất kì trên ảnh và từ đó kết hợp với các đặc trưng của Haarlike dựa vào bộ phân loại AdaBoost trên nguyên tắc kết hợp các lớp yếu để tạo ra bộ phân loại mạnh.


Các đặc trưng của Haar-like

Có 4 đặc trưng cơ bản để xác đònh khuôn mặt người được rút ra từ thuật toán của Viola và Jones . Mỗi đặc trưng
Haar-like là sự kết hợp của 2 hoặc 3 hình chữ nhật “trắng ” hay “đen” như trong các hình sau :

Và các đặc trưng lại tiếp tục được chia ra thành 3 loại đặc trưng :

1.

Đặc trưng cạnh (edge features):

2.

Đặc trưng đường (line features):

3.

Đặc trưng xung quanh tâm (center-surround features):


Khái quát về mô hình phân tầng CascadeCascade Classifier
Cascade Classifier là một mô hình phân tầng do thuật toán AdaBoost hình thành với mỗi tầng là một mô hình AdaBoost sử dụng
bộ phận lớp yếu là cây quyết đònh để kết hợp với các đặc trưng của Haar-Like .
Trong quá trình huấn luyện ,sẽ có những mẫu dễ nhận dạng và khó nhận dạng ,tuy nhiên dù vậy nó vẫn phải xét qua tất cả các

đặc trưng mà nó rút ra trong quá trình học do đó tốn thời gian không cần thiết.
Mô hình này được xây dựng để rút ngắn thời gian xử lý , giảm thiểu sai lầm cho bộ phân loại .Mỗi mô hình AdaBoost ở mỗi tầng
sẽ thực hiện cùng với bộ phận lớp yếu là các cây quyết đònh . Mỗi mẫu để được phân loại là đối tượng thì nó cần đi qua hết tất
cả các tầng .Các tầng sau sẽ huấn luyện các mẫu âm (không phải mặt người) mà tầng trước nó nhận dạng sai . Từ đó , hệ thống
sẽ tập trung học từ những background khó hơn và khi kết hợp các tầng này lại sẽ giúp bộ phân loại giảm thiểu sai lầm .
Những mẫu là background dễ nhận dạng sẽ bò loại trừ ngay ở những tầng đầu tiên , đáp ứng tốt thời gian xử lý và duy trì hiệu
quả .


Mô hình phân tầng CascadeThuật toán Viola-Jones
Tổng thể quy trình dò và phát hiện khuôn mặt :


Ứng dụng của nhận dạng
khn mặt
Ở cuộc sống hiện đại ngày nay , nhận dạng khuôn mặt đã là hệ thống thực sự cần thiết để lưu
trữ thông tin của cá nhân hay tổ chức ,công ty nào đó và khi đó độ đảm bảo bảo mật về thông
tin cá nhân hay nhân viên cũng được tăng cao .
Trong nhiều ứng dụng giám sát,các nơi công cộng chúng ta không thể yêu cầu tất cả mọi người
đưa ngón tay để cùng nhận dạng vân tay . Vì vậy , ta cần hệ thống giám sát tương tự mắt người
để xác đònh danh tính một người . Để phục vụ nhu cầu này và quan sát trạng thái vật lý của con
người , nhận dạng khuôn mặt đã bắt đầu được áp dụng rộng rãi .


Các phương pháp
thuật toán nhận dạng khuôn mặt

1.
2.
3.


Phương pháp phân tích thành phần chính (Principal Component Analysis) PCA.
Phương pháp phân tính đặc trưng tuyến tính (Linear Discriminant Analysis) LDA.
Mã hóa nhóm hình ảnh thành đồ thò hợp nhất có tính linh hoạt của đồ thò (Elastic Bunch Graph Matching)
EBGM.

4.
5.

The Hidden Markov model .
Động cơ liên kết nơ-ron linh hoạt (The neural motivated dynamic link matching).

Phương pháp sử dụng và tìm hiểu: Phân tích các thành phần chính (thuật toán PCA). Vì đây là phương pháp tương
đối đơn giản và mang lại tính hiệu quả cao . Phương pháp này dựa vào EigenFaces để nhận dạng và chương trình
được cài đặt trên môi trường C# nên cần sự hỗ trợ của thư viện EmguCV và thuật toán phát hiện khuôn mặt ViolaJones.


Thuật toán nhận dạng khuôn mặt
(PCA)
Hiệu suất của phương pháp PCA?
Phương pháp PCA mang về kết quả nhận dạng chưa bao giờ được khẳng đònh đúng hẳn 100% mặc dù vớiù những
hình ảnh chất lượng nó có thể đạt hiệu quả tối đa (xấp xỉ 100%) nhưng không phải là luôn luôn đạt được .

Hiệu suất của phương pháp này được đánh giá độ chính xác từ khoảng 70-80%.


Thuật toán nhận dạng khuôn mặt
(PCA)
Giới thiệu:
Phương pháp PCA được phát minh vào năm 1901 bởi Karl-Pearson và hiện nay nó được sử dụng như một công cụ

phân tích dữ liệu và tạo ra các mô hình dự đoán .

PCA bao gồm cả việc tính toán ,phân tích các giá trò đặc trưng của một ma trận tương quan dữ liệu hay phân tích
các giá trò đơn của ma trận dữ liệu sau khi tính dữ liệu trung bình của thuộc tính .
PCA là phương pháp đơn giản nhất để phân tích đa biến dựa trên các vector đặc trưng .
PCA cung cấp một bức ảnh ít chiều ,một ảnh hiện thực nhất khi ta quan sát chính những đặc trưng cơ bản của con
người hay vật thể.


Thuật toán nhận dạng khuôn mặt
(PCA)
Đặc trưng:
Giảm số chiều của ma trận 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 một không gian mới ít chiều hơn nhưng lại có khả
năng biểu diễn dữ liệu tốt tương đương không gian cũ. Điều này đảm bảo độ biến thiên (variability) của dữ liệu trên
mỗi chiều mới
Các trục tọa độ trong không gian mới là tổ hợp tuyến tính của không gian cũ do đó PCA xây dựng đặc tính mới dựa
trên các đặc tính đã quan sát được .Điểm hay là các đặc tính mới có thể biểu diễn tốt dữ liệu ban đầu .
Trong không gian mới ,các tiềm ẩn hay các mối liên kết của dữ liệu có thể được khám phá trong khi ở những không
gian cũ và nhiều chiều với dữ liệu phức tạp thì có thể khó phát hiện hơn .


Thuật toán nhận dạng khuôn mặt
(PCA)
Tóm gọn đặc trưng :
Mục tiêu của phương pháp PCA này là tìm một không gian mới (với số chiều nhỏ hơn không gian cũ).
Các trục không gian mới được xây dựng sao cho trên mỗi trục ,độ biến thiên của dữ liệu là lớn nhất có thể .
Ví dụ kinh điển của thuật
toán này là hình ảnh lạc đà .


Phép chiếu lên các trục tọa độ khác nhau có thể cho ta thêm các cách nhìn rất khác về cùng một dữ liệu .


Thuaọt toaựn nhaọn daùng khuoõn maởt
(PCA)

Gi s tp d liu ban u (tp im mu xanh) c quan sỏt trong khụng gian 3 chiu (trc mu en) nh hỡnh bờn trỏi. Rừ rng 3
trc ny khụng biu din c tt nht mc bin thiờn ca d liu. PCA do ú s tỡm h trc ta mi (l h trc mu trong
hỡnh bờn trỏi). Sau khi tỡm c khụng gian mi, d liu s c chuyn sang khụng gian ny c biu din nh trong hỡnh bờn
phi. Rừ rng hỡnh bờn phi ch cn 2 trc ta nhng biu din tt hn bin thiờn ca d liu so vi h trc 3 chiu ban u.


Thuật toán nhận dạng khuôn mặt
(PCA)
Các thành phần chính :
Tham số dữ liệu (variable) : Hình ảnh khuôn mặt đưa vào để nhận dạng.

Thành phần quan trọng nhất : EigenFace (được mã hóa từ dữ liệu hình ảnh đầu vào ).

Cơ sở dữ liệu (dataset) : Chứa đựng tập các hình ảnh đã được huấn luyện
(training images)


Thuật toán nhận dạng khuôn mặt
(PCA)
Ý tưởng thuật toán:
Sau khi biến đổi , tập dữ liệu mới gồm K eigen faces với

Tập huấn luyện (training images gồm M


(K
hình ảnh bất kì)

Tranformation


Thuật toán nhận dạng khuôn mặt
(PCA)
Nội dung thuật toán :

toán:aMỗi hình ảnh đươc lưu vào tập huấn luyện TrainingSet
sẽ được phân tích thành W thành phần chính ,các thành
phần này sẽ được chuyển đổi qua EigenFace và nhận được
K eigenFace sao cho (K <(tập hình ảnh ban đầu M))


×