nhan dang khuon mat

49
Bo co môn L Thuyt Nhn Dng BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI - Khoa Công Nghệ Thông Tin - Bo co bài tp lớn môn L thuyt nhn dng GV hướng dẫn: Th.s Trn Hng Cưng Sinh viên thực hiện: Nhóm 5 - Lớp KHMT2 - K3 Thành viên trong nhóm: 1. Nguyn Thành Trung 2. Nguyn Tun Dương 3. Nguyn Huy Thiện Nhóm 9 Page 1

Upload: thanhvu

Post on 05-Dec-2015

251 views

Category:

Documents


9 download

DESCRIPTION

Nhan Dang Khuon Mat

TRANSCRIPT

Page 1: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

BỘ CÔNG THƯƠNG

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 môn

Ly thuyêt nhân dang

GV hướng dẫn: Th.s Trân Hung Cương

Sinh viên thực hiện: Nhóm 5 - Lớp KHMT2 - K3

Thành viên trong nhóm:1. Nguyên Thành Trung

2. Nguyên Tuân Dương

3. Nguyên Huy Thiện

4. Nguyên Văn Tin

5. Trương Thi Phương

Nhom 9 Page 1

Page 2: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Hà nôi ngày ...thang 6 năm 2011

Nhận xet cua giáo viên

........................................................................................................

................................................................................................................

................................................................................................................

................................................................................................................

................................................................................................................

................................................................................................................

................................................................................................................

................................................................................................................

................................................................................................................

................................................................................................................

................................................................................................................

................................................................................................................

...........

Hà Nội, ngày tháng năm 2011

Giáo viên

Ths. Trân Hung Cương

Nhom 9 Page 2

Page 3: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Mục lục

Nhân xet cua giao viên 2

Mục lục 3

Lơi noi đâu 5

Chương I: Tông quan vê xac đinh măt ngươi 6

Giới thiệu chung 6

1. Định nghĩa bài toan xac định mặt người 6

2. Ứng dụng của phương phap xac đinh mặt người 6

3. Việc xac định khuôn mặt người có những khó khăn nhất định như: 7

4. Phạm vi đề tài 8

5. Cac phương phap 9

Chương II. Thuât giải Adaboost 10

1. Thuật giải Adaboost 12

a) Định nghĩa...............................................................................................12

b) Tư tưởng..................................................................................................12

c) Thuật toan Adaboost...............................................................................15

2. Haar-Like 18

Nhom 9 Page 3

Page 4: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

a. Đặc trưng Haar-Like...............................................................................18

b. Lợi ích.....................................................................................................19

3. Cascade of Classifiers 21

4. Cascade of boosting classifiers 23

Chương III: Xây dưng chương trinh 25

1. Tông quan về OpenCV 25

2. Hệ thông phat hiện mặt người 26

3. Phân tích và thiêt kê hệ thông phat hiện mặt người 27

a. Nhiệm vụ..................................................................................................27

b. Thiêt kê hệ thông.....................................................................................28

4. Thiêt kê giao diện 30

Kêt luât 32

Tài liệu tham khảo 33

Nhom 9 Page 4

Page 5: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Lơi nói đâu

Trong nhiều năm qua, có rât nhiều công trình nghiên cứu về bài toán nhận

dạng mặt ngươi. Các nghiên cứu đi từ bài toán đơn giản, từ việc nhận dạng một mặt

ngươi trong ảnh đen trắng cho đến mở rộng cho ảnh mâu và có nhiều mặt ngươi

trong ảnh. Đến nay các bài toán xác đinh mặt ngươi đã mở rộng với nhiều miền

nghiên cứu như nhận dạng khuôn mặt, đinh vi khuôn mặt, theo dõi mặt ngươi hay

nhận dạng cảm xúc mặt ngươi…

Phát hiện mặt ngươi trong ảnh là phân đâu tiên cua một hệ thống nhận dạng

mặt ngươi. Các hệ thống nhận dạng khuôn mặt đươc bắt đâu xây dựng từ những năm

1970, tuy nhiên do còn hạn chế về các luật xác đinh mặt ngươi nên chỉ đươc áp

dụng trong một số ứng dụng như nhận dạng thẻ căn cước. Nó chỉ đươc phát triển

mạnh mẽ từ những năm 1990 khi có những tiến bộ trong công nghệ video và ngày

nay thì các ứng dụng cua xác đinh mặt ngươi đã trở nên phổ biến trong cuộc sống.

Bài toán xác đinh khuôn mặt ngươi (Face detection) là một kỹ thuật máy tinh

để xác đinh các vi tri và các kich thước cua khuôn mặt trong ảnh bât kỳ (ảnh kỹ

thuật số). Kỹ thuật này nhận biết các đặc trưng khuôn mặt và bỏ qua những thứ khác

như: toà nhà, cây cối cơ thể.

Chương trình xác đinh vi tri khuôn mặt ngươi trong bài viết này sử dụng

hướng tiếp cận dựa trên mạo, sử dụng bộ phân loại mạnh AdaBoost là sự kết hơp

Nhom 9 Page 5

Page 6: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

cua các bộ phân loại yếu dựa trên các đặt trưng Haar-like để xác đinh khuôn mặt.

Mã nguồn đươc dựa trên thư viện mã nguồn mở OpenCV cua Intel để cài đặt.

Chương I: Tổng quan về xác đinh mặt ngươi

Giới thiệu chung

Hơn một thập kỷ qua có rât nhiều công trình nghiên cứu về bài toán xác đinh

khuôn mặt ngươi từ ảnh đen trắng, xám đến ảnh màu như ngày hôm nay.Các nghiên

cứu đi từ bài toán đơn giản, mỗi ảnh chỉ có một khuôn mặt ngươi nhìn thẳng vào

