Thuật toán nhận diện mặt người sử dụng Adabost

42 1.6K 0
Thuật toán nhận diện mặt người sử dụng Adabost

Đ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

BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG - NGHIÊN CỨU KHOA HỌC SINH VIÊN Đề tài: “Nghiên cứu, tìm hiểu lớp thuật toán phát nhanh đối tượng” Người hướng dẫn : Phạm Văn Sự Sinh viên thực hiện: Phùng Văn Nam Phan Minh Nghĩa Lớp: D12DT3 Hệ: Đại học HÀ NỘI – NĂM 2015 BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG - BÁO CÁO Môn: Thị giác máy tính Đề tài: “Nhận dạng mặt người” Người hướng dẫn : TS Lê Ngọc Thúy Sinh viên thực hiện: Phùng Văn Nam Nguyễn Thị Thanh Vân Đinh Công Nhật Phạm Thị Liên Nguyễn Văn Sơn Lê Cao Nguyên Hà Nội, ngày 26 tháng năm 2016 PHỤ LỤC Phụ lục A : Danh sách thuật ngữ dùng đề tài Thuật ngữ Giải thích Classifier (bộ phân loại) Một phân loại xây dựng theo thuật toán học máy đấy, dùng để phân loại đối tượng (khuôn mặt hay khuôn mặt) False alarm Là tỉ lệ nhận dạng sai phân loại Feature (đặc trưng) Các thông tin giúp nhận biết đối tượng Haar-like feature Các đặc trưng đối tượng ảnh Các đặc trưng thường định nghĩa tính toán với tổng điểm ảnh vùng ảnh Hit rate Là tỉ lệ nhận dạng phân loại Max false alarm Đạt tỉ lệ sai phân loại xây dựng thành công, tỉ lệ sai giá trị bé, chấp nhận toán phân loại Strong classifier (bộ phân loại mạnh) Bộ phân loại xây dựng từ nhiều phân loại yếu, có độ xác cao Threshold (ngưỡng) Ngưỡng giá trị ranh giới lớp, giá trị ngưỡng thường chọn từ thực nghiệm Chọn giá trị thích hợp để hợp thành phân loại yếu Weak classifier (bộ phân loại yếu) ADABOOST Bộ phân loại đơn giản có độ xác khoảng 50% Page Phụ lục B: Danh sách hình vẽ Hình 1: Ví dụ mô hình Template Matching Trang 11 Hình 2: Ví dụ trượt mẫu so sánh Trang 11 Hình 3: Ví dụ điểm sáng giá mô hình Template Matching Trang 12 Hình 4: Tổng quan hệ thống phát đối tượng ảnh Trang 14 Hình 5: đặt trưng Haar-like Trang 16 Hình 6: Các đặc trưng mở rộng đặc trưng Haar-like sở Trang 16 Hình 7: Cách tính Integral Image ảnh Trang 17 Hình 8: Ví dụ cách tính nhanh tổng điểm ảnh vùng D Trang 18 ảnh Hình 9: Ví dụ cách tính nhanh tổng điểm ảnh vùng D ảnh Trang 18 với đặc trưng xoay 45o Hình 10: Boosting Trang 20 Hình 11:Sơ đồ khối mô tả trình huấn luyện mẫu Trang 26 Hình 12: cascade of classifiers Trang 29 Hình 13: Cascade of boosting classifiers Trang 30 Hình 14: Nhận dạng khuôn mặt opencv Trang 32 ADABOOST Page LỜI CẢM ƠN Sau thời gian dài học tập nghiên cứu, cuối chúng em hoàn thành đề tài này, dịp tốt để em gửi lời cảm ơn đến người Em xin cảm ơn khoa Kỹ thuật điện – điện tử, Trường Học Viên Công Nghệ Bưu Chính Viễn Thông, cảm ơn thầy cô khoa tận tình giảng dậy, truyền đạt cho em kiến thức quý báu năm học vừa qua, giúp cho em có tảng kiến thức vững để thực đề tài nghiên cứu học tập sau Cuối cùng, em kính chúc quý Thầy, Cô dồi sức khỏe thành công nghiệp cao quý Chúng em xin chân thành cảm ơn! Trân trọng kính chào ADABOOST Page MỞ ĐẦU Công nghệ thông tin ứng dụng lĩnh vực sống Với hệ thống máy tính, làm nhiều việc, tiết kiện thời gian công sức Điển công việc nhận dạng đối tượng Ngày xưa, muốn giúp tìm nhận biết đối tượng vô khó khăn nhận dạng mặt, vân tay, mắt,… Ngày nay, công việc làm cách tự động nhờ hệ thống nhận dạng đối tượng Phát nhanh đối tượng ảnh phần quan trọng hệ thống nhận dạng đó, giải tốt việc phát hiên nhanh đối tượng giúp tiết kiệm thời gian nâng cao độ xác việc nhận dạng đối tượng Phát nhanh đối tượng toán nhận dạng đơn giản, hệ thống cần phân loại đối tượng đưa vào có phải giống mẫu (đối tượng) mà họ quan tâm hay không Ở mức độ cao nhận dạng đối tượng khuôn mặt, sau phát đối tượng, khuôn mặt so sánh với khuôn mặt có liệu để nhận dạng xem khuôn mặt (thường áp dụng nhận dạng khuôn mặt người tiếng tội phạm bị truy nã) Bài toán phá đối tượng bắt đầu nghiên cứu từ sớm, có nhiều công trình nghiên cứu phát nhanh đối tượng ảnh, nhiên nay, nhà khoa học không ngừng tìm hướng tiếp cận mới, thuật toán nhằm nâng cao hiệu suất việc phát đối tượng việc nhận dạng mặt người Với mục tiêu tìm hiểu giải thuật adaboost, đặc trưng haar-like, mô hình Cascade of Classifiers, đồng thời áp dụng vào toán phát đối tượng ảnh, đề tài trình bày bốn chương với bố cục sau: Chương 1: Tổng quan: Giới thiệu tổng quan toán xác định đối tượng ảnh, ứng dụng khó khăn toán, đồng thời xác định phạm vi đề tài Chương 2: Các hướng tiếp cận : Nêu chi tiết toán phát đối tượng, hướng tiếp cận giải toán, nghiên cứu thành đạt nhà nghiên cứu toán xác định đối tượng ADABOOST Page Chương 3: Cơ sở lý thuyết thuật toán adaboost : Đi sâu vào hướng tiếp cận dựa theo thuật toán học máy adaboost Giới thiệu đặc trưng haar-like đối tượng, cách tính đặc trưng haar-like Tiếp theo giới thiệu mô hình cascade of classifiers cách áp dụng vào toán phát đối tượng ảnh Cuối kết luận hướng phát triển: Tóm tắt kết đạt được, hạn chế nêu lên hướng phát triển tương lai ADABOOST Page NỘI DUNG CHƯƠNG 1: TỔNG QUAN Giới thiệu toán xác định nhanh đối tượng ảnh + Trong nước : Cùng với hội nhập công nghệ ứng dụng tiên tiến, môn học Xử lý ảnh trở thành môn học nhiều chuyên ngành Khoa học máy tính, Xử lý tín hiệu truyền thông,… Không dừng lại môn học lý thuyết, kiến thức trang bị môn Xử lý ảnh trở thành tảng nhiều ứng dụng Tại Việt Nam có nhiều nghiên cứu ứng dụng xử lý ảnh để giải toán thực tế nhận dạng khuôn mặt, nhận dạng vân tay, … + Quốc tế : Nhận dạng đối tượng lĩnh vực kết hợp xử lý ảnh công nghệ thông tin quan tâm đông đảo nhà nghiên cứu giới Đây mấu chốt cho việc tăng cường độ xác chất lượng hệ thống nhận dạng thời gian thực Định nghĩa toán phát đối tượng Phát nhanh đối tượng kỹ thuật máy tính để xác định vị trí kích thước đối tượng ảnh Kỹ thuật nhận biết đặc trưng đối tượng bỏ qua thứ khác đối tượng quan tâm Các hướng tiếp cận Dựa vào tính chất phương pháp xác định đối tượng ảnh, phương pháp chia thành bốn loại chính, tương ứng với bốn hướng tiếp cận khác Ngoài có nhiều nghiên cứu mà phương pháp xác định đối tượng không dựa vào hướng mà có liên quan đến nhiều hướng • Hướng tiếp cận dựa tri thức: Dựa vào thuật toán, mã hóa đặc trưng quan hệ đặc trưng khuôn mặt thành luật Đây hướng tiếp cận theo kiểu top-down • Hướng tiếp cận dựa đặc trưng không thay đổi: Xây dựng thuật toán để tìm đặc trưng không thay đổi không gian quan sát thay đổi ADABOOST Page • Hướng tiếp cận dựa so sánh khớp mẫu: Dùng mẫu chuẩn theo tiêu chuẩn lưu trữ liệu để so sánh Phương pháp dùng để xác định vị trí đối tượng cần nghiên cứu • Hướng tiếp cận dựa diện mạo: Trái ngược với hướng tiếp cận dựa khuôn mẫu, mô hình (hay mẫu) học từ tập ảnh huấn luyện mà thể tính chất tiêu biểu xuất đối tượng ảnh Sau hệ thống (mô hình) xác định đối tượng cần nghiên cứu Phương pháp biết đến với tên gọi tiếp cận theo phương pháp học máy 3.1 Hướng tiếp cận dựa tri thức Có nhiều cách để xây dựng chương trình xác định đối tượng dựa theo hướng tiếp cận dựa tri thức Thông thường chương trình xây dựng theo hướng dựa vào phương pháp chọn ứng viên ảnh trước, sau áp dụng luật để xác định đâu đối tượng nhắc đến cần nghiên cứu, ứng viên đối tượng nghiên cứu Quá trình áp dụng nhiều lần để giảm thiểu sai sót không đáng có Ví dụ: Ta muốn xác định khuôn mặt đối tượng cần nghiên cứu Đầu tiên dựa tri thức ta tìm quy luật khuôn mặt nghiên cứu Tiếp theo, dùng tập luật để mô tả tổng quát hình dáng khuôn mặt, lọc ứng viên mức thành tập ứng viên có xác xuất khuôn mặt cao Cuối cùng, ta dùng tập luật khác để xem xét mức chi tiết đặc trưng khuôn mặt (có thể đặc trưng mắt, mũi, miệng …), từ lọc ứng viên xác 3.2 Hướng tiếp cận dựa đặc trưng không thay đổi Tiếp cận dựa đặc trưng không thay đổi tiếp cận theo kiểu bottom up Dựa thực tế, cố gắng tìm đặc điểm không thay đổi đối tượng không gian thời gian khác địa điểm, tính chất vật lý đối tượng Đã có nhiều nghiên cứu hướng tiếp cận này, đặc điểm không thay đổi tìm thấy tính chất lý học, hóa học, kích thước, hình dạng đối tượng nghiên cứu… Trên sở đặc trưng này, nhà nghiên cứu xây dựng lên mô hình thống kê mô tả quan hệ đặc ADABOOST Page 10 Các weak classifiers hk(x) phân loại yếu, biểu diễn sau: Trong đó: X : mẫu hay cửa sổ cần xét ( X = (x 1,x2,…,xn) vector đặc trưng mẫu) : ngưỡng k fk: giá trị đặc trưng Haar-like pk: hệ số định chiều bất phương trình Công thức diễn giải sau: Nếu giá trị đặc trưng mẫu cho hàm đánh giá phân loại vượt qua ngưỡng cho trước mẫu đối tượng cần nhận dạng ( gọi object), ngược lại mẫu background (không phải đối tượng ) a Học Thuật B1 Cho tập gồm n mẫu có đánh dấu (x 1,y1), (x2,y2),… (xn,yn) với xk ∈ (xk1, xk2, … , xkm) vector đặc trưng y k ∈ (-1, 1) nhãn mẫu (1 ứng với object, -1 ứng với background) B2 Khởi tạo trọng số ban đầu cho tất mẫu: với m số mẫu (ứng với object y = 1) l số mẫu sai (ứng với background y = -1) B3 Xây dựng T weak classifiers Lặp t = 1, …, T • Với đặc trưng vector đặc trưng, xây dựng weak classifier h j với ngưỡng θj lỗi εj • Chọn hj với εj nhỏ nhất, ta ht: • Cập nhật lại trọng số: • Trong đó: : Hệ số dùng để đưa đoạn [0,1] (normalization factor) Strong classifier xây dựng : ADABOOST Page 28 b Hiểu thuật toán Thuật toán bắt đầu việc khởi tạo trọng số mẫu huấn luyện Các trọng số chia làm hai: trọng số với mẫu trọng số với mẫu sai Ở vòng lặp, ta làm việc: - Thứ 1: tìm phân lớp yếu hj dựa vào độ lỗi nhỏ Công thức tính độ lỗi: Công thức đơn giản tính tổng trọng số mẫu bị phân loại sai -Thứ 2: cập nhật trọng số theo nguyên tắc: ta tăng trọng số cho mẫu bị phân loại sai giảm trọng số cho mẫu phân loại Bằng cách này, vòng lặp kế ta xây dựng phân lớp yếu theo hướng tập trung giải mẫu bị phân loại sai phân loại yếu trước ADABOOST Page 29 Trong đó: Ta nhận thấy mẫu phân lớp trọng số giảm xuống; mẫu bị phân loại sai thì: Ta thấy Thật vậy, giả sử , nghĩa tỉ lệ phần sai lớn phần Điều mâu thuẫn với điều kiện phân lớp yếu tối ưu (có độ lỗi nhỏ nhất) cần đổi chiều mặt phẳng phân lớp ta có phân lớp yếu tốt Và nên : trọng số mẫu bị phân lớp sai tăng lên Để trực quan, ta quan sát thuật toán thông qua chuỗi hình vẽ đây: -Khởi tạo trọng số cho mẫu: -Vòng loại 1: ADABOOST Page 30 -Vòng loại 2: -Vòng loại 3: -Kết hợp phân lớp yếu lại: ADABOOST Page 31 Cuối cùng, kết hợp tuyến tính phân lớp yếu lại ta phân lớp mạnh: Sơ đồ khối: ADABOOST Page 32 Tập mẫu Tập mẫu trọng số Bắt đầu huấn luyện Khởi tạo tập đặc trư Mẫu Mẫusai Đặc trưng Xác định đặc trưng mẫu, xây dựng phân loạih Cập nhật lại trọng số Tính toán giá trị lỗi cho đặc trưng (false alarm) Sai Xác định ngưỡng Kết thúc, strong classifier đuợc xây dựng classif Chọn weak classifier có giá trịLưu lỗi weak bé Đúng False alarm ≤ max false alarm Hình 11:Sơ đồ khối mô tả trình huấn luyện mẫu Quá trình huấn luyện phân loại thực vòng lặp mà bước lặp, thuật toán chọn weak classifier h t thực việc phân loại với lỗi εt nhỏ (do phân loại tốt nhất) để bổ sung vào strong classifier Mỗi chọn phân loại ht, Adaboost tính giá trị αt theo công thức αt chọ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 ht: • Trong công thức phân loại H(x): Ta thấy tất phân loại ht có đóng góp vào kết phân loại H(x), mức độ đóng góp chúng phụ thuộc vào giá trị α t ADABOOST Page 33 tương ứng: ht với αt lớn có vài trò quan trọng H(x) • Trong công thức tính αt: Dễ thấy giá trị αt tỉ lệ nghịch với εt Bởi ht chọn với tiêu chí đạt εt nhỏ nhất, đảm bảo giá trị αt lớn Sau tính giá trị α t, Adaboost tiến hành cập nhật lại trọng số mẫu: tăng trọng số mẫu mà h t phân loại sai, giảm trọng số mẫu mà h t phân loại Bằng cách này, trọng số mẫu phản ánh mức độ khó nhận dạng mẫu ht+1 ưu tiên học cách phân loại mẫu Vòng lặp xây dựng strong classifier dừng lại sau T lần lặp Trong thực tế cài đặt (thư viện OpenCV Intel), người ta sử dụng giá trị T công thức đảm bảo tính giá trị T tối ưu cho 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 mẫu background) Tỉ lệ phân loại cần xây dựng không phép vượt giá trị Khi đó, qua lần lặp, false alarm strong classifier Ht(x) xây dựng (tại lần lặp thứ t) giảm dần, vòng lặp kết thúc tỉ lệ thấp max false alarm 3.5 Cascade of Classifiers Ta thấy trình huấn luyện, phân loại phải duyệt qua tất đặc trưng mẫu tập training Việc tốn nhiều thời gian Tuy nhiên, mẫu đưa vào, mẫu thuộc loại khó nhận dạng, có mẫu background dễ nhận (ta gọi mẫu background đơn giản) Đối với mẫu này, ta cần xét hay vài đặc trưng đơn giản nhận diện không cần xét tất đặc trưng Nhưng phân loại thông thường cho dù mẫu cần nhận dạng dễ hay khó xét tất đặc trưng mà rút trình học Do đó, chúng tốn thời gian xử lý cách không cần thiết Cascade of Classifiers xây dựng nhằm rút ngắn thời gian xử lý, giảm thiểu false alarm cho phân loại Cascade tree gồm nhiều stage (hay gọi layer), stage stage classifier Một mẫu để ADABOOST Page 34 phân loại đối tượng cần phải qua hết tất stages Các stage classifiers stage sau huấn luyện mẫu negative mà stage classifier trước nhận dạng sai, tức tập trung học từ mẫu background khó hơn, kết hợp stage classifiers lại giúp phân loại có false alarm thấp Với cấu trúc hiểu bước sau: • Những mẫu background dễ nhận diện bị loại từ stages Ở đây, stage classifiers đơn giản đo đó, độ phức tạp tính toán thấp • Những background cho đối tượng stage classifiers đầu xét stage classifiers tiếp theo: cho đối tượng tiếp tục stage classifiers phía sau, đối tượng loại bỏ • Các stage classifiers sau phức tạp hơn, đòi hỏi tính toán nhiều Quá trình giúp đáp ứng tốt độ phức tạp gia tăng mẫu đưa vào, đồng thời giúp rút ngắn thời gian xử lý Thuật toán Cascade training: Gọi: F giá trị false alarm d độ xác weak classifier stage Ftarget: Giá trị max false alarm P, N số lượng mẫu positive negative Pi, Ni tập positive negative cho phân lớp tầng thứ i Fi, Di: Giá trị false alarm độ xác cascade trước đến tầng thứ i Khởi tạo i=0; F0=1.0; D0 = 1.0 Lặp: while Fi>Ftarget • i = i+1; • Huấn luyện phân loại hi từ tập Pi Ni với detection rate d max false alarm f Thêm hi vào phân lớp • Dùng phân lớp có để tính Fi: Duyệt qua N mẫu negative tìm đủ n mẫu mà phân lớp có phân loại sai ( • N := • Nếu Fi >Ftarget N = { số mẫu sai stage phân loại sai } P = { số mẫu positive mà stage phân loại đúng} Minh họa thuật toán Cascade training: ADABOOST Page 35 stage …… N N-1 hitrate = hN h 1-f h 1-f 1-f h falsealarms = fN 1-f Input pattern classified as a non-object Hình 12: cascade of classifiers Hình minh họa huấn luyện cascade gồm N stages Ở stage, weak classifier tương ứng huấn luyện cho độ xác h false alarm f Tóm lại, chuỗi phân lớp xử lý mẫu (cửa sổ con) vào theo nguyên tắc sau: phân lớp cho đổi tượng ta loại bỏ ngay; phân lớp cho đối tượng chuyển qua phân lớp sau Nếu mẫu trót lọt hết tất phận lớp ta định đối tượng Ví dụ: Ta bắt đầu với weak learners Ta training chúng 10 hiệp tập liệu người bệnh Tập liệu chưa thông tin chi tiết hồ sơ y tế bệnh nhân Và câu hỏi đặt cho thuật toán adaboost để phát bệnh nhân bị ung thư Trong hiệp 1: Adaboost lấy mẫu tập huấn luyện kiểm tra độ xác learners Kết cuối trả learners có độ xác cao Ngoài ra, mẫu liệu bị phân loại sai đánh lại trọng số lơn để có hội cao việc lấy mẫu hiệp Trong hiệp 2: Adaboost lần cố gắng tìm learners có độ xác cao Điểm đáng lưu ý mẫu liệu tập huấn luyện bị ảnh hưởng nhiều trọng số phân lớp sai Tương tự vậy, learners có khả phân loại nhóm bệnh nhân xác Thay cố gắng phân lớp bệnh nhân lần nữa, ta tập trung vào phân lớp bệnh nhân bị phân lớp sai ADABOOST Page 36 Khi đó, leaners tốt lần đánh trọng số tích hợp vào quần thể classifier Sau 10 hiệp vậy: ta lại quần thể learners đánh trọng số sau nhiều lần huấn luyện lặp lặp lại hiệp trước mẫu liệu bị phân lớp sai 3.6 Cascade of boosting classifiers Cascade of boosting classifiers mô hình cascade of classifiers với classifier xây dựng Adaboost sử dụng haar-like NON-CLASS N Y N N Y Y N C L A S S I Hình 13: Cascade of boosting classifiers Viola Jones sử dụng thành công dãy phân loại cho 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 đưa ảnh grayscale kích thước 24x24 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 haarlike Thực nghiệm cho thấy classifier stage sử dụng đặc trưng loại khoảng 50% mẫu background (không phải mặt người) có độ xác d = 100% Classifier stage thứ sử dụng 10 đặc trưng loại 80% ADABOOST Page 37 mẫu background với độ xác 100% Hệ thống so sánh với hệ thống Rowley-Baluja-Kanade (sử dụng mạng neural), SchneidermanKanade (sử dụng phương pháp thống kê), cho thấy tỉ lệ nhận dạng ngang nhau, hệ thống Viola Jones chạy nhanh đến 15 lần so với hệ thống Rowley-Baluja-Kanade nhanh 600 lần hệ thống Schneiderman-Kanade Lý mà cấu trúc cascade đạt tốc độ nhận dạng nhanh nhờ sớm loại bỏ mẫu background đơn giản (thường có số lượng lớn nhiều so với mẫu chứa object – 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 Viola Jones đạt độ xác cao nhờ vào thuật toán huấn luyện dãy liên tục, nhận dạng huấn luyện AdaBoost với đặc trưng Haar-like mô tả tốt thông tin đối tượng, với cách Integral Image tính nhanh đặc trưng, không làm giảm tốc độ nhận dạng hệ thống Như vậy, mô hình Cascade of Boosted Classifiers thật cách tiếp cận tốt tốc độ lẫn khả nhận dạng, phù hợp với nhận dạng mặt người ADABOOST Page 38 KẾT LUẬN Kết luận: Trên sở nghiên cứu lý thuyết toán phát đối tượng ảnh Đặc biệt thuật toán Adaboost, đặc trưng haar-like mô hình Cascade of Classifier Thì chúng em có tìm hiểu thêm thư viện mã nguồn mở opencv để phát khuôn mặt ảnh Trong thực tế, ta phải huấn luyện dựa vào đặc trưng haar-like sau dựa vào tập huận luyện để phát đối tượng Để có tập huấn luyện này, với ảnh đầu vào trước hết phải xám hóa, sau cho nhiều hình chữ nhật chứa đặc trưng haar-like chạy khắp ảnh, chỗ khác biệt lưu trữ lại Tập hợp hàng nghìn điểm khác biệt hàng trăm đối tượng khác tập liệu cho việc phát đối tượng, lưu vào file kết huấn luyện *XML Về chương trình demo, chúng em sử dụng phần mềm opencv với thư viện haarcascade_frontalface_alt.xml để phát mặt người Chương trình đạt kết tốt, thời gian phát nhanh ảnh mặt người chụp thẳng, chất lượng ảnh tốt (chụp máy kĩ thuật số), nhiên ảnh chụp nghiêng hay ảnh có mầu sắc tối chương trình gần phát khuôn mặt ảnh Đây ví dụ chúng em thực hiện: Hình 14: Nhận dạng khuôn mặt opencv ADABOOST Page 39 Ưu, nhược điểm • Ưu điểm: - Là thuật toán đơn giản dễ cài đặt - Tốc độ phát nhanh do: + Các weak leaner đơn giản nhiều strong learner, nhờ tốc độ chạy nhanh + Integral Image tính nhanh đặc trưng - Là thuật toán linh hoạt đa năng, nhờ kết hợp với bất lỳ thuật toán học khác làm việc với lượng lớn liệu khác - Có độ xác cao • Nhược điểm - Quá trình huấn luyện tạo file *.XML tương đối chậm Hướng phát triển: Có nhiều hướng phát triển cho chương trình này, phát triển mặt ứng dụng mặt thuật toán Có thể xây dựng ứng dụng cần đến phát đối tượng mà không cần nhận dạng Ví dụ hệ thống ghép hình, ghép khuôn mặt phát vào ảnh khác (chẳng hạn ghép khuôn mặt người sử dụng cho khuôn mặt người tiếng) Ngoài phát triển chương trình theo hướng phát bám sát đối tượng thông qua video, webcam Bên cạnh áp dụng thiết bị điện tử ADABOOST Page 40 Tài liệu tham khảo https://en.wikipedia.org/wiki/AdaBoost https://en.wikipedia.org/wiki/Haar-like_features http://www.comvisap.com/2011/11/ebook-ung-dung-xu-ly-anh-trong-thucte.html http://www.mathworks.com/discovery/object-recognition.html ……… ADABOOST Page 41 CODE #include // #include #include #include #include using namespace std; int main() { cv::Mat src = cv::imread("faces.jpg"); cvNamedWindow("truoc", 1); cv::imshow("Truoc", src); cv::CascadeClassifier c; c.load("haarcascade_frontalface_alt.xml"); std::vector faces; c.detectMultiScale(src, faces, 1.1, 2, CV_HAAR_SCALE_IMAGE, cv::Size(30, 30)); for (std::vector::const_iterator r = faces.begin(); r < faces.end(); r++) { cv::Point center; center.x = r->x + (int)r->width / 2; center.y = r->y + (int)r->height / 2; cv::circle(src, center, 35, CV_RGB(255, 0, 0), 2, 8, 0); } cvNamedWindow("adaboost", 1); cv::imshow("adaboost", src); } cvWaitKey(0); return 0; ADABOOST Page 42 [...]... khuôn mặt, nó là một nền tảng để phát triển những thuật toán khác Thực tế có rất nhiều tác giả áp dụng PCA, kết hợp với những phương pháp như mạng neural, xác suất thống kê để xây dựng những thuật toán có độ chính xác cao - Ưu điểm: PCA là nó dễ cài đặt, nếu ta xét bài toán tìm khuôn mặt giống nhau thì chỉ cần cấp áp dụng hoàn toàn theo lý thuyết là đã có độ chính xác khá cao, nếu áp dụng cho bài toán. .. trưng Haar-like để phân loại ảnh là mặt hay không phải mặt - Cascade of Classifiers: bộ phân loại tầng với mỗi tầng là một bộ phân loại Adaboost, có tác dụng tăng tốc độ phân loại Như vậy bài toán xác định mặt người trong ảnh cũng chính là bài toán phân loại ảnh thành hai lớp mặt hoặc không phải mặt Adaboost được đánh giá là phương phát tiếp cận nhanh nhất trong các thuật toán học máy Nó thường được kết... nhanh dựa trên integral image tại 4 đỉnh của nó: Sum (D ) = 4 - 2 – 3 + 1 ADABOOST Page 25 3.4 Thuật toán Adaboost Thuật toán học máy Adaboost được phát triển dựa trên thuật toán boosting, do đó tôi sẽ trình bày một chút về thuật toán boosting trước khi trình bày về adaboost 3.4.1 Tiếp cậ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ể... bài toán tìm vị trí khuôn mặt thì cần phải có một thuật toán nữa để sử dụng face map thu được theo lý thuyết - Nhược điểm: PCA là các mẫu khuôn mặt hoàn toàn phụ thuộc vào tập huấn luyện, có nghĩa là các khuôn mặt trong ảnh kiểm tra phải giống với các ảnh huấn luyện về kích thước, tư thế, độ sáng Thực tế trong tập huấn luyện thường gồm nhiều nhóm hình, mỗi nhóm là hình của một người với tư thế, độ sáng... 3.2 Thuật toán Adaboost - Có rất nhiều phương pháp để giải quyết bài toán xác định nhanh đối tượng dựa trên các hướng tiếp cận khác nhau Phương pháp Haar-like – Adaboost của hai tác giả Paul Viola và Michael J.Jones là phương pháp xác định mặt người dựa theo hướng tiếp cận trên diện mạo Tốc độ xử lý khá nhanh và tỷ lệ chính xác hơn 80% trên ảnh xám - Hướng tiếp cận trên diện mạo tức là hệ thống nhận. .. độ khó nhận dạng củ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ức nà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... 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 bị 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ận dạ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ừa xây dựng... các phương thức kernel chiếu 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à từ đó có thể sử dụng mặt phẳng phân loại để phân loại các mẫu là đối tượng hay không phải là đối tượng ADABOOST Page 14 CHƯƠNG 2: SƠ LƯỢC VỀ THUẬT TOÁN PCA VÀ ADABOOST 3.1 Thuật toán PCA PCA là một trong những phương pháp với nhiều đặc tính tốt: - Giúp giảm số chiều của dữ liệu - Thay vì giữ lại... trực giao đôi một với nhau, mặc dù trong không gian ban đầu, các trục có thể không trực giao dài dòng như vậy là đủ, ta sẽ trình bày từng bước thuật toán pca trong phần tới chi tiết về ý tưởng và khai triển toán học được dành lại để trình bày ở cuối bài 2 thuật toán pca cho ma trận các bước của pca lần lượt như sau: 1 tiền xử lí ADABOOST Page 16 dữ liệu ban đầu có thể có giá trị thay đổi bất thường... để tính toán các gốc giái trị của các đặc trưng, từ những giá trị đặc trưng này đưa vào bộ phân loại Adaboost ta sẽ xác định được ảnh có khuôn mặt hay không - Integral Image: thực ra đây là một công cụ giúp việc tính toán các giá trị đặc trưng haar-like nhanh hơn - Adaboost: bộ phân loại (bộ lọc) hoạt động dựa trên nguyên tắc kết hợp các bộ phân loại yếu để tạo ra bộ phân loại mạnh Adaboost sử dụng giá ... PCA dễ cài đặt, ta xét toán tìm khuôn mặt giống cần cấp áp dụng hoàn toàn theo lý thuyết có độ xác cao, áp dụng cho toán tìm vị trí khuôn mặt cần phải có thuật toán để sử dụng face map thu theo... mặt, sau phát đối tượng, khuôn mặt so sánh với khuôn mặt có liệu để nhận dạng xem khuôn mặt (thường áp dụng nhận dạng khuôn mặt người tiếng tội phạm bị truy nã) Bài toán phá đối tượng bắt đầu nghiên... 25 3.4 Thuật toán Adaboost Thuật toán học máy Adaboost phát triển dựa thuật toán boosting, trình bày chút thuật toán boosting trước trình bày adaboost 3.4.1 Tiếp cận Boosting Về lịch sử, boosting

Ngày đăng: 09/12/2016, 12:57

Từ khóa liên quan

Mục lục

  • Người hướng dẫn : Phạm Văn Sự

  • Người hướng dẫn : TS. Lê Ngọc Thúy

  • PHỤ LỤC

    • Phụ lục A : Danh sách các thuật ngữ dùng trong đề tài

    • Phụ lục B: Danh sách các hình vẽ

    • LỜI CẢM ƠN

    • MỞ ĐẦU

    • NỘI DUNG

    • CHƯƠNG 1: TỔNG QUAN

      • 1. Giới thiệu về bài toán xác định nhanh đối tượng trong ảnh.

      • 2. Định nghĩa bài toán phát hiện đối tượng.

      • 3. Các hướng tiếp cận

        • 3.1. Hướng tiếp cận dựa trên tri thức

        • 3.2. Hướng tiếp cận dựa trên đặc trưng không thay đổi.

        • 3.3. Hướng tiếp cận dựa trên so sánh khớp mẫu.

        • 3.4. Hướng tiếp cận dựa trên diện mạo.

        • CHƯƠNG 2: SƠ LƯỢC VỀ THUẬT TOÁN PCA VÀ ADABOOST

          • 3.1. Thuật toán PCA

            • 2. thuật toán pca

            • 3.3. Sơ đồ khối:

            • 3.2. Thuật toán Adaboost

              • 3.2.Tiền xử lý

              • 3.3.Đặc trưng haar-like

              • 3.4. Thuật toán Adaboost

                • 3.4.1 Tiếp cận Boosting

                • 3.4.2.Thuật toán Adaboost

                  • a. Học Thuật

                  • b. Hiểu thuật toán

Tài liệu cùng người dùng

Tài liệu liên quan