Mở đầu Chƣơng này nhằm nêu bật sự cần thiết, ý nghĩa thực tiễn, đối tƣợng, phƣơng pháp nghiên cứu, mục tiêu của đề tài xây dựng hệ thống tìm kiếm ảnh theo nội dung của bức ảnh. Chƣơng 2: Các thuật toán nhận dạng khuôn mặt áp dụng trong hệ thống tìm kiếm ảnh theo nội dung. Chƣơng này nêu lên các thuật toán học máy có giám sát đƣợc áp dụng để tìm kiếm và nhận dạng khuôn mặt ngƣời và động vật có vú. Từ đó, dựa 3 TIEU LUAN MOI download : skknchat@gmail.com vào các thuật toán này để giải quyết bài toán tìm kiếm ảnh theo nội dung trong ảnh.
4 TIEU LUAN MOI download : skknchat@gmail.com Chƣơng này cũng đề xuất phƣơng pháp huấn luyện bán giám sát Bootstrapping và cách thức kết hợp nó với các thuật toán học máy có giám sát để xác định vị trí các đối tƣợng trong bức ảnh với một bộ dữ liệu huấn luyện gán nhãn nhỏ. Chƣơng 3: Hệ thống tìm kiếm ảnh theo nội dung Chƣơng này giới thiệu sơ lƣợc về hệ thống tìm kiếm ảnh theo nội dung. Các thƣ viện sử dụng, cấu trúc chƣơng trình, và cách thức áp dụng các thuật toán vào bài toán tìm kiếm ảnh theo nội dung của ảnh. Chƣơng 4: Kết quả thực nghiệm Chƣơng này nêu kết quả thực nghiệm.
So sánh kết quả khi chỉ dùng dữ liệu huấn luyện ban đầu của các thuật toán học có giám sát và sau khi đã kết hợp với thuật toán học bán giám sát Bootstrapping để tăng độ chính xác. Chƣơng 5: Kết luận Chƣơng này nêu lên và đánh giá những kết quả đã đạt đƣợc, đồng thời đƣa ra những công việc cần làm trong tƣơng lai để cải tiến hệ thống tìm kiếm ảnh theo nội dung. 5 TIEU LUAN MOI download : skknchat@gmail.com CHƢƠNG 2: CÁC THUẬT TOÁN NHẬN DẠNG KHUÔN MẶT ÁP DỤNG TRONG HỆ THỐNG TÌM KIẾM ẢNH THEO NỘI DUNG. Thuật toán xác định vị trí khuôn mặt 2.
Một số thuật toán xác định vị trí khuôn mặt thƣờng gặp Xác định vị trí của một vật thể nói chung và khuôn mặt nói riêng là một chủ đề đã đƣợc nghiên cứu rất nhiều trên thế giới. Đã có rất nhiều cách tiếp cận, thuật toán đƣợc đƣa ra để có thể xác định chính xác vị trí của khuôn mặt trong một bức ảnh hay một đoạn video. Một trong những cách tiếp cận đó là sử dụng cửa sổ trƣợt để tìm kiếm các khuôn mặt trong một bức ảnh. Một cửa sổ trƣợt sẽ trƣợt lần lƣợt qua những vùng khác nhau của bức ảnh.
Mỗi lần trƣợt, bộ phân lớp sẽ đánh giá xem cửa sổ đó có phải là một khuôn mặt hay không. Bộ phân lớp sử dụng ở đây có thể là SVM (Máy vector hỗ trợ - Support Vector Machines), Mạng nơ ron (Neural Netwworks), bộ phân lớp Bayes (Bayesian) hoặc mô hình Markov ẩn (Hiden Markov Models). Trong đó có một vài cách tiếp cận nổi tiếng đƣợc để cập dƣới đây. Turk và Pentland đã đề xuất sử dụng PCA (phân tích thành phần chính – Principal Component Analysis) để huấn luyện các ảnh khuôn mặt và sử dụng eigenfaces (các khuôn mặt đặc biệt) làm các mẫu.
Một khuôn mặt ngƣời sẽ đƣợc coi là gần giống khuôn mặt mẫu 1, hơi giống khuôn mặt mẫu 2, hoặc hơi khác khuôn mặt mẫu 3. Bộ phân lớp sẽ tính toán sự tƣơng đồng của một vùng ảnh (lấy bởi cửa sổ trƣợt) với các mẫu khuôn mặt và từ đó quyết định đƣợc vùng ảnh đó có phải một khuôn mặt hay không. Viola và Jones thay vì sử dụng các thông tin của từng điểm ảnh, họ đề xuất phƣơng pháp sử dụng một đại diện ảnh mới và một tập các đặc trƣng đơn giản trích rút từ ảnh đại diện đó. Các đặc trƣng đó gọi là các đặc trƣng Haar.
Các đặc trƣng 6 TIEU LUAN MOI download : skknchat@gmail.com này đƣợc tính toán bằng cách cộng các điểm ảnh trong vùng sáng và trừ đi các điểm ảnh trong vùng tối của ảnh.1: Các đặc trƣng Haar Tập các đặc trƣng đƣợc tạo lập bằng cách biến đổi kích thƣớc và vị trí của mỗi loại đặc trƣng Haar. Các đặc trƣng sau đó đƣợc lựa chọn. Mỗi đặc trƣng sẽ đƣợc huấn luyện trên tập các mẫu ảnh là các khuôn mặt hoặc các hình không phải khuôn mặt (hay gọi là các hình nền). Sau quá trình huấn luyện, ngƣời ta sẽ chọn đặc trƣng có số lƣợng kết quả nhận dạng sai là thấp nhất.
Lienhart et al. đề xuất mở rộng các đặc trƣng Haar, thêm vào các thuộc tính bị xoay một góc 45 độ và ghi nhận sự cải thiện về độ chính xác của bộ phân lớp dựa trên các đặc trƣng Haar.2: Các đặc trƣng Haar mở rộng 2. Đặc trƣng theo mẫu nhị phân cục bộ (LBP) 2. Mẫu nhị phân cục bộ nguyên bản Mẫu nhị phân cục bộ nguyên bản sẽ tính toán chuỗi nhị phân cho mỗi điểm ảnh của bức ảnh.
Tại một vị trí điểm ảnh (xc, yc), chuỗi nhị phân đặc trƣng cho điểm ảnh này sẽ đƣợc tính toán bằng cách so sánh giá trị cấp độ xám của nó với 8 điểm ảnh lân cận xung quanh nó (ma trận 3x3 với điểm ảnh đang cần tính nằm ở trung tâm). 7 TIEU LUAN MOI download : skknchat@gmail.com Công thức tính toán nhƣ sau: 7 𝐿𝐵𝑃 𝑥𝑐 , 𝑦𝑐 = 𝑠 𝑖𝑛 − 𝑖𝑐 2𝑛 (2.1: Công thức tính LBP của một điểm ảnh Với ic là giá trị độ xám của (xc, yc), in là giá trị độ xám của điểm ảnh (xn, yn) lân cận của (xc, yc). Hàm s(x) đƣợc định nghĩa nhƣ sau: 1 𝑛ế𝑢 𝑥 ≥ 0 𝑠 𝑥 = 0 𝑛ế𝑢 𝑥 ≤ 0 Ta có thể minh họa cách tính giá trị chuỗi nhị phân LBP (điểm có giá trị xám là 57 ở giữa ma trận) nhƣ sau: 83 82 63 11100000 38 57 46 28 19 23 1 1 1 0 0 0 0 0 Hình 2.3: Hình minh họa cách tính LBP Ta có thể thấy nếu độ sáng thay đổi đồng đều thì trong lân cận cục bộ, thứ tự của các điểm ảnh đƣợc bảo toàn. Nhƣ vậy, LBP cho phép miêu tả cục bộ rất tốt cho từng điểm ảnh của bức ảnh.
Tuy vậy, do giá trị cấp xám ở đây đƣợc lấy trên từng điểm ảnh nên bị ảnh hƣởng rất nhiều bởi nhiễu. Hơn nữa các ma trận nhỏ 3x3 chỉ đại diện cho từng điểm ảnh chứ khó có thể sử dụng thông tin này để đại diện cho một vùng ảnh. Mặt khác, số lƣợng các điểm ảnh trong một bức ảnh là rất lớn nên nếu sử dụng thông tin của từng điểm ảnh để sử dụng làm các đặc trƣng trong mô hình phân lớp thì sẽ ảnh hƣởng rất lớn đến tốc độ huấn luyện và tốc độ phân lớp trên thực tế. 8 TIEU LUAN MOI download : skknchat@gmail.com 9 TIEU LUAN MOI download : skknchat@gmail.
Mẫu nhị phân từng vùng cục bộ (MB-LBP) Khác với LBP nguyên bản, MB-LBP không sử dụng trực tiếp giá trị cấp độ xám của từng điểm ảnh. Thay vào đó, các điểm ảnh đƣợc chia thành từng vùng. Tùy theo lựa chọn mà mỗi vùng này có thể là các ma trận 3x3, 5x5, 7x7,… Trong đó mỗi vùng có một giá trị cấp độ xám đại diện là giá trị trung bình của tất cả các điểm ảnh trong vùng đó. Tiếp theo, ta coi mỗi vùng này là một điểm ảnh nhƣ trong phƣơng pháp tính LBP nguyên bản.
Giá trị LBP bây giờ sẽ đại diện cho từng vùng ảnh chứ không đại diện cho từng điểm ảnh nhƣ trƣớc nữa.4: Hình minh họa cách chia vùng 3x3 của MB-LBP Do lấy giá trị trung bình của cả vùng nên thông tin LBP có thể đại diện cho cả một vùng ảnh thay vì từng điểm ảnh nhƣ trƣớc. Độ nhạy cảm với nhiễu cũng giảm đi nhiều. Các thông tin mang tính quá cục bộ bị loại bỏ nhƣng vẫn giữ lại các giá trị cần thiết để có thể đại diện cho các vùng ảnh. Hình sau minh họa các bức ảnh sau khi đã chia thành từng vùng và tính giá trị cấp độ xám trung bình của từng vùng.
10 TIEU LUAN MOI download : skknchat@gmail.5: Hình minh họa các khuôn mặt sau khi áp dụng MB-LBP (a1) (a2) là các ảnh gốc, (b1) (b2) là ảnh tính giá trị trung bình từng vùng 3x3, (c1) (c2) là ảnh tính giá trị trung bình của từng vùng 9x9 Do phƣơng pháp tính giá trị MB-LBP của các vùng giống nhƣ cách tính giá trị LBP nên ta có thể thấy mỗi vùng đƣợc đại diện bằng một chuỗi nhị phân 8 bit. Tổng số lƣợng các chuỗi nhị phân có thể xuất hiện là 28 = 256. Ta có thể lập đƣợc biểu đồ tần xuất xuất hiện của 256 chuỗi nhị phân này và do đó có thể sử dụng chúng làm đặc trƣng để nhận dạng một ảnh có phải là ảnh của một khuôn mặt hay không. Tuy vậy nếu sử dụng cả 256 chuỗi nhị phân làm đặc trƣng thì sẽ làm tốc độ huấn luyện và phân lớp rất chậm do số lƣợng đặc trƣng quá nhiều.
Hơn nữa không phải chuỗi nhị phân nào cũng chứa các thông tin cần thiết để phân lớp. Ta sẽ cần có phƣơng pháp để loại bỏ bớt các chuỗi nhị phân Giống nhƣ phƣơng pháp sử dụng LBP làm các đặc trƣng phân lớp ảnh, MB- LBP cũng sử dụng khái niệm mẫu đồng nhất của các mẫu nhị phân để giảm bớt số lƣợng các đặc trƣng của bộ phân lớp. Với toán tử LBP 3x3, Ojala đã chứng minh đƣợc rằng 58 cột cao nhất trong biểu đồ tần xuất tƣơng ứng với N = 58 chuỗi nhị phân đồng nhất có ý nghĩa trong việc phân lớp khuôn mặt. 11 TIEU LUAN MOI download : skknchat@gmail.com Theo đó ta chỉ cần để ý tới LBP của các chuỗi nhị phân l sau: 𝑙|𝑅𝑎𝑛𝑘 𝐻 𝑙 < 𝑁 𝐿= 𝑅𝑎𝑛𝑘[𝐻 63 ]||𝑅𝑎𝑛𝑘 𝐻 𝑙 ≥𝑁 Trong đó Rank[H(l)] là thứ tự của giá trị tần xuất xuất hiện của l trong biểu đồ tần xuất.
Tuy vậy, với MB-LBP, do mỗi chuỗi nhị phân không chỉ đại diện cho một điểm ảnh mà đại diện cho một vùng nên ta cần lấy một giá trị khác của N. Liao đã chứng minh rằng với N = 63, các giá trị MB-LBP của các chuỗi nhị phân l xác định theo công thức trên sẽ thể hiện tốt nhất thông tin của bức ảnh. Các chuỗi nhị phân có tần xuất xuất hiện lớn hơn N = 63 sẽ coi nhƣ có cùng giá trị chuỗi nhị phân là N = 63. Các bộ phân lớp yếu và huấn luyện chồng tầng 2.
Các bộ phân lớp yếu Một bộ phân lớp yếu hp(x) chứa một bảng 63 giá trị là trọng số của các chuỗi nhị phân tƣơng ứng. 63 giá trị này có liên kết với vùng ảnh có vị trí p. Cho một ảnh là đầu vào của bộ phân lớp yếu hp(x), tại vị trí p, đầu ra của hp(x) là giá trị của trọng số tƣơng ứng với mã nhị phân x.