thiết bi thu hình và đâu ở tư thế thẳng đứng trong ảnh đen trắng.Cho đế ngày hôm

nay bài toán mở rộng cho ảnh màu, có nhiều khuôn mặt trong cung một ảnh, có

nhiều tư thế thay đổi trong ảnh. Không những vậy mà còn mở rộng cả phạm vi từ

môi trương xung quanh khá đơn giản (trong phòng thi nghiệm) cho đến môi trương

xung quanh rât phức tạp (như trong tự nhiên) nhằm đáp ứng nhu câu thật sự và rât

nhiều cua con ngươi.

1. Định nghĩa bài toan xac định mặt người

Xác đinh khuôn mặt(Face Detection) là một kỹ thuật máy tinh để

xác đinh các vi tri và các kich thước cua các khuôn mặt ngươi trong các

ảnh bât kỳ ( ảnh kỹ thuật số). Kỹ thuật này nhận biết các đặc trưng cua

khuôn mặt và bỏ qua những thứ khác như : tòa nhà, cây cối, cơ thể , ...

2. Ứng dụng của phương phap xac đinh mặt người

Có nhiều ứng dụng đã đươc và đang thiết kế như:

Nhom 9 Page 6

Page 7: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Hệ thống tương tác giữa ngươi máy giúp ngươi bi tật hoặc khiếm khuyết

có thể trao đổi. Những ngươi dung ngôn ngữ tay có thể giao tiếp với những

ngươi bình thương ,...

Fan phân đoạn ảnh màu để tìm cạnh thông qua thuật toán tăng vung để xác

đinh các ứng viên. Dung đặc tinh hình ellipse cua khuôn mặt ngươi để xác

đinh ứng viên nào khuôn mặt ngươi ...

Jin xây dựng một bộ lọc để xác đinh ứng viên khuôn mựt ngươi theo màu

da ngươi . Từ ứng viên này tác giả xác đinh khuôn mặt ngươi theo hình

dáng khuôn mặt và các quan hệ đặc trưng về thành phân khuôn mặt , với

mắt phải đươc chọn làm gốc tọa độ để xet quan hệ. Tỷ lệ chinh xác cho

khuôn mặt chụp thẳng trên 80%

Tương lai sẽ phát triển các loại thẻ thông minh có tich hơp sẵn đặc trưng

cua ngươi dung trên đó, khi bât cứ ngươi dung khác dung để 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 khuôn mặt

so với thẻ để biết nay có phải là chu thẻ hay không.

Hãng máy chụp hình Canon đã ứng dụng bài toán xác đinh khuôn mặt

ngươi vào máy chụp hình thế hệ mới để cho kết quả hình ảnh đẹp hơn, nhât

là khuôn mặt ngươi.

Khuôn mặt cua con ngươi có những kết câu riêng biệt mà có thể dung để phân

lơi so với các đối tương khác. Dựa vào mức độ cân xứng cua khuôn mặt ngươi để

xác đinh khuôn mặt ngươi. Tuy theo mỗi phương pháp mỗi thuật toán mà có cách

xác đinh khác nhau.

3. Việc xac định khuôn mặt người có những khó khăn nhất định như:

Mặc du có rât nhiều cách để xác đinh mặt ngươi tuy nhiên quá trình thực hiện

lại gặp phải những khó khăn sau :

Nhom 9 Page 7

Page 8: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Hướng (pose) cua khuôn mặt đối với máy ảnh, như: nhìn thẳng, nhìn

nghiêng hay nhìn từ trên xuống. Cung trong một ảnh có thể có nhiều

khuôn mặt ở những tư thế khác nhau.

Sự có mặt cua các chi tiết không phải là đặc trưng riêng cua khuôn mặt

ngươi, như: râu quai nón, mắt kinh, ….

Các net mặt (facial expression) khác nhau trên khuôn mặt, như: vui,

buồn, ngạc nhiên, ….

Mặt ngươi bi che khuât bởi các đối tương khác có trong ảnh.

Sự biểu cảm cua khuôn mặt : sự biểu cảm có thể làm thay đổi đáng kể

các đặc trưng và thông số cua khuôn mặt, vi dụ như khuôn mặt cua

cung một ngươi sẽ rât khác khi ngươi đây cươi, tức giận hay sơ hãi …

4. Phạm vi đề tài

Tập trung xác đinh khuôn mặt ngươi và lưu vào CSDL. Do có nhiều khó khăn

khi xác đinh khuôn mặt nên để bài toán đươc chinh xác và giảm độ phức tạp thì cân

những phạm vi yêu câu sau

Các khuôn mặt đươc chụp thẳng hoặc góc nghiêng không đáng kể (be

hơn 10o)

Phông nền cua ảnh không quá phức tạp

Ảnh đươc chụp trong điều kiện ánh sáng bình thương.

Đối với video hoặc webcam, do có thể tách thành các xử lý trên ảnh nên

với những video phức tạp hay webcam quá kem, chương trình sẽ không

thực hiện đươc tốt nhât có thể.

Nhom 9 Page 8

Page 9: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

5. Cac phương phap

Có nhiều nghiên cứu tìm phương pháp xác đinh khuôn mặt ngươi, từ ảnh xám

đến ngày nay là ảnh màu.

Dựa vào các tinh chât cua các phương pháp xác đinh mặt ngươi trên ảnh, có

thể chia thành bốn loại chinh, tương ứng với các hướng tiếp cận khác nhau. Một

phương pháp có thể sử dụng nhiều hướng tiếp cận, tuy mỗi hoàn cảnh.

Hướng tiếp cận dựa trên tri thức: Hướng tiếp cận top-down, dựa trên

