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

TIỂU LUẬN môn lý THUYẾT NHẬN DẠNG NHẬN DẠNG KHUÔN mặt

32 1K 7

Đ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 32
Dung lượng 1,29 MB

Nội dung

Đến nay các bài toán xác định mặt người đã mở rộng với nhiều miềnnghiên cứu như nhận dạng khuôn mặt, định vị khuôn mặt, theo dõi mặt người haynhận dạng cảm xúc mặt người… Phát hiệ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 môn

Lý thuyết nhận dạng

GV hướng dẫn: Th.s Trần Hùng Cường

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

Thành viên trong nhóm:

4 Nguyễn Văn Tín

5 Trương Thị Phượng

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

Nhóm 9 Page 1

Trang 2

Nhận xét của giáo viên

Hà Nội, ngày tháng năm 2011 Giáo viên

Ths Trần Hùng Cường

Trang 3

Mục lục

Nhận xét của giáo viên 2

Mục lục 3

Lời nói đầu 4

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

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

Kết luận 31

Tài liệu tham khảo 32

Trang 4

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ậndạ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ặtngười trong ảnh đen trắng cho đến mở rộng cho ảnh mầu và có nhiều mặt ngườitrong ảnh Đến nay các bài toán xác định mặt người đã mở rộng với nhiều miềnnghiên cứu như nhận dạng khuôn mặt, định vị khuôn mặt, theo dõi mặt người haynhậ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 của một hệ thống nhận dạngmặ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 định mặt người nên chỉ được ápdụng trong một số ứng dụng như nhận dạng thẻ căn cước Nó chỉ được phát triểnmạnh mẽ từ những năm 1990 khi có những tiến bộ trong công nghệ video và ngàynay thì các ứng dụng của xác định mặt người đã trở nên phổ biến trong cuộc sống

Bài toán xác định khuôn mặt người (Face detection) là một kỹ thuật máy tính

để xác định các vị trí và các kích thước của 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ácnhư: toà nhà, cây cối cơ thể

Chương trình xác định vị trí khuôn mặt người trong bài viết này sử dụnghướ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ợpcủa các bộ phân loại yếu dựa trên các đặt trưng Haar-like để xác định khuôn mặt

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

Trang 5

Chương I: Tổng quan về xác định 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 địnhkhuô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êncứ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àothiết bị thu hình và đầu ở tư thế thẳng đứng trong ảnh đen trắng.Cho đế ngày hômnay bài toán mở rộng cho ảnh màu, có nhiều khuôn mặt trong cùng 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 thí nghiệm) cho đến môi trườngxung quanh rất phức tạp (như trong tự nhiên) nhằm đáp ứng nhu cầu thật sự và rấtnhiều của con người

1 Định nghĩa bài toán xác định mặt người

Xác định khuôn mặt(Face Detection) là một kỹ thuật máy tính để xác định các vị trí và các kích thước của 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 của 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 pháp xác đinh mặt người

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

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

có thể trao đổi Những người dùng ngôn ngữ tay có thể giao tiếp với nhữngngười bình thường ,

Trang 6

Fan phân đoạn ảnh màu để tìm cạnh thông qua thuật toán tăng vùng để xácđịnh các ứng viên Dùng đặc tính hình ellipse của khuôn mặt người để xácđịnh ứng viên nào khuôn mặt người

Jin xây dựng một bộ lọc để xác định ứ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 định khuôn mặt người theo hìnhdáng khuôn mặt và các quan hệ đặc trưng về thành phần khuôn mặt , vớimắt phải được chọn làm gốc tọa độ để xét quan hệ Tỷ lệ chính xác chokhuô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ó tích hợp sẵn đặc trưngcủa người dùng trên đó, khi bất cứ người dùng khác dùng để 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à chủ thẻ hay không

Hãng máy chụp hình Canon đã ứng dụng bài toán xác định khuôn mặtngườ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 của con người có những kết cấu riêng biệt mà có thể dùng để phânlợi so với các đối tượng khác Dựa vào mức độ cân xứng của khuôn mặt người đểxác định khuôn mặt người Tùy theo mỗi phương pháp mỗi thuật toán mà có cáchxác định khác nhau

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

Mặc dù có rất nhiều cách để xác định mặt người tùy nhiên quá trình thực hiệnlại gặp phải những khó khăn sau :

Hướng (pose) của khuôn mặt đối với máy ảnh, như: nhìn thẳng, nhìnnghiêng hay nhìn từ trên xuống Cùng trong một ảnh có thể có nhiềukhuôn mặt ở những tư thế khác nhau

Trang 7

người, như: râu quai nón, mắt kính, …

Các nét 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 bị che khuất bởi các đối tượng khác có trong ảnh

Sự biểu cảm của 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ố của khuôn mặt, ví dụ như khuôn mặt củacùng 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 định khuôn mặt người và lưu vào CSDL Do có nhiều khó khănkhi xác định khuôn mặt nên để bài toán được chính xác và giảm độ phức tạp thì cầnnhữ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ể (béhơn 10o)

Phông nền của ả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ênvới những video phức tạp hay webcam quá kém, chương trình sẽ khôngthực hiện được tốt nhất có thể

Trang 8

5 Các phương pháp

Có nhiều nghiên cứu tìm phương pháp xác định khuôn mặt người, từ ảnh xámđến ngày nay là ảnh màu

