BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC HUẾ TR ƯỜ ƯỜ NG NG ĐẠI ĐẠI HỌ HỌC KHOA HỌ H ỌC
PHẠM HỒ NG NGỰ
NHẬ N DẠ NG ĐỐI TƯỢ NG SỬ DỤ NG THUẬT TOÁN ADABOOST
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH MÃ SỐ: 60.48.01
LUẬ N VĂ N THẠC SĨ KHOA HỌC CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚ NG DẪ N KHOA HỌC TS. NGUYỄ N ĐĂ NG BÌNH
Huế, 2009
MỞ ĐẦ Ở ĐẦU U
2
Nhận dạng hay nhận biết một đối tượ ng ng là một khả năng tự nhiên của con ngườ i cũng như các loài vật, theo một cách bản năng nhất mọi loài vật qua cảm nhận từ các cơ quan cảm giác như: mắt, mũi, miệng, tay,… bằng hành động nhìn, nghe, ngửi,… có thể dễ dàng cảm nhận ngay đượ c đối tượ ng ng đang tiế p xúc vớ i mình là cái gì, quen hay l ạ. Chính vì vậy, có thể nói r ằng cơ thể mỗi một loài vật chính là một hệ thống nhận dạng tối ưu nhất. Vớ i sự phát triển của khoa học công nghệ và nhất là khoa h ọc về robot thì càng ngày mong ướ c t ạo ra một h ệ thống nhận dạng máy học có khả năng tươ ng ng tự và tr ội hơ n hệ thống nhận dạng sinh học là một khát khao cháy bỏng của các nhà khoa học. Chính vì vậy từ những năm 70 đến nay các nhà khoa học đã không ngừng nghiên cứu phát triển bài toán nhận dạng đối tượ ng, ng, từ nhận dạng ký tự sơ khai cho
đến hệ thống nhận dạng cho các robot thông minh hiện nay khoa học đã tiến những bướ c dài. Ứ ng ng dụng của bài toán này trong cuộc sống, khoa học k ỹ thuật càng ngày càng r ộng rãi trên nhiều l ĩ nh nh v ực. Tuy nhiên, dù đã có nhiều thành công nhưng chỉ giớ i h ạn do đây là bài toán có r ất nhiều vấn đề hóc búa và đòi h ỏi tri thức t ổng hợ p
ĩ nh của nhiều l ĩ nh vực. Một hệ thống nhận dạng đối tượ ng ng là hệ thống nhận vào một ảnh hoặc một
đoạn video (một chuỗi các ảnh). Qua xử lý tính toán hệ thống xác định đượ c v ị trí ng trong ảnh (nếu có) và xác định là đối tượ ng ng nào trong số những đối đối tượ ng tượ ng ng hệ thống đã đượ c bi ết (qua quá trình học) hay là đối t ượ ng ng mớ i.i. Yêu cầu đặt ra đối vớ i hệ thống nhận dạng đối tượ ng ng là độ chính xác cao vì vậy hệ thống đòi hỏi phải có các đặc tr ưng t ốt. H ệ thống phải bi ết ch ọn đặc tr ưng như thế nào để có thể biểu diễn tốt đượ c thông tin đối tượ ng ng cần nhận dạng. Đồng thờ i,i, đặc tr ưng phải
đượ c tính toán nhanh để không làm chậm công việc nhận dạng. Thêm vào đó, hệ thống phải có phươ ng ng pháp học hiệu qu ả, có khả năng nhận dạng tốt các mẫu mớ i chứ không chỉ làm tốt trên các mẫu đã học.
3
Để có thể đạt đượ c các mục tiêu trên, đã có nhiều cách tiế p cận đượ c đưa ra: William T. Freeman và Michal Roth [26] sử dụng đặc tr ưng biểu đồ định hướ ng, ng, Bowden và Sarhadi [18] sử dụng mô hình phân tán điểm phi tuyến,…Nhìn chung, trong các cách tiế p cận trên đều có chung một hạn chế là không thể đạt đượ c sự cân
đối giữa khả năng nhận dạng và thờ i gian xử lý. AdaBoost (Adaptive Boosting) là một giải thuật máy học đượ c đề xuất bở i Yoav Freund và Robert Schapire [23] vào năm 1995. Nó là m ột tiế p cận boosting và hoạt động trên nguyên tắc k ết hợ p tuyến tính các b ộ phân loại yếu để có một bộ phân loại mạnh. Do những ưu điểm đó nên đã có r ất nhiều nghiên cứu về nhận dạng ng đã chọn AdaBoost để làm công cụ thực hiện. đối tượ ng Vớ i những lý do trên tôi chọn đề tài “Nhận d ạng đố i t ượ ượ ng ng sử d ụng thuật toán AdaBoost”
Luận văn chia thành ba chươ ng, ng, nội dung chủ yếu của Chươ ng ng 1 tìm hi ểu những kiến th ức t ổng quan về nhận dạng đối t ượ ng ng và việc ứng d ụng AdaBoost để nhận dạng đối tượ ng, ng, cụ thể là nhận dạng khuôn mặt ngườ i.i. Trong Chươ ng ng 2 tìm hiểu về thuật toán AdaBoost và mô hình áp dụng thuật toán vào việc nhận dạng đối tượ ng ng Chươ ng ng 3 tậ p trung về vấn đề thực nghiệm nhận dạng khuôn mặt, bao gồm chuẩn bị bộ dữ liệu, các bướ c tiến hành, lượ ng ng hóa k ết quả huấn luyện và k ết quả kiểm thử Phần cuối của luận văn là k ết luận và hướ ng ng phát triển của đề tài.
Chươ Chươ ng ng 1 TỔNG QUAN Chươ ng ng này giớ i thiệu tổng quan về nhận dạng đối tượ ng, ng, các hướ ng ng nghiên cứu về l ĩ nh vực này, sơ lượ c về những công trình nghiên cứu về nhận dạng có sử ĩ nh dụng thuật toán AdaBoost
4
1.1 Định Định ngh ĩ a bài toán nhậ nhận dạ dạng đối đối tượ tượ ng ng ĩ nh Nhận dạng đối tượ ng ng (Object recognition) l ĩ nh vực thuộc “machine learning” nghiên cứu việc tìm một đối tượ ng ng trong một ảnh hay video cho tr ướ c, đó là việc ướ c, phát hiện lớ p đối tượ ng ng cụ thể vớ i các lớ p đối tượ ng ng khác của hệ thống.
Hình 1.1: Minh họa về nhận dạng mặt ngườ i Sự phát triển khoa học k ỹ thuật công nghệ đã thúc đẩy cho việc đưa bài toán nhận dạng đối tượ ng ng vào ứng d ụng thực tiễn vớ i mức độ tinh vi ngày càng cao, ta có thể thấy r ất nhiều ứng dụng trong nhận dạng đối tượ ng ng phổ biến hiện nay như: các camera theo dõi trong các trung tâm l ớ n, n, hệ thống nhận dạng tội phạm, nhận dạng vân tay, công ngh ệ robot,… Vì vậy, nhận dạng đối tượ ng ng là một l ĩ nh vực đang ĩ nh r ất đượ c quan tâm và có tính ứng dụng cao.
1.2 Các khó khă khăn củ của việ việc nhậ nhận dạ dạng ng trong ảnh là việc không Đối v ớ i con ngườ i thì việc nhận d ạng các đối t ượ ng phải là phức tạ p; tuy nhiên, đối vớ i một hệ thống nhân tạo thì nhận ra một đối tượ ng ng từ một ảnh đòi h ỏi ph ải gi ải quyết đượ c r ất nhiều vấn đề hóc búa Chính vì thế vấn
đề này vẫn đang đượ c nhiều nhóm trên thế giớ i quan tâm nghiên cứu. Khó khăn của bài toán nhận dạng có thể k ể ra như sau:
5
a. Tư T ư th thếế, góc chụ chụp: Ảnh chụ p khuôn mặt có thể thay đổi r ất nhiều b ở i vì góc chụ p giữa camera và khuôn mặt. Chẳng hạn như: chụ p thẳng, chụ p xéo bên trái 450 hay xéo bên phải 450, chụ p t ừ trên xuống, chụ p t ừ dướ i lên, v.v...). V ớ i các tư thế khác nhau, các thành phần trên khuôn mặt nh ư mắt, mũi, miệng có thể bị khuất một phần hoặc thậm chí khuất hết.
Hình 1.2: Minh họa sự thay đổi góc chụ p b. Sự xuấ xuất hiệ hiện hoặ hoặc thiế thiếu một số thành phầ phần: Các thành phần biểu tả một đối tượ ng ng có thể xuất hiện hoặc không trong ảnh làm cho bài toán nh ận dạng càng tr ở ở nên khó hơ n r ất nhiều.
Hình 1.3: Minh họa sự thiếu thành phần
6
ng có thể làm ảnh c. Sự biế biến dạng của đối đối tượ ng: ng: Biến dạng của đối tượ ng hưở ng ng đáng k ể lên các thông số của đối tượ ng ng đó. Chẳng hạn, cùng một khuôn mặt một ngườ i,i, nhưng có thể sẽ r ất khác khi họ cườ i hoặc sợ hãi,v.v...
Hình 1.4: Minh họa sự biến dạng ng có thể bị che khuất bở i các đối tượ ng ng khác. d. Sự che ự che khuấ khuất: Đối tượ ng
Hình 1.5: Minh họa sự che khuất e. Sự S ự ph phứ ứ c tạ t ạp củ c ủa hình nề nền: Hình nền ph ức t ạ p s ẽ khiến vi ệc nh ận d ạng tr ở ở nên khó khăn.
7
Hình 1.6: Minh họa hình nền phức tạ p
f. Điều kiệ kiện của ảnh: Ảnh đượ c chụ p trong các điều kiện khác nhau về: chiếu sáng, về tính chất camera (máy k ỹ thuật số, máy hồng ngoại,v.v...) ảnh hưở ng ng r ất nhiều đến chất lượ ng ng ảnh.
Hình 1.7: Minh họa độ sáng khác nhau 1.3 Các ứ ng ng dụ dụng nhậ nhận dạ dạng đối đối tượ tượ ng ng
8
Bài toán nhận d ạng đối t ượ ng ng có thể áp dụng r ộng rãi trong nhiều ứng d ụng thực tế khác nhau. Đó chính là lý do mà bài toán này h ấ p dẫn r ất nhiều nhóm nghiên cứu trong thờ i gian dài. Các ứng dụng liên quan đến nhận dạng đối t ượ ng ng có thể k ể ra như: - H ệ thống phát hiện t ội ph ạm: camera đượ c đặt t ại m ột s ố điểm công cộng như: siêu thị, nhà sách, tr ạm xe buýt, sân bay,v.v... Khi phát hi ện đượ c sự xuất hiện của các đối tượ ng ng là tội phạm, hệ thống sẽ gở i thông điệ p về cho trung tâm xử lý. - H ệ thống theo dõi nhân sự trong một đơ n v ị: giám sát giờ ra vào của t ừng nhân viên và chấm công. - H ệ thống giao tiế p ng ườ i máy: thay thế việc t ươ ng ng tác giữa ng ườ i và máy theo những cách truyền thống như: bàn phím, chuột,v.v...Thay vào đó là sử dung các giao tiế p tr ực quan: biểu cảm khuôn mặt, dấu hiệu, cử chỉ bằng tay. - Hệ thống tìm kiếm thông tin trên ảnh, video dựa trên nội dung (chỉ mục theo ngườ i). i). Chẳng hạn như: đài truyền hình Việt Nam (VTV) có một kho dữ liệu video tin tức khá lớ n c ần tìm kiếm nhanh những đoạn video nào có G. Bush hoặc Bin Laden. - Các hệ thống bảo mật dựa trên thông tin tr ắc sinh học: mặt ngườ i,i, vân tay,v.v... thay vì xác nhận mật khẩu, khóa,v.v... - Ph ần m ềm nh ận dạng chữ in, đặc bi ệt dành riêng cho ngôn ngữ tiếng Việt, dịch vụ Nhận dạng chữ in. - Công nghệ nhận d ạng quản lý giao thông quản lý hình ảnh c ủa xe và biển số xe thay đổi (không khớ p vớ i cơ sở dữ liệu), giám sát bãi đỗ xe, phươ ng ng tiện giao thông tại các khu vực nhạy cảm như các sân bay, bến cảng.
đối tượ 1.4 Tổ Tổng quan kiế kiến trúc mộ một hệ hệ thố thống nhậ nhận dạ dạng đối tượ ng ng Một hệ thống nhận dạng đối tượ ng ng thông thườ ng ng xử lý bốn bướ c sau: • Thu nhận tín hiệu (hình ảnh) và tiền xử lý
9
• Trích chọn đặc tr ưng (Đặc tr ưng extraction)
ng (detection) • Phát hiện đối tượ ng ng (classification) • Phân lớ p đối tượ ng
Ảnh/video
Tiề Tiền xử xử lý lý
Ảnh đã xử lý ử lý
Trích chọ chọn đặc đặc trư trư ng ng Vectơ Vectơ đặc đặc
Vị trí đố trí đốii tượ ng ng
Nhậ Nhận dạng
Phát hiệ hiện Phân lớ lớ p đối đối tượ tượ ng ng đối đối tượ tượ ng ng Hình 1.8: Các bướ c trong hệ thống nhận dạng mặt ngườ i Ảnh đầu vào đượ c thu nhận và tiền xử lý sau đó các ảnh đượ c qua công đoạn tiền xử lý nhằm tăng độ chính xác cho hệ thống. Các ảnh sau đó đượ c trích chọn đặc tr ưng để tạo ra các vectơ đặ ơ đặc tr ưng trong bướ c rút trích đặc tr ưng. Những véc-tơ đặ ơ đặc
ướ c. tr ưng này sẽ là dữ liệu đầu vào cho một mô hình đã đượ c huấn luyện tr ướ c. Phát hiện đối t ượ ng: ng: dò tìm và định v ị những vị trí đối t ượ ng ng xuất hiện trong ảnh hoặc trên các chuỗi ảnh của video. Những đối t ượ ng ng thu đượ c qua bướ c phát hiện sẽ tiế p tục đượ c phân lớ p thành từng lớ p riêng biệt để nhận dạng.
1.5 Tổ Tổng quan các phươ phươ ng ng pháp trong bài toán nhậ nhận dạ dạng đối đối tượ tượ ng ng Có r ất nhiều hướ ng ng tiế p cận và phươ ng ng pháp khác nhau liên quan đến vấn đề nhận dạng. Theo Ming-Hsuan Yang [11], có thể phân loại thành bốn hướ ng ng tiế p cận
10
chính: Hướ ng ng tiế p cận dựa trên cở sở tri thức, hướ ng ng tiế p cận dựa trên các đặc tr ưng bất biến, hướ ng ng tiế p cận dựa trên đối sánh mẫu, và Hướ ng ng tiế p cận dựa vào diện mạo xuất hi ện, phươ ng ng pháp này thườ ng ng dùng một mô hình máy học nên còn đượ c gọi là phươ ng ng pháp dựa trên cơ sở máy học (machine learning-based).
a. Hướ ng ng tiế tiếp cận dự a trên cở cở ssở tri thứ thứ c: c: Mã hóa các hiểu biết của con ngườ i về đối tượ ng ng thành các luật. Thông thườ ng ng các luật mô tả quan hệ của các đặc tr ưng. Trong hướ ng ng tiế p cận này, các luật sẽ phụ thuộc r ất lớ n vào tri thức của những tác giả nghiên cứu. Đây là hướ ng ng tiế p c ận d ạng t ừ trên xuống. Dễ dàng xây dựng các luật c ơ bản để mô t ả các đặc tr ưng của đối t ượ ng ng và các quan quan hệ tươ ng ng ng có hai mắt đối xứng nhau qua tr ục thẳng đứng ở ứng. Ví dụ, một khuôn mặt thườ ng giữa khuôn mặt và có một mũi, một miệng. Các quan hệ của các đặc tr ưng có thể ng các tác giả sẽ trích đượ c mô tả như quan hệ về khoảng cách và vị trí. Thông thườ ng t r ưng của khuôn mặt tr ướ đặc tr ướ c tiên để có đượ c các ứng viên, sau đó các ứng viên này sẽ đượ c nhận dạng thông qua các luật để biết ứng viên nào là khuôn mặt (face) và ứng viên nào không phải khuôn mặt (none-face). Thườ ng ng áp dụng quá trình xác
định để giảm số lượ ng ng nhận dạng sai. Một v ấn đề khá phức t ạ p khi dùng h ướ ng ng tiế p c ận này là làm sao chuyển t ừ tri thức con ngườ i sang các luật một cách hiệu quả. Nếu các luật này quá chi tiết thì khi nhận dạng có thể nhận dạng thiếu các đối tượ ng ng có trong ảnh, vì những đối tượ ng ng này không thể thỏa mãn tất c ả các luật đưa ra. Nhưng các luật t ổng quát quá thì có thể chúng ta sẽ nhận d ạng l ầm một vùng nào đó không phải là đối t ượ ng ng mà lại nhận d ạng là đối t ượ ng ng và cũng khó khăn mở r ộng yêu cầu t ừ bài toán để nhận dạng các đối t ượ ng ng có nhiều t ư thế khác nhau. Có một s ố nghiên cứu t ừ r ất s ớ m đã áp dụng phươ ng ng pháp này như của Kanade [17].
đặc trư b. Hướ Hướ ng ng tiế tiếp cậ cận dự dự a trên đặc trư ng ng bấ bất biế biến: Mục tiêu các thuật toán đi tìm các đặc tr ưng mô tả cấu trúc đối tượ ng, ng, các đặc tr ưng này sẽ không thay đổi khi vị trí đối tượ ng, ng, vị trí đặt thiết bị thu hình hoặc điều kiện ánh sáng thay đổi.
11
ng tiế p c ận theo kiểu bottom-up. Các tác giả cố gắng tìm các đặc tr ưng Đây là hướ ng không thay đổi của đối tượ ng ng để nhận dạng đối tượ ng. ng. Dựa trên nhận xét thực tế, con ngườ i d ễ dàng nhận bi ết các đối t ượ ng ng trong các tư thế khác nhau và điều ki ện ánh sáng khác nhau, thì phải tồn tại các thuộc tính hay đặc tr ưng không thay đổi. Có nhiều nghiên cứu đầu tiên nhận d ạng các đặc tr ưng đối t ượ ng ng r ồi ch ỉ ra có đối tượ ng ng trong ảnh hay không. Ví dụ: Các đặc tr ưng như: lông mày, mắt, mũi, miệng, và đườ ng ng viền của tóc đượ c trích bằng phươ ng ng pháp xác định cạnh. Trên cơ sở các
đặc tr ưng này, thực hiện việc xây dựng một mô hình thống kê để mô tả quan hệ của các đặc tr ưng này và nhận dạng sự tồn tại của khuôn mặt trong ảnh. Một v ấn đề của các thuật toán theo hướ ng ng tiế p c ận đặc tr t r ưng c ần ph p hải điều chỉnh cho phù hợ p điều kiện ánh sáng, nhiễu, và bị che khuất. Đôi khi bóng của đối tượ ng ng sẽ tạo thêm cạnh mớ i,i, mà cạnh này lại rõ hơ n cạnh thật s ự của nó, vì thế nếu dùng cạnh để nhận dạng sẽ gặ p khó khăn. Những công trình sử dụng hướ ng ng tiế p cận này có thể k ể đến là: K. C. Yow và R. Cipolla 1997 [8], T. K. Leung 1995 [22].
c. Hướ ng ng tiế tiếp cận dự a trên so khớ khớ p mẫu: Trong so khớ p mẫu, các mẫu chuẩn của đối tượ ng ng (thườ ng ng đượ c chụ p thẳng) sẽ đượ c nhận dạng tr ướ ướ c hoặc nhận dạng các tham số thông qua một hàm. Từ một ảnh đưa vào, tính các giá tr ị tươ ng ng quan so vớ i các mẫu chuẩn. Thông qua các giá tr ị tươ ng ng quan này mà các tác gi ả quyết định có hay không có tồn t ại đối t ượ ng ng trong ảnh. Hướ ng ng tiế p c ận này có lợ i thế là r ất d ễ cài đặt, nhưng không hiệu qu ả khi tỷ lệ, t ư thế, và hình dáng thay đổi. Nhiều độ phân giải, đa tỷ lệ, các mẫu con, và các mẫu biến dạng đượ c xem xét thành bát biến về tỷ lệ và hình dáng. I. Craw 1992 [6] đã áp dụng một mẫu cứng trong khi A. Lanitis 1995[1] sử dụng một mẫu có thể biến dạng trong bướ c phát hiện khuôn mặt.
d. Hướ Hướ ng ng tiế tiếp cậ c ận dự dự a trên diệ diện mạ mạo: Trái ngượ c v ớ i các phưong pháp so khớ p m ẫu vớ i các mẫu đã đượ c định ngh ĩ a tr ướ ướ c b ở i nh ững chuyên gia, các mẫu trong hướ ng ng tiế p c ận này đượ c h ọc t ừ các ảnh mẫu. Một các tổng quát, các phươ ng ng pháp theo hướ ng ng tiế p cận này áp dụng các k ỹ thuật theo hướ ng ng xác suất thống kê và
12
máy học để tìm những đặc tính liên quan của đối tượ ng ng và không phải là đối tượ ng. ng. Các đặc tính đã đượ c học ở trong hình thái các mô hình phân bố hay các hàm biệt số nên dùng có thể dùng các đặc tính này để nhận d ạng đối t ượ ng. ng. Đồng thờ i,i, bài toán gi ảm số chiều thườ ng ng đượ c quan tâm để tăng hiệu quả tính toán cũng như hiệu quả nhận dạng.
Hình 1.9: Hệ thống của Rowley [17] và các đồng sự Các tiế p cận khác trong hướ ng ng tiế p cận dựa trên diện mạo là tìm một hàm biệt số (mặt phẳng quyết định, siêu phẳng để tách dữ liệu, hàm ngưỡ ng) ng) để phân biệt hai lớ p dữ liệu: đối tượ ng ng và không phải là đối tượ ng. ng. Bình thườ ng, ng, các mẫu n, r ồi sau đó dùng một hàm biệt ảnh đượ c chiếu vào không gian có số chiều thấ p hơ n, số (dựa trên các độ đo khoảng cách) để phát hiện, hoặc xây dựng mặt quyết định phi tuyến bằng mạng neural đa tầng. Hoặc dùng SVM (Support Vector Machine) và các phươ ng ng thức kernel, chiếu hoàn toàn các mẫu vào không gian có s ố chiều cao hơ n
để dữ liệu bị r ờ ời r ạc hoàn toàn và ta có th ể dùng một mặt phẳng quyết định phát hiện các mẫu đối tượ ng ng và không phải là đối tượ ng. ng. Có nhiều mô hình máy học ng tiế p cận này: Eigenface (M. Turk và A. Pentland 1991 đượ c áp dụng trong hướ ng [10]), Mô hình dựa trên phân phối (K. Sung and T. Poggio 1998 [9]), M ạng Nơ -ron -ron (H. Rowley 1998 [20]), Support Vector Machine (E. Osuna et al 1997 [12]), Phân lớ p Bayes (H. Schneiderman và T. Kanade 1998 [19]), Mô hình Markov ẩn (A.
13
Rajagopalan et al 1998 [16]), và các mô hình tăng cườ ng ng AdaBoost của P. Viola và M. Jones [13],[14]; FloatBoost do Stan Z. Li và Zhen Qiu Zhang 2004 [20],[21].
đối tượ 1.6 Tổ Tổng quan về về nhậ nhận dạ dạng đối tượ ng ng vớ vớ i thuậ thuật toán AdaBoost Nhận dạng đối tượ ng ng bằng thuật toán theo k ỹ thuật boosting vớ i thuật toán AdaBoost đã và đang đượ c coi là một phươ ng ng pháp hiệu quả, v ừa đảm bảo tốc độ nhận dạng vừa có độ chính xác cao. Violas và Jones [15],[16] áp dụng thành công trong việc xây dựng một bộ phát hiện khuôn mặt nhanh bằng cách dùng thuật toán 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 cascade. Đầu tiên, một hình ảnh đượ c chia nhỏ thành các ảnh con (sub-image), mỗi ảnh đượ c biểu th t hị bở i một vector đặc tr ưng. Violas và Jones đã trích xuất bốn đặc tr ưng bằng cách sử dụng bộ mặt nạ như hình dướ i để phát hiện khuôn mặt. Vớ i mỗi mặt nạ, tổng cấ p xám của các điểm ảnh trong vùng sáng tr ừ tổng cấ p xám trong cùng tối đượ c coi như là m ột đặc tr ưng. Vì vậy vớ i cách phân chia thành các ảnh con sẽ có nhiều hơ n một triệu các đặc tr ưng và mỗi đặc tr ưng đượ c tính r ất nhanh. Phươ ng ng pháp của Viola và Jones có tốc độ xử lý khá nhanh, gấ p khoảng từ 10-15 lần so vớ i các phươ ng ng pháp hiện tại và tỷ lệ chính xác hơ n 80% trên ảnh xám. Có thể nói, phươ ng ng pháp này đượ c công nhận là một trong những bướ c đột phá lớ n của l ĩ nh vực máy học tính nói chung và phát hi ện khuôn mặt nói riêng. ĩ nh Schneiderman và Kanade [19] cải tiến thành công bằng cách dùng wavelet
để trích đặc tr ưng r ồi xây dựng hệ thống học v ớ i thuật toán Adaboost, dựa trên xác suất và histogram để xác định khuôn mặt ngườ i.i. Tỷ lệ chính xác trên 90%. Chen ng tham số ảnh để điều chỉnh ánh sáng cho phù hợ p vớ i các mẫu bằng ướ c lượ ng SVM, sau cùng dùng Adaboost để xác định khuôn mặt ngườ i vớ i tư thế chụ p thẳng, tỷ lệ chính xác là 89,7%. Ngoài Violas và Jones, Schneiderman và Kanade thì Agarwal và Roth [2] thành công trong việc k ết hợ p sử dụng k ỹ thuật học nhận dạng Winow để nhận dạng xe hơ i.i.
14
Một cách tiế p cận nhận dạng đối tượ ng ng khác đã đượ c giớ i thiệu bở i Dorko và Schmid [5] đó là dựa trên việc xây dựng và lựa ch ọn các thành phần bất bi ến và áp dụng AdaBoost để học cách phân loại. Một phươ ng ng pháp phân loại đối t ượ ng ng m ớ i đã đượ c giớ i thiệu b ở i Thureson và Carlsson trong [7] là dựa trên histogram của ảnh. Yếu t ố này đượ c tính toán dựa trên việc k ết hợ p của bộ gồm vị trí và hướ ng ng gradient của mẫu. Cách tiế p c ận này dựa trên việc k ết h ợ p các ảnh đã đượ c phân loại t ừ các ảnh huấn luyện, nó đòi hỏi
ướ c để giảm độ phức tạ p. phải đượ c phân đoạn tr ướ Carbonetto và các đồng sự [3] tiế p cận nhận dạng đối tượ ng ng theo ngữ cảnh dựa trên một hình ảnh phân đoạn k ết h ợ p thu ật toán huấn luyện AdaBoost. Họ đính kèm nhãn đến các vùng hình ảnh và học một mô hình không gian của các mối quan hệ giữa chúng.
Chươ Chươ ng ng 2 NGHIÊN CỨ CỨ U THUẬ THUẬT TOÁN ADABOOST ĐỐII TƯỢ VÀ ÁP DỤ DỤNG VÀO NHẬ NHẬN DẠ DẠNG ĐỐ TƯỢ NG NG Chươ ng ng này trình bày về thuật toán AdaBoost là thuật toán ứng dụng trong nhiều trong bài toán nhận dạng vì có nhiều ưu điểm là nhanh chóng, đơ n giản và dễ dàng cài đặt. Nó không có các tham số để điều chỉnh và không cần tri thức về bộ học y ếu và do đó có thể đượ c linh hoạt k ết h ợ p v ớ i ph ươ ng ng pháp nào cho việc tìm kiếm bộ bộ phân loại y ếu. V ớ i những ưu điểm đó, ta nghiên cứu áp dụng vào việc phát hiện và nhận dạng đối tượ ng. ng.
2.1 Thuậ Thuật toán AdaBoost 2.1.1 Tiế Tiếp cậ cận Boosting Boosting là k ỹ thuật dùng để tăng độ chính xác cho các thuật toán học (Learning algorithm). Nguyên lý cơ bản của nó là k ết hợ p các bộ phân loại yếu
15
thành một bộ phân loại mạnh. Trong đó, bộ phân loại yếu là các bộ phát hiện đơ 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át hiện đã
đượ c “boost”.
Hình 2.1: Minh họa hoạt động theo k ỹ thuật boosting Xét một bài toán phát hi ện 2 lớ p (mẫu cần nhận dạng sẽ đượ c phân vào 1 trong 2 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
đượ c phát hiện đúng bở i C1 và nửa còn lại bị phát hiện 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 dựng b ộ huấn luyện C2 từ D2. Tiế p theo, chúng ch úng ta sẽ xây dựng tậ p D3 t ừ những mẫu không
đượ c phát hiện 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át hiện C3 từ D3. Bây giờ chúng ta đã có một b ộ phân loại mạnh: 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át hiện 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.
16
Hình 2.2: Boosting 2.1.2 Thuậ Thuật toán AdaBoost Adaboost (Adaptive Boost) là một tiế p cận boosting đượ c Freund và Schapire [23] đưa ra vào năm 1995 đã giải quyết nhiều thực tế khó khăn của các thuật toán boosting tr ướ ướ c đó. Adaboost là một c ải ti ến c ủa ti ế p c ận boosting, Adaboost sử dụng thêm khái niệm 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 b ộ phân loại y ếu đượ 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 bị cho việc xây dựng bộ phân loại yếu k ế tiế p là: tăng tr ọng số của các mẫu b ị nhận d ạng sai và giảm tr ọng s ố của các mẫu đượ c nh ận d ạng đúng bở i b ộ phân loại y ếu v ừa xây dựng. Bằng cách này, các bộ phân loại y ếu ti ế p theo có thể tậ p trung vào các mẫu mà các bộ phân loại yếu tr ướ ướ c nó chưa làm tốt. Sau cùng, các bộ phân loại y ếu sẽ đượ c k ết h ợ p tùy theo th eo mức độ “tốt” c ủa chúng để tạo dựng nên bộ phân loại mạnh. Có thể hình dung một cách tr ực quan như sau: để biết một ảnh có phải là bàn tay hay không, ta hỏi T ngườ i (t ươ ng ng đươ ng ng v ớ i T bộ phân loại y ếu xây dựng t ừ T vòng lặ p c ủa boosting), đánh giá của mỗi ngườ i (tươ ng ng đươ ng ng vớ i một bộ phân loại yếu) chỉ cần tốt hơ n ngẫu nhiên một chút (tỉ lệ sai dướ i 50%). Sau đó, ta sẽ đánh
17
tr ọng số cho đánh giá của từng ngườ i (thể hiện qua hệ số α), ngườ i nào có khả năng
đánh giá tốt các mẫu khó thì mức độ quan tr ọng của ngườ i đó trong k ết luận cuối cùng sẽ cao hơ n những ngườ i chỉ đánh giá tốt đượ c các mẫu dễ. Việc cậ p nhật lại tr ọng số của các mẫu sau mỗi vòng boosting chính là để đánh giá độ khó của các mẫu (mẫu càng có nhiều ngườ i đánh giá sai là m ẫu càng khó). Thuật toán có đầu vào là một tậ p huấn luyện {(x1 , y1 ), (x2 , y2 ),....,(xn , yn )} trong đó m ỗi xi thuộc v ề một s ố tên miền hay không gian X và m ỗi nhãn yi thuộc tậ p nhãn Y ta giả sử r ằng Y = {-1, +1} . AdaBoost gọi m ột thuật toán học y ếu trong một dãy vòng lặ p t ừ t= 1,…,T . M ột trong những ý tưở ng ng chính của thuật toán là để duy trì một phân phối, hoặc thiết l ậ p c ủa tr ọng s ố qua tậ p hu ấn luyện. Ban đầu, t ất cả tr ọng số đượ c thiết lậ p bằng nhau, nhưng trên mỗi vòng lặ p, tr ọng số của các mẫu phát hiện không chính xác đượ c t ăng lên để bộ học y ếu t ậ p trung vào các mẫu khó trong tậ p huấn luyện.
Hình 2.3: Bộ phân loại mạnh H(x) xây dựng bằng AdaBoost
18
Công việc của bộ học yếu là để tìm một bộ phân loại yếu ht : X → {−1, +1} tươ ng ng ứng vớ i bộ phân phối Dt . Độ tốt của một giả thuyết yếu
đượ c đo bằng hệ số lỗi của nó: ε t = Pri ~ Dt [ ht ( xi ) ≠ yi ] =
∑ ( )
Dt (i )
i:ht xi ≠ yi
Lưu ý là lỗi đượ c đo đối vớ i phân phối Dt mà trên đó các bộ học yếu đượ c huấn luyện. Trong thực tế, các bộ học yếu có thể là m ột thuật toán có thể dùng tr ọng s ố Dt
trên các mẫu hu ấn luyện. Ngoài ra, khi điều này là không thể, m ột tậ p h ợ p con c on
của các mẫu đang huấn luyện có thể đượ c đượ c l ấy m ẫu theo Dt và các mẫu đượ c
đánh lại tr ọng số có thể đượ c dùng để huấn luyện bộ học yếu. Thuậ Thuật toán: AdaBoost - Đầ Đầu u vào: ( x1 , y1 ), ..., ( xm , ym ) vớ i
i
∈ X và yi ∈ Y = {-1,+1}
1: Khở i tạo: D1 (i ) = 1 / m 2: For t = 1,…,T: •
Huấn luyện bộ học yếu sử dụng phân phối Dt
•
Chọn bộ phân loại yếu ht : X → {-1,+1} vớ i lỗi:
ε t = Pri ~ Dt [ ht ( xi ) ≠ yi ] •
•
1 ⎛ 1 − ε t ⎞ Chọn: α t = ln ⎜ ⎟ 2 ⎝ ε t ⎠ Cậ p nhật: D t + 1 , i =
D t ( i ) Z t
⎧⎪ e − α , ( x k ) = y i × ⎨ α ⎪⎩ e , ( x k ) ≠ y i t
t
19
=
Dt (i ) exp(−α t yi ht ( xi )) Z t
Vớ i Zt là nhân tố bình thườ ng ng hóa
⎛ T ⎞ H ( x) = sign ⎜ ∑ α t ht ( x) ⎟ ⎝ t =1 ⎠
Đầu ra: - Đầu
Một khi bộ phân loại y ếu đã đượ c nhận, AdaBoost sẽ chọn một tham số như trên. Dễ dàng thấy
α t
quan tr ọng đượ c gán cho
ht .
Chú ý r ằng
α t ≥ 0
nếu
ε t ≤ 1 / 2
(chúng ta có thể giả định mà không mất tính tổng quát). Phân phối Dt ở bướ c cậ p nhất tiế p theo sẽ dùng các luật như trình bày giải thuật của thuật toán ở trên, tác dụng của các luật này là làm t ăng tr ọng số của các mẫu ch ưa đượ c phát hiện b ở i
ht và
giảm tr ọng s ố của các mẫu phát hiện chính xác
vì vậy tr ọng số tậ p trung vào các mẫu khó. Phát hiện thu đượ c cu c uối cùng H là tậ p hợ p c ủa T bộ phân loại y ếu trong đó α t là tr ọng số
đượ c gán cho ht .
Schapire và Singer[15] đã ch ỉ ra cách mà AdaBoost có thể đượ c mở r ộng để xử lý bộ phân loại yếu vớ i giá tr ị đầu ra thực và hệ số dự đoán tin cậy. Đó là vớ i mỗi x thì
ht
sẽ cho ra ht ( x) ∈ \ có gán nhãn (-1 hoặc +1) và giá tr ị của nó
đo độ tin cậy của dự đoán.
ht ( x)
sẽ
20
Hình 2.4: Đồ thị lỗi và phân phối hội tụ AdaBoost của Schapire
2.1.3 Phân tích lỗ lỗi huấ huấn luyệ luyện Lý thuyết cơ bản nhất của AdaBoost tậ p trung vào và o việc gi ảm l ỗi hu ấn luyện. Lỗi
ε t
của
ht
là
1 − γ ; Freund và Schapire [24], [25] chứng minh r ằng lỗi huấn 2 t
luyện (các mẫu lỗi trong tậ p huấn luyện) của phát hiện H vào khoảng:
∏ ⎡⎣2 t
ε t (1 − ε t ) ⎤ =
⎦
∏ t
⎛
⎞
1 − 4γ t2 ) ≤ ex exp ⎜ − 2∑ γ t2 ⎟ ⎝
t
⎠
Vì vậy, nếu mỗi bộ phân loại yếu hơ i tốt hơ n so vớ i ngẫu nhiên do bở i γ t > γ
vớ i mỗi
γ > 0
thì lỗi huấn luyện cũng giảm theo cấ p số nhân.
Đây là sự k ế thừa các thuật toán boosting tr ướ ướ c đó, tuy nhiên các thuật toán boosting tr ướ n. AdaBoost thích nghi ở chổ nó ướ c đây thì mức độ ràng buộc là thấ p hơ n.
điều chỉnh theo tỷ lệ lỗi của những bộ phân loại yếu do vậy thuật toán có tên là AdaBoost là viết tắt của Adaptive.
2.2 Nghiên cứ cứ u áp dụ dụng AdaBoost vào nhậ nhận dạ dạng đối đối tượ tượ ng ng
21
2.2.1 Phát hiệ hiện đối đối tượ tượ ng ng bằ bằng thuậ thuật toán AdaBoost 2.2.1.1 Đặ Đặcc trư trư ng ng Hệ thống phát hiện đối tượ ng ng trên hình ảnh dựa trên các đặc tr ưng đơ n giản. Có nhiều lý do để chọn việc xử lý dựa trên đặc tr ưng mà không thực hiện vớ i xử lý tr ực tiế p trên các điểm ảnh. Lý do phổ biến nhất là các đặc tr ưng có thể dựa trên các tri thức hữu hạn của các dữ liệu huấn luyện để mã hóa ra các tri thức nhận dạng. Ngoài ra một hệ thống phát hiện đối tượ ng ng sử dụng đặc tr ưng thì xử lý sẽ nhanh hơ n so vớ i hệ thống dựa trên xử lý điểm ảnh. Một lo ại đặc tr ưng đơ n giản đượ c sử dụng là đặc tr ưng Haar-like, là một loại ng đượ c dùng cho bài toán nhận dạng trên ảnh. Đặc tr ưng Haar-like đặc tr ưng thườ ng
đượ c xây dựng từ các hình chữ nhật có kích thướ c bằng nhau, dùng để tính độ chênh lệch giữa các giá tr ị điểm ảnh trong các vùng k ề nhau. Trong hình a và b, giá tr ị của đặc tr ưng cho bở i 1 ảnh b ằng hiệu s ố giữa t ổng các điểm ảnh thuộc 2 vùng hình chữ nhật sáng và tối. Trong hình c thì giá tr ị đặc tr ưng bằng tổng các điểm ảnh trong 2 vùng hình chữ nhật bên ngoài tr ừ cho tổng các điểm ảnh trong hình chữ nhật
ở giữa.
Hình 2.5: Đặc tr ưng Haar-like cơ bản
22
Lợ i ích của đặc tr ưng Haar-like là nó di ễn đạt đượ c tri thức về các đối tượ ng ng trong ảnh (bở i vì nó biểu diễn mối liên hệ giữa các bộ phận của đối tượ ng), ng), điều mà bản thân từng điểm ảnh không diễn đạt đượ c. c.
Hình 2.6: Minh họa đặc tr ưng Haar-like Trong quá trình huấn luyện, số lượ ng ng xử lý trên các đặc tr ưng Haar-like là r ất lớ n, n, việc tính tổng các điểm ảnh cho bở i từng đặc tr ưng làm cho thờ i gian xử lý tăng
đáng k ể. Để khắc phục điều này, Viola và Jones đã đưa ra khái ni ệm Integral Image [13] để tính toán nhanh cho các đặc tr ưng
cơ bản.
Integral Image
Hình 2.7: Giá tr ị integral image [13] tại điểm (x,y) bằng tổng giá tr ị của tất cả điểm ảnh phía trên và bên trái (x,y)
23
Giá tr ị các đặc tr ưng có thể đượ c tính toán nhanh chóng bằng cách sử dụng khái niệm gọi là integral Image [13], Integral Image [13] tại vị trí (x,y) bằng tổng các giá tr ị điểm ảnh phía trên và bên trái c ủa (x,y), bao gồm:
ii ( x, y) =
∑
i( x, , y , )
x, ≤ x , y , ≤ y
Vớ i ii ( x, y ) là integral image và i(x,y) là giá tr ị điểm ảnh bao gồm cặ p công thức sau:
s ( x, y ) = s ( x , y − 1) + i ( x , y )
ii ( x, y ) = ii ( x − 1, y ) + s ( x, y ) (Vớ i s ( x, −1) =0 và ii ( x − 1, y ) =0)
Theo công thức trên thì integral image [13] tại điểm 1 sẽ bằng tổng giá tr ị
điểm ảnh trong hình chữ nhật A, integral image t ại điểm 2 sẽ bằng A + B, integral image tại điểm 3 sẽ bằng A + C, integral image t ại điểm 4 sẽ bằng A + B + C + D. Như vậy, tổng giá tr ị điểm ảnh trong một hình chữ nhật bất k ỳ có thể tính nhanh dựa trên integral image tại bốn đỉnh của nó, tổng giá tr ị điểm ảnh của hình chữ nhật D bằng 4 + 1 - ( 2 + 3 ).
2.2.1.2 Mô hình cascade Một h ệ thống phát hiện tốt th ườ ng ng t ốn r ất nhiều th ờ i gian để cho ra k ết qu ả phát hi ện bở i vì nó phải xét r ất nhiều đặc tr ưng của m ẫu. Tuy nhiên, trong các mẫu
24
đư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 xét một hay vài đặc tr ưng đơ n gi ản là có thể nhận di ện
đượ c ch ứ không cần xét tất cả các đặc tr ưng. Nhưng đối vớ i các bộ phát hiện thông thườ ng ng thì cho dù mẫu c ần nhận dạng là dễ hay khó thì nó vẫn sẽ xét 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. Mô hình cascade [10] đượ c xây dựng chính là nhằm rút ngắn thờ i gian xử lý, giảm thiểu tỷ lệ nhận dạng sai của bộ nhận dạng. Mô hình cascade phân t ầng theo dạng hình cây, mỗi cây gồm nhiều tầng, mỗi tầng của cây sẽ là một bộ phân loại. Một mẫu để đượ c phát hiện là đối tượ ng ng thì nó c ần phải đi qua hết tất cả các tầng của cây, các bộ phân loại ở tầng sau đượ c huấn luyện bằng những mẫu negative mà bộ phân loại tr ướ ướ c nó nhận dạng sai, tức là nó sẽ tậ p trung học từ các mẫu background khó hơ n, n, do đó sự k ết hợ p các bộ phân loại này lại sẽ giúp bộ phát hiện có false alarm thấ p. Vớ i cấu trúc này, những mẫu background dễ nhận diện sẽ bị loại ngay từ những tầng đầu tiên, giúp đáp ứng tốt nhất đối vớ i độ phức tạ p gia tăng của các mẫu đưa vào, đồng thờ i giúp rút ngắn thờ i gian xử lý.
Mô hình cascade Đúng
C1
Ảnh Sai
Đúng
C2 Sai
Đúng
C3 Sai
C4 Sai
Không phả phải đối đối tượ tượ ng ng
Hình 2.8: Mô hình cascade 2.2.1.3 Mô hình boost cascade
Đúng
Đốii tượ Đố tượ ng ng
25
Mô hình boost cascade là mô hình mô hình cascade v ớ i mỗi bộ phân loại
đượ c xây dựng b ằng AdaBoost sử dụng đặc tr ưng Haar-like. Mô hình này đã đượ c Viola và Jones sử dụng r ất thành công trong bài toán phát hiện khuôn mặt [14]. Vớ i tậ p huấn luyện gồm 4196 hình mặt ngườ i đượ c đưa về ảnh xám kích thướ c 24x24 và 9500 hình background, Viola và Jones đã xây dựng cấu trúc cây cascade g ồm 38 tầng vớ i tổng cộng 6060 đặc tr ưng Haar-like. Thực nghiệm đã cho thấy bộ phân loại
ở tầng đầu tiên sử dụng 2 đặc tr ưng và loại đượ c khoảng 50% mẫu background (không chứa khuôn mặt) và có tỷ lệ nhận d ạng là 100%. Bộ phân loại ở tầng thứ 2 sử dụng 10 đặc tr ưng loại đượ c 80% mẫu background vẫn vớ i l ệ nhận dạng 100%. Hệ thống này đượ c so sánh vớ i h ệ thống c ủa Rowley-Baluja-Kanade [17] (sử dụng mạng n ơ ron), ron), Schneiderman-Kanade [19] (sử dụng phươ ng ng pháp thống kê), và cho thấy tỉ lệ nhận dạng là ngang nhau, trong khi hệ thống của Viola và Jones chạy nhanh hơ n đến 15 lần so vớ i hệ thống của Rowley-Baluja-Kanade và nhanh hơ n 600 lần hệ thống của Schneiderman-Kanade [19]. Bên cạnh đó, mô hình này c ũng đượ c Eng-Jon Ong và Richard Bowden [4] áp dụng thành công trong bài toán nhận dạng bàn tay. Do bàn tay có nhiều biến ng pháp học không động hơ n so vớ i mặt ngườ i,i, Ong và Bowden đã sử dụng phươ ng giám sát: tiến hành phân cụm cho tất cả các mẫu trong tậ p huấn luyện chứa 2504 hình bàn tay chụ p ở nhiều tư thế khác nhau bằng thuật toán K-mediod clustering. Cấu trúc bộ nhận dạng của Ong và Bowden gồm 2 lớ p: lớ p ở trên là 1 Mô hình boost cascade để nhận dạng sơ bộ bàn tay, lớ p bên dướ i là từng mô hình boost cascade ứng vớ i từng cụm đượ c chia bằng K-mediod. K ết quả thu đượ c r ất khả quan, cấu trúc cascade của b ộ nhận dạng ở lớ p trên gồm 11 tầng vớ i t ổng cộng 634 bộ phân loại yếu đã đạt tỉ lệ nhận dạng là 99.8% trên t ậ p kiểm thử, còn các bộ cascade ớ lớ p dướ i có tỉ lệ nhận dạng trung bình là 97.4%.
2.2.1.4 Đánh giá Tr ướ ướ c khi có hệ thống của Viola và Jones [13], h ệ thống của Rowley [17]
đượ c đánh giá là bộ nhận dạng có tốc độ nhanh nhất. Hệ thống của Rowley thực
26
chất c ũng là một c ấu trúc cascade vớ i 2 mạng nơ ron: ron: mạng nơ ron ron thứ nhất khá đơ n giản nhằm mục đích chính là loại bỏ các hình background có độ khó thấ p, mạng nơ ron ron thứ 2 phức tạ p hơ n, n, đảm nhiệm việc nhận dạng các mẫu đi qua neural network thứ 1.
Điều này chứng t ỏ mô hình cascade đã giúp loại nhanh các mẫu có độ phức tạ p thấ p thực sự đẩy nhanh tốc độ của hệ thống. Ý tưở ng ng của Viola và Jones [13] khi đưa ra Mô hình boost cascade th ật ra cũng tươ ng ng tự vậy, nhưng nó mở r ộng 2 tầng thành 38 tầng của cây cascade. Hệ thống của Viola và Jones càng chứng tỏ khả năng tăng tốc của mô hình cascade khi
đạt tốc độ nhanh hơ n hệ thống của Rowley [17] và hệ thống của SchneidermanKanade [19] (vốn không hề sử dụng cascade) lần lượ t 15 lần và 600 lần. Trong bài báo cáo của mình, Viola và Jones c ũng đã tiến hành so sánh h ệ thống sử dụng mô hình boost cascade vớ i một hệ thống chỉ có một bộ nhận dạng duy nhất xây dựng bằng AdaBoost vớ i tổng số đặc tr ưng Haar-likes sử dụng là 200. K ết quả là hệ thống theo mô hình boost cascade nhanh hơ n đến 10 lần. Lý do mà cấu trúc cascade đạt t ốc độ nhận d ạng nhanh chính là nhờ nó sớ m loại b ỏ đượ c các mẫu background đơ n gi ản (thườ ng ng có số lượ ng ng l ớ n h ơ n nhiều so vớ i các mẫu ch ứa ng – các mẫu thực sự cần tiến hành nhận dạng). đối tượ ng Bên cạnh đó, hệ thống của Viola và Jones c ũng đạt đượ c độ chính xác cao tươ ng ng đươ ng ng các hệ thống khác là nhờ thuật toán cấu trúc cascade các bộ nhận dạng
đượ c huấn luyện bằng AdaBoost vớ i đặc tr ưng đặc tr ưng Haar-like mô tả tốt thông tin đối tượ ng, ng, cùng vớ i cách tính Integral Image tính nhanh các đặc tr ưng , không làm giảm tốc độ nhận dạng của hệ thống. Như vậy, mô hình mô hình boost cascade [11] 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. Tuy nhiên, bài toán c ũng đặt ra một số khó khăn v ề số lượ ng ng mẫu và thờ i gian huấn luyện. AdaBoost đòi h ỏi ph ải có số lượ ng ng mẫu r ất lớ n (tối thiểu phải lên đến hàng nghìn) để huấn luyện đượ c bộ nhận dạng hiệu qu ả. H ệ thống nhận dạng mặt ngườ i c ủa Viola và Jones cần đến 4916 ảnh mặt
27
ngườ i.i. Việc thu thậ p đủ số lượ ng ng mẫu này là một tr ở n. Bên cạnh đó, do ở ngại r ất l ớ n. số lượ ng ng mẫu nhiều, đồng thờ i số lượ ng ng đặc tr ưng Haar-like xử lý lớ n nên thờ i gian huấn luyện r ất lâu. Do đó, việc xây dựng toàn bộ hệ thống nhận d ạng đối t ượ ng ng s ẽ tốn r ất nhiều thờ i gian (phải k ể cả việc trong quá trình thử nghiệm s ẽ có những l ần huấn luyện thất bại, buộc phải tiến hành huấn luyện lại).
2.2.2 Nhậ Nhận dạ dạng đối đối tượ tượ ng ng bằ bằng thuậ thuật toán AdaBoost 2.2.2.1 Bộ Bộ nhậ nhận dạ dạng mộ một đối đối tượ tượ ng ng Để nhận dạng một đối tượ ng ng cụ thể (khuôn mặt của một ngườ i nào đó), bộ nhận dạng cho dạng có chức năng nhận dạng một mẫu có thuộc về một đối tượ ng ng đó không. Bộ nhận dạng này đượ c xây dựng theo cấu trúc Cascade. Bộ nhậ nhận dạ dạng
Mẫu
Đúng
Đốii tượ Đố tượ ng ng
Sai Không phả phải đối đối tượ ng ng
ng xác định Hình 2.9: Bộ nhận dạng một đối tượ ng
2.2.2.2 Tậ Tập huấ huấn luyệ luyện Tậ p huấn luyện bao gồm các mẫu positive (đối tượ ng ng cần nhận dạng) và negative (mẫu không chứa đối tượ ng). ng). Trong bộ nhận dạng, các mẫu positive là các hình chụ p của đối tượ ng ng đó đã qua chuẩn hóa: kích thướ c và đượ c chuyển về ảnh xám. Các mẫu negative bao gồm tất cả các ảnh không chứa đối tượ ng ng cần nhận dạng (các hình background). Không như các mẫu positive có kích thướ c c ố định, các mẫu negative trong tậ p huấn luyện có thể có kích thướ c tùy ý nhưng phải lớ n hơ n kích thướ c mẫu positive. Trong quá trình huấn luyện, các bộ phân loại yếu sẽ học từ các mẫu positive trong tậ p huấn luyện và các mẫu negative là các vùng ảnh trích ra từ các mẫu negative trong tậ p huấn luyện.
28
Hình 2.10: Minh họa các mẫu positive dùng cho huấn luyện
29
Hình 2.11: Tậ p huấn luyện của các bộ học yếu 2.2.2.3 Đặ Đặcc trư trư ng ng dùng nhậ nhận dạ dạng Hệ thống đặc tr ưng dùng để nhận d ạng bao gồm c ả đặc tr ưng Haar-like cơ bản (1a, 1b, 2a, 2b, 2c, 2d, 3a, 1, 5) và các đặc tr ưng Haar-like mở r ộng (xoay 45º 1c, 1d, 2e, 2f, 2g, 2h, 3b). Các đặc tr ưng này đều đượ c tính toán nhanh nhờ vào khái niệm Integral Image. Luận văn sử dụng các đặc tr ưng Haar-like sau:
30
Hình 2.12: Các đặc tr ưng Haar-like dùng trong bộ nhận dạng Hệ thống đặc tr ưng trên bao gồm cả đặc tr ưng Haar-like cơ bản (1a, 1b, 2a, 2b, 2c, 2d, 3a, 1, 5) và các đặc tr ưng Haar-like mở r ộng (xoay 45º - 1c, 1d, 2e, 2f, 2g, 2h, 3b). Các đặc tr ưng này đều đượ c tính toán nhanh nhờ vào khái niệm Integral Image.
2.2.2.4 Xây dự dự ng ng bộ bộ nhậ nhận dạ dạng vớ vớ i thuậ thuật toán AdaBoost Một hệ thống nhận dạng có số lượ ng ng đặc tr ưng r ất lớ n. n. Tuy nhiên, không phải đặc tr ưng nào cũng thực hi ện t ốt việc nhận dạng mà chỉ có một số lượ ng ng nhỏ trong số đó là thực sự hữu dụng. Nhiệm vụ của bộ nhận dạng là phải tìm ra đượ c các đặc tr ưng này. Mỗi bộ phân loại yếu gồm có 1 đặc tr ưng và 1 ngưỡ ng, ng, ngưỡ ng ng này chính là giá tr ị của một mẫu cụ thể cho bở i đặc tr ưng này (vấn đề của thuật toán là phải tìm
31
ng). Như vậy, v ớ i N m ẫu và M đặc tr ưng thì số bộ đượ c mẫu nào dùng làm ngưỡ ng). phân loại yếu có thể có là N×M , t ức là vớ i 2000 mẫu cho một cử chỉ và 160000
đặc tr ưng thì hệ thống sẽ phải chọn đượ c 1 bộ phân loại yếu trong số 160000 ×2000 = 320000000 bộ phân loại yếu trong mỗi vòng lặ p boosting. AdaBoost đượ c thiết k ế để có thể chọn nhanh các đặc tr ưng, cũng là chọn nhanh các bộ phân loại yếu. Thuật toán sử dụng ở đây là Gentle AdaBoost là một cải tiến của AdaBoost. Dùng Gentle AdaBoost để xây dựng bộ nhận dạng đối tượ ng ng như sau:
Thuậ Thuật toán: Tạ Tạo bộ bộ phân loạ loại - Dữ Dữ li liệệu vào: Cho một tậ p huấn luyện X gồm n mẫu
{( x1 , y1 ), ( x 2 , y 2 )},...., ( x n , y n ) } vớ i x ∈ X, y ∈ {-1, +1} 1: Chọn tr ướ ướ c min detection rate và max false alarm 2: Xây dựng tậ p đặc tr ưng và tính toán các integral image cho tất cả các mẫu trong tậ p huấn luyện. 3: Khở i tạo tr ọng số ban đầu cho tất cả các mẫu
w1,k =
1 n
5: Vòng lặ p khi còn thoã mãn điều kiện 5.1: Vớ i mỗi đặc tr ưng trong tậ p đặc tr ưng, xây dựng một bộ phân loại yếu h j ng θ j và tính giá tr ị lỗi ε j vớ i hàm nhận dạng f t t , n g ưỡ ng
ε j =
n
∑w ,
t k
h j ( xk ) − yk
k
5.2: Từ các h j đã có, chọn ra h j có ε j nhỏ nhất, ta đượ c ht
ht ( x ) = gt ( ft ( x),θ t ) : X → R
32
5.3: Cậ p nhật lại tr ọng số:
w t +1,k = 5.4: Ft ( x ) =
w t ,k Z t
× e−α ht ( xk ) , vớ i Z t = ∑ w t +1,k t
k
t
∑1 h ( x) , tính ngưỡ ng ng θ i
i=
⎧1, Ft ( x) ≥ θ H t ( x) = ⎨ ⎩−1, Ft ( x) < θ n
Cho đến khi
∑1 1 k =
yk =− 1, H t ( xk ) =1
≤ max_false_alarm
6: K ết thúc vòng lặ p
7: Bộ nhận dạng H(x):
⎧1, Ft ( x) ≥ θ ⎩−1, Ft ( x) < θ
H ( x ) = ⎨
Đầu - Đầ u ra: Bộ phân loại mạnh H(x) Mỗi b ộ phân loại y ếu ht (x) sẽ đượ c ch ọn b ằng cách tính giá tr ị của t ừng đặc tr ưng cho tất c ả các mẫu trong tậ p hu ấn luyện f(xk ) và s ắ p x ế p các mẫu theo thứ tự tăng dần của giá tr ị này:
33
Hình 2.13: Minh họa cách chọn bộ phân loại yếu của AdaBoost Đặc tr ưng đượ c chọn là đặc tr ưng thực hiện phân đôi tậ p huấn luyện vớ i lỗi εt = lerror + rerror nhỏ nhấ t.t.
⎧left , ft ( x) < θ t ht ( x ) = ⎨ ⎩right , f t ( x) ≥ θ t Sau mỗi vòng lặ p của boosting, ta xây dựng thêm đượ c một bộ phân loại yếu. Ta có thể xây dựng đượ c m ột bộ phân loại m ạnh mớ i t ừ sự k ết h ợ p c ủa các bộ phân loại yếu có đượ c cho tớ i lần boost hiện tại:
34
⎧1, Ft ( x) ≥ θ Ft ( x ) = ∑ hi ( x ) v à H t ( x) = ⎨ i =1 ⎩−1, Ft ( x) < θ t
θ đượ c chọn nhờ vào giá tr ị tỷ lệ phát hiện đúng tối thiểu các Giá tr ị ngưỡ ng ng θ đượ mẫu positive (min detection rate/min hit rate) mà bộ nhận dạng phải đạt, giá tr ị này do chúng ta xác lậ p khi bắt đầu quá trình huấn luyện. B ằng cách sắ p xế p các mẫu positive xk theo F t t(x ) tăng dần: k
ng θ dựa vào min _hit_ rate Hình 2.14: Chọn ngưỡ ng Trong hình trên, min detection rate đượ c chọn là 0,997, ngh ĩ a là tỉ lệ nhận dạng đúng các mẫu positive không đượ c thấ p hơ n 99.7%. Do đó, phần tử đượ c chọn làm ngưỡ ng ng là mẫu đầu tiên trong danh sách sắ p tăng. Giá tr ị ngưỡ ng ng θ này đảm bảo có ít nhất 99.7% các mẫu positive sẽ có F t(x) >= θ. N ếu ta chọn min detection rate là 0.5, khi đó (1-min detection rate)*số _mẫu = 4, phần t ử thứ 4 c ủa danh sách các mẫu sẽ đượ c chọn làm ngưỡ ng, ng, như vậy sẽ chỉ có 4 mẫu trong số 8 mẫu positive là đượ c nhận dạng đúng.
35
Ngưỡ ng ng có ý ngh ĩ a r ất quan tr ọng, ngưỡ ng ng càng nhỏ thì “hit rate” sẽ càng cao nhưng “false alarm” c ũng tăng theo và ngượ c lại. Sau khi có đượ c H t t(x) , v ấn đề cần xem xét là liệu b ộ phân loại này có đủ tốt chưa, ngh ĩ a là giá tr ị lỗi c ủa nó đã th ấ p h ơ n max false alarm (là tỷ lệ nhận dạng sai các mẫu không phải đối tượ ng ng cần nhận dạng lớ n nhất) hay chưa. max false alarm là
ướ c khi tiến hành huấn luyện. False alarm (hay còn g ọi là một giá tr ị đượ c xác lậ p tr ướ false positive) là tỉ lệ nhận dạng sai các mẫu negative. Ví dụ, nếu max false alarm = 0.5 thì trên 100 mẫu negative, nó phải nh ận đúng ít nhất là 50 mẫu (50 mẫu còn lại bị phân loại nhầm thành positive). Vòng lặ p xây dựng bộ phân loại mạnh sẽ k ết thúc khi giá tr ị false alarm của bộ phân loại mạnh này thấ p hơ n max false alarm.
2.2.2.5 Mô hình boost cascade để nhậ nhận dạ dạng Bộ nhận dạng đối tượ ng ng là 1 cấu trúc cascade gồm K t ầng, f ,i d i lần lượ t là max false alarm và min detection rate của bộ phân loại ở tầng thứ i, max false alarm
và min detection rate của cây cascade sẽ lần lượ t là: F =
K
K
∑1 f v à D = ∑ d i
i=
i
i =1
Trên lý thuyết, các tầng phân loại sẽ có max false alarm và min detection rate khác nhau, các bộ phân loại ở các tầng càng sâu thì max false alarm sẽ càng lớ n
và min detection rate càng nhỏ do nó học trên các mẫu khó hơ n. n. Tuy nhiên, trong thực tế cài đặt, chúng ta không thể biết chính xác số tầng mà cây cascade sẽ có
ướ c khi tiến hành huấn luyện, d ẫn đến khó khăn trong việc ch ọn giá tr ị max false tr ướ alarm và min detection rate cho m ỗi bộ phân loại. Do đó, trong phần cài đặt của bài toán nhận dạng đối tượ ng, ng, max false alarm và min detection rate đượ c xác lậ p bằng nhau ở tất c ả các tầng. Khi đó, max false alarm và min detection rate của bộ nhận dạng lần lượ t là: F
= f k và D = d k .
Thuậ Thuật toán: Xây dự dự ng ng cây cascade
36
1: Xác lậ p max false alarm f , min detection rate d cho các bộ nhận dạng ở mỗi tầng và số tầng tối đa cây cascade sẽ có 2: Tính false alarm F cho bộ phân loại chính (cây phân lớ p) 3: F0 = 0, i = 0 4: p, n là số lượ ng ng mẫu positive và negative 5: P0, N0 là tậ p positive và negative cho bộ phân lớ p ở tầng đầu tiên 6: Trong khi Fi > F 7: 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ủ tục Tạo Bộ phân loại) 8: Thêm H i vào cây phân lớ p 9: Dùng cây phân lớ p hiện có để tính Fi+1: Duyệt qua N mẫu negative cho đến khi nào tìm đủ n mẫu mà cây phân l ớ p hiện có phân loại sai F i +1 =
n N
F > F 10: N 10: Nếu i +1 , đưa n mẫu negative trên vào Ni+1; xây dựng Pi+1 vớ i tối đa p mẫu positive mà cây phân l ớ p hiện có nhận dạng đúng.
11:
i ← i +1 Qua thuật toán trên ta thấy, các mẫu negative trong tậ p huấn luyện của bộ
phân lo l oại sau sẽ là những m ẫu negative mà bộ phân loại tr ướ ướ c nó nhận d ạng sai vì thế, nó có điều kiện tậ p trung h ọc những mẫu background khó. Như vậy ta thấy các bộ phân loại đượ c xây dựng sao cho sự k ết hợ p của chúng xử lý r ất tốt các mẫu background. Đây chính là lý do mà c ấu trúc cascade giúp cho bộ nhận dạng giảm thiểu false alarm và c ũng là tăng t ỉ lệ nhận d ạng cho hệ thống. Đồng thờ i,i, c ấu trúc này cũng đủ thông minh để biết phải loại một mẫu background ở tầng nào tùy thuộc vào độ phức tạ p của chúng, chứ không nhất thiết phải gọi đến tất cả các bộ phân loại đối vớ i mọi mẫu background, chính điều này đã giúp tăng tốc độ nhận dạng.
37
2.2.2.6 Hoạ Hoạt động động củ của bộ bộ nhậ nhận dạ dạng Khi đưa một ảnh vào nhận dạng, bộ nhận dạng sẽ phải xét tất cả các vùng
ảnh vớ i kích thướ c khác nhau trích ra đượ c từ ảnh này để có thể đưa ra k ết quả. Kích thướ c khở i đầu c ủa vùng ảnh s ẽ là m ột window bằng v ớ i kích thướ c c ủa m ẫu positive trong quá trình huấn luyện. Các vùng ảnh này sẽ đượ c dịch theo chiều ngang và dọc 1 lượ ng ng từ 1 đến 2 pixel cho đến khi phủ kín ảnh cần nhận dạng. Sau
đó, vùng ảnh sẽ đượ c mở ra vớ i tỉ lệ 1.1 (giá tr ị này ngườ i dùng đượ c phép thay đổi khi tiến hành nhận dạng) và tiế p t ục quá trình duyệt ảnh như trên cho đến khi vùng
ảnh đượ c mở kích thướ c ra bằng kích thướ c ảnh. Nhờ có cấu trúc cascade, các vùng ảnh không liên quan bị loại nhanh từ những tầng đầu tiên.
ng sẽ bị loại ngay từ những tầng đầu Hình 2.15: Các vùng ảnh không phải đối tượ ng tiên và k ết quả thu nhận đượ c là vùng ảnh xác định đối tượ ng ng Qua thực nghiệm, ta thấy số lượ ng ng vùng ảnh tươ ng ng tự nhau cũng có tác dụng trong việc điều chỉnh giữa hit rate và false alarm. Do t ỉ lệ nhận dạng không phải 100% nên khi tiến hành nhận dạng, có thể có vài mẫu background sẽ bị nhầm là đối tượ ng ng cần nhận dạng. Do đó, ứng dụng nhận dạng sử dụng khái niệm min neighbor (số vùng ảnh tươ ng ng tự nhau tối thiểu) phải có để một vùng ảnh có thể đượ c nhận dạng là đối tượ ng. ng. Giá tr ị này đượ c ngườ i dùng xác lậ p khi tiến hành nhận dạng.
2.2.2.7 Xây dự dự ng ng bộ bộ nhậ nhận dạ dạng đối đối tượ tượ ng ng Bộ nhận dạng đối tượ ng ng đượ c xây dựng dựa trên sự k ết hợ p các bộ nhận dạng một đối tượ ng ng c ụ thể, xác định đã trình bày ở trên. Đầu vào là một ảnh m ẫu,
38
đầu ra là lớ p c ủa ảnh này (khuôn mặt c ủa anh A, chị B, bà C,...). Các bộ nhận dạng một đối tượ ng ng có thể đươ c k ết hợ p theo cách ti ế p cận one against all (nhận dạng chỉ một, ví dụ chỉ nhận dạng mặt ông A chứ không nhận dạng những ngườ i khác).
ng Hình 2.16: Quy trình nhận dạng đối tượ ng Một m ẫu đưa vào sẽ đi qua tuần tự các bộ nhận dạng từ trên xuống dướ i cho
đến khi nào nó đượ c phân vào một l ớ p c ụ thể hay đượ c cho là không thuộc lo ại đối tượ ng ng cần nhận dạng.
39
Chươ Chươ ng ng 3 TRÌNH BÀY K ẾT QUẢ QUẢ THỰ THỰ C NGHIỆ NGHIỆM Chươ ng ng này sẽ trình bày về phươ ng ng pháp thực hiện các thực nghiệm nhận dạng mặt ngườ i,i, bao gồm cách xây dựng bộ dữ liệu huấn luyện, bộ dữ liệu đánh giá kiểm thử và các k ết quả đạt đượ c. c.
3.1 Bộ Bộ dữ li ữ liệệu 3.1.1 Bộ Bộ dữ li ữ liệệu huấ huấn luyệ luyện Trong luận văn này tôi thực nghiệm trên Bộ dữ liệu ảnh Feret dùng làm bộ dữ liệu huấn luyện. Đây là Bộ dữ liệu ảnh tr ắng đen đượ c thu thậ p trong một dự án của Bộ quốc phòng Mỹ do cơ quan nghiên cứu quốc phòng Mỹ (DARPA) nhằm
ợ giúp an ninh, tình báo và nhân nâng cao khả năng nhận d ạng mặt khuôn mặt để tr ợ sự thi hành pháp luật trong việc thực hiện nhiệm vụ
ợ chính Các hình ảnh trong bộ dữ liệu FERET đã đượ c sử dụng để hỗ tr ợ quyền giám sát ki ểm tra và đánh giá các thuật toán nhận dạng khuôn mặt bằng cách sử dụng các quy trình và kiểm thử tiêu chuẩn. Bộ dữ liệu gồm có 14051 ảnh mặt ngườ i ngườ i vớ i nhiều góc độ chụ p khác nhau. Tr ướ ướ c đó, Bộ dữ liệu này là một phần của Bộ dữ liệu FERET chỉ cung cấ p cho những nghiên cứu và các ứng dụng mang tính công nghiệ p và đã đượ c phân phối từ năm 1998 đến tháng 2 năm 2001 gồm có 3737 hình ảnh. Trong luận văn chỉ sử dụng 1219 ảnh của 50 ngườ i khác nhau trong Bộ dữ liệu FERET, số ảnh trên đượ c phân thành 50 bộ dữ liệu nhỏ vớ i t ỷ lệ phân chia tậ p huấn luyện và tậ p ki ểm th ử là 50% để thực nghiệm, mô tả chi tiết v ề 50 b ộ dữ liệu của 50 ngườ i đượ c cho ở bảng dướ i: i:
40
Tên
Số lượ ng ng mẫ mẫu Số lượ ng ng mẫ mẫu huấ huấn luyệ luyện
kiể kiểm thử thử
F1
26
26
F2
12
F3
Tên
Số lượ ng ng mẫ mẫu Số lượ ng ng mẫ mẫu huấ huấn luyệ luyện
kiể kiểm thử thử
F26
21
20
12
F27
21
20
11
10
F28
10
9
F4
7
6
F29
14
14
F5
8
7
F30
10
9
F6
18
17
F31
10
9
F7
8
7
F32
9
8
F8
7
6
F33
9
8
F9
15
14
F34
9
8
F10
18
17
F35
9
8
F11
9
9
F36
9
8
F12
34
34
F37
13
12
F13
7
6
F38
11
11
F14
7
6
F39
11
11
F15
12
12
F40
11
10
F16
7
6
F41
12
12
F17
13
12
F42
12
12
41
Tên
Số lượ ng ng mẫ mẫu Số lượ ng ng mẫ mẫu huấ huấn luyệ luyện
kiể kiểm thử thử
F18
12
11
F19
9
F20
Tên
Số lượ ng ng mẫ mẫu Số lượ ng ng mẫ mẫu huấ huấn luyệ luyện
kiể kiểm thử thử
F43
12
13
8
F44
11
11
9
8
F45
11
11
F21
11
11
F46
12
12
F22
27
26
F47
11
11
F23
17
17
F48
17
16
F24
9
9
F49
11
11
F25
14
14
F50
11
10
Bảng 3.1: Thống kê mô tả 50 bộ dữ liệu
42
Hình 3.1: Khuôn mặt đại diện của 50 ngườ i khác nhau đại diện của 50 tậ p dữ liệu ảnh của mỗi ngườ i trong bộ dữ liệu FERET. Tậ p dữ liệu negative của mỗi ngườ i chính là toàn bộ ảnh của những ngườ i khác nhưng không có chứa ảnh ngườ i đó.
3.1.2 Bộ Bộ dữ li ữ liệệu kiể kiểm thử thử Để tiến hành kiểm thử, luận văn sử dụng Bộ dữ liệu Face CMU là một bộ dữ liệu đượ c tạo ra bở i dự án nhận dạng khuôn mặt của Đại học Carnegie Mellon (CMU) bao gồm 04 bộ dữ liệu là A, B, C và các t ậ p ảnh xoay. Bộ dữ liệu B do KahKay Sung và Tomaso Poggio [11] thu th ậ p tại phòng thí nghiệm AI/CBCL của MIT và bộ dữ liệu A, C, bộ ảnh xoay đượ c thu thậ p bở i Henry A. Rowley, Shumeet Baluja và Takeo Kanade [20] tại CMU. Bộ dữ liệu thứ hai là CBCL của MIT gồm 472 khuôn mặt đa dạng của 472 ngườ i và 23573 không chứa khuôn mặt.
43
Hình 3.2: Một số ảnh minh họa của bộ dữ liệu CMU
44
ng (khuôn- mặt) Hình 3.3: Một số ảnh minh họa ảnh nền không chứa đối tượ ng trong bộ dữ liệu CBCL
3.2 Các bướ bướ c cơ cơ b bản tiế tiến hành huấ huấn luyệ luyện mẫ mẫu ng ứng tậ p d ữ liệu thì Bướ c 1: Để huấn luyện ảnh ta cần có các tậ p mẫu, tươ ng có hai loại là các mẫu negative và mẫu positive.
Đầu tiên ta phải tạo ra tậ p tin mô tả của các ảnh negative và ảnh positive. Tậ p tin mô tả mẫu negative có tên là list.txt ch ỉ chứa tên file negative: Negative/neg-001.jpg Negative/neg-002.jpg Tiế p đó ta tạo ra tậ p tin faceList.txt liệt kê danh sách các ảnh positive, số lượ ng ng khuôn mặt và tọa độ xuất hiện khuôn mặt xuất hiện trong ảnh đó. Cấu trúc nội dung liệt kê tậ p tin cụ thể như sau:
45
[tên tậ p tin ảnh] [sốlượ ng ng khuôn mặt] [[x y width height] [...tọa độ khuôn mặt tiế p theo] ...] [tên tậ p tin ảnh] [sốlượ ng ng khuôn mặt] [[x y width height] [...tọa độ khuôn mặt tiế p theo] ...] [tên tậ p tin ảnh] [sốlượ ng ng khuôn mặt] [[x y width height] [...tọa độ khuôn mặt tiế p theo] ...] ...
Ví dụ: rawdata/00209hr010_940128.jpg 1 0 0 23 36 rawdata/00207fb010_940128.jpg 2 35 32 178 246 34 38 125 235
Trong đó: rawdata là thư mực chứa ảnh; 00209hr010_940128.jpg và t in ảnh; ảnh trên có 1 khuôn mặt, ảnh d ướ i có 2 00207fb010_940128.jpg là hai tậ p tin khuôn mặt; 4 số ở bốn cột biểu diễn tọa độ của khuôn mặt trong ảnh.
Để xác định tọa độ này, em dùng phần mềm objectmarker.exe, giúp cho việc tạo tậ p tin trên đạt tốc độ cao.
Hình 3.4: Minh họa việc tạo tậ p tin faceList.txt bằng ObjectMarker.exe
46
Hình 3.5: Nội dung tậ p tin faceList.txt Bướ c 2: Sau khi đã có đượ c hai tậ p tin list.txt và faceList.txt thì ta tiến hành tạo mẫu bằng công cụ creatsample.bat thực hiện một command: createsamples -info faceList.txt -vec faceList.vec -num 300 -w 24 - h 36
Trong đó:
ở đây là faceList.txt ) • - info: tậ p tin liệt kê danh sách ảnh (ở đ ng ảnh • - num: chỉ số lượ ng • - w và - h là kích th ướ c ảnh
ơ ảnh (ở đ ở đây là tậ p tin faceList.vec) • - vec: tậ p tin lưu các vectơ ả K ế t qu ả là xuất ra một tậ p tin mô tả mẫu là faceList.vec chứa các vect ơ mẫu ảnh.
47
Bướ c 4: Sau khi hoàn thành vi ệc tạo mẫu thì ta tiến hành huấn luyện mẫu vớ i đầu vào là thông tin về các mẫu positive trong tậ p tin faceList.txt , số lượ ng ng ảnh huấn luyện positive là 300, ảnh negative là 230 Haar-likehuấ n luyện -data cascade/face_cascade -vec pos/faceList.vec -bg neg/list.txt -npos 300 -nneg 230 nt ầng 30 -mem 800 -mode ALL -w 24 -h 36
K ết quả của quá trình huấn luyện cho ra bộ phân loại (bộ phân loại).
Hình 3.6: Minh họa quá trình huấn luyện tại bộ phân loại Để chuyển đổi bộ phân loại vừa xây dựng đượ c thành dạng các tậ p tin XML, ta thực hiện lệnh sau: convert_cascade convert_cascade ----size=""
Ví dụ: convert_cascade --size="24x36" --size="24x36" face_cascade Haar likecascade_lan2.xml likecascade_lan2.xml
3.3 Lượ Lượ ng ng hóa k ết quả quả huấ huấn luyệ luyện
48
ng t ớ i là độ Để đánh giá k ết quả việc nh ận dạng thì có hai tiêu chí đượ c h ướ ng chính xác cực đại và tỷ lệ lỗi cực tiểu. Hiện nay có r ất nhiều phươ ng ng pháp đánh giá, mỗi một phươ ng ng pháp đều cho k ết quả đánh giá không giống nhau, một phươ ng ng pháp đượ c sử dụng phổ biến hiện nay là phươ ng ng pháp ROC (Receiver Operating Characteristics) curve. Phươ ng ng pháp ROC curve vẽ đồ thị đán giá độ chính xác nhận dạng d ựa trên hai thông số Tỷ lệ nhận dạng mẫu đúng (True Positive Rate) và Tỷ lện nhận dạng mẫu sai (False Positive Rate), c ụ thể
ố l ượ ượ ng S ố ng mẫ u( u( positive) nhận d ạng đ úng úng ỷ l ệ nhận d ạng mẫ u (positive) đ úng T úng =
ổng g số mẫ u ( positive) trong t ậ p d ữ ữ liệu T ổ n ố l ượ ượ ng ỗi S ố ng mẫ u (positive) nhận d ạng l ỗ
T u(positive) sai = ỷ l ệ nhận d ạng mẫ u(positive)
T ổ n ổng g số mẫ u (negative )trong t ậ p d ữ ữ liệu
Dữ liệu dùng để đánh giá đượ c lấy từ bộ Face CMU, lượ ng ng hóa k ết quả huấn luyện theo phươ ng ng pháp ROC curve thể hiện bằng biểu đồ dướ i đây:
Số lượ ng ng ảnh huấ huấn luyệ luyện Tru True Posi Posittive ive Rat Ratee Fals Falsee Pos Posit itiv ivee Rat Ratee 300
0.044848
0.130034
455
0.181481
0.461538
688 749
0.207407 0.317417
0.554545 0.614567
857 918
0.322445 0.436684
0.683403 0.698467
995
0.543821
0.732938
1219
0.610031
0.848475
Bảng 3.2: K ết quả huấn luyện
49
Kế t quả: ROC 100% 90% 80% e t a R e v i t i s o P e u r T
70% 60% 50% 40% 30% 20% 10% 0% 300
455
688
749
857
918
995
1219
Số l ượng ả nh huấ n luyệ n
Hình 3.7: Biểu đồ đánh giá k ết quả huấn luyện
Kết quả: ROC 100% 90% 80% e t a R e v i t i s o P e s l a F
70% 60% 50% 40% 30% 20% 10% 0% 300
455
688
749
857
918
995
Số lượng ảnh huấn luyện
Hình 3.9: Biểu đồ đánh giá tỷ lệ nhận dạng sai
1219
50
Qua quá trình huấn luyện vớ i s ố ảnh tăng dần thì tỷ lệ nhận dạng đúng cũng tăng lên từ dướ i 10% lên trên 80%, đây là k ết quả chấ p nhận đượ c. c.
3.4 Kiể Kiểm thử thử Quá trình kiểm th t hử th ực hi h iện trên bộ dữ li ệu ki k iểm th t hử CMU cho ra k ết qu ả nh ư bảng dướ i đây: Thử Th ử nghi nghiệệm
Số lượ ng ng
Hits
Missed
False
306
694
20
244
384
7
positive CBCL
472
CMU
256
Bảng 3.3: K ết quả kiểm thử hai bộ dữ liệu CBCL và CMU
Trong đó: - Hits: là s ố lượ ng ng các mẫu nh n hận d ạ ng đúng - Missed: s ố lượ ng ng đố i t ượ ng ng chưa nh ậ n dạng đượ c (ngh ĩ a là s ố lượ ng ng khuôn mặt có trong ảnh nhưng không nhận d ạng đượ c) c) - False: s ố lượ ng ng đố i tượ ng ng nhậ n dạng sai từ các ảnh không chứa đố i tượ ng ng (tức s ố lượ ng ng đố i t ượ ng ng đượ c nh ận d ạng như ng không phải là khuôn mặt)
51
Đánh giá độ chính xác 100% 99% 98% e 97% t a r s t i 96% H
95% 94% 93% CBCL
CMU
ng của 2 bộ: CBCL và CMU Hình 3.9: Tỉ lệ nhận dạng chính xác đối tượ ng Thực nghiệm trên hai tậ p dữ liệu CBCL, CMU cho thấy độ chính xác khi thử nghiệm trên bộ CBCL là hơ n 97%% cao hơ n, n, CMU chỉ đạt trên 95%. K ết qu ả trên cho thấy AdaBoost có tỷ lệ nhận dạng chính xác r ất cao.
3.5 Mộ Một số số hình ảnh minh họ họa k ết quả quả nhậ nhận dạ dạng ết quả ki ể ểm thử trên t ậ p d ữ ữ li ệu CBCL: Minh họa k ế
52
Hình 3.10: Nhận dạng 8 face trong 321.25s
Hình 3.11: Nhận dạng 11 face trong 448.53s
53
Hình 3.12: Nhận dạng 7 face trong 382.02s
Hình 3.13: 0 face đượ c phát hiện trong 27,80s
54
Hình 3.14: 0 face đượ c phát hiện trong 256,84s
ế t quả ki ể ểm thử trên t ậ p d ữ ữ li ệu CMU Minh họa k ế
Hình 3.15: 7 face đượ c phát hiện trong 236,35s
55
Hình 3.16: 6 face đượ c phát hiện trong 198,73s
Hình 3.17: 0 face đượ c phát hiện trong 177,73s
56
Hình 3.18: 0 face đượ c phát hiện trong 150,40s
Hình 3.19: 0 face đượ c phát hiện trong 159,99s
57
ế t quả ki ể ểm thử trên một số ả ố ảnh sư u t ầm Minh họa k ế
Hình 3.20: 2 face đượ c phát hiện trong 88,49s
Hình 3.21: 4 face đượ c phát hiện trong 393,61s
58
Hình 3.22: 0 face đượ c phát hiện trong 274,61s
Hình 3.23: 0 face đượ c phát hiện trong 277,18s
59
K ẾT LUẬ LUẬN VÀ HƯỚ HƯỚ NG NG PHÁT TRIỂ TRIỂN 1. K ết luậ luận Trên cơ sở tìm hiểu và nghiên cứu thuật toán AdaBoost và k ỹ thuật nhận dạng đối tượ ng ng cụ thể là nhận dạng khuôn mặt, luận văn đã đạt đượ c những k ết quả như sau: - Giớ i thiệu khái quát về bài toán nhận dạng đối tượ ng, ng, mô hình nhận dạng
đã và đang đượ c sử dụng trên thế giớ i,i, khái quát về lịch sử phát triển của thuật toán AdaBoost và những công trình nghiên cứu uy tín về vấn đề này. - Trình bày thuật toán AdaBoost, tìm hi ểu v ề mô hình cascade bộ phân loại áp dụng thuật toán cho bài toán nh ận dạng đối tượ ng ng (cụ thể là nhận dạng khuôn mặt) đó là xây d ựng mô hình phân tầng vớ i sử dụng đặc tr ưng Haar-like. - Tiến hành thực nghiệm đượ c việc huấn luyện vớ i bộ dữ liệu khuôn mặt Feret, đánh giá k ết quả thu đượ c v ớ i hai bộ dữ liệu là CBCL và CMU, k ết qu ả thu
đượ c tuy còn r ất hạn chế do thờ i gian tiến hành thực nghiệm không nhiều tuy nhiên qua đó đã giớ i thiệu đượ c quy trình huấn luyện và phươ ng ng pháp huấn luyện nhận dạng ảnh. Tuy thực nghiệm đã cho k ết quả nhưng đây là k ết quả chưa tốt, do bở i số lượ ng ng mẫu thử ít và thờ i gian để thực hiện không đượ c nhiều.
2. Hướ Hướ ng ng phát triể triển - Qua k ết quả thực nghiệm thu đượ c đã cho thấy việc nhận dạng đối tượ ng ng
đòi hỏi một quá trình lâu dài vì thế tr ướ ướ c mắt tiế p tục tiến hành huấn luyện vớ i những bộ dữ liệu khác vớ i số lượ ng ng ảnh lớ n hơ n để nhận dạng đạt k ết quả tốt hơ n. n. - Nhận dạng đối tượ ng ng là một đề tài r ất thú vị và có nhiều ứng dụng trong khoa học k ỹ thuật và đờ i sống. Trong luận văn này, chỉ nghiên cứu thuật toán AdaBoost trong việc nhận dạng và k ết qu ả còn hạn ch ế nên việc c ải thiện các thuật toán cũng như xây dựng hoàn thiện một hệ thống tìm kiếm và nhận dạng vớ i độ chính xác tin cậy để có thể ứng dụng trong đờ i sống xã hội cũng là một hướ ng ng nghiên cứu thú vị và phức tạ p đòi hỏi nhiều công sức lao động và nghiên cứu. Để
60
hướ ng ng tớ i mục tiêu này, cần nghiên cứu nhiều mô hình nhận dạng khác đang r ất
đượ c các nhà nghiên c ứu quan tâm như sử dụng mô hình Markov nhiều chiều, thực hiện lấy mẫu ảnh vớ i độ chính xác cao hơ n. n. - M ột hướ ng ng phát triển khác là áp dụng thuật toán AdaBoost nhưng vớ i các
đặc tr ưng khác như: đặc tr ưng local, garbor,…. Tuy nhiên, một vấn đề cần phải thừa nhận r ằng r ất khó có thể tồn tại một giải pháp tổng thể cho tất cả các bài toán đặc biệt khi áp dụng vào thực tiễn cuộc sống. Do đó cần phải có những hạn chế cần thiết cho phù hợ p vớ i mi ền ứng dụng ví dụ: có thể chỉ tìm kiếm một khuôn mặt duy nhất hoặc yêu cầu hạn chế vùng tìm kiếm khi xây dựng các ứng dụng dựa trên mặt ngườ i… i…
61
TÀI LIỆ LIỆU THAM KHẢ KHẢO Tiế Tiếng Anh 1. A. Lanitis., C.J. Taylor and T.F. Cootes (1995), A Unified Approach to Coding and Interpreting Face Images, Int'l Conf. Computer Vision, pp.
368-373. 2. Agarwal S and Roth D (2002), Learning a sparse representation for object detection, In ECCV-2002.
3. Carbonetto, S.T., M.M. Gruver., D.C. Turner (1982), Nerve fiber growth on defined hydrogel substrates, Science 21 , pp. pp. 897-899
4. Eng-Jon Ong and Bowden R (2004), A Boosted Bộ phân loại Tree for Hand Shape Detection, In Proc. IEEE Intl. Conference on Automatic Face
and Gesture Recognition. 5. G. Dorko and C. Schmid (2004), Object class recognition using discriminative local features, IEEE Transactions on Pattern Analysis and
Machine Intelligence. 6. I. Craw and P. Cameron (1992), Face Recognition by Computer , British Machine Vision Conf., pp. 498–507. 7. Johan Thureson and Stefan Carlsson (2004), Appearance Based Qualitative Image Description for Object Class Recognition, ECCV (2)
2004, pp. 518-529. 8. K.C.Yow, R.Cipolla (1997), Feature-based Human Human Face Detection, Image and Vision Computing, 15(9), pp. 713-735. 9. K. Sung and T. Poggio (1998), Example-Based Learning for View-Based Human Face Detection, Journal of Artificial Intelligence Research, v.9
n.1, pp.167-217.
62
10. M. Turk and A. Pentland (1991), Face recognition using eigenfaces, IEEE Conference on Computer Vision and Pattern Recognition, pp. 586– 591. 11. Ming-Hsuan Yang., David J. Kriegman., Narendra Ahuja (2002), Detecting Faces in Images: A Survey, IEEE Transaction on Pattern
Analysis and Machine Intelligence (PAMI),vol 1 , pp. 34-47. 12. E.Osuna., R.Freund and F.Girosi (1997), An improved huấ n luyện algorithm for support vector machines , IEEE CVPR.
13. Paul Viola and Michael J. Jones (2001), Rapid Object Detection using a Boosted Cascade Cascade of Simple Simple feature , IEEE CVPR.
14. P. Viola and M. J. Jones (2004), Robust real-time face detection, International Journal of Computer Vision, 57(2), pp.137-154. 15. Robert E. Schapire and Yoram Singer (1999), Improved boosting algorithms using confidence-rated predictions, Machine Learning, 37(3),
pp.297–336. 16. Rajagopal and A. Kahn (1998), Molecular Level Alignment at Organic Semiconductor-metal Semiconductor-metal Interfaces, Appl. Phys. Lett, pp.73- 662.
17. Rowley H., Baluja S., and Kanade T (1998), Neural network-based face f ace detection, IEEE Patt, Anal, Mach Intell, pp.22–38.
18. R Bowden and M Sarhadi (2000), Building temporal models for gesture recognition, In Proc, BMVC volume 1, pages 32–41.
19. Schneiderman H and Kanade T (2000), A statistical method for 3D object object detection applied to faces and car , In International Conference on
Computer Vision.
63
20. Stan Z. Li, Zhen Qiu Zhang (2004), FloatBoost FloatBoost Learning and Statistical Face Detection, IEEE Transaction on Pattern Analysis and Machine
Intelligence PAMI), Vol. 26, pp.1-12. 21. Stan Z. Li., Juwei Lu (2004), Face Detection, Alignment and Recognition, Book Chapter 9, pp. 385-455.
22. T.K. Leung., M.C. Burl., and P. Perona (1995), Finding faces in cluttered scenes using random labelled graph graph matching , In Int. Conf. on Computer
Vision. 23. Yoav Freund and Robert E. Schapire (1995), A decision-theoretic generalization of on-line learning and an applicationto applicationto boosting , In
Computational Learning Theory: Eurocolt ’95, pp.23–37. 24. Yoav Freund and Robert E. Schapire (1996), Experiments with a new boosting algorithm , In Machine Learning:Proceedings of the Thirteenth
International Conference, pp.148–156. 25. Yoav Freund and R. Schapire (1997), A decision-theoretic generalization of on-line learning and an application to boosting , Journal of Computer
and System Sciences, 55(1), pp.119–139. 26. William T. Freeman., Michal Roth (1995), Orientation Histograms for Hand Gesture Recognition, In Proc, IEEE Intl, Wkshp, on Automatic
Face and Gesture Recognition, Zurich.