các thuật toán, mã hóa các đặc trưng và quan hệ giữa các đặc trưng cua

khuôn mặt thành các luật.

Hướng tiếp cận dựa trên đặc trưng không thay đổi: Xây dựng các thuật

toán tìm các đặc trưng mô tả câu trúc khuôn mặt mà các đặc trưng này

không thay đổi khi tư thế khuôn mặt , vi tri đặt camera thay đổi hoặc

điều kiện ánh sáng thay đổi.

Hướng tiếp cận dựa trên so sánh khớp mâu: Dung các mâu chuân cua

khuôn mặt ngươi (các mâu này đươc chọn lựa và lưu trữ ) để mô tả các

khuôn mặt hay các đặc trưng cua khuôn mặt ( các mâu này đươc chọn

tách biệt theo tiêu chuân đã đươc các tác giả đề ra để so sánh ). Phương

pháp này có thể dung để xác đinh vi tri hay dò tìm khuôn mặt trên ảnh.

Các mối tương quan giữa dữ liệu ảnh đưa vào và các mâu dung để xác

đinh khuôn mặt ngươi.

Hướng tiếp cận dựa trên diện mạo: Trái ngươc hẳn với hướng tiếp cận

dựa trên khuôn mâu , các mô hình ( hay các mâu) sẽ đươc học từ một

tập ảnh huân luyện mà thể hiện tinh chât tiêu biểu cua sự xuât hiện cua

mặt ngươi trong ảnh. Sau đó hệ thống (mô hình) sẽ xác đinh mặt ngươi.

Nhom 9 Page 9

Page 10: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Phương pháp này còn đươc biết đến với tên gọi tiếp cận theo các

phương pháp học máy.

Chương II. Thuật giải Adaboost

A. Tông quan

Học theo Adaboost là một hướng tiếp cận dựa trên diện mạo, Viola và Jones

dung Adaboost kết hơp cascade of classifiers để để tăng tốc độ phát hiện khuôn mặt

trong ảnh với các đặc trưng dạng Haar wavelet-like . Tốc độ xử lý khá nhanh và tỷ lệ

chinh xác hơn 80% trên ảnh xám. Ngoài ra Schneiderman và Kanade dung wavelet

để trich đặc trưng, sau đây cũng xây dựng hệ thống học với Adaboost, dựa trên xác

suât để xác đinh khuôn mặt ngươi. Tỷ lệ chinh xác trên cua phương pháp này lên

đến 90%.

Hướng tiếp cận diện mạo

Hướng tiếp cận dựa trên diện mạo áp dụng các kỹ thuật theo hướng xác suât

thống kê và học máy để tìm những đặc tinh liên quan cua khuôn mặt và không phải

là khuôn mặt. Các đặc tinh đã đươc học ở trong hình thái các mô hình phân bố hay

các tham số cua một hàm số nên có thể dung các đặc tinh này để xác đinh khuôn mặt

ngươi. Đồng thơi, bài toán giảm số chiều thương đươc quan tâm để tăng hiệu quả

tinh toán cũng như hiệu quả xác đinh.

Thuật toán học máy Adaboost đươc phát triển thuật toán Boosting

Thuật toán Boosting

Về lich sử, boosting bắt nguồn từ câu hỏi nổi tiếng đươc đưa ra bơi Kearns

vào năm 1989 : “Liệu có thể tạo ra môt strong classifier từ môt tập cac bô phân loại

yêu?”. Năm 1990, Robert Schapire đưa ra thuật toán boosting đâu tiên, tiếp đến năm

Nhom 9 Page 10

Page 11: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

1993 thì nó đươc Drucker, Schapire và Simard kiểm nghiệm trong trong các chương

trình nhận dạng ( OCR application ). Freund đã tiếp tục các nghiên cứu cua

Schaprire, và đến năm 1995 thì ông cung với Schapire phát triển boosting thành

adaboost.

Như vậy, nguyên lý cơ bản cua boosting là sự kết hơp các weak classifiers

thành một strong classifier. Trong đó, weak classifier là các bộ phân loại đơn giản

chỉ cân có độ chinh xác trên 50%. Bằng cách này, chúng ta nói bộ phân loại đã đươc

“boost”.

Để hiểu cách hoạt động cua thuật toán boosting, ta xet một bài toán phân loại

2 lớp (mâu cân nhận dạng chỉ thuộc một trong hai lớp) với D là tập huân luyện gồm

có n mâu. Trước tiên, chúng ta sẽ chọn ngâu nhiên ra n1 mâu từ tập D (n1<n) để tạo

tập D1. Sau đó, chúng ta sẽ xây dựng weak classifier đâu tiên C1 từ tập D1. Tiếp

theo, chúng ta xây dựng tập D2 để huân luyện bộ phân loại C2. D2 sẽ đươc xây

dựng sao cho một nửa số mâu cua nó đươc phân loại đúng bởi C1 và nửa còn lại bi

phân loại sai bởi C1. Bằng cách này, D2 chứa đựng những thông tin bổ sung cho C1.

Bây giơ chúng ta sẽ xây huân luyện C2 từ D2.

Tiếp theo, chúng ta sẽ xây dựng tập D3 từ những mâu không đươc phân loại

tốt bởi sự kết hơp giữa C1 và C2: những mâu còn lại trong D mà C1 và C2 cho kết

quả khác nhau. Như vậy, D3 sẽ gồm những mâu mà C1 và C2 hoạt động không hiệu

quả. Sau cung, chúng ta sẽ huân luyện bộ phân loại C3 từ D3.

Bây giơ chúng ta đã có một strong classifier: sự kết hơp C1, C2 và C3. Khi

tiến hành nhận dạng một mâu X, kết quả sẽ đươc quyết đinh bởi sự thỏa thuận cua 3