Dựa vào các tính chất của các phương pháp xác định mặt người trên ảnh, cóthể chia thành bốn loại chính, tương ứng với các hướng tiếp cận khác nhau Mộtphương pháp có thể sử dụng nhiều hướng tiếp cận, tùy 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êncác thuật toán, mã hóa các đặc trưng và quan hệ giữa các đặc trưng củakhuô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ậttoá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àykhông thay đổi khi tư thế khuôn mặt , vị trí đặ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: Dùng các mẫu chuẩn củakhuôn mặt người (các mẫu này được chọn lựa và lưu trữ ) để mô tả cáckhuôn mặt hay các đặc trưng của khuôn mặt ( các mẫu này được chọntách biệt theo tiêu chuẩn đã được các tác giả đề ra để so sánh ) Phươngpháp này có thể dùng để xác định vị trí 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 dùng để xácđịnh 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ậndựa trên khuôn mẫu , các mô hình ( hay các mẫu) sẽ được học từ mộttập ảnh huấn luyện mà thể hiện tính chất tiêu biểu của sự xuất hiện củamặt người trong ảnh Sau đó hệ thống (mô hình) sẽ xác định mặt người.Phương pháp này còn được biết đến với tên gọi tiếp cận theo cácphương pháp học máy

Trang 9

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

dùng 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ệchính xác hơn 80% trên ảnh xám Ngoài ra Schneiderman và Kanade dùng wavelet

để trích đặc trưng, sau đấy cũng xây dựng hệ thống học với Adaboost, dựa trên xácsuất để xác định khuôn mặt người Tỷ lệ chính xác trên của 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ấtthống kê và học máy để tìm những đặc tính liên quan của khuôn mặt và không phải

là khuôn mặt Các đặc tính đã được học ở trong hình thái các mô hình phân bố haycác tham số của một hàm số nên có thể dùng các đặc tính này để xác định khuôn mặtngười Đồng thời, bài toán giảm số chiều thường được quan tâm để tăng hiệu quảtính toán cũng như hiệu quả xác định

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ề lịch 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 các 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 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 của

Trang 10

Schaprire, và đến năm 1995 thì ông cùng với Schapire phát triển boosting thànhadaboost.

Như vậy, nguyên lý cơ bản của 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ó độ chính 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 của thuật toán boosting, ta xét 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 của nó được phân loại đúng bởi C1 và nửa còn lại bị 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 cùng, 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 định bởi sự thỏa thuận của 3

bộ C1, C2 và C3: Nếu cả C1 và C2 đều phân X vào cùng một lớp thì lớp này chính là kết quả phân loại của 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 định X thuộc về lớp nào

Trang 11

b) Tư tưởng

Tư tưởng của thuật toán Adaboost đấy là kết hợp các bộ phân loại yếu thànhmộ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 cùng 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

Trang 12

Để 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ỗiweak 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ẩnbị cho việc xây dựng weak classifier tiếp theo: tăng trọng số của các mẫu bị nhậndạng sai và giảm trọng số của các mẫu được nhận dạng đúng bởi weak classifier vừaxâ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 cùng các weak classifier sẽ đượckết hợp tùy theo mức độ ‘tốt’ của chúng để tạo nên một strong classifier.

Viola và Jones dùng AdaBoost kết hợp các bộ phân loại yếu sử dụng các đặctrư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 định khuôn mặtCác Weak Classifiers hk(x) là các bộ phận loại yếu, được biểu diễn như sau:

Trang 13

Trong đó:

X : mẫu hay cửa sổ con cần xét (X=(x1,x2, ,xn) là vecto đặc trưng củamẫu )

k : ngưỡng : giá trị của đặc trưng Harr-like

k : hệ số quyết định chiều của bất phương trình

Ý nghĩa của công thức:

Nếu giá trị đặc trưng của mẫu cho bởi hàm đánh giá của 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:

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

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

Trang 14

c) Thuật toán 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 của 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

Trang 15

Khởi tạo tập đặc trưng ban đầu

Xác định 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

Tính toán giá trị lỗi cho mỗi đặc trưng

(false alarm)

Chọn weak classifier có giá trị

lỗi bé nhất

Lưu weak classifier được chọn

False alarm ≤ max false alarm

Trang 16

khi chọn được 1 bộ phân loại ht, Adaboost sẽ tính giá trị αt theo công thức ở trên αtcũng được chọn trên nguyên tắc làm giảm thiểu giá trị lỗi εt.

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

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

Ta thấy tất cả các bộ phân loại ht đều có đóng góp vào kết quả của bộ phânloại H(x), và mức độ đóng góp của chúng phụ thuộc vào giá trị α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 tính αt:

Dễ thấy giá trị αt tỉ lệ nghịch với εj Bởi vì ht được chọn với tiêu chí đạt εjnhỏ nhất, do đó nó sẽ đảm bảo giá trị αt lớn nhất

Sau khi tính được giá trị αt, Adaboost tiến hành cập nhật lại trọng số của cácmẫ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ânloại đúng Bằng cách này, trọng số của mẫu phản ánh được mức độ khó nhận dạngcủa 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 của Intel), người ta ít sử dụng giá trị T vì không có công thứcnào đảm bảo tính được giá trị T tối ưu cho quá trình huấn luyện Thay vào đó, người

ta sử dụng giá trị 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 của bộ phân loại cần xây dựng không được phép

vượt quá giá trị này Khi đó, qua các lần lặp, false alarm của strong classifier Ht(x)

Trang 17

hơn max false alarm.

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

Ngày đăng: 23/05/2015, 17:01

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w