Trong các chủ đề thuộc lĩnh vực xử lý nhận dạng hình ảnh, tìm kiếm ảnh theo nội dung là một bài toán được đặt ra để thay thế cho phương pháp tìm kiếm ảnh thông thường dựa trên các từ khóa hoặc các mô tả của ảnh. Tìm kiếm theo nội dung tức là bản thân bức ảnh sẽ được phân tích để phục vụ cho việc tìm kiếm (chứ không dựa vào các từ khóa, các tag hoặc các mô tả của bức ảnh). Nội dung của bức ảnh ở đây có thể là các đối tượng, kết cấu, hoặc các đặc trưng khác được trích xuất từ chính bức ảnh. Việc hệ thống tìm kiếm ảnh theo nội dung được cho là ưu việt hơn tìm kiếm theo từ khóa ở chỗ trên thực tế người dùng có thể không tìm được đúng và đủ từ khóa để mô tả bức ảnh. Trong một số trường hợp cụ thể (ví dụ như tìm kiếm các bức ảnh giống nhau về nội dung nhưng khác về kích thước và màu sắc hoặc tìm kiếm các bức ảnh có cùng một vật thể hoặc đối tượng người tìm kiếm chưa biết tên gọi), thậm chí phương pháp tìm kiếm theo từ khóa không thể áp dụng hiệu quả được. Khi đó áp dụng phương pháp tìm kiếm theo nội dung sẽ có thể hiệu quả hơn. Do số lượng các yếu tố có thể xem là nội dung của một bức ảnh rất đa dạng theo nhu cầu của từng người tìm kiếm nhưng thời gian nghiên cứu và hoàn thành luận văn có hạn nên tôi xin phép giới hạn lại. Nội dung của một bức ảnh trong luận văn này sẽ xoay quanh khuôn mặt trực diện của người và các động vật có vú. Theo đó hệ thống tìm kiếm theo nội dung ảnh được xây dựng sẽ trích rút các nội dung như: một bức ảnh có xuất hiện khuôn mặt hay không, số lượng khuôn mặt xuất hiện trong bức ảnh là bao nhiêu, danh tính của các khuôn mặt trong bức ảnh và bản thân toàn bộ bức ảnh cũng coi là một nội dung được trích rút từ bức ảnh. Từ đó hệ thống có thể tìm được các bức ảnh của người và động vật có vú, các bức ảnh trực diện của cùng một người hoặc một con vật thuộc loài có vú, tìm được các bức ảnh có cùng số lượng người hoặc số lượng động vật có vú, tìm được các ảnh có người và các động vật có vú giống hệt nhau nhưng khác biệt về kích thước và màu sắc. Để có thể trích rút được những nội dung như vậy, luận văn tập trung nghiên cứu để giải quyết hai bài toán. Bài toán đầu tiên là xác định vị trí khuôn mặt của người và vật. Từ đó có thể đếm được số lượng và khoanh vùng được các khuôn mặt để tiến hành tiếp bước tiếp theo. Bài toán thứ hai là nhận diện các khuôn mặt đã được khoanh vùng của bức ảnh đó với một tập các bức ảnh người dùng mong muốn tìm kiếm và chỉ ra những bức ảnh Bài toán đầu tiên – xác định vị trí khuôn mặt đã có rất nhiều cách tiếp cận để giải quyết vấn đề tìm kiếm và khoanh vùng các nội dung là các đối tượng trong ảnh như các phương pháp xác định khuôn mặt theo mẫu nhị phân cục bộ (LBP) hoặc phương pháp xác định khuôn mặt theo đặc trưng Haar… Các phương pháp trên đều có độ chính xác khá cao. Tuy vậy các phương pháp này có một nhược điểm đó là yêu cầu một bộ dữ liệu huấn luyện lớn các khuôn mặt người. Việc chuẩn bị bộ dữ liệu huấn luyện này tốn rất nhiều công sức, thời gian và chi phí nhân lực. Vì vậy trong luận văn này đề xuất một phương pháp kết hợp giữa thuật toán xác định khuôn mặt dựa vào mẫu nhị phân cục bộ nhóm (MBLBP) và phương pháp học máy bán giám sát. Phương pháp này cho phép chỉ cần gán nhãn một số lượng nhỏ dữ liệu huấn luyện kết hợp với lượng lớn dữ liệu huấn luyện không gán nhãn mà mô hình xác định khuôn mặt cuối cùng vẫn đạt được độ chính xác gần với khi huấn luyện với lượng lớn dữ liệu gán nhãn. Bài toán thứ hai – nhận diện khuôn mặt sau khi đã khoanh vùng và tách được các khuôn mặt trong ảnh, hệ thống sử dụng thuật toán nhận diện theo mẫu nhị phân cục bộ (LBP. Do khuôn mặt của một người là khá đặc trưng theo LBP nên số lượng mẫu huấn luyện không cần nhiều. Thực tế chỉ cần một ảnh của một người hoặc động vật có vú là có thể ngay lập tức nhận diện khá chính xác người hoặc vật đó.
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Vũ Minh Đức
XÂY DỰNG HỆ THỐNG TÌM KIẾM ẢNH THEO
NỘI DUNG
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60480104
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS Nguyễn Hải Châu
HÀ NỘI - 2015
Trang 3LỜI CẢM ƠN
Lời đầu tiên, tôi xin bày tỏ lòng biết ơn chân thành đến các thầy cô giáotrường Đại học Công Nghệ, Đại học Quốc Gia Hà Nội nói chung và các thầy côtrong bộ môn Hệ thống thông tin nói riêng Trong suốt các năm học tập trongtrường, các thầy cô không những tận tình truyền đạt kiến thức mà còn luôn độngviên giúp đỡ tôi trong học tập cũng như trong cuộc sống
Đặc biệt, tôi muốn gửi lời cảm ơn sâu sắc đến thầy giáo, phó giáo sư, tiến sĩNguyễn Hải Châu, người đã tận tình chỉ bảo, hướng dẫn tôi trong suốt quá trìnhnghiên cứu và hoàn thiện luận văn tốt nghiệp
Tôi cũng xin cảm ơn các bạn học viên cùng khóa, đã luôn cùng tôi nghiên cứu
và học tập, đã cho tôi những ý kiến đóng góp giá trị trong suốt thời gian học tậpcũng như trong quá trình nghiên cứu đề tài khóa luận tốt nghiệp
Cuối cùng, tôi xin gửi lời cảm ơn sâu sắc đến gia đình và bạn bè, những ngườiluôn động viên giúp đỡ tôi vượt qua những khó khăn trong cuộc sống
Hà Nội, ngày 21 tháng 5 năm 2015
Học viên
Vũ Minh Đức
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan rằng các nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của PGS TS Nguyễn Hải Châu Mọi nội dung tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công
bố Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo tôi xin chịu hoàn toàn trách nhiệm.
Hà Nội, ngày 21 tháng 5 năm 2015
Học viên
Vũ Minh Đức
Trang 5TÓM TẮT LUẬN VĂN
Trong các chủ đề thuộc lĩnh vực xử lý nhận dạng hình ảnh, tìm kiếm ảnh theonội dung là một bài toán được đặt ra để thay thế cho phương pháp tìm kiếm ảnhthông thường dựa trên các từ khóa hoặc các mô tả của ảnh
Tìm kiếm theo nội dung tức là bản thân bức ảnh sẽ được phân tích để phục vụcho việc tìm kiếm (chứ không dựa vào các từ khóa, các tag hoặc các mô tả của bứcảnh) Nội dung của bức ảnh ở đây có thể là các đối tượng, kết cấu, hoặc các đặctrưng khác được trích xuất từ chính bức ảnh Việc hệ thống tìm kiếm ảnh theo nộidung được cho là ưu việt hơn tìm kiếm theo từ khóa ở chỗ trên thực tế người dùng
có thể không tìm được đúng và đủ từ khóa để mô tả bức ảnh Trong một số trườnghợp cụ thể (ví dụ như tìm kiếm các bức ảnh giống nhau về nội dung nhưng khác vềkích thước và màu sắc hoặc tìm kiếm các bức ảnh có cùng một vật thể hoặc đốitượng người tìm kiếm chưa biết tên gọi), thậm chí phương pháp tìm kiếm theo từkhóa không thể áp dụng hiệu quả được Khi đó áp dụng phương pháp tìm kiếm theonội dung sẽ có thể hiệu quả hơn
Do số lượng các yếu tố có thể xem là nội dung của một bức ảnh rất đa dạngtheo nhu cầu của từng người tìm kiếm nhưng thời gian nghiên cứu và hoàn thànhluận văn có hạn nên tôi xin phép giới hạn lại Nội dung của một bức ảnh trong luậnvăn này sẽ xoay quanh khuôn mặt trực diện của người và các động vật có vú Theo
đó hệ thống tìm kiếm theo nội dung ảnh được xây dựng sẽ trích rút các nội dungnhư: một bức ảnh có xuất hiện khuôn mặt hay không, số lượng khuôn mặt xuất hiệntrong bức ảnh là bao nhiêu, danh tính của các khuôn mặt trong bức ảnh và bản thântoàn bộ bức ảnh cũng coi là một nội dung được trích rút từ bức ảnh Từ đó hệ thống
có thể tìm được các bức ảnh của người và động vật có vú, các bức ảnh trực diệncủa cùng một người hoặc một con vật thuộc loài có vú, tìm được các bức ảnh có
Trang 6cùng số lượng người hoặc số lượng động vật có vú, tìm được các ảnh có người vàcác động vật có vú giống hệt nhau nhưng khác biệt về kích thước và màu sắc Để
có thể trích rút được những nội dung như vậy, luận văn tập trung nghiên cứu để giảiquyết hai bài toán Bài toán đầu tiên là xác định vị trí khuôn mặt của người và vật
Từ đó có thể đếm được số lượng và khoanh vùng được các khuôn mặt để tiến hànhtiếp bước tiếp theo Bài toán thứ hai là nhận diện các khuôn mặt đã được khoanhvùng của bức ảnh đó với một tập các bức ảnh người dùng mong muốn tìm kiếm vàchỉ ra những bức ảnh
Bài toán đầu tiên – xác định vị trí khuôn mặt đã có rất nhiều cách tiếp cận đểgiải quyết vấn đề tìm kiếm và khoanh vùng các nội dung là các đối tượng trong ảnhnhư các phương pháp xác định khuôn mặt theo mẫu nhị phân cục bộ (LBP) hoặcphương pháp xác định khuôn mặt theo đặc trưng Haar… Các phương pháp trên đều
có độ chính xác khá cao Tuy vậy các phương pháp này có một nhược điểm đó làyêu cầu một bộ dữ liệu huấn luyện lớn các khuôn mặt người Việc chuẩn bị bộ dữliệu huấn luyện này tốn rất nhiều công sức, thời gian và chi phí nhân lực Vì vậytrong luận văn này đề xuất một phương pháp kết hợp giữa thuật toán xác địnhkhuôn mặt dựa vào mẫu nhị phân cục bộ nhóm (MB-LBP) và phương pháp họcmáy bán giám sát Phương pháp này cho phép chỉ cần gán nhãn một số lượng nhỏ
dữ liệu huấn luyện kết hợp với lượng lớn dữ liệu huấn luyện không gán nhãn mà
mô hình xác định khuôn mặt cuối cùng vẫn đạt được độ chính xác gần với khi huấnluyện với lượng lớn dữ liệu gán nhãn
Bài toán thứ hai – nhận diện khuôn mặt sau khi đã khoanh vùng và tách đượccác khuôn mặt trong ảnh, hệ thống sử dụng thuật toán nhận diện theo mẫu nhị phâncục bộ (LBP Do khuôn mặt của một người là khá đặc trưng theo LBP nên số lượngmẫu huấn luyện không cần nhiều Thực tế chỉ cần một ảnh của một người hoặcđộng vật có vú là có thể ngay lập tức nhận diện khá chính xác người hoặc vật đó
Trang 7M C L C ỤC LỤC ỤC LỤC
LỜI CẢM ƠN i
LỜI CAM ĐOAN ii
TÓM TẮT LUẬN VĂN iii
MỤC LỤC v
DANH MỤC CÁC CÔNG THỨC vii
DANH MỤC CÁC HÌNH VẼ viii
DANH MỤC CÁC BẢNG BIỂU ix
BẢNG CÁC CHỮ VIẾT TẮT x
CHƯƠNG 1: TỔNG QUAN 1
1.1 Đặt vấn đề 1
1.2 Mục tiêu đề tài 2
1.3 Đối tượng và phương pháp nghiên cứu 3
1.4 Cấu trúc khóa luận 3
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 5
2.1 Thuật toán xác định vị trí khuôn mặt 5
2.1.1 Một số thuật toán xác định vị trí khuôn mặt thường gặp 5
2.1.2 Đặc trưng theo mẫu nhị phân cục bộ (LBP) 6
2.1.3 Các bộ phân lớp yếu và huấn luyện chồng tầng 10
2.2 Thuật toán học bán giám sát Bootstrapping 12
2.3 Thuật toán nhận diện khuôn mặt theo biểu đồ tần suất của mẫu nhị phân cục bộ (LBPH) 15
2.3.1 Sơ lược về thuật toán Eigenfaces (các khuôn mặt đặc biệt) 15
2.3.2 Thuật toán nhận dạng khuôn mặt sử dụng biểu đồ tần suất của mẫu nhị phân cục bộ 15
CHƯƠNG 3: HỆ THỐNG TÌM KIẾM ẢNH THEO NỘI DUNG 19
Trang 83.1 Bộ công cụ OpenCV 19
3.2 Hệ thống tìm kiếm ảnh theo nội dung của ảnh 20
3.2.1 Các công cụ chuẩn bị dữ liệu 20
3.2.2 Hệ thống tìm kiếm ảnh theo nội dung 24
3.2.3 Các hàm công cụ khác 31
CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM 32
4.1 Thí nghiệm 1: 32
4.1.1 Mục đích thực nghiệm: 32
4.1.2 Bố trí thí nghiệm: 32
4.1.3 Kết quả thí nghiệm: 34
4.2 Thí nghiệm 2: 34
4.2.1 Mục đích thực nghiệm: 34
4.2.2 Bố trí thí nghiệm: 34
4.2.3 Kết quả thí nghiệm 37
4.3 Thí nghiệm 3: 38
4.3.1 Mục đích thí nghiệm: 38
4.3.2 Bố trí thí nghiệm: 38
4.3.3 Kết quả thực nghiệm 40
CHƯƠNG 5: KẾT LUẬN 41
5.1 Các kết quả đạt được và hạn chế 41
5.2 Các công việc trong tương lai 43
Tài liệu tham khảo 45
Trang 9DANH MỤC CÁC CÔNG THỨC
Công thức 2.1: Công thức tính LBP của một điểm ảnh 7
Công thức 2.2: Công thức của bộ phân lớp yếu 10
Công thức 2.3: Công thức tính bảng các trọng số của các mã nhị phân tại điểm ảnh p 11
Công thức 2.4: Công thức tính biểu đồ tần xuất của một ảnh 16
Công thức 2.5: Công thức tính biểu đồ tần xuất của một ảnh chia nhỏ thành các vùng 16
Công thức 2.6: Công thức tính độ tương giao của hai biểu đồ tần xuất 17
Công thức 2.7: Công thức thống kê Chi square của hai biểu đồ tần xuất 17
Trang 10DANH MỤC CÁC HÌNH VẼ
Hình 2.1: Các đặc trưng Haar 6
Hình 2.2: Các đặc trưng Haar mở rộng 6
Hình 2.3: Hình minh họa cách tính LBP 7
Hình 2.4: Hình minh họa cách chia vùng 3x3 của MB-LBP 8
Hình 2.5: Hình minh họa các khuôn mặt sau khi áp dụng MB-LBP 9
Hình 2.7: các bước của thuật toán nhận diện khuôn mặt 18
Hình 3.1: Các bước thực thi chuẩn bị dữ liệu huấn luyện xác định vị trí khuôn mặt 21
Hình 3.2: Giao diện của công cụ chuẩn bị dữ liệu huấn luyện xác định vị trí khuôn mặt 22 Hình 3.3: Các bước thực thi của công cụ huấn luyện mô hình phân lớp xác định vị trí khuôn mặt 23
Hình 3.4: Các bước thực thi của tính năng tìm kiếm ảnh xuất hiện khuôn mặt 24
Hình 3.5: Giao diện của tính năng tìm kiếm ảnh xuất hiện khuôn mặt 25
Hình 3.6: Các bước thực thi của tính năng tìm kiếm các ảnh giống nhau nhưng khác về kích thước và màu sắc 26
Hình 3.7: Giao diện của tính năng tìm kiếm các ảnh giống nhau nhưng khác về kích thước và màu sắc 27
Hình 3.8: Các bước thực thi của tính năng tìm kiếm các ảnh có cùng số lượng người trong ảnh 28
Hình 3.9: Giao diện của tính năng tìm kiếm các ảnh có cùng số lượng người trong ảnh .29 Hình 3.10: Các bước thực thi của tính năng tìm kiếm khuôn mặt giống khuôn mặt đã cho 31
Hình 3.11: Giao diệncủa tính năng tìm kiếm khuôn mặt giống khuôn mặt đã cho 31
Hình 4.1: các bước thực hiện thí nghiệm 1 33
Hình 4.2: các bước thực hiện thí nghiệm 2 36
Trang 11Hình 4.3: Các bước thí nghiệm 3 39
DANH MỤC CÁC BẢNG BIỂU
Bảng 4.1: Kết quả thí nghiệm 1 34 Bảng 4.2: Kết quả thí nghiệm 2 37 Bảng 4.3: Kết quả thí nghiệm 3 40
Trang 12B NG CÁC CH VI T T T ẢNG CÁC CHỮ VIẾT TẮT Ữ VIẾT TẮT ẾT TẮT ẮT
Chữ viết
tắt
Cách viết đầy đủ Dịch nghĩa Tiếng Việt
SVM Support Vector Machines Máy vector hỗ trợ
PCA Principal Component Analysis Phân tích thành phần chính
LBP Local Binary Pattern Mẫu nhị phân cục bộ
MB-LBP Multiscale Block – Local Binary
Pattern
Mẫu nhị phân cục bộ nhóm LBPH Local Binary Pattern Histogram Biểu đồ tần suất của mẫu nhị phân
cục bộ
Trang 13CHƯƠNG 1: TỔNG QUAN
1.1 Đặt vấn đề
Trong các chủ đề thuộc lĩnh vực xử lý nhận dạng hình ảnh, tìm kiếm ảnh theonội dung là một bài toán được đặt ra để thay thế cho phương pháp tìm kiếm ảnhthông thường dựa trên các từ khóa hoặc các mô tả của ảnh
Các hệ thống tìm kiếm ảnh thông thường chủ yếu dựa vào các từ khóa Các từkhóa này có thể trong metadata của mỗi bức ảnh Người dùng buộc phải nhập cácthông tin này bằng tay trước khi đưa vào hệ thống tìm kiếm Hệ thống sẽ quét vàđánh chỉ mục các từ khóa trong metadata của các ảnh này để phục vụ tìm kiếm saunày Một phương pháp khác có thể áp dụng với những ảnh vốn dùng để minh họacho các văn bản (như các ảnh trên các trang web) Người ta có thể coi nội dung củavăn bản đó có miêu tả nội dung bức ảnh hoặc có liên qua đến nội dung bức ảnh.Như vậy các từ trong văn bản có thể dùng làm các từ khóa để tìm kiếm chính bứcảnh đó
Khác với phương pháp tìm kiếm ảnh bằng từ khóa, tìm kiếm theo nội dung tức
là bản thân bức ảnh sẽ được phân tích để phục vụ cho việc tìm kiếm (chứ khôngdựa vào các từ khóa, các tag hoặc các mô tả của bức ảnh) Nội dung của bức ảnh ởđây có thể là các đối tượng, kết cấu, hoặc các đặc trưng khác được trích xuất từchính bức ảnh Việc hệ thống tìm kiếm ảnh theo nội dung được cho là ưu việt hơntìm kiếm theo từ khóa ở chỗ trên thực tế không phải bức ảnh nào cũng có thông tinmetadata đầy đủ hoặc có văn bản kèm theo Thậm chí văn bản kèm theo các bứcảnh có thể không có liên quan đến nội dung bức ảnh Như vậy người dùng sẽ nhậnđược kết quả tìm kiếm sai từ hệ thống tìm kiếm dựa trên từ khóa Ngoài ra, trongnhiều trường hợp người dùng không tìm được đúng và đủ từ khóa để mô tả bứcảnh Trong một số loại hình tìm kiếm ảnh cụ thể (ví dụ như tìm kiếm các bức ảnhgiống nhau về nội dung nhưng khác về kích thước và màu sắc hoặc tìm kiếm các
Trang 14bức ảnh có cùng một vật thể hoặc đối tượng người tìm kiếm chưa biết tên gọi) thậmchí phương pháp tìm kiếm theo từ khóa không thể áp dụng hiệu quả được Khi đó
có thể áp dụng phương pháp tìm kiếm theo nội dung
1.2 Mục tiêu đề tài
Những vấn đề đã nêu ở trên cho ta thấy được sự cần thiết của việc nghiên cứu,xây dựng một hệ thống tìm kiếm ảnh dựa vào chính nội dung của ảnh Do số lượngcác yếu tố có thể xem là nội dung của một bức ảnh rất đa dạng theo nhu cầu củatừng người tìm kiếm nhưng thời gian nghiên cứu và hoàn thành luận văn có hạnnên tôi xin phép giới hạn lại Nội dung của một bức ảnh được đề cập trong luận vănnày sẽ xoay quanh khuôn mặt trực diện của người và các động vật có vú Theo đó
hệ thống tìm kiếm theo nội dung ảnh được xây dựng trong luận văn sẽ trích rút cácnội dung như: một bức ảnh có xuất hiện khuôn mặt hay không, số lượng khuôn mặtxuất hiện trong bức ảnh là bao nhiêu, danh tính của các khuôn mặt trong bức ảnh vàbản thân toàn bộ bức ảnh cũng coi là một nội dung được trích rút từ bức ảnh
Để trích rút được các nội dung trên từ một bức ảnh, luận văn sẽ nghiên cứu vềthuật toán cho phép xác định vị trí của một khuôn mặt chính diện của người hoặcđộng vật có vú Đề xuất phương pháp chuẩn bị dữ liệu và huấn luyện mô hình họcmáy sao cho chỉ cần một lượng nhỏ dữ liệu huấn luyện có gán nhãn (xác định vị tríkhuôn mặt thủ công) mà vẫn có thể cho phép huấn luyện một mô hình học máy xácđịnh được vị trí các khuôn mặt khá chính xác so với khi huấn luyện mô hình vớilượng dữ liệu huấn luyện gán nhãn lớn Luận văn cũng nghiên cứu thuật toán họcmáy cho phép nhận diện danh tính của các khuôn mặt (đã được xác định vị trítrước) Do đặc thù của việc nhận diện danh tính, thuật toán học máy này cần chạyvới tốc độ nhanh, dữ liệu huấn luyện nhỏ, thường là một mẫu huấn luyện và kết quảcần cho ra những khuôn mặt giống với khuôn mặt đã huấn luyện
Từ cơ sở giải quyết được hai bài toán xác định vị trí khuôn mặt và nhận diệndanh tính của khuôn mặt luận văn xây dựng một hệ thống tìm kiếm ảnh có thể tìm
Trang 15được các bức ảnh của người và động vật có vú, các bức ảnh trực diện của cùng mộtngười hoặc một con vật thuộc loài có vú, tìm được các bức ảnh có cùng số lượngngười hoặc số lượng động vật có vú, tìm được các ảnh có người và các động vật có
vú giống hệt nhau nhưng khác biệt về kích thước và màu sắc
1.3 Đối tượng và phương pháp nghiên cứu
Đối tượng nghiên cứu của luận văn là nghiên cứu các đặc trưng của khuôn mặtngười và các động vật có vú thể hiện trên các bức ảnh, lựa chọn các đặc trưng quantrọng để có thể sử dụng trong các bộ phân lớp học máy Luận văn cũng nghiên cứucách thức để có thể sử dụng được các bộ phân lớp học máy giám sát có độ chínhxác cao (vốn cần rất nhiều dữ liệu huấn luyện gán nhãn thủ công) mà chỉ cần một
bộ dữ liệu gán nhãn nhỏ
Phương pháp nghiên cứu là dựa vào bộ công cụ xử lý ảnh OpenCV có sẵn đểxây dựng một công cụ cho phép khảo sát, thực nghiệm và cài đặt được một hệthống tìm kiếm ảnh xoay quanh khuôn mặt người và động vật có vú Tuy vậy,phương pháp được trình bày có thể áp dụng để xây dựng các mô hình phân lớp chophép xác định các nội dung liên quan đến các các vật thể khác như logo của cáccông ty hoặc các đồ vật khác
1.4 Cấu trúc khóa luận
Khóa luận được tổ chức thành các chương như sau:
Chương 1: 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
Trang 16và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 dungtrong ảnh.
Trang 17Chương này cũng đề xuất phương pháp huấn luyện bán giám sátBootstrapping và cách thức kết hợp nó với các thuật toán học máy có giámsát để xác định vị trí các đối tượng trong bức ảnh với một bộ dữ liệu huấnluyệ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ậttoá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ếthợ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
1
Trang 18CHƯƠ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.
2.1.1 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ậttoá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ượtqua 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 (NeuralNetwworks), bộ phân lớp Bayes (Bayesian) hoặc mô hình Markov ẩn (HidenMarkov 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ụngeigenfaces (các khuôn mặt đặc biệt) làm các mẫu Một khuôn mặt người sẽ đượccoi 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áckhuô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ấybở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ấtphươ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
2
Trang 19rút từ ảnh đại diện đó Các đặc trưng đó gọi là các đặc trưng Haar Các đặc trưngnà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.
Hình 2.1: Các đặc trưng HaarTậ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ỗiloại đặc trưng Haar Các đặc trưng sau đó được lựa chọn Mỗi đặc trưng sẽ đượchuấ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ônmặ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ựatrên các đặc trưng Haar
Hình 2.2: Các đặc trưng Haar mở rộng
2.1.2 Đặc trưng theo mẫu nhị phân cục bộ (LBP)
2.1.2.1 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)
3
Trang 20Công thức tính toán như sau:
Công thức 2.1: Công thức tính LBP của một điểm ảnhVớ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âncận của (xc, yc)
Hàm s(x) được định nghĩa như sau:
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:
Tuy vậy, do giá trị cấp xám ở đây được lấy trên từng điểm ảnh nên bị ảnhhưở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ặtkhá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
Trang 21củ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ẽ ảnhhưởng rất lớn đến tốc độ huấn luyện và tốc độ phân lớp trên thực tế.
5
Trang 222.1.2.2 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ư trongphươ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
Hình 2.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ũnggiả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ácgiá 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ừngvùng
6
Trang 23Hình 2.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 đượcbiể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ụngchú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 haykhô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ôngphả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, 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
MB-7
Trang 24Theo đó ta chỉ cần để ý tới LBP của các chuỗi nhị phân l sau:
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 N = 58
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 địnhtheo 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
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 Hn(X) là bộ phân lớp tổng hợp của tầng n:
Công thức 2.2: Công thức của bộ phân lớp yếuTrong đó, Wn là tập các điểm ảnh của tầng n
2.1.3.2 Huấn luyện chồng tầng
Ý tưởng của huấn luyện và phân lớp chồng tầng là bộ phân lớp sẽ là tổnghợp của nhiều bộ phân lớp yếu (nhiều tầng) Trong đó xác suất phân lớp chính xáccủa các bộ phân lớp yếu này chỉ cần tốt hơn so với việc phân lớp theo kiểu ngẫunhiên Do vậy các bộ phân lớp yếu sẽ chỉ cần rất đơn giản và việc xây dựng nên các
8
Trang 25bộ phân lớp yếu này không yêu cầu phải tính toán phức tạp Tuy vậy kết quả cuốicùng, bộ phân lớp tổng hợp từ nhiều tầng sẽ cho một kết quả rất chính xác.
Khi huấn luyện, thuật toán huấn luyện sẽ chọn ra những bộ phân lớp yếu(tầng) sao cho kết quả phân lớp của bộ phân lớp yếu đó có lượng kết quả sai là ítnhất Ở đây ta đang phân lớp các ảnh là ảnh của một khuôn mặt hay không vì vậythuật toán sẽ chọn ra những vị trí vùng ảnh và và bảng các giá trị trọng số của các
mã nhị phân tương ứng với vùng ảnh đó (như đề cập ở trên)
Cụ thể thuật toán như sau:
Với mỗi bộ phân lớp yếu (tầng) n, số lượng Pn của tập các vùng ảnh thuộc
Wn là cố định Số vòng lặp huấn luyện Tn cũng cố định
Với mỗi vòng lặp t, bảng Lppos và Lpneg được gán cho mỗi vùng ảnh của Wn.Sau đó, với mỗi vị trí vùng ảnh p, toán tử MB-LBP sẽ được thực hiện trên tập cácảnh khuôn mặt mẫu Với mỗi ảnh mẫu, mã nhị phân MB-LBP được tính trên mỗivùng ảnh tương ứng với vị trí p Trọng số của mỗi mã nhị phân x này bằng trọng sốcủa mẫu
Điểm phân lớp lỗi của vị trí p sẽ tính bằng công thức
Bảng Lp được tính theo công thức:
(2.3)Công thức 2.3: Công thức tính bảng các trọng số của các mã nhị phân tại điểm ảnh pTới cuối cùng, mỗi mã nhị phân x tại điểm ảnh có vị trí p sẽ có trọng số làtổng giá trị trọng số của Lp[x] tại mỗi vòng lặp và các bảng Lp được gộp lại mộtbảng được tính theo công thức
9
Trang 262.2 Thuật toán học bán giám sát Bootstrapping
Thuật toán học máy có giám sát để xác định khuôn mặt ở trên cần một sốlượng rất lớn các dữ liệu là tập ảnh các khuôn mặt và tập ảnh không phải khuônmặt được lọc và xử lý trước thủ công Việc chuẩn bị bộ dữ liệu đó rất tốn công sức
và thời gian Chính vì vậy, luận văn để xuất một phương pháp cho phép chỉ cẩnchuẩn bị một tập nhỏ các dữ liệu huấn luyện được lọc và xử lý trước mà vẫn có thểhuấn luyện được một bộ phân lớp xác định vị trí khuôn mặt khá chính xác Phươngpháp này đã từng được Yakowsky mô tả dùng để xác định nghĩa của các từ trongmột văn bản Ở đây, tôi có biến đổi một chút để áp dụng vào bài toán xác định vị tríkhuôn mặt Sau đây là sơ đồ các bước huấn luyện theo thuật toán Bootstrapping
10
Trang 27không đều nhau
Huấn luyện Bộ phân
lớp xác định vị trí
khuôn mặt dựa vào
bộ ảnh A1 và bộ ảnh
C
Kiểm tra độ chính xác của mô hình
phân lớp với bộ ảnh test A2 đã hội
tụ chưa
Kết thúc
Đã hội tụ
Sử dụng mô hình phân lớp M để xác định vị trí khuôn mặt trên bộ ảnh B
Chuyển các ảnh đã gán nhãn của bộ ảnh
B sang bộ ảnh C
Bắt đầu
Chưa hội tụ
11
Trang 28Bộ ảnh huấn luyện chưa xử lý
Bộ ảnh B sử dụng làm dữ liệu huấn luyện không gán nhãn
Bộ ảnh A2 sử dụng làm dữ liệu test thử trong mỗi vòng huấn luyện
Bộ ảnh C (ban đầu rỗng)
Bộ ảnh A
Hình 2.6: Thuật toán huấn luyện bán giám sát bootstrapping
Ta chỉ cần chuẩn bị, xử lý và bóc tách khuôn mặt trước cho bộ ảnh A có sốlượng không quá lớn Sau đó tách bộ ảnh A đó làm 2 bộ ảnh A1, A2 Bộ ảnh A1 sẽlàm nhiệm vụ mồi Ta sẽ huấn luyện bộ phân lớp để ra được mô hình phân lớp M
Bộ ảnh B sẽ làm nhiệm vụ mở rộng dữ liệu huấn luyện đã gán nhãn bằng cách sửdụng chính mô hình phân lớp M để tự động xử lý và bóc tách khuôn mặt trong bộảnh B và đổ các ảnh đã bóc tách sang bộ ảnh C Tiến hành huấn luyện lặp đi lặp lại
M bằng A1 và C cho đến khi kết quả phân lớp bộ ảnh A2 không cải thiện hoặc bịthụt lùi thì dừng lại
12
Trang 29Như vậy M sẽ được mở rộng dần dần qua mỗi vòng lặp Tới vòng cuối cùng,
độ chính xác của M sẽ gần bằng một bộ phân lớp được huấn luyện bằng một bộ dữliệu huấn luyện được xử lý và bóc tách thủ công có số lượng bằng số lượng ảnh củaA1 và C
2.3 Thuật toán nhận diện khuôn mặt theo biểu đồ tần suất của mẫu nhị phân cục bộ (LBPH)
Nhận diện khuôn mặt là bài toán tiếp theo cần giải quyết trong hệ thống tìmkiếm ảnh theo nội dung Nhận diện khuôn mặt là bài toán rất dễ dàng với conngười Các thí nghiệm đã cho thấy, một đứa trẻ ba ngày tuổi đã có thể phân biệtđược các khuôn mặt mà nó biết Tuy vậy, với máy tính đó sẽ là một thử thách Ta
sẽ cần tìm các đặc trưng để có thể huấn luyện được một bộ phân lớp có thể nhậndiện được danh tính của các khuôn mặt Đã có nhiều nghiên cứu về vấn đề nàytrong đó có thể kể đến ba thuật toán Eigenfaces (các khuôn mặt đặc biệt), và LBPH(Biểu đồ tần suất của mẫu nhị phân cục bộ)
2.3.1 Sơ lược về thuật toán Eigenfaces (các khuôn mặt đặc biệt)
Eigenfaces được phát triển để sử dụng trong nhận dạng bởi Sirovich vàKirby Sau đó nó được Mattheww Turk và Alex Pentland sử dụng vào nhận dạngkhuôn mặt Các vector đặc biệt (eigenvector) được tạo ra từ ma trận hiệp phươngsai phân bố xác suất không gian vector nhiều chiều của các ảnh khuôn mặt Cáceigenface bản thân chúng tạo thành một tập tất cả các ảnh sử dụng để tạo nên matrận hiệp phương sai Người ta giảm các chiều của vector bằng cách cho phép mộttập nhỏ các ảnh đại diện cho tập ảnh huấn luyện Việc phân lớp sẽ tính độ sai kháccủa khuôn mặt với ảnh của các khuôn mặt đại diện đó Tuy vậy eigenfaces sẽ cóthể gặp vấn đề khi gặp các điều kiện ánh sáng khác nhau chiếu lên khuôn mặt củacùng một người
13