bộ C1, C2 và C3: Nếu cả C1 và C2 đều phân X vào cung một lớp thì lớp này chinh là

kết quả phân loại cua X; ngươc lại, nếu C1 và C2 phân X vào 2 lớp khác nhau, C3 sẽ

quyết đinh X thuộc về lớp nào

Nhom 9 Page 11

Page 12: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Hình: Boosting

1. Thuật giải Adaboost

a) Định nghĩa

Adaboost (Adaptive Boost ) là một bộ phân loại mạnh phi tuyến phức dựa trên

hướng tiếp cận Boosting đươc Freund và Schapire đưa ra vào năm 1995. Adaboost

hoạt động dựa trên nguyên tắc kết kết hơp tuyến tinh các Weak Classifier dựa trên

đặc trưng Haar-Like để hình thành một Classifier.

b) Tư tưởng

Tư tưởng cua thuật toán Adaboost đây là kết hơp các bộ phân loại yếu thành

một bộ phân loại mạnh. Trong quá trình xây dựng, bộ phân loại yếu tiếp theo sẽ

đươc xây dựng dựa trên các đánh giá về các bộ phân loại yếu trước, cuối cung các

bộ phân loại yếu sẽ đươc kết hơp để trở thành bộ phân loại mạnh.

Nhom 9 Page 12

Page 13: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Để có thể kết hơp các bộ phân loại yếu, Adaboost sử dụng một trọng số

(weight) để đánh dâu các mâu khó nhận dạng. Trong quá trình huân luyện, cứ mỗi

weak classifier đươc xây dựng, thuật toán sẽ tiến hành cập nhật lại trọng số để chuân

bi cho việc xây dựng weak classifier tiếp theo: tăng trọng số cua các mâu bi nhận

dạng sai và giảm trọng số cua các mâu đươc nhận dạng đúng bởi weak classifier vừa

xây dựng. Bằng cách này, các weak classifier sau có thể tập trung vào các mâu mà

các weak classifier trước đó chưa thực hiện tốt. Sau cung các weak classifier sẽ đươc

kết hơp tuy theo mức độ ‘tốt’ cua chúng để tạo nên một strong classifier.

Viola và Jones dung AdaBoost kết hơp các bộ phân loại yếu sử dụng các đặc

trưng Haar-like theo mô hình phân tâng (cascade) như sau:

Hình: Mô hình phân tân kết hơp các bộ phân loại yếu để xác đinh khuôn mặt

Nhom 9 Page 13

Page 14: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Các Weak Classifiers hk(x) là các bộ phận loại yếu, đươc biểu diên như sau:

Trong đó:

X : mâu hay cửa sổ con cân xet (X=(x1,x2,.....,xn) là vecto đặc trưng cua

mâu )

k : ngưỡng

: giá tri cua đặc trưng Harr-like

k : hệ số quyết đinh chiều cua bât phương trình

Y nghia cua công thức:

Nếu giá tri đặc trưng cua mâu cho bởi hàm đánh giá cua bộ phân loại vươt qua

một ngưỡng cho trước thì mâu đây là khuôn mặt ( gọi là object : đối tương cân nhận

dạng ), ngươc lại thì mâu là background ( không phải là đối tương ).

Adaboost sẽ kết hơp các bộ phận loại yếu thành bộ phận loại mạnh như sau:

Nhom 9 Page 14

H(x) = sign(α1h1(x) +α2h2(x) + ... + αnhn(x))

Với: αt >= 0 là hệ số chuân hóa cho các bộ phận loại

Page 15: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Hình: Kết hơp các bộ phận loại yếu thành bộ phận loại mạnh.

c) Thuật toan Adaboost

Bước1. Cho một tập gồm n mâu có đánh dâu (x1,y1), (x2,y2),… (xn,yn) với xk ∈ (xk1, xk2, … , xkm) là vector đặc trưng và yk ∈ (-1, 1) là nhãn cua mâu (1 ứng

với object, -1 ứng với background).

Bước2. Khởi tạo trọng số ban đâu cho tât cả các mâu: với m là số mâu đúng

(ứng với object và y = 1) và l là số mâu sai (ứng với background và y = -1).

Bước 3. Xây dựng T weak classifiers

Lặp t = 1, …, T

o Với mỗi đặc trưng trong vector đặc trưng, xây dựng một weak

classifier hj với ngưỡng θj và lỗi εj.

o Chọn ra hj với εj nhỏ nhât, ta đươc ht:

Nhom 9 Page 15

Page 16: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

o Cập nhật lại trọng số:

o Trong đó:

: Hệ số dung để đưa về đoạn [0,1] (normalization

factor)

Bước 4. Strong classifier đươc xây dựng:

Sơ đồ khối

Nhom 9 Page 16

Page 17: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Hoạt động:

Quá trình huân luyện bộ phân loại đươc thực hiện bằng một vòng lặp mà ở

mỗi bước lặp, thuật toán sẽ chọn ra weak classifier h t thực hiện việc phân loại với lỗi

εt nhỏ nhât (do đó sẽ là bộ phân loại tốt nhât) để bổ sung vào strong classifier. Mỗi

khi chọn đươc 1 bộ phân loại ht, Adaboost sẽ tinh giá tri αt theo công thức ở trên. αt

cũng đươc chọn trên nguyên tắc làm giảm thiểu giá tri lỗi εt.

Hệ số αt nói lên mức độ quan trọng cua ht:

o Trong công thức cua bộ phân loại H(x):

Nhom 9 Page 17

Bắt đâu

huân luyện

Khởi tạo tập

đặc trưng ban đâu

Xác đinh các đặc trưng trong từng mâu, xây dựng các bộ phân loại yếu tương ứng

