TÓ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 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ự
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
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áo
trườ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 trong
trườ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 động
viê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ình
nghiê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ập
cũ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ười
luô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 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
Trang 6độ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 (MB-LBP) 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 7MỤ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 6
2.1 Thuật toán xác định vị trí khuôn mặt 6
2.1.1 Một số thuật toán xác định vị trí khuôn mặt thường gặp 6
2.1.2 Đặc trưng theo mẫu nhị phân cục bộ (LBP) 7
2.1.3 Các bộ phân lớp yếu và huấn luyện chồng tầng 12
2.2 Thuật toán học bán giám sát Bootstrapping 14
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) 17
2.3.1 Sơ lược về thuật toán Eigenfaces (các khuôn mặt đặc biệt) 17
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ộ 18
CHƯƠNG 3: HỆ THỐNG TÌM KIẾM ẢNH THEO NỘI DUNG 21
3.1 Bộ công cụ OpenCV 21
Trang 83.2 Hệ thống tìm kiếm ảnh theo nội dung của ảnh .22
3.2.1 Các công cụ chuẩn bị dữ liệu 22
3.2.2 Hệ thống tìm kiếm ảnh theo nội dung 26
3.2.3 Các hàm công cụ khác 33
CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM 34
4.1 Thí nghiệm 1: 34
4.1.1 Mục đích thực nghiệm: 34
4.1.2 Bố trí thí nghiệm: 34
4.1.3 Kết quả thí nghiệm: 36
4.2 Thí nghiệm 2: 36
4.2.1 Mục đích thực nghiệm: 36
4.2.2 Bố trí thí nghiệm: 36
4.2.3 Kết quả thí nghiệm 39
4.3 Thí nghiệm 3: 40
4.3.1 Mục đích thí nghiệm: 40
4.3.2 Bố trí thí nghiệm: 40
4.3.3 Kết quả thực nghiệm 42
CHƯƠNG 5: KẾT LUẬN 43
5.1 Các kết quả đạt được và hạn chế 43
5.2 Các công việc trong tương lai 45
Tài liệu tham khảo 47
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 8
Công thức 2.2: Công thức của bộ phân lớp yếu 12
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 13
Công thức 2.4: Công thức tính biểu đồ tần xuất của một ảnh 18
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 18
Công thức 2.6: Công thức tính độ tương giao của hai biểu đồ tần xuất 19
Công thức 2.7: Công thức thống kê Chi square của hai biểu đồ tần xuất 19
Trang 10DANH MỤC CÁC HÌNH VẼ
Hình 2.1: Các đặc trưng Haar 7
Hình 2.2: Các đặc trưng Haar mở rộng 7
Hình 2.3: Hình minh họa cách tính LBP 8
Hình 2.4: Hình minh họa cách chia vùng 3x3 của MB-LBP 10
Hình 2.5: Hình minh họa các khuôn mặt sau khi áp dụng MB-LBP 11
Hình 2.7: các bước của thuật toán nhận diện khuôn mặt 20
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 23
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 24 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 25
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 26
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 27
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 28
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 29
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 30
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 31
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 33
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 33
Hình 4.1: các bước thực hiện thí nghiệm 1 35
Hình 4.2: các bước thực hiện thí nghiệm 2 38
Hình 4.3: Các bước thí nghiệm 3 41
Trang 11DANH MỤC CÁC BẢNG BIỂU
Bảng 4.1: Kết quả thí nghiệm 1 36 Bảng 4.2: Kết quả thí nghiệm 2 39 Bảng 4.3: Kết quả thí nghiệm 3 42
Trang 12BẢNG CÁC CHỮ VIẾT TẮT
tắ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 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
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ác thô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 sau nà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ọa cho 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ủa vă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ô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ế không phải bức ảnh nào cũng có thông tin metadata đầ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, trong nhiề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 ả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
Trang 14chí 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ượ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 được đề cập 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 trong luận văn 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
Để 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ọc má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ới lượ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ọc má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ạy vớ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ện danh 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 đượ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
Trang 15ngườ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
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ặt ngườ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 quan trọ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ứu cá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ính xá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 cho phé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ác cô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 dung trong ảnh
Trang 17Chươ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
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 Thuật toán xác định vị trí khuôn mặt
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ậ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
Trang 19nà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 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
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)
Trang 20Công thức tính toán như sau:
𝐿𝐵𝑃 𝑥𝑐, 𝑦𝑐 = 𝑠 𝑖𝑛 − 𝑖𝑐 2𝑛 (2.1)
7
𝑛 =0
Công thức 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)
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ế
83 82 63
38 57 46
28 19 23
11100000
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ư 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
9 3 2
3 6 3
7 9 1
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ũ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
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 đượ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, 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
Trang 24MB-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 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 đị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
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:
𝐻𝑛 𝑋 = 𝑝 𝑥 (2.2)
Công thức 2.2: Công thức của bộ phân lớp yếu
Trong đó, 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ổng hợ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ác củ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ẫu nhiê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
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ối cù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à ít nhấ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ậy thuậ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ỗi vù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
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
Tớ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ột bảng được tính theo công thức
Trang 26𝐻 𝑋 = 𝑤𝐻 𝑥
𝑛
=1
2.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ôn mặ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ẩn chuẩ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ương pháp này đã từng được Yakowsky mô tả dùng để xác định nghĩa của các từ trong mộ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
Trang 27Tách bộ ảnh thành 2 phần không đều nhau A, B nhưng không chồng lấp
Gán nhãn dữ liệu cho bộ ảnh A
Chia bộ ảnh A thành
2 bộ ảnh A1, A2 khô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ụ
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
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ủa A1 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ìm kiế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 con ngườ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ận diện được danh tính của các khuôn mặt Đã có nhiều nghiên cứu về vấn đề này trong đó 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ạng khuôn mặt Các vector đặc biệt (eigenvector) được tạo ra từ ma trận hiệp phương sai 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ác eigenface 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 ma trậ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ột tậ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ác củ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ủa cùng một người
Trang 302.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ộ
Thuật toán nhận dạng khuôn mặt sử dụng biểu đồ tần xuất của mẫu nhị phân cục bộ (LBPH) do đó hạn chế được việc nhận dạng sai do ảnh hưởng của ánh sáng lên bức ảnh Như đã trình bày ở trên các chuỗi mẫu nhị phân cục bộ (LBP) đặc trưng cho mỗi điểm ảnh hoàn toàn bảo toàn thứ tự của chúng khi có sự biến đổi ánh sáng đều trên toàn bộ bức ảnh
Sử dụng cách tính toán tử nguyên bản LBP và cách loại bỏ các mã nhị phân không cần thiết như phần trên đã đề cập, ta có cách tính biểu đồ tần xuất của một ảnh đã gán nhãn fi(x, y) như sau
𝐻𝑖 = 𝑥,𝑦𝐼 𝑓𝑙 𝑥, 𝑦 = 𝑖 , 𝑖 = 0, … , 𝑛 − 1 (2.4)
Công thức 2.4: Công thức tính biểu đồ tần xuất của một ảnh
Với n là số lượng các mã nhị phân khác nhau được tính bởi toán tử LBP và
𝐼 𝐴 = 1, 𝑛ế𝑢 𝐴 đú𝑛𝑔
0, 𝑛ế𝑢 𝐴 𝑠𝑎𝑖 Biểu đồ tần suất này chứa những thông tin về sự phân bố của những mẫu cục
bộ như các cạnh, các điểm, và những vùng phẳng trên toàn bức ảnh Để có thể thể hiện khuôn mặt một cách tốt nhất, biểu đồ này phải giữ được những thông tin về không gian Ta sẽ chia bức ảnh lớn thành các vùng nhỏ R0,…Rm – 1 để đạt được mục đích đó Khi đó các biểu đồ tần suất Hi, j được tính bằng công thức:
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
Như vậy những mã nhị phân chứa những thông tin về các mẫu của từng điểm ảnh, các mã nhị phân là tổng của các vùng nhỏ sẽ biểu thị thông tin của một vùng
Với nhận diện khuôn mặt, ta sẽ phải xây dựng một bộ phân lớp có rất ít dữ liệu huấn luyện, thậm chí là chỉ 1 đến 2 dữ liệu huấn luyện