Biometric image processing

24 293 5
Biometric image processing

Đ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

ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO BÀI TẬP LỚN MÔN XỬ LÝ ẢNH Đề Tài Biometric Image Processing: Face Detection using Haar Classifier Giảng viên hướng dẫn: PGS.TS Nguyễn Hoàng Lan Nhóm sinh viên thực hiện: Nguyễn Văn Sơn - MSSV 20143863 – KSTN CNTT K59 Trương Quang Toàn - MSSV 20134028 – KSTN CNTT K58 Hà Nội ngày 20 tháng 12 năm 2017 MỤC LỤC I GIỚI THIỆU CHUNG II BÀI TỐN PHÁT HIỆN KHN MẶT Khái quát toán Sơ đồ khối chức hệ thống Haar Classifier 2.1 Training 2.2 Test …………………………………………………………………………………………………………….5 III NGUYÊN LÝ HOẠT ĐỘNG Huấn luyện xây dựng hệ thống 1.1 Trích xuất đặc trưng 1.2 Integral Image 1.3 Thuật toán phân loại 1.4 Cấu trúc phân tầng 14 Test độ đo hiệu hệ thống 19 IV CÀI ĐẶT THỰC NGHIỆM 19 V KẾT LUẬN 23 VI TÀI LIỆU THAM KHẢO 24 I GIỚI THIỆU CHUNG Phát khuôn mặt (Face detection) chủ đề nghiên cứu nhiều lĩnh vực thị giác máy tính Mục đích tốn phát khn mặt xác định xem có khn mặt người hay khơng ảnh bất kì, có, trả lại vị trí khung nhìn với khn mặt Một số ứng dụng tốn xác định khuôn mặt là: hệ thống tương tác người máy (điều kiển máy tính qua cử động khuôn mặt), hệ thống nhận dạng người (giúp cho quan an ninh quản lý người), hệ thống quan sát theo dõi, hệ thống quản lý việc vào cho quan công ty, hệ thống kiểm tra người lái xe có ngủ gật hay khơng, hệ thống phân tích cảm xúc khn mặt, hệ thống nhận dạng khuôn mặt cho máy ảnh kỹ thuật số Con người xác định khuôn mặt dễ dàng, nhiệm vụ khó khăn với máy tính lí kích thước ảnh, vị trí, góc nhìn, độ sáng tối Hiện có nhiều phương pháp nhận dạng khuôn mặt người, dựa vào tính chất phương pháp, ta chia làm bốn hướng tiếp cận sau: Hướng tiếp cận dựa tri thức: mã hoá hiểu biết người loại khuôn mặt tạo tập luật để xác định khuôn mặt Hướng tiếp cận dựa đặt tả không thay đổi: mục tiêu thuật tốn tìm đặt trưng mơ tả cấu trúc khuôn mặt người (các đặt trưng không thay đổi với tư thế, vị trí đặt thiết bị thu hình, độ sáng tối thay đối ) Hướng tiếp cận dựa so khớp mẫu: dùng mẫu chuẩn hay đặt trưng khuôn mặt người Hướng tiếp cận dựa diện mạo: phương pháp học từ tập ảnh huấn luyện mẫu để xác định khuôn mặt người Trong báo cáo này, chúng em trình bày chi tiết hệ thống dựa hướng tiếp cận diện mạo, hệ thống Haar Classifier Voila-Jones đề xuất Đây hệ thống có ảnh hưởng lớn phát khn mặt nhanh chóng cho độ xác cao Báo cáo tập trung tìm hiểu chi tiết kiến thức có liên quan vài thử nghiệm phát khuôn mặt với hệ thống Nội dung báo cáo sau: phần II trình bày khái qt tốn phát khn mặt sơ đồ khối chức hệ thống; phần III trình bày chi tiết bước xây dựng hệ thống, bao gồm vấn đề trích xuất đặc trưng, phương pháp biểu diễn ảnh “Integral Image”, thuật toán phân loại dựa Adaboost, mơ hình phân tầng; phần IV cài đặt thực nghiệm hệ thống Haar Classifier, phần V phần kết luận II BÀI TỐN PHÁT HIỆN KHN MẶT Khái qt tốn Bài tốn phát khn mặt xem toán toán phát vật thể Nhiệm vụ toán phát vật thể xác định vị trí kích cỡ tất vật thể loại ảnh Bài toán phát khn mặt thực chất tốn phân loại Đầu vào hệ thống phát khuôn mặt ảnh, hệ thống cần cho biết ảnh có tồn tài khn mặt hay khơng Do đó, để giải tốn này, ta áp dụng kĩ thuật học máy, sử dụng tập ảnh gán nhãn (có mặt người khơng có mặt người) để tìm đặc trưng có ích cho q trình xác định mặt người Sau đó, sử dụng đặc trưng để xác định ảnh có mặt người hay không Sơ đồ khối chức hệ thống Haar Classifier Hệ thống Haar Classifier có pha, pha huấn luyện (training) pha kiểm tra (test) 2.1 Training Hệ thống huấn luyện với tập liệu nhiều ảnh liệu có kích thước 24x24 Cụ thể gồm có 4916 ảnh chứa khn mặt (mặt chụp góc diện) 350 triệu ảnh khơng có mặt Về sơ đồ khối tổng quát gồm bước sau: Hình 1: Sơ đồ khối pha huấn luyện hệ thống 2.2 Test Sau hồn thành pha Training, thu mơ hình định để sử dụng cho pha Test Với ảnh đầu vào mới, chia thành sub-windows 24x24 giống kích thước ảnh liệu tập training, mơ hình accepted discarded sub-window tương ứng sub-window có mặt người hay khơng, từ xác định vị trí có khn mặt người ảnh ban đầu Hình 2: Sơ đồ khối pha test hệ thống III NGUYÊN LÝ HOẠT ĐỘNG Trước hết tìm hiểu chi tiết phần pha huấn luyện (training) hệ thống Haar Classifier 1.1 Huấn luyện xây dựng hệ thống Trích xuất đặc trưng a) Các đặc trưng Haar-like Trong phần này, tìm hiểu khái niệm gọi đặc trưng Haar-like Trước hết đặc trưng Haar-like bản, Viola Johns cơng bố, gồm cửa sổ hình chữ nhật có dạng sau (Loại thứ đặc trưng hai hình chữ nhật Các vùng chữ nhật có kích thước giống Loại thứ hai đặc trưng ba hình chữ Cuối đặc trưng bốn hình chữ nhật , vùng đen trắng đổi ngược nhau): Hình 3: Các đặc trưng Haar-like Để sử dụng đặc trưng vào việc phát khuôn mặt người, đặc trưng mở rộng thành nhiều dạng, chia thành tập sau: Tập đặc trưng cạnh (edge features): Tập đặc trưng đường (line features): Tập đặc trưng xung quanh tâm (center-surround features): Hình 4: Các đặc trưng Haar-like mở rộng b) Trích xuất đặc trưng Sử dụng đặc trưng Haar-like bản, tiến hình trích xuất feature từ tập ảnh liệu training sau Các ảnh xét ảnh đa mức xám với kích thước 24x24 Với đặc trưng Haarlike (kích thước thay đổi), đặt vị trí khác ảnh 24x24, kích thước cách đặt gọi feature Số lượng features thu lớn, chẳng hạn xét dạng với tất kích thước vị trí đặt số features đạt 160 000, vượt xa số lượng pixel 24x24=576 Hình 5: Minh họa cho số features Giá trị feature ảnh liệu cụ thể khác nhau, tính tổng pixel nằm vùng chữ nhật trắng trừ tổng pixel nằm vùng chữ nhật đen Hình 6: Giá trị số features ảnh cụ thể Chú ý hình trên, trích xuất giá trị hai features mang thông tin quan trọng: feature thứ tập trung vào tính chất khn mặt người vùng mắt thường tối vùng mũi má, feature thứ hai dứa vào tính chất vùng mắt tối phần sống mũi Với ảnh 24x24 có 160 000 features đa số khơng mang nhiều ý nghĩa cho việc phát khuôn mặt, chẳng hạn feature vùng má khơng có nhiều ý nghĩa khơng có vùng sáng hay tối vùng khác, cần phương pháp thuật tốn giúp chọn features tốt nhất, vừa đảm bảo hiệu phát hiện, đồng thời chi phí tính toán giảm nhiều Cụ thể vấn đề thảo luận phần sau Như theo cách với ảnh liệu tập training thực tính tốn giá trị features theo cách Và gọi bước trích xuất đặc trưng (extract features) hệ thơng Haar Classifier 1.2 Integral Image Trong phần trước tìm hiểu việc trích xuất đặc trưng ảnh liệu tập training sử dụng đặc trưng Haar-like Vấn đề đặt rõ ràng việc tính tốn giá trị features ảnh tốn theo cách thơng thường Do phần tìm hiểu cách biểu diễn ảnh, gọi Integral Image, cho phép tính tốn nhanh giá trị features ảnh Xét ảnh 24x24 tập training Giả sử giá trị pixel điểm điểm (𝑥, 𝑦) 𝑖(𝑥, 𝑦), Integral Image có kích thước có giá trị điểm (𝑥, 𝑦) là: 𝑖𝑖 (𝑥, 𝑦) = ∑ 𝑖(𝑢, 𝑣) 𝑢≤𝑥, 𝑣≤𝑦 tức giá trị integral image điểm (𝑥, 𝑦) tổng pixel nằm hình chữ nhật có góc bên trái (0,0) góc bên phải (𝑥, 𝑦) ảnh ban đầu Sử dụng công thức đệ quay sau cho phép tính tốn nhanh giá trị Integral Image Đặt 𝑠(𝑥, 𝑦) = ∑1≤𝑢≤𝑦 𝑠(𝑥, 𝑢) ta được: 𝑠(𝑥, 𝑦) = 𝑠(𝑥, 𝑦 − 1) + 𝑖(𝑥, 𝑦) 𝑖𝑖 (𝑥, 𝑦) = 𝑖𝑖 (𝑥 − 1, 𝑦) + 𝑠(𝑥, 𝑦) Với quy ước 𝑠(𝑥, −1) = 0, 𝑖𝑖 (−1, 𝑦) = Hình 7: Minh họa cách biểu diễn từ ảnh ban đầu sang ảnh integral Ta có nhận xét quan trọng sau: với cách biểu diễn thành Integral Image, vùng hình chữ nhật ảnh ban đầu tính tốn với nhiều lần tham chiếu đến Integral Image Thật vậy, xét ví dụ minh họa sau: Hình Giả sử ảnh ban đầu có vùng A,B,C,D tổng giá trị pixel vùng, chẳng hạn vùng A ký hiệu 𝑝(𝐴) Khi ta có: 𝑝(𝐴) = 𝑖𝑖 (1), 𝑝(𝐴 + 𝐵) = 𝑖𝑖 (2), 𝑝(𝐴 + 𝐶 ) = 𝑖𝑖 (3), 𝑝(𝐴 + 𝐵 + 𝐶 + 𝐷 ) = 𝑖𝑖(4) Suy ra: 𝑝(𝐶 ) = 𝑖𝑖 (3) − 𝑖𝑖 (1), 𝑝(𝐵) = 𝑖𝑖 (2) − 𝑖𝑖 (1), 𝑝(𝐷) = 𝑖𝑖 (4) − 𝑖𝑖 (2) − 𝑖𝑖 (3) + 𝑖𝑖(1) hay tổng giá trị pixel vùng vùng A,B,C,D ảnh ban đầu với với nhiều lần tham chiếu đến Integral Image Từ dễ thấy giá trị features có dạng vùng hình chữ nhật tính lần tham chiếu, vùng lần vùng lần Hình Ví dụ: 𝑓 = −𝑖𝑖 (𝑥1 , 𝑦1 ) + 𝑖𝑖 (𝑥2 , 𝑦2 ) + 2𝑖𝑖 (𝑥3 , 𝑦3 ) − 2𝑖𝑖 (𝑥4 , 𝑦4 ) − 𝑖𝑖 (𝑥5 , 𝑦5 ) + 𝑖𝑖(𝑥6 , 𝑦6 ) 1.3 Thuật toán phân loại Như với ảnh đầu vào tập training, cách biểu diễn theo integral image, ta tính giá trị features ảnh cách hiệu Bây ta quan tâm đến việc features có vai trò hệ thống phát khn mặt xem xét? Có nhiều phương pháp, đặc biệt phương pháp học máy, sử dụng chúng để học hàm phân lớp cho mục đích phát ảnh khn mặt sử dụng mơ hình trộn Gaussian, Support Vector Machine, Decision Trees hay Neural Network… Tuy nhiên hệ thống Haar Classifier xem xét, tác giả sử dụng biến thể thuật toán AdaBoost để lựa chọn features tốt xây dựng phân loại Về AdaBoost có nhiều biến thể khác nhau, dạng gốc sử dụng để tăng cường hiệu phân loại cho số thuật tốn học phân lớp đơn giản (đơi gọi “weak”-yếu) Perceptron Learning Algorithm (PLA) … Và hệ thống Haar Classifier, sử dụng ý tưởng tương tự thế, trước hết từ features, tác giả xây dựng Weak Classifier, sau sử dụng AdaBoost để lựa chọn kết hợp Weak Classifier lại thành phân lớp hiệu quả, gọi Strong Classifier a) Weak classifiers Nhắc lại với ảnh liệu đầu vào 24x24, sử dụng hàm Haar có 16000 features, features có giá trị khác ảnh khác Sau xét trên, trích xuất giá trị features cho toàn tập liệu training Tương ứng features, giả sử 𝑓𝑗 , xây dựng hàm phân lớp đơn giản, gọi Weak Classifier ℎ𝑗 , với ngưỡng 𝜃𝑗 parity 𝑝𝑗 ∈ {+1, −1} thỏa mãn: ℎ𝑗 (𝑥) = { 𝑛ế𝑢 𝑝𝑗 𝑓𝑗 (𝑥) < 𝑝𝑗 𝜃𝑗 𝑛𝑔ượ𝑐 𝑙ạ𝑖 Với 𝑥 ảnh 24x24 tập training 𝑓𝑗 (𝑥) giá trị feature 𝑓𝑗 ảnh 𝑥 Có thể dễ dàng nhận thấy rằng, Weak Classifiers với liệu tổng quát có hiệu phân loại cao, chất hàm tuyến tính Đây lý mà phân loại gọi “weak” Tuy nhiên chọn ngưỡng 𝜃𝑗 parity 𝑝𝑗 ∈ {+1, −1} phù hợp để độ xác phân loại 50% Vậy chọn nào? Xét feature 𝑓𝑗 , tương ứng với Weak Classifier ℎ𝑗 , thực tính giá trị 𝑓𝑗 (𝑥) với ảnh 𝑥 training Sau xếp giá trị theo thứ tự tăng dần: Hình 10: Chọn ngưỡng cho Weak Classifier Ngưỡng chọn giá trị hai mẫu cho số mẫu phị phân loại sai Ta có thuật tốn cho việc lựa chọn ngưỡng thỏa mãn điều kiện sau:  Với ảnh tập training có khn mặt, ta gọi ảnh có trọng số dương, ngược lại gọi ảnh có trọng số âm  Đặt AFS (all-face-samples) tổng số mẫu có trọng số dương ABG (allbackground) tổng số mẫu có số âm tồn tập training  Với mẫu bất kỳ, gọi FS tổng số mẫu có trọng số dương mà giá trị features 𝑓𝑗 xét nhỏ (nằm bên trái trục biểu diễn) BG tương ứng tổng số mẫu có trọng số âm  Gán mẫu giá trị error định nghĩa sau: 10  Chọn mẫu có error nhỏ tất mẫu  Giá trị feature 𝑓𝑗 mẫu chọn làm ngưỡng 𝜃𝑗 Xét ví dụ: Khi Giá trị feature 𝑓𝑗 mẫu thứ chọn làm ngưỡng 𝜃𝑗 Như tìm hiểu cách xây dựng Weak Classifiers tương ứng với features cho hệ thống Haar Classifier Và nói trước, tiếp tục tìm hiểu cách sử dụng thuật tốn Adaboost để chọn Weak classifier tốt tương ứng với features tốt để tạo Strong classifier Ý tưởng minh họa hình sau đây: Hình 11: Minh họa xây dựng Strong Classifier từ Weak Classifier Cụ thể xem xét mục 11 b) Thuật toán AdaBoost Thuật toán AdaBoost giống phương pháp tham lam, ý tưởng chọn Weak Classifier tốt tương ứng với features tốt (tính tốt trình bày sau), tổ hợp tuyến tính theo trọng số mà Weak Classifier tốt trọng số cao Dưới góc nhìn features, AdaBoost sửu dụng để chọn features tốt cho việc phân loại loại bỏ features khơng có ý nghĩa việc phân loại Với việc có 160 000 features với đặc trưng Haar-like bản, việc loại bỏ bớt features khơng quan trọng có ý nghĩa lớn việc tăng hiệu phân loại giảm tài ngun, chí phí tính tốn cho hệ thống Chi tiết thuật tốn mơ tả sau:  Giả sử tập liệu training gồm n liệu (𝑥1 , 𝑦1 ), … , (𝑥𝑛 , 𝑦𝑛 ) với 𝑥𝑖 ảnh đầu vào 24x24 𝑦𝑖 ∈ {0,1} tương ứng với ảnh 𝑥𝑖 không chứa/chứa khuôn mặt  Ban đầu khởi tạo trọng số: 𝑤1,𝑖 = , 2𝑚 2𝑙 tương ứng với 𝑦𝑖 = 0,1, m l số ảnh không chứa chứa khuôn mặt tập training  Giả sử T số Weak Classifier (tương ứng với T features) mà cần chọn  Với 𝑡 = 1, … , 𝑇: 𝑤𝑡,𝑖 Chuẩn hóa trọng số: 𝑤𝑡,𝑖 ← ∑𝑛 𝑗=1 𝑤𝑡,𝑗 , 𝑤𝑡 = (𝑤𝑡,1 , … , 𝑤𝑡,𝑛 ) phân phối xác suất Với features 𝑓𝑗 tương ứng với Weak Classifier ℎ𝑗 , tính hàm lỗi có trọng số: 𝜀𝑗 = ∑𝑛𝑖=1 𝑤𝑡,𝑖 |ℎ𝑗 (𝑥𝑖 ) − 𝑦𝑖 | Chọn Weak Classifier ℎ𝑡 với lỗi 𝜀𝑡 bé 1−𝑒𝑖 Thực cập nhật trọng số: 𝑤𝑡+1,𝑖 = 𝑤𝑡,𝑖 𝛽𝑡 𝑒𝑖 = mẫu 𝑥𝑖 phân loại đúng, 𝑒𝑖 = trường hợp ngược lại, 𝛽𝑡 = 𝜀𝑡 1−𝜀𝑡  Tổ hợp tuyến tính Weak Classifiers chọn, ta Strong Classifier sau: 𝑇 𝑇 𝑡=1 𝑡=1 1 𝑛ế𝑢 ∑ 𝛼𝑡 ℎ𝑡 (𝑥) ≥ ∑ 𝛼𝑡 ℎ (𝑥 ) = { 𝑛ế𝑢 𝑛𝑔ượ𝑐 𝑙ạ𝑖 𝛼𝑡 = 𝑙𝑜𝑔 𝛽𝑡 12 Ta có số nhận xét sau:  Nếu Weak Classifier ℎ𝑡 có hàm lỗi có trọng số: 𝜀𝑡 = ∑𝑛𝑖=1 𝑤𝑡,𝑖 |ℎ𝑡 (𝑥𝑖 ) − 𝑦𝑖 | bé 𝛽𝑡 bé 𝛼𝑡 lớn Nói cách khác ℎ𝑡 tốt trọng số Strong Classifier ℎ lớn, tức khả phân loại ℎ𝑡 ưu tiên  Việc chuẩn hóa trọng số để đưa phân phối xác suất nhằm mục đích tính kỳ vọng (trung bình) lỗi phân loại  Phép cập nhật trọng số có tính chất: mẫu bị phân loại sai ℎ𝑡 thời điểm 𝑡 đánh trọng số cao nhằm nhấn mạnh cho lần phân loại thời điểm Ví dụ minh họa: Hình 11: Minh họa xây dựng Strong Classifier từ Weak Classifier c) Một số kết Ban đầu, tác giả (Viola, Jones) sử dụng Strong Classifier loại gồm 200 đặc trưng để thử nghiệm, tức tổ hợp tuyến tính 200 Weak Classifier (T=200) Về hiệu phát hiện, phân loại cho kết tương đối tốt (hình vẽ) với tỉ lệ phát 95% tỉ lệ sai dương tính (khơng có mặt người cho kết mặt người) 1/14084 liệu kiểm tra Tuy nhiên, ứng dụng thực tế ta cần đạt tỉ lệ sai dương tính khoảng 1/1000000 13 Hình 12 : Biểu đồ ROC Strong Classifier dùng 200 đặc trưng Về khả tính tốn, Strong Classifier với 200 features có tốc độ nhanh, 0.7 giây để kiểm tra xác ảnh 384x288 có khn mặt người hay khơng Vấn đề đặt muốn phân loại đáp ứng nhiệm vụ thực tế (tức cải thiện hiệu phát hiện, giảm tỷ lệ sai dương tính) kỹ thuật đơn giản tăng số lượng features, thật không may, điều lại trực tiếp tăng thời gian tính tốn lên nhiều Để giải vấn đề này, tác giả đề xuất cấu trúc phân tầng (Cascade), vừa hiệu mặt tính tốn vừa cải thiện độ xác 1.4 Cấu trúc phân tầng a) Mô tả Trong thực tế, nhiệm vụ phát khuôn mặt người ảnh video, phần lớn vùng không gian phông (không chứa mặt) Ý tưởng mấu chốt sử dụng Strong Classifier với 200 đặc trưng để phát vùng không chứa mặt người q lãng phí thời gian tính tốn, lẽ phân loại sử dụng đặc trưng nhanh chóng loại bỏ vùng phân loại phức tạp (sử dụng 14 nhiều đặc trưng hơn) nên sử dụng để phát vùng mà khả cao chứa khn mặt Về cấu trúc phân tầng, xem hình vẽ minh họa sau: Hình 13: Mơ tả cấu trúc phân tầng Trong cấu trúc này, tầng Strong Classifier xây dựng Adaboost Các tầng đầu phân loại đơn giản, gồm vài features, nhiệm vụ tầng accept phần lớn vùng chứa khuôn mặt reject phần vùng không chứa khuôn mặt Các vùng accept tầng trước tiếp tục đến tầng sau, bị reject bị loại bỏ hoàn toàn Cấu trúc giống định thối hóa, tầng phía sau có phân loại phức tạp (số features nhiều), nhiệm vụ khó tầng trước Cấu trúc phân tầng phản ánh quan sát ảnh bất kì, hầu hết vùng ảnh đề vùng khơng có khn mặt Do đó, cấu trúc phân tầng cố gắng loại bỏ vùng khơng có khn mặt sớm tốt Nếu ảnh có khn mặt, qua tất tầng so với mẫu khơng chứa khn mặt xảy trường hợp vây 15 Hình 14: Ví dụ minh họa cho hai đặc trưng dùng cho tầng phân loại Tuy nhiên làm để tầng với vài features phát phần lớn vùng chứa khn mặt loại bỏ phần vùng không chứa mặt? Điều thực cách điều chỉnh tham số ngưỡng Strong Classifier tầng Ban đầu ngưỡng lựa chọn AdaBoost ∑𝑇𝑡=1 𝛼𝑡 , mục đích để đạt tỷ lệ lỗi thấp tập training Rõ ràng chọn ngưỡng thấp tỷ lệ phát cao đồng thời sai dương tính cao Vậy giải vấn đề nào? Bằng cách sử dụng phương pháp học máy kinh điển, trích từ tập liệu training tập (khoảng 20%-30%), tập gọi Validation set, sử dụng tập giả tập test, điều chỉnh ngưỡng phân loại cách hợp lý để tỷ lệ phát vùng chứa mặt người gần 100%, tỷ lệ sai dương tính khoảng 50% Với tỷ lệ sai dương tính lớn rõ ràng không chấp nhận với nhiệm vụ thức tế, cần lưu ý tỷ lệ tầng, đồng nghĩa có kết khả quan nửa vùng không chứa khuôn mặt người bị loại bỏ tầng Do giả sử tầng có ty lệ phát vùng chứa khuôn mặt 99% tỷ lệ sai dương tính 30% xây dựng 10 tầng, tỷ lệ tương ứng hệ thống 0.9910 ≈ 0.9 0.310 ≈ 6.10−6 Những thơng số hồn tồn phù hợp với nhiệm vụ thực tế Chi tiết phân tích phần b) Huấn luyện cấu trúc phân tầng Khi xác định trước tỉ lệ lỗi sai dương tính tỉ lệ phát cho cấu trúc điều chỉnh tỉ lệ sai dương tính tỉ lệ phát cho tầng để đạt 16 yêu cầu Lý tỉ lệ sai dương tính cấu trúc tích tỉ lệ lỗi sai dương tính tất tầng, tương tự, tỉ lệ nhận diện tích tỉ lệ nhận diện tất tầng Hình 15: Mơ tả cấu trúc phân tầng Cụ thể cấu trúc phân tầng gồm có K tầng, tỷ lệ phát vùng có khn mặt tỷ lệ sai dương tính tầng thứ i 𝑑𝑖 𝑓𝑖 Khi tỷ lệ phát tỷ lệ sai dương tính hệ thống là: 𝐾 𝐷 = ∏𝐾 𝑖=1 𝑑𝑖 𝐹 = ∏𝑖=1 𝑓𝑖 (*) Giả định cần thiết hệ thống với D F xác định trước (chẳng hạn 𝐷 = 90%, 𝐹 = 10−6 ), thực trình huấn luyện cấu trúc phân tầng sau:  Xác định tỉ lệ lỗi sai dương tính tỉ lệ phát cho tầng để thỏa mãn công thức (*) Các tỷ lệ cần xác định cách sử dụng validation set  Nếu tầng tỉ lệ chưa đạt tiếp tục thêm đặc trưng cho tầng  Nếu tỉ lệ cấu trúc chưa đạt được, thêm tầng  Sử dụng ảnh sai dương tính từ tầng làm mẫu âm tính cho tầng Về liệu huấn luyện, từ tập liệu ban đầu gồm 4916 ảnh có mặt (mặt chụp góc diện), 350 triệu ảnh khơng có mặt, tác giả sử dụng tồn 4916 ảnh có mặt 9544 ảnh khơng có mặt dùng để phân loại tầng, với ý tầng sau dùng ảnh sai dương tính từ tầng trước Chi tiết thuật tốn xem paper [] mục Tài liệu tham khảo 17 c) Một số kết Các tác giả so sánh hiệu Strong Classifier với 200 features với cấu trúc phân tầng gồm 20 tầng, tầng 10 features, kết thể hình sau: Hình 16 : Biểu đồ ROC so sánh Strong Classifier dùng 200 đặc trưng với cấu trúc 10 tầng, tầng gồm 20 features Về bản, hai cấu trúc có tỷ lệ phát tốt ngang nhau, tỷ lệ sai dương tính cấu trúc phân tầng nhỏ Mặt khác chi phí thời gian tính toán, tác giả cấu trúc phân tầng có khả phát xác ảnh 384x288 0.067 giây, tức nhanh gấp 10 lần so với Strong Classifier 200 features d) Cấu trúc cuối Haar Classifier Các kết số trường hợp thử nghiêm, cấu trúc xác Haar Classifier Cụ thể tác giả xây dựng cấu trúc gồm 38 tầng, với tổng tồn số features 6061, ví dụ số tầng có số features 1,10,25,50… 18 Test độ đo hiệu hệ thống Sau hoàn thành pha huấn luyện, có hệ thống phát Khi đưa vào ảnh chứa nhiều người, hệ thống xác định ảnh có người, định vị khuôn mặt ảnh Một ảnh đưa vào phân loại sai, tương ứng có trường hợp sau: Hình 17 : Một số loại kết test Từ có số độ đo hiệu hệ thống sau:     IV Accuracy: (TP+TN)/(TP+TN+FP+FN) True Positive rate: TP/(TP+FN) False Positive rate: FP/(FP+TN) Precision: TP/(TP+FP) CÀI ĐẶT THỰC NGHIỆM Quá trình cài đặt thử nghiệm chúng em sử dụng thư viện OpenCV phiên 3.2.0 ngơn ngữ lập trình Python phiên 2.7 ứng dụng Jupyter notebook 19  Lấy liệu đầu vào:  Vì hệ thống làm việc với ảnh đa mức xám nên cần chuyển ảnh ảnh đa mức xám, rõ ràng việc không ảnh hưởng đến hiệu phát khuôn mặt:  Load mơ hình training dạng file xml: haarcascade_frontalface_alt.xml,sử dụng hàm detectMultiScale(image, scaleFactor, minNeighbors) hàm tổng quát để phát đối tượng, trường hợp phát khuôn mặt, tham số hàm tham khảo docs.opencv.org Kết ta hình 20  Với ảnh có đặc thù gồm khn mặt nhìn trực diện, hệ thống phát hiệu quả, kể với đám đơng:  Thậm chí tốt với ảnh gồm mặt nhìn nghiêng 21  Tuy nhiên hệ thống xác điều kiện ánh sáng bị hạn chế  Một số trường hợp sai dương tính xảy ra, ví dụ trường hợp sau: Giải cách thay đổi, thêm tham số tinh chỉnh: 22  Đánh giá thời gian: ví dụ cỡ 0.03s để hệ thống phát khuôn mặt  Nhận xét: Ưu điểm: • Phát khn mặt với độ xác cao • Tỷ lệ sai dương tính nhỏ Nhược điểm: • Tính tốn phức tạp • Thời gian training dài • Ít xác với khn mặt tối, ảnh có tỷ lệ khn mặt khơng đồng đứng trước đứng sau • Hiệu suất bị hạn chế điều kiện ánh sáng không tốt V KẾT LUẬN Báo cáo nhóm chúng em tìm hiểu hệ thống Haar Classifier Viola Jones xây dựng, mục đích để phát khn mặt Hệ thống cho kết xác cao đồng thời tính tốn nhanh, phù hợp với ứng dụng thực tế Mặc dù hệ thống tương đối tiếng, nhiên có tài liệu tiếng Việt viết thuật toán Các tài liệu bọn em tham khảo chủ yếu tài liệu tiếng Anh Vì nội dung báo cáo khơng thuộc vào nội dung giảng lớp nên việc tìm kiếm lựa chọn tài liệu cần thiết đòi hỏi nhiều cơng sức chắn chúng em khơng thể tránh khỏi thiếu sót kinh nghiệm kiến thức hạn chế 23 Nhóm chúng em xin cảm ơn giúp đỡ nhiệt tình PGS.TS Nguyễn Thị Hoàng Lan giúp đỡ chúng em nhiều để hoàn thành tập lớn Phân chia cơng việc: VI Nguyễn Văn Sơn Trương Quang Tồn Tìm hiểu ngun lý hệ thống, thuật tốn, tài liệu liên quan Tìm hiểu nguyên lý hệ thống, thuật toán, tài liệu liên quan Viết báo cáo, slide Viết báo cáo, slide Cài đặt thực nghiệm, xây dựng kịch Cài đặt thực nghiệm, đánh giá TÀI LIỆU THAM KHẢO [1] Robust Real-Time Face Detection, Paul Viola Michael Jones [2] Rapid Object Detection using a Boosted Cascade of Simple Features, Paul Viola Michael Jones [3] Face Detection via AdaBoost, Linda Shapiro-CSE 455 [4] Giáo trình Xử Lý Ảnh, PGS.TS Nguyễn Hoàng Lan [5] http://www.ieev.org/2010/03/adaboost-haar-features-face-detection_22.html [6] https://pythonprogramming.net/haar-cascade-face-eye-detection-python-opencvtutorial/ [7] docs.opencv.org Danh mục hình vẽ tham khảo tương ứng với tài liệu: Hình 3,4,5,6, 14: [7] Hình 10, 11, 13: [3] Hình 12, 15, 16: [2] 24 ... biểu diễn ảnh, gọi Integral Image, cho phép tính tốn nhanh giá trị features ảnh Xét ảnh 24x24 tập training Giả sử giá trị pixel điểm điểm (

Ngày đăng: 06/06/2018, 16:07

Từ khóa liên quan

Mục lục

  • I. GIỚI THIỆU CHUNG

  • II. BÀI TOÁN PHÁT HIỆN KHUÔN MẶT

    • 1. Khái quát bài toán

    • 2. Sơ đồ khối chức năng của hệ thống Haar Classifier

      • 2.1. Training

      • 2.2. Test

      • III. NGUYÊN LÝ HOẠT ĐỘNG

        • 1. Huấn luyện và xây dựng hệ thống

          • 1.1. Trích xuất đặc trưng

          • 1.2. Integral Image

          • 1.3. Thuật toán phân loại

          • 1.4. Cấu trúc phân tầng

          • 2. Test và độ đo hiệu năng hệ thống

          • IV. CÀI ĐẶT THỰC NGHIỆM

          • V. KẾT LUẬN

          • VI. TÀI LIỆU THAM KHẢO

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

  • Đang cập nhật ...

Tài liệu liên quan