Đặc trưng

haar-like

Tinh toán giá tri lỗi

cho mỗi đặc trưng

(false alarm)

Chọn weak

classifier có giá tri

lỗi be nhât

Lưu

weak

classifier

đươc chọn

False alarm ≤

max false alarm

Tập các mâu

và trọng số

Tập các

mâuMâu

sai

Mâu

đúng

Cập nhật lại trọng số

Sai

Kết thúc, strong classifier đuơc xây dựng

Đúng

Xác đinh ngưỡng

Page 18: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Ta thây tât cả các bộ phân loại ht đều có đóng góp vào kết quả cua bộ phân

loại H(x), và mức độ đóng góp cua chúng phụ thuộc vào giá tri αt tương ứng: ht với

αt càng lớn thì nó càng có vài trò quan trọng trong H(x).

o Trong công thức tinh αt:

Dê thây giá tri αt tỉ lệ nghich với εj. Bởi vì ht đươc chọn với tiêu chi đạt εj

nhỏ nhât, do đó nó sẽ đảm bảo giá tri αt lớn nhât.

Sau khi tinh đươc giá tri αt, Adaboost tiến hành cập nhật lại trọng số cua các

mâu: tăng trọng số các mâu mà ht phân loại sai, giảm trọng số các mâu mà ht phân

loại đúng. Bằng cách này, trọng số cua mâu phản ánh đươc mức độ khó nhận dạng

cua mâu đó và ht+1 sẽ ưu tiên học cách phân loại những mâu này.

Vòng lặp xây dựng strong classifier sẽ dừng lại sau T lân lặp. Trong thực tế cài

đặt (thư viện OpenCV cua Intel), ngươi ta it sử dụng giá tri T vì không có công thức

nào đảm bảo tinh đươc giá tri T tối ưu cho quá trình huân luyện. Thay vào đó, ngươi

ta sử dụng giá tri max false positive hay max false alarm (tỉ lệ nhận dạng sai tối đa

các mâu background). Tỉ lệ này cua bộ phân loại cân xây dựng không đươc phep

vươt quá giá tri này. Khi đó, qua các lân lặp, false alarm cua strong classifier Ht(x)

xây dựng đươc (tại lân lặp thứ t) sẽ giảm dân, và vòng lặp kết thúc khi tỉ lệ này thâp

hơn max false alarm.

2. Haar-Like

a. Đặc trưng Haar-Like

Nhom 9 Page 18

Page 19: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Do Viola và Jones công bố , gồm 4 đặc trưng cơ bản để xác đinh khuôn mặt

ngươi. Mỗi đặng trưng Haar-Like là sự kết hơp cua hai hay ba hình chữ nhật “trắng

” hay “đen” như sau:

Hình : 4 đặc trưng Haar-Like

Để áp dụng các đặc trưng này vào việc bài toán xác đinh mặt ngươi , 4 đặc

trưng Haar-Like cơ bản đươc mở rộng ra , và đươc chia làm 3 tập đặc trưng như sau:

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)

b. Lợi ích

Lơi ich cua các đặc trưng Haar-like là nó diên đạt đươc tri thức về các đối

tương trong ảnh (bởi vì nó biểu diên mối liên hệ giữa các bộ phận cua đối tương),

điều mà bản thân từng điểm ảnh không diên đạt đươc. Để tinh giá tri các đặc trưng

Nhom 9 Page 19

Page 20: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

haar-like, ta tinh sự chênh lệch giữa tổng cua các pixel cua các vung đen và các vung

trắng như trong công thức sau:

f(x) = Tôngvùng đen(pixel) - Tôngvùng trắng(pixel)

Như vậy ta có thể thây rằng, để tinh các giá tri cua đặc trưng Haar-like, ta phải

tinh tổng cua các vung pixel trên ảnh. Nhưng để tinh toán các giá tri cua các đặc

trưng Haar-like cho tât cả các vi tri trên ảnh đòi hỏi chi phi tinh toán khá lớn, không

đáp ứng đươc cho các ứng dụng đòi hỏi tinh run-time. Do đó Viola và Jones đưa ra

một khái niệm gọi là Integral Image để tinh toán nhanh cho khác feature cơ bản. Sau

này, Lienhart kế thừa gọi Integral Image là SAT – Summed Area Table và đưa ra

thêm khái niệm RSAT – Rotated Summed Area Table dung để tinh toán nhanh cho

các đặc trưng xoay 1 góc 45o. Integral Image là một mảng 2 chiều với kich thước

bằng với kich cua ảnh cân tinh các đặc trưng Haar-like, với mỗi phân tử cua mảng

này đươc tinh bằng cách tinh tổng cua điểm ảnh phia trên (dòng-1) và bên trái (cột-

1) cua nó. Bắt đâu từ vi tri trên, bên trái đến vi tri dưới, phải cua ảnh, việc tinh toán

này đơn thuân chỉ đựa trên phep cộng số nguyên đơn giản, do đó tốc độ thực hiện rât

nhanh. Cách tính Integral Image của ảnh

Nhom 9 Page 20

P(x,y)

Page 21: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Sau khi đã tinh đươc Integral Image, việc tinh tổng điểm ảnh cua một vung

bât kỳ nào đó trên ảnh thực hiện rât đơn giản theo cách sau: (Giả sử ta cân tinh tổng

điểm ảnh cua vung D như trong hình sau):

D = A + B + C + D – (A+B) – (A+C) + A

Với A + B + C + D chinh là giá tri tại điểm P4 trên Integral Image, tương tự

như vậy A+B là giá tri tại điểm P2, A+C là giá tri tại điểm P3, và A là giá tri tại

điểm P1. Vậy ta có thể viết lại biểu thức tinh D ở trên như sau:

