ĐẠ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
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
HÀ NỘI - 2015
ĐẠ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
LỜ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.
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 (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.
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ộ 14
CHƯƠNG 3: HỆ THỐNG TÌM KIẾM ẢNH THEO NỘI DUNG 17
3.1. Bộ công cụ OpenCV 17
3.2. Hệ thống tìm kiếm ảnh theo nội dung của ảnh 18
3.2.1. Các công cụ chuẩn bị dữ liệu 18
3.2.2. Hệ thống tìm kiếm ảnh theo nội dung 22
3.2.3. Các hàm công cụ khác 29
CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM 30
4.1. Thí nghiệm 1: 30
4.1.1. Mục đích thực nghiệm: 30
4.1.2. Bố trí thí nghiệm: 30
4.1.3. Kết quả thí nghiệm: 32
4.2. Thí nghiệm 2: 32
4.2.1. Mục đích thực nghiệm: 32
4.2.2. Bố trí thí nghiệm: 32
4.2.3. Kết quả thí nghiệm 35
4.3. Thí nghiệm 3: 36
4.3.1. Mục đích thí nghiệm: 36
4.3.2. Bố trí thí nghiệm: 36
4.3.3. Kết quả thực nghiệm 37
CHƯƠNG 5: KẾT LUẬN 38
5.1. Các kết quả đạt được và hạn chế 38
5.2. Các công việc trong tương lai 40
TÀI LIỆU THAM KHẢO 42
DANH 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 4
Công thức 2.2: Công thức của bộ phân lớp yếu 8
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 9
Công thức 2.4: Công thức tính biểu đồ tần xuất của một ảnh 14
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 14
LỜI CẢM ƠN 3
LỜI CAM ĐOAN 4
TÓM TẮT LUẬN VĂN 5
MỤC LỤC 7
DANH MỤC CÁC CÔNG THỨC 9
DANH MỤC CÁC HÌNH VẼ 10
DANH MỤC CÁC BẢNG BIỂU 11
BẢNG CÁC CHỮ VIẾT TẮT 15
CHƯƠNG 1: TỔNG QUAN 16
1.1.Đặt vấn đề 16
1.2.Mục tiêu đề tài 17
1.3.Đối tượng và phương pháp nghiên cứu 18
1.4.Cấu trúc khóa luận 18
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 2
2.1. Thuật toán xác định vị trí khuôn mặt 2
2.1.1. Một số thuật toán xác định vị trí khuôn mặt thường gặp 2
Hình 2.1: Các đặc trưng Haar 3
Hình 2.2: Các đặc trưng Haar mở rộng 3
2.1.2. Đặc trưng theo mẫu nhị phân cục bộ (LBP) 3
Công thức 2.1: Công thức tính LBP của một điểm ảnh 4
Hình 2.4: Hình minh họa cách chia vùng 3x3 của MB-LBP 6
Hình 2.5: Hình minh họa các khuôn mặt sau khi áp dụng MB-LBP 7
2.1.3. Các bộ phân lớp yếu và huấn luyện chồng tầng 8
Công thức 2.2: Công thức của bộ phân lớp yếu 8
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 9
2.2. Thuật toán học bán giám sát Bootstrapping 10
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) 13
2.3.1. Sơ lược về thuật toán Eigenfaces (các khuôn mặt đặc biệt) 13
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
29
3.2.3. Các hàm công cụ khác 29
CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM 30
4.1. Thí nghiệm 1: 30
4.1.1. Mục đích thực nghiệm: 30
4.1.2. Bố trí thí nghiệm: 30
Hình 4.1: các bước thực hiện thí nghiệm 1 31
4.1.3. Kết quả thí nghiệm: 32
Bảng 4.1: Kết quả thí nghiệm 1 32
4.2. Thí nghiệm 2: 32
4.2.1. Mục đích thực nghiệm: 32
4.2.2. Bố trí thí nghiệm: 32
Hình 4.2: các bước thực hiện thí nghiệm 2 34
4.2.3. Kết quả thí nghiệm 35
Bảng 4.2: Các vòng lặp huấn luyện trong thí nghiệm 2 35
4.3. Thí nghiệm 3: 36
4.3.1. Mục đích thí nghiệm: 36
4.3.2. Bố trí thí nghiệm: 36
Hình 4.3: Các bước thí nghiệm 3 36
4.3.3. Kết quả thực nghiệm 37
Bảng 4.3: Kết quả thí nghiệm 3 37
CHƯƠNG 5: KẾT LUẬN 38
5.1. Các kết quả đạt được và hạn chế 38
5.2. Các công việc trong tương lai 40
TÀI LIỆU THAM KHẢO 42
BẢNG CÁC CHỮ VIẾT TẮT
Chữ viết
tắt
Cách viết đầy đủ Dịch nghĩa Tiếng Việt
đượ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
chí 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.
trong ảnh.
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.
1
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.
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ó
ảnh của bức ảnh. Tại một vị trí điểm ảnh (x
c
, y
c
), 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
Cô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 ảnh
Với i
c
là giá trị độ xám của (x
c
, y
c
), i
n
là giá trị độ xám của điểm ảnh (x
n
, y
n
) lân
cận của (x
c
, y
c
).
Hàm s(x) được định nghĩa như sau:
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.
6