Hình: Vi dụ cách tinh nhanh tổng các điểm ảnh cua vung D trên ảnh

Hình: Vi dụ cách tinh nhanh tổng điểm ảnh cua vung D trên ảnh với các đặc

trưng xoay 450

Nhom 9 Page 21

A

C

B

D

P

1

P

2

P

3

P

4

D

Page 22: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Với các đặc trưng Haar-like xoay 45o Integral Image tại một điểm (x, y) đươc

tinh theo công thức:

Tổng pixel cua một vung bât kỳ trên ảnh vân đươc tinh theo cách sau:

D = A + B + C + D – (A+B) – (A+C) + A

Như vậy tổng các điểm ảnh trong một hình chữ nhật (kể cả trương hơp xoay

45º) bât kì đều có thể đươc tinh nhanh dựa trên integral image tại 4 đỉnh cua nó :

Sum ( D ) = 4 - 2 – 3 + 1

3. Cascade of Classifiers

Ta thây quá trình huân luyện, bộ phân loại phải duyệt qua tât cả các đặc trưng

cua các mâu trong tập training. Việc này tốn rât nhiều thơi gian. Tuy nhiên, trong

các mâu đưa vào, không phải mâu nào cũng thuộc loại khó nhận dạng, có những

mâu background rât dê nhận ra (ta gọi đây là những mâu background đơn giản). Đối

với những mâu này, ta chỉ cân xet một hay vài đặc trưng đơn giản là có thể nhận

diện đươc chứ không cân xet tât cả các đặc trưng. Nhưng đối với các bộ phân loại

thông thương thì cho du mâu cân nhận dạng là dê hay khó thì nó vân sẽ xet tât cả các

đặc trưng mà nó rút ra đươc trong quá trình học. Do đó, chúng tốn thơi gian xử lý

một cách không cân thiết.

Cascade of Classifiers đươc xây dựng chinh là nhằm rút ngắn thơi gian xử lý,

giảm thiểu false alarm cho bộ phân loại. Cascade tree gồm nhiều stage (hay còn gọi

là layer), mỗi stage cua cây sẽ là một stage classifier. Một mâu để đươc phân loại là

đối tương thì nó cân phải đi qua hết tât cả các stages cua cây. Các stage classifiers ở

stage sau đươc huân luyện bằng những mâu negative mà stage classifier trước nó

Nhom 9 Page 22

Page 23: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

nhận dạng sai, tức là nó sẽ tập trung học từ các mâu background khó hơn, do đó sự

kết hơp các stage classifiers này lại sẽ giúp bộ phân loại có false alarm thâp. Với

câu trúc này, những mâu background dê nhận diện sẽ bi loại ngay từ những stages

đâu tiên, giúp đáp ứng tốt nhât đối với độ phức tạp gia tăng cua các mâu đưa vào,

đồng thơi giúp rút ngắn thơi gian xử lý.

Thuật toan Cascade training:

Bước. Gọi:

F là giá tri false alarm và d là độ chinh xác cua weak classifier ở mỗi

stage

Ftarget: Giá tri max false alarm.

P, N: là số lương mâu positive và negative.

Pi, Ni: là tập positive và negative cho bộ phân lớp ở tâng thứ i.

Fi, Di: Giá tri false alarm và độ chinh xác cua cascade trước khi đến

tâng thứ i.

Bươc2. Khởi tạo i=0; F0=1.0; D0 = 1.0

Bước3. Lặp: while Fi>Ftarget

o i = i+1;

o Huân luyện bộ phân loại hi từ tập Pi và Ni với detection rate d và max

false alarm f. Thêm hi vào cây phân lớp.

o Dung cây phân lớp hiện có để tinh Fi: Duyệt qua N mâu negative cho

đến khi nào tìm đu n mâu mà cây phân lớp hiện có phân loại sai. (

Nhom 9 Page 23

Page 24: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

o N :=

o Nếu Fi >Ftarget

N = { số mâu sai ở stage hiện tại phân loại sai }.

P = { số mâu positive mà stage hiện tại phân loại dúng }

Minh họa thuât toan Cascade training:

Hình : cascade of classifiers

Hình trên minh họa sự huân luyện cua một cascade gồm N stages. Ở mỗi

stage, weak classifier tương ứng sẽ đươc huân luyện sao cho độ chinh xác cua nó là

h và false alarm bằng f

4. Cascade of boosting classifiers

Cascade of boosting classifiers là mô hình cascade of classifiers với mỗi

classifier đươc xây dựng bằng Adaboost sử dụng haar-like.

Nhom 9 Page 24

h h h

1-f 1-f 1-f 1-f

stage

1

2 N

-1

N…

… hitrate = hN

falsealarms = fN

Input pattern classified as a non-object

Page 25: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Hình 14: Cascade of boosting classifiers

Viola và Jones đã sử dụng rât thành công cascade of boosting classifiers cho

bài toán nhận dạng mặt ngươi. Với tập huân luyện gồm 4196 hình mặt ngươi đươc

đưa về ảnh grayscale kich thước 24x24 và 9500 hình background, hai ôngđã xây

dựng câu trúc cascade tree gồm 38 stage với tổng cộng 6060 đặc trưng haar-like.

Thực nghiệm đã cho thây classifier ở stage đâu tiên sử dụng 2 đặc trưng và loại

đươc khoảng 50% mâu background (không phải mặt ngươi) và có độ chinh xác là d

= 100%. Classifier ở stage thứ 2 sử dụng 10 đặc trưng loại đươc 80% mâu

background với độ chinh xác vân là 100%. Hệ thống này đươc so sánh với hệ thống

cua Rowley-Baluja-Kanade (sử dụng mạng neural), Schneiderman-Kanade (sử dụng

phương pháp thống kê), và cho thây tỉ lệ nhận dạng là ngang nhau, trong khi hệ

thống cua Viola và Jones chạy nhanh hơn đến 15 lân so với hệ thống cua Rowley-

Baluja-Kanade và nhanh hơn 600 lân hệ thống cua Schneiderman-Kanade.

Lý do mà câu trúc cascade đạt tốc độ nhận dạng nhanh chinh là nhơ nó sớm

loại bỏ đươc các mâu background đơn giản (thương có số lương lớn hơn nhiều so

với các mâu chứa object – các mâu chưa khuôn mặt cân tiến hành nhận dạng). Bên

cạnh đó, hệ thống cua Viola và Jones cũng đạt đươc độ chinh xác khá cao nhơ vào

thuật toán cascade training, các bộ nhận dạng đươc huân luyện bằng AdaBoost với

đặc trưng Haar-like mô tả tốt thông tin đối tương, cung với cách Integral Image tinh

nhanh các đặc trưng, không làm giảm tốc độ nhận dạng cua hệ thống. Như vậy, mô

Nhom 9 Page 25

I Y Y Y

N N N N

CLASS

NON-CLASS

Page 26: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

hình Cascade of Boosted Classifiers thật sự là một cách tiếp cận tốt cả về tốc độ lân

khả năng nhận dạng, rât phu hơp với bài nhận dạng mặt ngươi.

Nhom 9 Page 26

Page 27: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Chương III: Xây dựng chương trình

Tông quan

Trong linh vực nào cũng vậy, hâu như chúng ta phải dựa vào những kết quả

có trước để làm nền tảng cho những nghiên cứu hiện tại để rồi kết quả trong hiện tại

này đươc sử dụng cho tương lai. Xử lý ảnh cũng vậy, có vô số những thao tác đã

đươc nghiên cứu chi tiết và trở thành kinh điển như việc đọc ảnh, việc lây các điểm

ảnh, lọc Gaussian… Tuy nhiên để làm lại những công việc đó đòi hỏi rât nhiều thơi

gian và công sức, cả trong nghiên cứu lân lập trình. Vì vậy, nhu câu cân có một bộ

thư viện làm sẵn là hết sức cân thiết.

OpenCV là lựa chọn thich hơp cho các công việc liên quan đến Computer

Vision, và may mắn thay OpenCV là một bộ thư viện rât tốt và cực mạnh, hỗ trơ hâu

hết tât cả những thao các cơ bản trong các vân đề cua Computer Vision.

1. Tông quan về OpenCV

Câu trúc tổng quan cua OpenCV bao gồm 5 phân chinh. 4 trong 5 phân đó

đươc chỉ ra trong hình vẽ dưới.

Nhom 9 Page 27

CV

Các hàm về xử lý

ảnh và giải thuật về

thi giác máy tinh

CXCORE

Các câu trúc dữ liệu cơ bản, câu trúc XML, các hàm về

đồ họa …

MLL

Các thuật toán

học máy, bao gồm

các bộ phân cụm,

phân loại thống kê

HighGUI

Các hàm và thu

tục làm việc với file

ảnh và file video

Page 28: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

OpenCV Error: Reference source not found] là sản phâm cua Intel, viết tắt cua

cụm từ Open Source Computer Vision Library. Đây là một bộ thư viện tổng quát

trên tât cả các thao tác câp thâp lên ảnh. Nó có thể xem là một phát triển từ Intel

Imaging Processing Library (IPL) và hoàn toàn tương thich với IPL.

OpenCV, như đã nói là một thư viện rât đồ sộ và đươc tập thể các tác giả chia

làm 4 phân chinh:

CxCore: Chứa các câu trúc cơ bản như điểm, đương, dãy, mặt, ma

trận… và các thao tác câp thâp liên quan.

CV: Chứa hâu hết các thao tác liên quan đến việc xử lý ảnh ở câp thâp

như lọc ảnh, trich biên, phân vung, tìm contour, biến đổi Fourier…

HighGUI: Các thao tác lên những file ảnh và file Video như đọc ảnh,

hiển thi ảnh, chuyển đổi đinh dạng…

MLL: Các thuật toán học máy, bao gồm các bộ phân cụm, phân loại

thống kê

CvCam: Làm việc với Camera. Vì lý do phạm vi cua luận văn này chỉ

làm việc với ảnh nên chúng tôi không trình bày CvCam ở đây.

2. Hệ thông phat hiện mặt người

Nhom 9 Page 28

Page 29: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Hình: Tổng quan về hệ thống phát hiện mặt ngươi

Về cơ bản, từ ảnh gốc ban đâu, hệ thống sẽ chia ảnh thành vô số vung nhỏ để

tinh các đặc trưng, sau đây đưa các đặc trưng. Tiếp theo chương trình sẽ xác đinh

các vung khả quan (các ứng viên) có thể là khuôn mặt, cuối cung các ứng viên này

sẽ đươc đưa vào một bộ phân loại để tiến hành xác đinh ứng viên nào là mặt ngươi.

3. Phân tích và thiêt kê hệ thông phat hiện mặt người

a. Nhiệm vụ

Nhiệm vụ chinh cua chương trình là dò tìm khuôn mặt từ một bức ảnh, sau đó

lưu khuôn mặt vào CSDL.

Nhom 9 Page 29

Page 30: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Hình: Biểu đồ ngữ cảnh cua hệ thống

Các chức năng chinh:

Đọc các file ảnh

Phát hiện các khuôn mặt có trong bức ảnh

Lưu ảnh đã đươc phát hiện mặt vào CSDL

b. Thiêt kê hệ thông

Mô hình thiết kế

Nhom 9 Page 30

Page 31: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Xư ly đâu vao:

Chương trình nhận vào là 1 file ảnh sau đó chuyển sang giai đoạn phát hiện

khuôn mặt

Phat hiện khuôn măt

Sau khi có ảnh truyền vào, hệ thống sẽ thực hiện chức năng phát hiện khuôn

mặt có trong anh.

Phát hiện khuôn mặt trong ảnh đươc thực hiện nhanh bằng thuật toán

Adaboost thông qua các hàm CfaceDetectionDlg cua OpenCV. Hàm này thực hiện

việc phát hiện đối tương dựa trên các đặc trưng Haar-Like, cụ thể là nhơ vào một

bộ Cascade đươc truyền vào cho hàm. Bộ Cascade đươc xây dựng theo dạng cây và

đã đươc huân luyện từ trước

Việc huân luyện bộ Cascade có thể thực hiện từ những dữ liệu thu thập đươc

để phục vụ cho quá trình nhận dạng. Vi dụ, muốn nhận dạng một ngươi A, ta thu

Nhom 9 Page 31

Page 32: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

thập các ảnh khuôn mặt cua ngươi A với nhiều tư thế, góc chụp và điều kiện chụp

khác nhau, sau đây cho bộ nhận dạng học theo thuật toán Cascade training. Tuy

nhiên việc nhận dạng khuôn mặt là một công việc khó và tốn nhiều thơi gian, do đó,

tôi không thực hiện nó trong khóa luận cua mình.

Xư ly đâu ra.

Khuôn mặt sau khi đươc phát hiện sẽ đươc tách ra khỏi bức ảnh và lưu dưới

dạng ảnh bitmap với phân mở rộng là *.jpg.

Đối với đâu vào là các file ảnh, dữ liệu đâu ra cũng là file ảnh đây nhưng có

lưu vi tri khuôn mặt đã đươc phát hiện trên bức ảnh, đồng thơi tách các riêng khuôn

mặt và lưu vào cơ sở dữ liệu.

Hình: Biểu đồ phân giã chức năng

4. Thiêt kê giao diện

Giao diện cua chương trình đươc thiết kế đơn giản thân thiệt với ngươi dung.

Tập trung vào chức năng chinh phát hiện khuôn mặt trong ảnh.

Gồm 3 phân chinh:

Nhom 9 Page 32

Page 33: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

o Load Image: Dành cho ngươi dung chọn đâu vào file ảnh.Các ảnh video

đươc lưu vào Sourse cua chương trình với các đinh dạng đã quy đinh.

o Help: Hiện hộp thoại báo cho ngươi dung chọn ảnh.

o State: Ready: Trạng thái sẵn sàng làm việc sau khi ảnh đươc truyền vào

và hiện kết quả.

Ví dụ một kêt quả tim được la:

Nhom 9 Page 33

Page 34: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Kết luận

Trên cơ sở nghiên cứu về bài toán phát hiện mặt ngươi trong ảnh. Đặc biệt là

thuật toán Adaboost, các đặc trưng haar-like và mô hình Cascade of Classifier.

Thuật giải Adaboost đã tạo lên thành công trong quá trình phát hiện mặt ngươi. Bên

cạnh đó là thư viện mã nguồn mở OpenCV, hệ quản tri cơ sở dữ liệu cũng góp phân

không nhỏ taok lên kết quả hoàn thiên. Tuy kết quả chưa cao, nhưng đây cũng là

một bước phát triển bài toán nhận dạng mặt ( face recognition) ngươi sau này.

Nhom 9 Page 34

Page 35: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

Tài liệu tham khảo

1. A. Lanitis, C.J. Taylor, and T.F. Cootes, “An Automatic Face

Identification System Using lexible Appearance Models”, Image and Vision

Computing, vol. 13, no. 5, pp. 393-401, 1995.

2. Andrew King, “A Survey of Methods for Face Detection”, 2003

3. A. Yuille, P. Hallinan, and D. Cohen, “Feature Extraction from Faces

Using eformable Templates”, Int’l J. Computer Vision, vol. 8, no. 2, pp. 99-

111, 1992.

4. D.G. Kendall, “Shape Manifolds, Procrustean Metrics, and Complex

Projective Shapes”, Bull. London Math. Soc., vol. 16, pp. 81-121, 1984.

5. G. Yang and T. S. Huang, “Human Face Detection in Complex

Background”, Pattern Recognition, vol. 27, no. 1, pp. 53-63, 1994.

6. K. Lam and H. Yan, “Fast Algorithm for Locating Head Boundaries,”

J.Electronic Imaging, vol. 3, no. 4, pp. 351-359, 1994.

7. P. Viola and M. J. Jones, “Robust Real-Time Face Detection”,

International Journal of Computer Vision 57(2), 137-154, Kluwer

Academic Publishers, Netherlands, 2004.

8. T.F. Cootes and C.J. Taylor, “Locating Faces Using Statistical Feature

Detectors”, Proc. Second Int’l Conf. Automatic Face and Gesture

Recognition, pp. 204-209, 1996.

9. T.K. Leung, M.C. Burl, and P. Perona, “Finding Faces in Cluttered

Scenes Using Random Labeled Graph Matching”, Proc. Fifth IEEE Int’l

Conf. Computer Vision, pp. 637-644, 1995.

10.T. Sakai, M. Nagao, and S. Fujibayashi, “Line Extraction and Pattern

etection in a Photograph”, Pattern Recognition, vol. 1, pp. 233-248, 1969.

Nhom 9 Page 35

Page 36: Nhan Dang Khuon Mat

Bao cao môn Ly Thuy t Nh n D ngê â a

11. Robin Hewitt, “Seeing with OpenCV: A Five-Part Series”, 2007

Nhom 9 Page 36