Giới thiệu Nội dung chương này tiếp cận tổng quan về bài toán tìm kiếm ảnh dựa trên quá trình phân lớp và túi từ thị giác, nghĩa là mỗi hình ảnh được phân lớp trên cấu trúc KD_Tree và l
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÀ RỊA – VŨNG TÀU VIỆN ĐÀO TẠO SAU ĐẠI HỌC
TRẦN THỊ THANH HÀ
TÌM KIẾM ẢNH TƯƠNG TỰ DỰA TRÊN CÂY
KD_TREE ĐA NHÁNH CÂN BẰNG
LUẬN VĂN THẠC SĨ CNTT
Bà Rịa Vũng Tàu, tháng 09 năm 2023
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÀ RỊA – VŨNG TÀU VIỆN ĐÀO TẠO SAU ĐẠI HỌC
TRẦN THỊ THANH HÀ
TÌM KIẾM ẢNH TƯƠNG TỰ DỰA TRÊN CÂY
KD_TREE ĐA NHÁNH CÂN BẰNG
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan, đây là bài luận văn, là công trình nghiên cứu nghiêm túc của cá nhân tôi Các số liệu, hình ảnh, kết quả được nêu
trong luận văn “Tìm kiếm ảnh tương tự dựa trên cây KD –Tree đa nhánh cân bằng” là trung thực, không trùng lắp hay sao chép bất kỳ
công trình nào khác
Tôi " xin cam đoan những sự giúp đỡ trong quá trình hoàn thành luận văn này đã được cảm ơn và các thông tin trích dẫn trong luận văn đã được chỉ rõ nguồn " gốc
Học viên thực hiện Luận văn
Trần Thị Thanh Hà
Trang 4LỜI CÁM ƠN
Để hoàn thành luận văn “Tìm kiếm ảnh dựa trên cây KD_Tree đa nhánh cân bằng”,
đầu tiên, tôi xin bày tỏ sự biết ơn, lời cảm ơn sâu sắc đến TS.Văn Thế Thành - Giáo
viên hướng dẫn khoa học đã trực tiếp hướng dẫn tôi Thầy luôn quan tâm, chỉ bảo,
giúp đỡ và động viên tôi trong suốt thời gian xây dựng bài luận
Tôi cũng xin gửi lời cảm chân thành tới cô Nguyễn Thị Định, Cô Lê Thị Vĩnh
Thanh đã luôn bên cạnh hỗ trợ, động viên, giúp đỡ tôi trong quá trình tìm hiểu và
nghiên cứu luận văn Tôi cũng muốn cảm ơn các thầy, các cô là giảng viên của
trường Đại học Bà Rịa Vũng Tàu đã tạo điều kiện thuận lợi cho tôi trong suốt quá
trình học tập tại trường
Trong luận văn, mặc dù đã cố gắng hết sức nhưng sẽ không tránh khỏi những thiếu
sót và hạn chế Tôi rất mong muốn sẽ nhận được sự chia sẻ, đóng góp quý báu của
Quý Thầy Cô trong hội đồng và các bạn để luận văn được hoàn thiện hơn
Tôi xin chân thành cảm ơn.
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CÁM ƠN ii
DANH MỤC CÁC TỪ VIẾT TẮT v
DANH MỤC CÁC HÌNH vi
MỞ ĐẦU 1
Chương 1 TỔNG QUAN VỀ TÌM KIẾM VÀ PHÂN LỚP HÌNH ẢNH 2
1.1 Giới thiệu 2
1.2 Tổng quan về bài toán tìm kiếm ảnh 2
1.2.1 Bài toán phân lớp hình ảnh 3
1.2.2 Ứng dụng của phân lớp cho bài toán tìm kiếm ảnh 5
1.3 Một số phương pháp học máy cho bài toán tìm kiếm ảnh 9
1.3.1 Gom cụm hình ảnh 9
1.3.2 Phương pháp láng giềng gần nhất k-NN 9
1.3.3 SOM – Bản đồ tự tổ chức 10
1.4 Đối tượng và phương pháp nghiên cứu .11
1.4.1 Đối tượng nghiên cứu 11
1.4.2 Phương pháp nghiên cứu .12
1.5 Các công trình liên quan 12
1.6 Nội dung chính của các chương trong luận văn 16
1.7 Tổng kết chương 17
Chương 2 CẤU TRÚC KD_TREE CHO BÀI TOÁN TÌM KIẾM ẢNH 18
2.1 Giới thiệu 18
2.2 Cấu trúc KD_Tree và chỉ mục đa chiều 19
2.3 Một số biến thể của cấu trúc KD_Tree 22
2.4 Cấu trúc KD_Tree cho bài toán tìm kiếm ảnh 27
2.5 So sánh một số công trình tìm kiếm ảnh sử dụng cấu trúc KD_Tree 33
2.6 Các mô hình tìm kiếm ảnh sử dụng cấu trúc KD_Tree 35
2.7 Tổng kết chương 38
Chương 3 MÔ HÌNH TÌM KIẾM ẢNH DỰA TRÊN CẤU TRÚC KD_TREE 39
3.1 Mở đầu 39
3.2 Cấu trúc KD_Tree cho bài toán tìm kiếm ảnh 40
3.2.1 Mô tả cấu trúc KD_Tree 40
3.2.2 Quá trình xây dựng cấu trúc KD_Tree 42
Trang 63.3 Các thuật toán xây dựng cấu trúc KD_Tree 44
3.3.1 Thuật toán xây dựng cấu trúc KD_Tree 44
3.3.2 Thuật toán gán nhãn nút lá 45
3.3.3 Thuật toán huấn luyện trọng số 46
3.4 Thuật toán phân lớp và tìm kiếm ảnh trên cấu trúc KD_Tree 49
3.4.1 Thuật toán phân lớp dựa trên cấu trúc KD_Tree 49
3.4.2 Thuật toán tìm kiếm trên cấu trúc KD_Tree 51
3.5 Mô hình tìm kiếm ảnh dựa trên cấu trúc KD_Tree 52
3.5.1 Mô hình phân lớp ảnh dựa trên cấu trúc KD_Tree 52
3.5.2 Mô hình tìm kiếm ảnh dựa trên cấu trúc KD_Tree 53
3.6 Tổng kết chương 54
Chương 4 THỰC NGHIỆM TÌM KIẾM ẢNH 55
4.1 Giới thiệu 55
4.2 Mô tả dữ liệu thực nghiệm 55
4.3 Môi trường thực nghiệm 56
4.4 Thực nghiệm 56
4.4.1 Thực nghiệm trích xuất véc-tơ đặc trưng hình ảnh 56
4.4.2 Thực nghiệm xây dựng cấu trúc KD_Tree đa nhánh cân bằng 58
4.4.3 Thực nghiệm tìm kiếm ảnh tương tự dựa trên cấu trúc KD_Tree 59
4.4.4 Kết quả thực nghiệm tìm kiếm ảnh tương tự dựa trên cấu trúc KD_Tree 64
4.5 Tổng kết 69
KẾT LUẬN 70
TÀI LIỆU THAM KHẢO 71
Trang 7DANH MỤC CÁC TỪ VIẾT TẮT
KD-Tree k-Demensional Tree Cây dữ liệu đa chiều
BOVW Bag of Visual Words Túi từ thị giác
TBIR Text-based Image Retrieval Truy vấn hình ảnh dựa trên văn bản CBIR Content-based Image Retrieval Truy vấn hình ảnh dựa trên nội dung
SBIR Semantic-based Image
Retrieval Truy vấn hình ảnh dựa trên ngữ nghĩa k-NN k - Nearest Neighbors k-láng giềng gần nhất
CNN Convolution Neural Network Mạng nơ-ron tích chập
DNN Deep Neural Network Mạng nơ-ron học sâu
SVM Support Vector Machine Máy vector hỗ trợ
CKDT Create KD-Tree Tạo cấu trúc KD_Tree
SL2L Set Lable To Leaf Gán nhãn nút lá
TVKDT Training Vector in KD-Tree Huấn luyện vector trọng số trên
KD-Tree SKDT Search in KD-Tree Tìm kiếm trên KD-Tree
CLKDT Classification using KD-Tree Phân lớp bằng KD-Tree
SOM Self –Organizing Map Bản đồ tự tổ chức
ANN Artificial Neural Network Mạng nơ-ron nhân tạo
DT Decision Tree Cây quyết định
ROC Receiver Operating Curve Đường cong biểu diễn tỷ lệ đúng, sai
Trang 8DANH MỤC CÁC HÌNH
Hình 1.1 Mô tả phân lớp dữ liệu bằng thuật toán k-NN
Hình 1.2 Mô tả kiến trúc của bản đồ tự tổ chức SOM
Hình 2.1 Cấu trúc KD_Tree biểu diễn tập dữ liệu 3 chiều
Hình 2.2 Các kỹ thuật đánh chỉ mục đa chiều
Hình 2.3 Sơ đồ biến thể của cấu trúc KD_Tree
Hình 2.4 Minh họa chia tập dữ liệu thành Tuple (a) và xây dựng cấu trúc KD_Tree (b)
Hình 2.5 Cấu trúc cây VAM KD-Tree một nút Root (a), chia đôi Root (b) và cây VAM KD-Tree hoàn chỉnh (c)
Hình 2.6 Mô hình huấn luyện và truy vấn trên Distribute KD-Tree
Hình 2.7 Cây DKD-Tree và cây IKD-Tree
Hình 2.8 Mô hình xây dựng Vocabulary KD-Tree và tìm kiếm ảnh
Hình 2.9 Cây KDTree (a) và gom cụm đặc trưng ảnh trên KDTree (b)
Vocabulary-Hình 2.10 Minh họa Cache KD-Tree phân nhóm và bố cục lưu trữ trên bộ nhớ Hình 2.11 Điểm cắt không liên kết (a) và canh chỉnh điểm cắt (b)
Hình 2.12 Quy tắc phân lớp theo Tuple
Hình 2.13 Minh họa Pruned KD-Tree theo quy tắc phân lớp
Hình 2.14 Mô hình tìm kiếm ảnh dựa trên tìm kiếm láng giềng của cấu trúc
KD_Tree
Hình 2.15 Mô hình truy vấn ảnh dựa trên cấu trúc Indexing KD-Tree
Hình 2.16 Mô hình phân lớp ảnh dựa trên cấu trúc KD_Tree
Hình 3.1 Minh họa quá trình tạo nhánh tại Node¬i
Hình 3.2 Cấu KD-Tree đa nhánh cân bằng
Hình 3.3 Sơ đồ xây dựng và huấn luyện KD-Tree theo Epochi dữ liệu
Hình 3.4 Minh họa tập véc-tơ phân lớp trên KD-Tree cho bộ ảnh COREL
Hình 3.5 Mô hình phân lớp ảnh dựa trên cấu trúc KD_Tree
Trang 9Hình 3.6 Mô hình tìm kiếm ảnh dựa trên cấu trúc KD_Tree
Hình 4.1 Thực nghiệm minh họa trích xuất véc-tơ đặc trưng cho 1 ảnh
Hình 4.2 Thực nghiệm minh họa trích xuất véc-tơ đặc trưng cho thư mục ảnh Hình 4.3 Minh họa véc-tơ đặc trưng hình ảnh sau khi trích xuất
Hình 4.4 Minh họa thực nghiệm xây dựng cấu trúc KD_Tree
Hình 4.5 Tìm kiếm ảnh tương tự trên bộ ảnh COREL
Hình 4.6 tập ảnh tương tự với ảnh 404.jpg (COREL)
Hình 4.7 Tìm kiếm ảnh tương tự trên bộ ảnh Flower-17
Hình 4.8 tập ảnh tương tự với ảnh 1143.jpg (Flower-17)
Hình 4.9 Tìm kiếm ảnh tương tự trên bộ ảnh Caltech256
Hình 4.10 tập ảnh tương tự với ảnh 001_0003.jpg (Caltech256)
Hình 4.11 Đồ thị Precision, Recall và đường cong ROC trên bộ ảnh COREL
Hình 4.12 Đồ thị Precision, Recall, đường cong ROC trên bộ ảnh Flower-17
Hình 4.13 Đồ thị Precision, Recall và đường cong ROC bộ ảnh Caltech256 (1-102) Hình 4.14 Đồ thị Precision, Recall, đường cong ROC bộ ảnh Caltech256 (103-257) Hình 4.15 Thời gian tìm kiếm trung bình trên bộ ảnh COREL
Hình 4.16 Thời gian tìm kiếm trung bình trên bộ ảnh Flower-17
Hình 4.17 Thời gian tìm kiếm trung bình trên bộ ảnh Caltech256
Trang 10DANH SÁCH BẢNG BIỂU
Bảng 2.1 So sánh một số công trình tìm kiếm ảnh sử dụng cấu trúc KD_Tree
Bảng 2.2 Một số bộ dữ liệu thực nghiệm trên các công trình tìm kiếm ảnh sử dụng cấu trúc KD_Tree
Bảng 4.1 Mô tả các bộ ảnh thực nghiệm
Bảng 4.2 Kết quả tìm kiếm ảnh tương tự trên các bộ ảnh thực nghiệm
Bảng 4.3 So sánh độ chính xác tìm kiếm ảnh trên bộ ảnh COREL
Bảng 4.4 So sánh độ chính xác tìm kiếm ảnh trên bộ ảnh Flower-17
Bảng 4.5 So sánh độ chính xác tìm kiếm ảnh trên bộ ảnh Caltech256
Trang 11MỞ ĐẦU
Luận văn này tập trung tiếp cận xây dựng một mô hình tìm kiếm ảnh dựa trên quá trình phân lớp kết hợp với nhóm các túi từ thị giác Trong đó, việc phân lớp các hình ảnh được xây dựng dựa trên cây đa nhánh cân bằng KD-Tree với mỗi một nút trên cây được điều hướng cho mỗi hình ảnh để gom cụm về các túi từ thị giác tại nút lá của cây Cấu trúc KD_Tree được hình thành dựa trên quá trình huấn luyện các trọng số tại mỗi nút trong của cây nhằm thực hiện phân lớp mỗi hình ảnh trên mỗi tầng của cây Sau quá trình huấn luyện, một mô hình tìm kiếm được xây dựng
đó là cây đa nhánh cân bằng KD-Tree ứng với các trọng số tại mỗi nút và nút lá của cây là một nhóm các hình ảnh cần tìm kiếm tương ứng với hình ảnh đầu vào
Các đối tượng nghiên cứu lần lượt được tiếp cận bao gồm đặc trưng của hình ảnh, cấu trúc KD_Tree cân bằng, quá trình huấn luyện của cấu trúc KD_Tree, các túi từ thị giác được lưu trữ tại nút lá và mô hình tìm kiếm ảnh tương tự dựa trên cấu trúc KD_Tree Cùng với đối tượng nghiên cứu, nội dung của luận văn lần lượt tiếp cận phương pháp nghiên cứu theo hai định hướng bao gồm nghiên cứu lý thuyết và thực thi thực nghiệm Trong đó đối với phương pháp lý thuyết, luận văn tiếp cận công trình đã được công bố gần đây, từ đó các nội dung liên quan được phân tích, đánh giá để làm cơ sở cho việc cải tiến cũng như xây dựng mô hình tìm kiếm ảnh dựa trên cấu trúc KD_Tree Sau khi có mô hình đề xuất, thực nghiệm được xây dựng trên các bộ ảnh thông dụng mà đã được công bố nhằm minh chứng kết quả lý thuyết đã được đề xuất cũng như đánh giá tính hiệu quả về độ chính xác và tốc độ tìm kiếm các hình ảnh tương tự với ảnh đầu vào
Trên cơ sở mô hình đã đề xuất, thực nghiệm được đánh giá tính hiệu quả để từ
đó cho thấy sự khả thi của cấu trúc KD_Tree đối với bài toán tìm kiếm ảnh Kết quả thực nghiệm được mô tả dựa trên độ chính xác cho bài toán tìm kiếm tập ảnh tương
tự và thực hiện quá trình phân tích, đánh giá và so sánh với các công trình liên quan
Từ đó, các định hướng cải tiến cho phương pháp tìm kiếm này cũng được đưa ra để làm phương pháp phát triển tiếp theo cho luận văn
Trang 12Chương 1 TỔNG QUAN VỀ TÌM KIẾM VÀ PHÂN LỚP HÌNH ẢNH
1.1 Giới thiệu
Nội dung chương này tiếp cận tổng quan về bài toán tìm kiếm ảnh dựa trên quá trình phân lớp và túi từ thị giác, nghĩa là mỗi hình ảnh được phân lớp trên cấu trúc KD_Tree và lưu trữ hình ảnh này tại các túi từ tương ứng với các nút lá phù hợp Ứng với mỗi hình ảnh đầu vào, đặc trưng của hình ảnh được trích xuất và lần lượt dựa vào cấu trúc phân lớp KD-Tree để tìm đến các túi từ thị giác tương ứng với một nút lá của cây, sau đó tập hình ảnh tại túi từ này được trích xuất để làm tập kết quả cho bài toán tìm kiếm ảnh tương tự
Đối với bài toán tìm kiếm ảnh tương tự, các lĩnh vực khác nhau đã có nhiều ứng dụng cụ thể, đặc biệt là trong các bài toán tìm kiếm dữ liệu về ảnh số, video, đối sánh ảnh đối tượng, tìm kiếm các đối tượng liên quan,… Trong bài toán tìm kiếm ảnh dựa trên KD-Tree, cấu trúc KD_Tree được cải tiến theo hướng cây cân bằng và kết hợp với túi từ nhằm giải quyết một bài toán mang tính chất thời sự trong nhiều lĩnh vực hiện nay Bài toán tìm kiếm ảnh này là sự kết hợp của quá trình phân lớp trên cây và gom cụm tại các túi từ, do đó đây cũng là một bài toán mang tính tiêu biểu trong học máy đồng thời thể hiện phương pháp học bán giám sát vì dựa vào cấu trúc tìm kiếm của cấu trúc KD_Tree
Để có thể tiếp cận được nội dung đã được miêu tả như trên, các đối tượng nghiên cứu và phương pháp nghiên cứu được tiếp cận để làm cơ sở cho quá trình thực hiện luận văn Các đối tượng nghiên cứu trong luận văn lần lượt được tiếp cận bao gồm: ảnh số, đặc trưng của ảnh số, cấu trúc KD_Tree, thuật toán xây dựng cấu trúc KD_Tree, các túi từ thị giác, và mô hình tìm kiếm ảnh tương tự Phương pháp nghiên cứu của luận văn lần lượt được tiếp cận theo phương pháp lý thuyết và phương pháp thực nghiệm để từ đó có thể xây dựng một mô hình trên cơ sở lý thuyết đã có đồng thời minh chứng tính đúng đắn của mô hình này bằng thực nghiệm trên các bộ ảnh thông dụng Từ các đối tượng và phương pháp nghiên cứu, nội dung về phân lớp, gom cụm trong học máy được tiếp cận cho bài toán tìm kiếm ảnh nhằm thực hiện các cải tiến và phát triển các nội dung ở các chương tiếp theo
Trang 131.2 Tổng quan về bài toán tìm kiếm ảnh
1.2.1 Bài toán phân lớp hình ảnh
Phân loại hình ảnh, là một chủ đề nghiên cứu quan trọng cho quá trình ứng dụng vào bài toán học máy cũng như tìm kiếm ảnh Đối với bài toán tìm kiếm ảnh dựa trên quá trình phân lớp theo cấu trúc KD_Tree thì việc phân lớp này là một trong những vấn đề cốt lõi để xây dựng tập các hình ảnh tương tự dựa trên túi từ Việc cải thiện hiệu suất phân lớp cho hình ảnh giúp cải thiện đáng kể về độ chính xác cho bài toán tìm kiếm ảnh vì quá trình phân lớp ảnh góp phần trực tiếp tạo ra các túi từ thị giác chứa các hình ảnh tương tự Việc cải tiến phương pháp phân lớp hình ảnh cũng là một đóng góp quan trọng cho bài toán tìm kiếm ảnh dựa trên cấu trúc KD_Tree, quá trình phân lớp là một giai đoạn tiền đề cho quá trình phân cụm trên cơ sở thuộc tính của hình ảnh Vì vậy, trong bài toán này, việc kết hợp giữa học
có giám sát và học bán giám sát được thực hiện mà trong đó quá trình học có giám sát được thực hiện bằng cách huấn luyện cấu trúc KD_Tree tại mỗi nút trong Sau khi quá trình huấn luyện được thực hiện, các hình ảnh được gom cụm để tạo thành các túi từ tại nút lá mà phương pháp gom cụm này dựa trên cơ sở học bán giám sát
vì sử dụng cấu trúc KD_Tree đã được huấn luyện Việc phân loại ảnh dựa trên cơ sở các đặc trưng của hình ảnh, cụ thể là véc-tơ đặc trưng, đây là cơ sở để thực hiện phân loại ảnh Vì vậy, các thuật toán trích xuất đặc trưng hình ảnh được ứng dụng
để làm cơ sở ban đầu cho bài toán tìm kiếm ảnh tương tự [1]
Phân loại ảnh là một bài toán kết hợp bởi nhiều yếu tố như: các miền dữ liệu cho từng bài toán thuộc từng lĩnh vực khác nhau, các vấn đề cần giải quyết và hướng phát triển của bài toán ứng dụng cho việc phân loại hình ảnh Quá trình phân lớp hình ảnh phụ thuộc trực tiếp vào việc trích xuất đặc trưng cũng như phương pháp và mô hình phân lớp, nên việc chọn một mô hình phân lớp phù hợp là một giai đoạn quan trọng và cũng là giai đoạn tiền đề đối với bài toán tìm kiếm ảnh trong luận văn này Các mô hình phân lớp ảnh có thể thực hiện theo tuyến tính và phi tuyến như mạng nơ-ron, cây quyết định và phân loại dựa trên học tăng cường ngày càng trở thành những cách tiếp cận quan trọng để phân loại dữ liệu đa chiều [2] Tuy nhiên, cần có sự cải tiến trong phương pháp phân lớp cũng như kế thừa từ các phương pháp đã nghiên cứu trước đó nhằm tạo ra một mô hình phân lớp đúng
Trang 14cho dữ liệu tăng trưởng về đối tượng dữ liệu cũng như tăng trưởng về số bộ phân loại nhưng vẫn đảm bảo được độ chính xác cũng như thời gian tìm kiếm
Phân loại hình ảnh được thực hiện bằng cách trích xuất đặc trưng hình ảnh toàn cục hoặc cục bộ bằng cách dựa trên các phương pháp trích xuất đặc trưng đã có
để làm cơ sở cho quá trình học có giám sát (tức là huấn luyện mô hình), sau đó hệ thống phân loại sử dụng mô hình đã được huấn luyện để xác định và định danh các đối tượng có trên mỗi hình ảnh Đối với bài toán tìm kiếm ảnh dựa trên phân lớp
cần phải kết hợp với một cấu trúc túi từ thị giác BOVW (Bag of Visual Words) để
có thể gom nhóm các hình ảnh tương tự làm tiền đề cho bài toán tìm kiếm ảnh này Nhiều mô hình phân loại đối tượng kết hợp với BOVW cũng đã được sử dụng rộng rãi để thực hiện quá trình tìm kiếm đối tượng cũng như tìm kiếm ảnh, ví dụ kết
hợp giữa phân lớp học sâu và BOVW, kết hợp mô hình SVM (Support Véc-tơ
Machine), kết hợp mạng nơ-ron nhân tạo,…Đối với mô hình BOVW, hệ thống trích
xuất đặc trưng của đối tượng và kết nối với các định danh để từ đó phân bổ về từng túi từ thị giác nhằm thực hiện phân nhóm cho từng bộ phân loại làm cơ sở cho bài toán tìm kiếm đối tượng Phương pháp này có thể thực hiện việc phân loại ảnh theo các đặc trưng cấp thấp như màu sắc, hình dạng, vân ảnh, bề mặt,… nhưng cần phải kết hợp các cấu trúc túi từ này với một mô hình máy học để làm tiền đề cho quá trình phân loại Phương pháp này đã được sử dụng rộng rãi và thực nghiệm trong nhiều bộ ảnh khác nhau như PASCAL VOC, ILSVRC, [1]
Qua khảo sát và phân tích đã cho thấy bài toán phân lớp hình ảnh là một bước tiền đề quan trọng để có thể nâng cao độ chính xác thay vì thực hiện trực tiếp gom cụm hình ảnh cho bài toán tìm kiếm Vì vậy, đối với bài toán tìm kiếm ảnh trong luận văn này, quá trình thực hiện bao gồm ba giai đoạn: (1) huấn luyện mô hình phân lớp ảnh, (2) kết hợp việc phân lớp ảnh dựa trên mô hình đã có và cấu trúc túi
từ thị giác nhằm gom nhóm các hình ảnh tương tự, (3) tìm kiếm ảnh tương tự với ảnh đầu vào dựa trên mô hình phân lớp và túi từ thị giác Việc phân lớp hình ảnh và túi từ thị giác trong luận văn này được sử dụng cấu trúc KD_Tree đa nhánh cân bằng nhằm phù hợp với số bộ phân loại tăng trưởng cũng như đảm bảo quá trình tìm kiếm nhanh và chính xác
Trang 151.2.2 Ứng dụng của phân lớp cho bài toán tìm kiếm ảnh
Phân lớp ảnh và ứng dụng cho bài toán tìm kiếm ảnh đã được nhiều công trình thực hiện với các kỹ thuật học máy khác nhau:
Phân lớp bằng thuật toán tìm kiếm láng giềng gần nhất k-NN (k – Nearest Neighbors): đây là một trong những thuật toán học có giám sát hiệu quả trong một
số trường hợp thuộc lớp bài toán về học máy Khi huấn luyện, thuật toán này không tốn chi phí để tạo ra một mô hình như các phương pháp khác mà chỉ là dựa vào các phần tử láng giềng để thực hiện phân loại cho đối tượng đầu vào, các tính toán của thuật toán k-NN được thực hiện khi cần dự đoán kết quả của dữ liệu mới Thuật toán k-NN có thể áp dụng được vào cả hai loại của bài toán học có giám sát bao gồm phân lớp và hồi quy [3]
Với k-NN, trong bài toán phân loại, để tạo ra nhãn của một điểm dữ liệu mới
được suy ra trực tiếp từ k điểm dữ liệu gần nhất trong tập huấn luyện Nhãn của một
tập dữ liệu kiểm thử có thể được quyết định bằng số lượng bầu chọn giữa các điểm gần nhất, hoặc nó có thể được suy ra bằng cách đánh trọng số khác nhau cho mỗi nhãn trong các điểm gần nhất để nội suy ra nhãn lớp của điểm dữ liệu đầu vào Tuy nhiên, đối với các mẫu dữ liệu có số lượng lớn, việc tìm các đối tượng láng giềng sẽ tương đối khó khăn vì cần phải xét duyệt trên từng điểm dữ liệu nên cần phải có một phương pháp hỗ trợ khác như phân cụm trước khi thực hiện tìm các phần tử láng giềng Việc phân cụm này có thể thực hiện bằng nhiều phương pháp khác nhau như phân cụm phân hoạch, phân cụm phân cấp, nên tốn nhiều chi phí cho quá trình tìm kiếm
Phân lớp bằng kỹ thuật SVM (Support Vector Machines): Phương pháp phân
lớp này dựa trên một siêu phẳng và các véc-tơ hỗ trợ để phân loại đối tượng Quá trình phân loại cũng có thể kết hợp với một cấu trúc túi từ thị giác BOVW nhằm thực hiện bài toán tìm kiếm hình ảnh tương tự Trong phương pháp này, một siêu phẳng dùng để phân chia không gian cho biến đầu vào nhằm phân loại và gán nhãn cho đối tượng Trong không gian hai chiều, một siêu phẳng như là một đường thẳng
và các biến đầu vào được tách bằng đường này thành hai phân lớp riêng biệt Các
Trang 16siêu phẳng tốt có thể tách riêng hai lớp theo biên lớn nhất (khoảng cách lề) dựa trên các điểm véc-tơ thuộc về hai lớp, những điểm này được gọi là các véc-tơ hỗ trợ Phương pháp SVM có thể được ứng dụng rộng rãi và có độ chính xác cao trên các tập dữ liệu lớn, đồng thời có thể áp dụng phương pháp này với các dữ liệu đa chiều [3] Tuy nhiên, việc huấn luyện SVM là khá lớn, mặt khác SVM phân lớp đối tượng thành hai bộ phân loại nên thực hiện bài toán có nhiều bộ phân loại thì phải phối hợp nhiều mô hình SVM khác nhau, do đó đối với phương pháp này tốn kém nhiều chi phí huấn luyện cũng như quá trình thực hiện phân loại theo nhiều cấp
Phân lớp với thuật toán CNN (Convolutional Neural Network): Đây là phương
pháp có hiệu suất cao trong lĩnh vực phân loại hình ảnh và đã đạt được độ chính xác cao trong các tập hình ảnh với quy mô lớn Mô hình học sâu CNN và DNN có khả năng học mẫu và tính toán nhanh trong việc phân lớp Khác với phương pháp phân loại ảnh đã có, phương pháp phân loại dựa trên CNN là một quá trình học tập từ đầu đến cuối, quá trình huấn luyện và dự đoán được thực hiện trong mạng và cho kết quả đầu ra là nhãn phân loại tương ứng với một hình ảnh đầu vào Phương pháp này không thực hiện dựa trên các đặc trưng được trích xuất mà thực hiện trực tiếp từ một ảnh đầu vào Đây cũng là một điểm ưu việt của mạng CNN đối với việc phân loại ảnh trực tiếp [1] Tuy nhiên đối với mô hình này, các phân lớp đầu ra là cố định ứng với mỗi mô hình đã được huấn luyện trước đó Đối với các tập dữ liệu ảnh tăng trưởng về kích thước cũng như số lượng phân lớp thì việc phân lớp bằng CNN phải được huấn luyện lại để tạo thành một mô hình mới, trong khi đó quá trình huấn luyện mạng CNN tốn kém rất nhiều chi phí vì phải trãi qua nhiều lần tính toán cũng như quá trình tinh chỉnh trọng số
Kỹ thuật phân loại theo mạng nơ-ron nhân tạo (ANN): Mạng nơ-ron nhân tạo
là một mô hình phân lớp dựa trên sự kết hợp và truyền dẫn thông tin qua các nơ-ron kết nối với nhau Mỗi lớp của hệ thống mạng nơ-ron bao gồm một tập hợp các nơron độc lập nhau và kết nối đầy đủ đến các nơ-ron ở các tập khác để có thể truyền tín hiệu từ tầng này đến tầng kia nhằm giúp cho việc phân lớp được hiệu quả hơn Các nơ-ron của tất cả các lớp được liên kết với các nơ-ron ở các lớp khác dựa trên
Trang 17trọng số nhằm thực hiện quá trình nội suy theo phương pháp hồi quy [4] Tuy nhiên, phương pháp mạng nơ-ron nhân tạo cho số phân lớp đầu ra cố định dù chi phí huấn luyện giảm so với mạng CNN, nhưng vẫn chưa phù hợp đối với các bộ dữ liệu tăng trưởng về số phân loại vì phải huấn luyện một mạng nơ-ron mới
Phân loại theo cây quyết định (DT – Decision Tree): Cây quyết định là một
phương pháp phân loại đệ quy cho các đặc trưng sao cho mỗi nhóm đối tượng được gắn nhãn bởi một giá trị duy nhất Thuật toán về cây quyết định thực hiện cắt giảm cho đến khi tất cả các mẫu thuộc một phân vùng cùng một lớp và gắn với một nhãn tương ứng Cụ thể, cây được sử dụng để xác định mỗi vectơ đặc trưng ảnh tới một nút lá có liên quan đến lớp hoặc không liên quan Khi tất cả các mẫu trong cơ sở dữ liệu đã lọc qua cây quyết định, tất cả các mẫu được lọc thành một lá có lớp “có liên quan“ được tập hợp thành một danh sách Từ danh sách này, các mẫu gần nhất với đối tượng truy vấn được lấy ra [5] Đối với phương pháp cây quyết định, việc phân lớp đối tượng được thực hiện dựa trên các quy tắc và luật phân nhánh của cây dựa trên một tập dữ liệu đã được khảo sát Do đó, với mỗi một tập dữ liệu khảo sát ban đầu sẽ tạo ra một cây quyết định khác nhau Mặc dù cây quyết định có thể tăng trưởng theo mỗi nhánh nếu bổ sung các phần tử dữ liệu, tuy nhiên cây quyết định này vẫn phải dựa trên số đối tượng tổng thể để tạo ra các quy luật phân nhánh Như vậy, đối với cấu trúc cây quyết định, quá trình phân nhánh chưa kế thừa được bộ dữ liệu trước đó, nên vẫn chưa phù hợp đối với các bộ dữ liệu tăng trưởng về số lượng cũng như số phân lớp
Cấu trúc KD_Tree cho phân lớp hình ảnh: Các véc-tơ đặc trưng đa chiều thu được từ mỗi hình ảnh và được lập chỉ mục riêng biệt và lưu trữ trên cấu trúc KD_Tree Cấu trúc KD_Tree nguyên thủy là một trong những cấu trúc dữ liệu phân
hoạch cho các véc-tơ đa chiều để tổ chức các điểm trong không gian k-chiều Thuật
toán xây dựng cấu trúc KD_Tree nguyên thủy được dựa trên quá trình phân lớp dạng phẳng Tại nút gốc, cấu trúc KD_Tree chia tập hợp các điểm thành hai tập con
có cùng kích thước bằng một siêu phẳng Nói cách khác, ở nút gốc, tập hợp điểm được phân vùng dựa trên tọa độ đầu tiên của các điểm Tại các nút con của gốc,
Trang 18phân hoạch dựa trên tọa độ thứ hai và cứ tiếp tục như vậy, cho đến độ sâu k - 1 mà
tại đó phân hoạch xuất hiện dựa trên tọa độ cuối cùng trong đó k là kích thước của không gian đặc trưng Sau độ sâu k, phân vùng được chọn lựa cho một đối tượng dữ
liệu dựa trên các giá trị tọa độ của đối tượng dữ liệu đó Bởi vì cấu trúc KD_Tree sử
dụng cho các điểm dữ liệu có k chiều, các điểm dữ liệu này tập hợp tương ứng với n điểm dữ liệu khác nhau, nên cần có n nút lá để lưu trữ, với thời gian tìm kiếm là
O(nlogn) Cấu trúc KD_Tree là một cấu trúc dữ liệu thích hợp cho hệ thống truy
xuất đối tượng, đặc biệt trong việc phân tích việc thực thi thuật toán tìm kiếm theo phạm vi Với mỗi một đối tượng đầu vào tương ứng với mỗi một véc-tơ đặc trưng, việc tìm kiếm được thực hiện dựa trên quá trình phân lớp nhị phân theo từng tọa độ của đối tượng Đối với cấu trúc KD_Tree nguyên thủy mặc dù ứng dụng cho dữ liệu
đa chiều nhưng là một cây nhị phân không cân bằng nên chi phí phân lớp có sự khác biệt cho từng đối tượng dữ liệu Mặc khác, mỗi một nút trong cây là một giá trị phân loại theo giá trị tọa độ, nên việc phân loại này phụ thuộc vào thứ tự tạo cây ban đầu của các điểm dữ liệu Vì vậy, cấu trúc KD_Tree này cần phải được cải tiến sao cho mỗi một nút tương ứng với véc-tơ trọng số phân loại mà các véc-tơ trọng số này là kết quả của quá trình huấn luyện để cấu trúc KD_Tree không phụ thuộc vào thứ tự của bộ dữ liệu đồng thời cần phát triển cấu trúc KD_Tree dưới dạng một cây
đa nhánh cân bằng để các điểm dữ liệu có chi phí phân lớp là như nhau và phù hợp cho bộ dữ liệu tăng trưởng về số lượng cũng như số phân loại của đối tượng
Trong luận văn này, cấu trúc KD_Tree được ứng dụng là một cấu trúc KD_Tree đa nhánh cân bằng mà mỗi một nút trong cây tương ứng với một nơ-ron, Mỗi nút trong của cây có một véc tơ trọng số để phân loại hình ảnh đầu vào cho các nút kế tiếp; ứng với mỗi véc tơ đầu vào thực hiện phép toán tích vô hướng với véc
tơ trọng số này và thực hiện phân hoạch cho các nhánh cây con kế tiếp tương tự như
cơ chế một nút trong mạng nơ-ron nhằm phân lớp các đối tượng về các vùng dữ liệu khác nhau Quá trình phân lớp này được kết hợp với một cấu trúc túi từ thị giác BOVW để lưu trữ các hình ảnh tương tự làm cơ sở cho việc tìm kiếm Ban đầu, cấu trúc KD_Tree được khởi tạo với số nhánh và các nút trong cây tương ứng với một
Trang 19trọng số ngẫu nhiên Quá trình huấn luyện được thực hiện bằng cách tinh chỉnh các trọng số trên cây dựa trên các mẫu đã gán nhãn theo nút lá Với mỗi ảnh đầu vào, dựa trên cấu trúc KD_Tree đã được huấn luyện để phân loại ảnh đầu vào về các túi
từ BOVW cho bài toán tìm kiếm
1.3 Một số phương pháp học máy cho bài toán tìm kiếm ảnh
1.3.1 Gom cụm hình ảnh
Gom cụm hình ảnh là một phương pháp trong học máy dùng để gom nhóm các
dữ liệu tương đồng theo đặc trưng Đối với bài toán tìm kiếm ảnh, gom cụm hình ảnh được ứng dụng để kết xuất các hình ảnh tương tự theo từng nhóm Kỹ thuật gom cụm ảnh được thực hiện theo hai bước: Đầu tiên, tính toán độ tương tự bằng cách sử dụng các đặc trưng đã được trích xuất; Thứ hai, thực hiện thuật toán phân cụm để tạo ra các nhóm dữ liệu tương đồng Với mỗi hình ảnh, véc-tơ đặc trưng được trích xuất trên cơ sở các đặc trưng cấp thấp như: màu sắc, hình dạng, vân ảnh,… Các véc-tơ đặc trưng này là đầu vào được cung cấp cho bài toán phân cụm hình ảnh và đầu ra là các cụm dữ liệu hình ảnh tương tự Các cụm hình ảnh tương tự này là cơ sở cho quá trình tìm kiếm hình ảnh tương tự [6]
1.3.2 Phương pháp láng giềng gần nhất k-NN
k-NN là phương pháp phân lớp dữ liệu dựa vào khoảng cách gần nhất giữa các
đối tượng cần phân lớp Phương pháp k-NN tìm k điểm trong tập dữ liệu huấn luyện
mà gần với điểm cần phân lớp nhất Sau đó, điểm này sẽ được gán vào lớp mà đa số
láng giềng của nó thuộc về, với k là số nguyên dương được xác định trước Hình 1.1
mô tả một quá trình phân lớp của một điểm dữ liệu dựa trên các phần tử láng giềng
để quyết định phần tử này thuộc về lớp nào theo đa số các nhãn lớp láng giềng [7]
Để phân lớp một ảnh đầu vào bằng thuật toán k-NN, một vectơ đặc trưng được trích xuất, sau đó véc-tơ này được tìm kiếm trên tập dữ liệu nhằm tìm thấy các phần
tử láng giềng gần nhất đồng thời thống kê theo các phân lớp của k láng giềng gần
nhất Sau khi phân lớp hình ảnh đầu vào, tập hình ảnh tương tự thu được là những láng giềng có khoảng cách gần với ảnh đầu vào nhất
Trang 20Hình 1.1 Mô tả phân lớp dữ liệu bằng thuật toán k-NN
1.3.3 SOM – Bản đồ tự tổ chức
Bản đồ tự tổ chức được phát triển bởi Kohonen vào năm 1980, đây là một loại mạng nơ-ron nhân tạo được huấn luyện bằng cách học không giám sát để tạo ra các cụm đối tượng tương đồng nhau dựa trên các phần tử cụm đã có sẵn, kết quả quá trình phân cụm tạo ra một bộ trọng số và một nhóm các cụm bao gồm các phần tử
tương đồng được gọi là bản đồ tự tổ chức SOM (Self-Organizing Map) Trong mạng
SOM, các nơ-ron được liên kết đầy đủ từ tầng đầu vào đến các cụm để có thể chọn
ra cụm chiến thắng Từ mỗi cụm chiến thắng có thể tìm kiếm các phần tử láng giềng trong một cụm hoặc tìm ra các cụm láng giềng Các véc-tơ trọng số của các nơ-ron được khởi tạo với các giá trị ngẫu nhiên, các véc-tơ này được thực hiện huấn luyện dựa trên các phần tử cụm đã có theo hướng tinh chỉnh trọng số để đạt được giá trị
tối ưu nhất [8] Hình 1.2 mô tả các phần tử trong bản đồ tự tổ chức SOM bằng các
hình lục giác để có thể tìm kiếm các phần tử láng giềng, với mỗi phần tử láng giềng
có sáu láng giềng tương ứng với sáu cạnh của lục giác Các phần tử này được gom nhóm theo từng cụm bao gồm các phần tử tương đồng, đây cũng là cơ sở để tìm ra các phần tử tương tự ứng với mỗi dữ liệu đầu vào
Đối với bài toán tìm kiếm ảnh, tập ảnh dữ liệu ban đầu được phân theo từng nhóm chủ đề, đây cũng là cơ sở để thực hiện quá trình huấn luyện và tạo ra các cụm trên cấu trúc SOM Mỗi hình ảnh được trích xuất véc-tơ đặc trưng và tạo thành một tập huấn luyện theo từng nhóm ban đầu Tập các véc-tơ đặc trưng này được sử dụng
Trang 21huấn luyện trên mạng SOM nhằm tinh chỉnh các trọng số kết nối của các nơ-ron để
từ đó tạo ra mô hình tìm kiếm cụm chiến thắng
Hình 1.2 Mô tả kiến trúc của bản đồ tự tổ chức SOM
Cả ba phương pháp k-Means, k-NN và SOM đều không đáp ứng được cho bộ
dữ liệu tăng trưởng về số phân lớp vì cần phải xác định trước số cụm ban đầu Cần
có một phương pháp đáp ứng được bộ dữ liệu tăng trưởng cũng như số phân lớp tăng trưởng, vì vậy cấu trúc KD_Tree là một tiếp cận để có thể giải quyết các vấn đề tăng trưởng dữ liệu nhưng vẫn đáp ứng được hiệu quả tìm kiếm
1.4 Đối tượng và phương pháp nghiên cứu
1.4.1 Đối tượng nghiên cứu
Luận văn tiếp cận xây dựng một mô hình tìm kiếm hình ảnh tương tự dựa trên cấu trúc KD_Tree đa nhánh cân bằng kết hợp với cấu trúc túi từ thị giác Với mỗi hình ảnh đầu vào, kết quả đầu ra là một tập ảnh tương tự theo nội dung dựa trên các đặc trưng thị giác cấp thấp Vì vậy, đối tượng chính của luận văn thực hiện gồm ba
Trang 22nhóm: cấu trúc KD_Tree cân bằng, cấu trúc túi từ thị giác và mô hình tìm kiếm ảnh tương tự Cụ thể, đối tượng nghiên cứu của luận văn bao gồm:
(1) Ảnh số và đặc trưng của ảnh số
(2) Cấu trúc KD_Tree đa nhánh cân bằng nhằm lưu trữ dữ liệu đa chiều, từ đó ứng dụng cho dữ liệu hình ảnh
(3) Cấu trúc túi từ thị giác để lưu trữ tập các hình ảnh
(4) Mô hình kết hợp giữa túi từ thị giác và cấu trúc KD_Tree đa nhánh cân bằng cho bài toán phân lớp và tìm kiếm ảnh
(5) Mô hình tìm kiếm ảnh dựa trên việc kết hợp cấu trúc KD_Tree và túi từ thị giác
1.4.2 Phương pháp nghiên cứu
Trên cơ sở các đối tượng nghiên cứu đã có, phương pháp nghiên cứu được tiếp cận bằng cách xây dựng mô hình dựa trên cơ sở lý thuyết đã được phân tích và thực nghiệm trên các bộ dữ liệu mẫu Từ đó, nghiên cứu các công trình đã công bố có liên quan về vấn đề xây tìm kiếm ảnh tương tự, xây dựng cấu trúc dữ liệu tiếp cận cấu trúc KD_Tree, nhận diện đối tượng qua hình ảnh Đánh giá những ưu điểm và hạn chế của các công trình trong những điều kiện dữ liệu cụ thể
Nội dung luận văn thực hiện phân tích các công trình tìm kiếm ảnh có sử dụng các kỹ thuật học máy, cấu trúc KD_Tree, phân lớp ảnh, các phương pháp tìm kiếm ảnh tương tự; các công trình trích xuất đặc trưng hình ảnh Trên cơ sở phân tích ưu, nhược điểm của từng công trình đã công bố, đề tài đề xuất phương pháp trích xuất đặc trưng hình ảnh bằng thư viện EmguCV/C#; đề xuất phương pháp phân lớp hình ảnh, từ đó áp dụng tìm kiếm tập ảnh tương tự làm cơ sở so sánh và đánh giá hiệu suất về độ chính xác với các công trình trước đây, ứng dụng vào thực tiễn
1.5 Các công trình liên quan
Phân lớp hình ảnh và ứng dụng cho bài toán tìm kiếm hình ảnh tương tự đã được nhiều công trình thực hiện bởi nhiều kỹ thuật học máy khác nhau: phân lớp
bằng thuật toán tìm kiếm láng giềng gần nhất k-NN (k-Nearest Neighbors), mạng nơron tích chập CNN (Convolutional Neural Networks); mạng học sâu DNN (Deep
Trang 23Neural Networks); thuật tốn SVM (Support Véc-tơ Machines); Nạve Bayes; phân
lớp theo cấu trúc cây như cây quyết định (Decision Tree), cây tìm kiếm đa chiều (KD-Tree), v.v Một số cơng trình phân lớp ảnh tiêu biểu như sau:
Erwin và cộng sự (2017) đề xuất hệ thống nhận dạng trái cây được xử lý qua
ba bước: (1) trích xuất các đặc trưng; (2) gom cụm bằng phương pháp K-Means; (3)
sử dụng kỹ thuật k-NN để phân lớp Theo kết quả thực nghiệm, hệ thống phân lớp đạt được độ chính xác 92,5% cho ảnh đơn đối tượng, 90% cho ảnh đa đối tượng [7] Tuy nhiên, hệ thống chỉ nhận diện trên các bộ ảnh về trái cây, thuật tốn K-Means được áp dụng theo phương pháp Centroid và phải cập nhật tâm cụm khi dữ liệu thay đổi, chưa xử lý trường hợp số lượng láng giềng cĩ số phân lớp bằng nhau
Pouria Sadeghi-Tehran (2019) đã thực hiện một phương pháp đánh chỉ mục cho cơ sở sữ liệu truy vấn dựa vào Deep learning và cấu trúc phân cấp lồng nhau Mỗi hình ảnh được xử lý độc lập mà khơng phụ thuộc vào các hình ảnh liên quan Ở đây, tác giả sử dụng mạng CNN để trích xuất đặc trưng của hình ảnh từ bộ dữ liệu ảnh Ngồi ra, tác giả đưa ra sơ đồ tối ưu hĩa cấu trúc truy vấn nhằm tăng tốc độ tìm kiếm dựa vào cấu trúc phân cấp lồng nhau và độ đo tương tự Trong nghiên cứu này, tác giả đã chứng minh phương pháp của mình là tốt hơn các kỹ thuật đơn lẻ trước đây dùng trong tìm kiếm ảnh theo nội dung như túi từ Bag of Visual Word
(BOVW) hay sử dụng kỹ thuật hợp nhất đặc trưng hình ảnh Kết quả của cơng trình
đã chứng minh tính hiệu quả của hiệu suất truy vấn so với bài tốn chỉ dùng cấu trúc lập chỉ mục thơng thường [9] Shichao Kan và cộng sự (2019) đã trình bày một phương pháp sử dụng thuật tốn k-NN để đánh chỉ mục cho hình ảnh, phương pháp này thực hiện việc gán lại nhãn cho các ảnh huấn luyện đồng thời thiết lập mối quan
hệ giữa các nhãn loại ảnh và các mã từ Kết quả thực nghiệm của hệ thống cho kết quả tốt hơn so với một số các phương pháp khác trên cùng một bộ dữ liệu thử nghiệm [10]
Ali Al Kobaisi và cộng sự (2019) [11] đã giới thiệu một phương pháp nhận diện khuơn mặt bằng Deep Learning kết hợp với hàm băm Với một tập dữ liệu lớn, cơng trình này cĩ thể nhận diện khuơn mặt một cách nhanh chĩng Trước tiên, thuật tốn sẽ nhận diện khuơn mặt của ảnh đầu vào nhằm xác định giới hạn khuơn mặt;
Trang 24tiếp theo hình ảnh được phân đoạn, thay đổi kích thước đồng thời hình ảnh này được chuyển thành ảnh xám sau đó các véc-tơ đặc trưng đa chiều sẽ được trích xuất Kết quả thực nghiệm trên bộ ảnh khuôn mặt LFW với mã băm có độ dài 64 của 48 mẫu truy vấn được đánh giá là khả thi và hiệu quả
Theo Shuang Jia và cộng sự (2020) sử dụng thuật toán gom cụm K-Means đồng thời đưa ra các ngữ nghĩa tương ứng với túi từ đã xây dựng để tìm kiếm ảnh tương tự Trong phương pháp đề xuất, các nhóm túi từ là độc lập tuy nhiên chưa phân lớp được nội dung của mỗi hình ảnh [12]
Danfeng Hong và cộng sự (2020) [13] đã thực hiện phân lớp ảnh siêu âm bằng mạng GCN (Graph Convolutional Neural), là một cải tiến của mạng CNN Trong công trình này, tác giả so sánh CNN và GCN về mặt chất lượng, định lượng để thực hiện phân loại ảnh siêu âm Công việc xây dựng ma trận kề trên tất cả dữ liệu cho GCN thường phải mất chi phí tính toán rất lớn Vì vậy, một miniGCN được đề xuất, các miniGCN có thể thực hiện huấn luyện mạng theo lô (cho phép sự kết hợp giữa CNN và GCN) Các thí nghiệm được thực hiện trên ba tập dữ liệu siêu âm, chứng minh lợi thế của miniGCN hơn so với GCN
Jiangyi Du và cộng sự (2020) [14] đã nâng cao hiệu quả tìm kiếm láng giềng bằng thuật toán k-NN và phân lớp dữ liệu để thực hiện bảo vệ quyền riêng tư của người dùng Tác giả sử dụng cấu trúc KD_Tree nhằm tối ưu hóa thuật toán k-NN truyền thống và đảm bảo tính bảo mật riêng tư của người dùng dữ liệu Kết quả thực nghiệm chứng minh phương pháp đề xuất là khả thi, thời gian truy vấn giảm đi đáng
kể so với nếu chỉ sử dụng thuật toán k-NN thuần túy
Rafiee và cộng sự (2019) [15] đã thực hiện một phương pháp cắt tỉa cấu trúc KD_Tree để xây dựng một cấu trúc cải tiến gọi là Pruned KD-Tree nhằm phân lớp các gói tin mà kết quả thu được tỷ lệ phân lớp cao hơn 43.64% so với việc phân lớp gói tin bằng cấu trúc KD_Tree thông thường; đồng thời giảm bộ nhớ lưu trữ 24% Wenfeng Hou và cộng sự (2018) [16] thực hiện phương pháp phân lớp dữ liệu bằng thuật toán láng giềng k-NN dựa trên cấu trúc KD_Tree Để cải thiện những nhược điểm của thuật toán k-NN, tác giả đã kết hợp k-NN và dữ liệu đa chiều được
Trang 25lưu trữ trên cấu trúc dữ liệu KD-Tree nhằm giảm thời gian tìm kiếm và nâng cao hiệu suất truy vấn gọi là kNN-KDTree Kết quả thực nghiệm trên 11 bộ dữ liệu ảnh cho thấy sự kết hợp giữa k-NN và KD-Tree đã mang lại hiệu suất cao cho bài toán tìm kiếm ảnh nếu chỉ dùng một kỹ thuật đơn lẻ
Parikshit Ram và cộng sự (2019) sử dụng kỹ thuật tìm kiếm láng giềng k-NN dựa trên cấu trúc KD_Tree Việc kết hợp này nhằm cải tiến hiệu suất tìm kiếm bằng cách xây dựng cây phân vùng không gian ngẫu nhiên để thực hiện các lược đồ tìm kiếm theo cấu trúc KD_Tree Tác giả đã chứng minh tính hiệu quả về thời gian truy vấn cũng như hiệu suất tìm kiếm Trong công trình này, tác giả đề cập tới hai cải tiến: (1) cải thiện độ phức tạp tổng thể của vùng không gian tìm kiếm; (2) thực hiện
đa chỉ mục trên cấu trúc KD_Tree để nâng cao hiệu quả tìm kiếm [17]
Reid Pinkham và cộng sự (2020) [18] đã thực hiện một phương pháp tối ưu bộ nhớ và tăng tốc độ truy vấn dựa trên cấu trúc KD_Tree Cấu trúc KD_Tree được xây dựng theo phương pháp phân chia dữ liệu thành các nhóm nút trên cây và nhóm điểm dựa trên sự khác biệt giữa hai nhóm này: (1) các nút được lưu vào bộ nhớ đệm nhằm tạo điều kiện truy vấn nhanh, trong khi các nhóm điểm có thể tái sử dụng thành các phân đoạn liền kề thường xuyên trong bộ nhớ ngoài hỗ trợ cho quá trình tìm kiếm; (2) quá trình đọc ghi trên bộ nhớ đệm được thêm vào để thực hiện truy cập ngẫu nhiên để chuyển thành truy cập tuần tự; (3) xây dựng cấu trúc KD_Tree và tìm kiếm được thực hiện xen kẽ với các luồng truy cập dư thừa, băng thông được tối
ưu hóa nhằm hỗ trợ quá trình tìm kiếm trên cây Việc sử dụng bộ nhớ đệm đã làm tăng hiệu quả cho bài toán tìm kiếm và lưu trữ dữ liệu của cấu trúc KD_Tree
Qua khảo sát các công trình sử dụng cấu trúc dữ liệu cấu trúc KD_Tree áp dụng cho bài toán tìm kiếm ảnh với hiệu suất mang lại là hiệu quả, khả thi và thực nghiệm trên nhiều bộ dữ liệu ảnh Đặc biệt là các bài toán sử dụng tập dữ liệu tăng trưởng nhằm giảm không gian lưu trữ, tối ưu hóa thời gian tìm kiếm Tuy nhiên, các công trình này chỉ sử dụng một cấu trúc KD_Tree đơn lẻ hoặc chỉ kết hợp một vài
kỹ thuật đơn giản; thực hiện tìm kiếm ảnh nhưng chỉ mới dùng lại ở tìm kiếm theo nội dung, chưa thực hiện phương thức chuyển đặc trưng cấp thấp thành ngữ nghĩa cấp cao để thực hiện bài toán tìm kiếm ảnh theo ngữ nghĩa
Trang 261.6 Nội dung chính của các chương trong luận văn
Nội dung của luận văn lần lượt tiếp cận về cơ sở lý thuyết và xây dựng thực nghiệm cho bài toán tìm kiếm ảnh tương tự Để thực hiện được vấn đề này, một mô hình tìm kiếm ảnh được xây dựng dựa trên cơ sở cấu trúc KD_Tree đa nhánh cân bằng kết hợp với cấu trúc túi từ thị giác BOVW Vì vậy, nội dung tiếp cận của luận văn lần lượt được thực hiện qua các chương như sau:
Chương 1: Trong chương này, các nội dung về bài toán tìm kiếm ảnh cơ sở,
ứng dụng phương pháp phân lớp kết hợp với túi từ thị giác lần lượt được tiếp cận và phân tích để đưa ra định hướng phù hợp cho bài toán tìm kiếm ảnh với dữ liệu tăng trưởng về kích thước cũng như số phân lớp Bên cạnh đó, các đối tượng nghiên cứu
và phương pháp nghiên cứu lần lượt được tiếp cận làm cơ sở cho các nội dung nghiên cứu tiếp theo
Chương 2: Sau khi phân tích ở Chương 1, cấu trúc KD_Tree là một giải pháp
phù hợp cho bài toán tìm kiếm ảnh Vì vậy, trong nội dung chương này tiếp cận cấu trúc KD_Tree cũng như áp dụng cho chỉ mục đa chiều đối với bài toán tìm kiếm ảnh Bên cạnh đó, các biến thể của KD-Tree cũng lần lượt được xem xét để có thể chọn lựa cấu trúc cải tiến phù hợp cho bài toán tìm kiếm ảnh Trên cơ sở này, các đối sánh về việc sử dụng cấu trúc KD_Tree cho bài toán tìm kiếm ảnh được mô tả
và phân tích nhằm xây dựng các mô hình tìm kiếm ảnh sử dụng cấu trúc KD_Tree
để từ đó chọn lựa mô hình tìm kiếm ảnh phù hợp Cấu trúc KD_Tree được tiếp cận
và hướng tới một cây phân lớp đa nhánh cân bằng
Chương 3: Cấu trúc KD_Tree đa nhánh cân bằng kết hợp với túi từ thị giác
được trình bày trong chương này Quá trình xây dựng cây cũng như quá trình huấn luyện cấu trúc KD_Tree cũng lần lượt được tiếp cận để từ đó kết hợp với túi từ thị giác Trên cơ sở lý thuyết tiếp cận, nội dung chương tiến hành đưa ra mô hình tìm kiếm ảnh phù hợp cho bộ dữ liệu tăng trưởng
Chương 4: Trên cơ sở lý thuyết đã được xây dựng từ các chương trước, nội
dung của chương này mô tả quá trình thực nghiệm và đánh giá kết quả tìm kiếm ảnh Từ đó, kết quả thực nghiệm được so sánh với các phương pháp khác đã công
bố nhằm minh chứng cho tính khả thi và hiệu quả của mô hình đề xuất
Trang 271.7 Tổng kết chương
Trong chương này, các nội dung tổng quan cho bài toán tìm kiếm ảnh dựa trên việc phân lớp đã được tiếp cận để thực hiện bài toán tìm kiếm ảnh này, phương pháp phân lớp phải kết hợp được với một cấu trúc túi từ thị giác để làm cơ sở tìm kiếm tập ảnh tương tự với một ảnh đầu vào Vì vậy, các phương pháp phân lớp cho bài toán tìm kiếm ảnh lần lượt được phân tích để đưa ra định hướng để giải quyết bài toán tìm kiếm ảnh trong trường hợp bộ dữ liệu tăng trưởng Kết quả của việc phân tích này đã hướng tới quá trình phân lớp hình ảnh dựa trên cấu trúc KD_Tree
đa nhánh cân bằng kết hợp với cấu trúc túi từ thị giác Trên cơ sở này, bài toán tìm kiếm ảnh được hình thành dựa trên ba giai đoạn gồm: (1) xây dựng cấu trúc KD_Tree để phân lớp hình ảnh, (2) kết hợp cấu trúc KD_Tree và túi từ thị giác để gom nhóm các hình ảnh tương tự, (3) thực hiện tìm kiếm ảnh tương tự cho ảnh đầu vào dựa trên cấu trúc KD_Tree và cấu trúc túi từ thị giác Để có thể thực hiện mô hình này, các đối tượng nghiên cứu và phương pháp nghiên cứu lần lượt được tiếp cận, đây là cơ sở để hình thành nội dung luận văn cũng như quá trình thực hiện luận văn Từ đó, nội dung của mỗi chương trong luận văn lần lượt được mô tả để có thể triển khai chi tiết trong các phần tiếp theo
Trang 28Chương 2 CẤU TRÚC KD_TREE CHO BÀI TOÁN TÌM KIẾM ẢNH
2.1 Giới thiệu
Các hệ tìm kiếm ảnh được thực hiện bởi nhiều cách tiếp cận khác nhau nhằm mang lại hiệu suất cao đáp ứng nhu cầu thực tiễn Những công trình tìm kiếm ảnh mang lại hiệu suất cao phải kể đến đó là sự tích hợp của nhiều kỹ thuật học máy vào một cấu trúc dữ liệu nhằm nâng cao hiệu suất về độ chính xác, cải thiện thời gian tìm kiếm, khả năng lưu trữ dữ liệu cao Trong các phương pháp thực hiện bài toán tìm kiếm ảnh thì một cấu trúc dữ liệu lưu trữ dữ liệu là một vấn đề được nhiều nhóm nghiên cứu quan tâm Cấu trúc dữ liệu dạng cây có rất nhiều công trình đã công bố, đặc biệt là cây chỉ mục đa chiều như KD-Tree, R-Tree, S-Tree,v.v cùng với nhiều cải tiến khác Trong chương này, một khảo sát về tính hiệu quả của các hệ tra cứu ảnh dựa trên cấu trúc KD_Tree được thực hiện đồng thời các biến thể của KD-Tree cũng được phân tích nhằm minh chứng tính khả thi và hiệu quả cho bài toán tra cứu ảnh trong những thập niên gần đây
Tìm kiếm ảnh (image retrieval) là một lĩnh vực nghiên cứu được nhiều nhà
khoa học quan tâm từ những năm 1970s gồm hai nhóm nghiên cứu chính là cơ sở
dữ liệu lớn và thị giác máy tính Tìm kiếm ảnh là tra cứu các hình ảnh tương tự
(similar image) từ tập dữ liệu hình ảnh Các kỹ thuật tìm kiếm ảnh hiện tại bao gồm tìm kiếm ảnh dựa trên từ khoá (TBIR – Text Based Image Retrieval) [19], truy vấn dựa trên nội dung (CBIR – Content Based Image Retrieval) [20] và truy vấn theo ngữ nghĩa (SBIR – Semantic Based Image Retrieval) [21] Đối với tìm kiếm ảnh
theo nội dung, mỗi hình ảnh được trích xuất bởi một véc-tơ đặc trưng thị giác làm
dữ liệu đầu vào, đặc trưng của hình ảnh bao gồm các đặc trưng cấp thấp như màu sắc, kết cấu, hình dạng, bố cục, vùng ảnh phân đoạn, v.v
Trong chương này, một khảo sát về các phương pháp nâng cao tính hiệu quả
cho bài toán tìm kiếm ảnh dựa trên cấu trúc KD_Tree (k - Dimensional Tree) được
tiếp cận và phân tích Trong đó, một số biến thể của KD-Tree được trình bày như Spatial KDTree, Divided KDTree, K-D-B-Tree, KD-Tree Index, Adaptive KD-Tree, Dynamic KDTree, Hybrid Tree, VAM KD-Tree, Cache KD-Tree, kNN KD-
Trang 29Tree, v.v Mỗi biến thể của KD-Tree được xây dựng theo một phương pháp khác nhau trên cơ sở giữ nguyên tính chất của KD-Tree nguyên thủy đồng thời nêu những ưu điểm trong mỗi biến thể Các đánh giá và so sánh được thực hiện nhằm phân tích những ưu, nhược điểm của một số công trình sử dụng cấu trúc KD_Tree cho tìm kiếm ảnh đã được công bố trong những thập niên gần đây
2.2 Cấu trúc KD_Tree và chỉ mục đa chiều
Quản lý dữ liệu đa chiều là một lĩnh vực nghiên cứu chuyên sâu về cơ sở dữ liệu trong những thập niên gần đây Các cấu trúc dữ liệu đơn giản không thể đáp ứng nhu cầu người dùng cho vấn đề lưu trữ và truy xuất trên tập dữ liệu lớn, đa chiều vì chi phí bộ nhớ và thời gian tìm kiếm hạn chế Để giải quyết vấn đề này, sự
ra đời của cấu trúc đa chiều, đa chỉ mục là cần thiết Trong các nghiên cứu này, cấu trúc chỉ mục đa chiều được đánh giá là hiệu quả để lưu trữ cũng như thời gian tìm kiếm đó là KD-Tree [22], R+-Tree [23], SS Tree [24], v.v Vì vậy, cấu trúc KD_Tree được đề xuất với nhiều biến thể khác nhau và được ứng dụng trong nhiều lĩnh vực Việc lưu trữ bằng cách lập chỉ mục cho đối tượng là một phần thiết yếu trong các hệ tìm kiếm ảnh vì: (1) tối ưu hóa hiệu suất và thời gian truy vấn bằng việc lưu trữ các đối tượng trên một cấu trúc chỉ mục; (2) có khả năng mở rộng vùng nhớ cho các bộ dữ liệu thực nghiệm tăng trưởng Do đó, xây dựng cấu trúc chỉ mục
đa chiều để lưu trữ dữ liệu hình ảnh là một trong những vấn đề quan tâm của bài toán tìm kiếm ảnh
Nghiên cứu về cấu trúc KD_Tree, nhóm tác giả Sumeet Gill và cộng sự (2021) [25] đã tóm tắt các loại cấu trúc mở rộng được hình thành dựa trên cấu trúc KD_Tree nguyên thủy Trong đó, dựa vào chức năng hay tính chất của tập dữ liệu thực nghiệm; các thao tác thực hiện trên cây mà những công trình này đề xuất kỹ thuật xây dựng biến thể tương ứng, cụ thể là:
Mkd Tree (1984) [26] là một cấu trúc dùng để lưu trữ dữ liệu không gian tổ
chức dưới dạng các tệp Thực nghiệm minh chứng cấu trúc này giảm số lần truy cập
đĩa đáng kể khi thực hiện truy vấn Movies (2009) [27] là một cấu trúc chỉ mục đa
chiều để lưu trữ các đối tượng có tính chất chuyển động theo thời gian như video,
Trang 30yêu cầu các kỹ thuật lập chỉ mục, lưu trữ và truy vấn trên các tập dữ liệu lớn
Movies đáp ứng nhu cầu cập nhật dữ liệu nhiều, thời gian truy vấn thấp Vì vậy, Movies xử lý tốt cho các đối tượng chuyển động bằng cách xét các ảnh chụp xung
quanh đối tượng chuyển động để dự đoán tính chất và hành động của đối tượng cần
khảo sát Randomly Projected K-d Trees (2011) [28] và Squarish kd Trees
(2010) [29] là một kỹ thuật xây dựng nhiều cấu trúc KD_Tree thành rừng ngẫu
nhiên để ứng dụng cho bài toán tìm kiếm ảnh đa đối tượng Relaxed KD Tree
(2010) [29] là một biến thể của KD-Tree, linh hoạt và thích ứng tốt cho các thao tác
cập nhật dữ liệu thường xuyên trên cấu trúc KD_Tree Buffer k-d Trees (2014)
[30] là một cấu trúc KD_Tree được xây dựng trên cơ sở kết hợp kỹ thuật tìm kiếm láng giềng và chú trọng bộ nhớ GPUs (Graphics Processing Units) trong xử lý hình
ảnh Progressive k-d Tree (2017) [31] là một cấu trúc cải tiến từ KD-Tree cổ điển
bằng cách sử dụng thuật toán tìm kiếm láng giềng kNN trong truy vấn dữ liệu
Hình 2.1 Cấu trúc KD_Tree biểu diễn tập dữ liệu 3 chiều
Cấu trúc KD_Tree nguyên thủy được Bentley (1975) [32] đề xuất là một dạng cây tìm kiếm nhị phân, biểu diễn các điểm trong không gian đa chiều gồm một nút
gốc (Root), các nút trong (Node) và nút lá (Leaf) Mỗi nút không lá chia cây thành
hai phần, các nút ở bên trái được biểu thị bằng cây con trái và các nút bên phải được biểu thị bằng cây con phải Cấu trúc KD_Tree dùng để biểu diễn dữ liệu đa chiều và được lưu trữ tại tất cả các nút trên cây Cấu trúc KD_Tree đề xuất và ứng dụng khá hiệu quả trong nhiều lĩnh vực như: biểu diễn cơ sở dữ liệu không gian và thời gian
Trang 31[33], biểu diễn các hệ cơ sở dữ liệu lớn – BigData [34], biểu diễn cơ sở dữ liệu đa phương tiện như hình ảnh, video [27], v.v Một cấu trúc KD_Tree được biểu diễn
minh họa như Hình 2.1 cho tập các điểm trong không gian 3 chiều (x, y, z) gồm: (9,
12, 8); (7, 5, 10); (15, 9, 8); (8, 4, 10); (8, 6, 12); (11, 7, 9); (12, 10, 8); (8, 4, 9); (7,
3, 11); (5, 6, 11); (5, 7, 20); 12, 7, 8); (11, 7, 12); (10, 10, 7); (12, 12, 9) theo nguyên tắc lần lượt lấy các chiều x; y; z làm trục chuẩn để so sánh cho xây dựng cấu trúc KD_Tree nhị phân
Hình 2.2 Các kỹ thuật đánh chỉ mục đa chiều
Cấu trúc KD_Tree là cấu trúc chỉ mục đa chiều phù hợp cho các loại dữ liệu
đa phương tiện, các bài toán tìm kiếm ảnh sử dụng cấu trúc này theo các phương thức khác nhau như cây cân bằng [35], cây phân vùng tìm kiếm [36], cây đa chỉ mục [37], cây phân cụm [37] Nhiều công trình xây dựng cấu trúc KD_Tree theo
phương pháp tìm kiếm láng giềng gần nhất k-NN (k Nearest Neighbors) [38] và
thực nghiệm trên dữ liệu đa chiều Qua các công trình này cho thấy, một cấu trúc chỉ mục đa chiều là rất hiệu quả cho các bài toán nghiên cứu về dữ liệu đa phương tiện, đặc biệt là số biến thể của KD-Tree
Ưu điểm của việc đánh chỉ mục trong tìm kiếm ảnh là không cần xác định thông tin đầy đủ của một đối tượng cho quá trình này Theo công trình “A Survey
on Current Content based Image Retrieval Methods” [39] (2002), một số kỹ thuật
đánh chỉ mục cho dữ liệu đa chiều được tóm tắt như trong Hình 2.2 Các chỉ mục đa
chiều được lưu trữ trên cấu trúc KD_Tree để thực hiện bài toán tìm kiếm ảnh
Trang 32Gần đây, một số công trình đã có nhiều nỗ lực nghiên cứu trong việc phát triển cấu trúc đa chiều bằng cơ chế lập chỉ mục cho không gian đặc trưng Một trong
những kỹ thuật này là giảm chiều dữ liệu (DR - Dimensionality Reduction) Trong
các kỹ thuật này, tập vectơ đặc trưng đa chiều được ánh xạ tới một không gian có số chiều ít hơn Một truy vấn trong không gian ban đầu được ánh xạ đến không gian đã biến đổi (có số chiều ít hơn) Kỹ thuật ánh xạ chung được sử dụng gồm phép biến
đổi chung Singular Value Decomposition (SVD) và Fastmap Một kỹ thuật lập chỉ
mục khác là sử dụng cấu trúc chỉ mục đa chiều bằng cách dựa vào các đặc trưng đối tượng hoặc khoảng cách để thực hiện gom cụm bằng các cấu trúc như R-Tree, X-Tree, SS-Tree, M-Tree, TV-Tree Cuối cùng là sử dụng một cấu trúc phân vùng không gian hoặc cấu trúc KD_Tree, Quad-Tree để đánh chỉ mục dữ liệu đa chiều Đây là hai cấu trúc ra đời sớm trong đề xuất thực hiện lưu trữ chỉ mục đa chiều nhưng hiệu quả chưa thỏa đáng nhằm đáp ứng nhu cầu người dùng Để cải tiến vấn
đề này, một số cấu trúc ra đời như VAM Split Tree [40], KBD-Tree, HB-Tree, Tree, MVP-Tree, v.v nhằm cải tiến hiệu suất cho bài toán sử dụng cấu trúc chỉ mục
VP-đa chiều mà trong khảo sát này có đề cập [41]
2.3 Một số biến thể của cấu trúc KD_Tree
Trên cơ sở phân loại theo tính năng của KD-Tree gồm: KD-Tree xây dựng theo dữ liệu phân vùng không gian Spatial KDTree (1987) [42]; KD-Tree biến thể theo tối ưu thao tác chèn xóa phần tử trên cây Devide KDTree (1989) [43]; cấu trúc cân bằng cho dữ liệu đa chiều gồm: K-D-B Tree (1981) [44], cây từ vựng Vocabulary KD Tree (2019) [45], cây phân tán Distributed KD Tree (2011) [46]; nhiều cây tổ chức song song Parallelizing KDTree [47]; KD-Tree chỉ mục KDTree Index [37]; KD-Tree xây dựng theo phương pháp tối ưu bộ nhớ Adaptive KDTree (1977) [45], Cache KDTree (2007) [48] ; KD-Tree tìm kiếm theo láng giềng gần nhất Dynamic KDTree (1990) [17] và kNN KDTree (2020) [18] Các nhóm biến thể
của KD-Tree được minh họa bởi sơ đồ như Hình 2.3 Từ đó cho thấy cấu trúc
KD_Tree có nhiều biến thể khác nhau và được ứng dụng trong nhiều bài toán cũng như các lĩnh vực khác nhau
Trang 33Hình 2.3 Sơ đồ biến thể của cấu trúc KD_Tree
Friedman và Bentley (1977) [49] đề xuất một cấu trúc Adaptive K-D Tree hiệu quả cho tìm kiếm láng giềng gần nhất Dựa trên cấu trúc này, một số biến thể như VAM-KD Tree (2002) [40] được đề xuất và thực nghiệm trên tập dữ liệu ảnh với hiệu suất tìm kiếm cao, tốn ít bộ nhớ bằng cách chia vùng không gian lưu trữ để tìm kiếm theo điểm trọng tâm của vùng tìm kiếm Bentley (1978) [50] đã mở rộng vấn đề tìm kiếm trên cấu trúc KD_Tree cho lưu trữ dữ liệu đa chiều là các khối hình chữ nhật Cấu trúc KD_Tree rất thích hợp cho việc phân chia dữ liệu thành các khối hình chữ nhật hoặc các khối cầu theo phân vùng không gian đa chiều thành các khối con chứa những điểm gần với điểm làm gốc là cơ sở để phân chia vùng dữ liệu trong không gian Bentley (1979) [51] đã đề xuất cấu trúc KD_Tree là cây tìm kiếm nhị phân cho tập dữ liệu Trong công trình này, tác giả xây dựng cấu trúc KD_Tree cho tập dữ liệu mô tả sinh viên mà mỗi đối tượng là một điểm đa chiều lưu trữ tại tất cả các nút trên cây Bentley và cộng sự (1980) [36] đã thực hiện một khảo sát về
độ phức tạp trong trường hợp có vùng tìm kiếm xấu nhất trên cấu trúc KD_Tree Tác giả đã đề xuất 3 cấu trúc, đồng thời thực hiện so sánh, đánh giá các cấu trúc này với nhau gồm: (1) Cấu trúc đầu tiên là thời gian truy vấn hoàn toàn tối ưu nhưng chi phí tiền xử lý cho xây dựng cấu trúc KD_Tree và lưu trữ dữ liệu khá cao; (2) Cấu trúc thứ hai thì nâng cao hiệu suất về thời gian truy vấn; (3) Cấu trúc thứ 3 thực hiện lưu trữ tuyến tính cho tiền xử lý và hiệu quả trong thời gian tìm kiếm
Trang 34Trên cơ sở cấu trúc KD_Tree nguyên thủy, cấu trúc cân bằng B-K-D-Tree (1981) [52] do John T Robinson đề xuất là một cấu trúc đánh chỉ mục động áp dụng cho tập dữ liệu lớn Cấu trúc này được lưu trữ ở bộ nhớ ngoài, đây là sự kết hợp những ưu điểm giữa KD-Tree nguyên thủy và B-Tree Điều này giúp tăng hiệu quả tìm kiếm chỉ mục trên cấu trúc KD_Tree và thao tác nhập xuất của B-Tree Cấu trúc này tương tự như Bkd-Tree (2003) [53] được Octavian Procopiuc đề xuất là một cấu trúc chỉ mục đa chiều cân bằng dựa trên cấu trúc KD_Tree nguyên thủy, giúp mở rộng không gian lưu trữ dữ liệu đa chiều và đồng thời tăng hiệu suất tìm kiếm trên cây trong khi dữ liệu tăng trưởng Bkd-Tree đã giải quyết được trường hợp dữ liệu tăng trưởng động mà cấu trúc KD_Tree nguyên thủy không thực hiện được Kết quả thực nghiệm trên cây Bkd-Tree đã tăng hiệu quả sử dụng và thời gian truy vấn trên cây nhanh hơn nhiều lần so với cấu trúc KD_Tree Cấu trúc cây Bkd-Tree chỉ mục được thiết kế đặc biệt thích hợp cho bộ nhớ ngoài, đồng thời mang lại hiệu suất truy vấn cao
Spatial KD-Tree (1987) do Beng C Ooi [42] đề xuất, dùng cho dữ liệu không gian để lưu trữ dữ liệu địa lý không gian hai chiều Cấu trúc Spatial KD-Tree phân vùng tập hợp các bản ghi trên không gian hai chiều thành các nhóm nhỏ dựa trên khoảng cách không gian, cấu trúc này không chỉ cung cấp khả năng truy xuất đối tượng hiệu quả mà còn minh chứng tính hiệu quả trong lưu trữ dữ liệu không gian Bên cạnh đó, một số biến thể mở rộng cho dữ liệu không gian được đề xuất gồm: LSD-KDTree (1989) [54], LSDh-Tree (1998) [55], Hybrid-Tree (1999) [56], v.v Divided KD-Tree (1989) [43] là một biến thể của KD-Tree được Marc J.van Kreveld đề xuất, với cấu trúc này thì chi phí cho việc chèn và xóa phần tử trên cây trong trường hợp xấu nhất là O(log( ))n Divided KD-Tree thực hiện phép chia tách và kết nối với lưu trữ cho tập dữ liệu đa chiều Divided KD-Tree được đánh giá là một cấu trúc linh động, hiệu quả trong lưu trữ và truy vấn các đối tượng đa chiều
Perfect–KDB Tree (Hung-Yi Lin – 2005) [35] được đề xuất một cấu trúc chỉ mục đa chiều tối ưu hóa động là một biến thể của KD-Tree, thông qua thuật toán chèn và tách nút Đầu tiên là thực hiện chèn các phần tử vào nút lá đến khi nút lá
Trang 35đầy thì thực hiện tách nút Perfect –KDB Tree lưu trữ dữ liệu hầu như 100% bộ nhớ Tác giả đánh giá cây Perfect –KDB Tree tốt hơn các biến thể khác của KD-Tree Đây là một biến thể đặc biệt của cấu trúc KD_Tree bởi trong quá trình xây dựng thực hiện phương thức chèn và tách nút khi đạt ngưỡng cho trước
Dynamic KD-Tree (Bentley-1990) [57] là một cấu trúc dùng cho các điểm dữ liệu động Cấu trúc này đề cập hai tính năng đó là truy vấn theo số láng giềng gần nhất và truy vấn láng giềng theo bán kính cho trước Điều này tạo ra các phạm vi truy vấn trong không gian đa chiều khá hiệu quả tương tự như cấu trúc kNN-KDTree (2013) [58] Trong đó, M Octair đã xây dựng cấu trúc KD_Tree theo phương pháp dựa vào phân vùng không gian của tập dữ liệu không gian Công trình được đánh giá tốc độ tìm kiếm theo sự kết hợp cấu trúc KD_Tree và thuật toán tìm kiếm láng giềng nhanh hơn so với cấu trúc KD_Tree đơn thuần Đồng thời, phương pháp kết hợp này thích hợp cho tập dữ liệu không gian Trong khi đó, nếu chỉ dùng cấu trúc KD_Tree thì vấn đề biểu diễn dữ liệu không gian là tốn nhiều chi phí [59] Trên cơ sở này, một số cấu trúc đề xuất như kNN-KDTree (2017) [31] và QuickkNN-KDTree (2020) [18] được xây dựng bằng phương pháp tìm kiếm theo số láng giềng gần nhất dựa trên cấu trúc KD_Tree
Bên cạnh đó, EBS K-DTree (Balanced Statistical k-d Tree) (2003) [60] được
Grant J Scott đề xuất được đánh giá là hiệu quả cho bài toán tìm kiếm ảnh trong tập
dữ liệu ảnh khá lớn Trên cơ sở này, một số biến thể mở rộng của cấu trúc KD_Tree cân bằng đã minh chứng cho tính hiệu quả trong lưu trữ là tìm kiếm hiệu quả trên tập dữ liệu lớn, tăng trưởng; đồng thời sử dụng cho các hệ tìm kiếm dữ liệu đa phương tiện như Distributed KDTree (2011) [46]; Parallelizing KDTree (2018) [47]; Vocabulary KDTree (2019) [45]; kNN-KDTree (2020) [18]
Russell A Brown và cộng sự (2015) [44] đã đề xuất một phương pháp xây dựng cấu trúc KD_Tree cân bằng với độ phức tạp cho thuật toán xây dựng cây là O(kn log(n)) Trong phương pháp này tác giả đề xuất xây dựng cấu trúc KD_Tree cân bằng theo cách chia tập dữ liệu thành các bộ (Tuple), sau mỗi thao tác so sánh thì chia tập dữ liệu thành 2 Tuple đã sắp xếp trên Tuple trước đó Quá trình này đệ
Trang 36quy đến khi tập Tuple không chia nhỏ được nửa thì thực hiện chèn vào cây Minh
họa quá trình chia dữ liệu thành Tuple và xây dựng cây như Hình 2.4 Quá trình sắp
xếp các bộ dữ liệu theo từng Tuple được mô tả như sau: Đầu tiên dãy dữ liệu được sắp xếp theo một khóa bất kỳ là x:y:z hoặc y:z:x, v.v kết hợp với phương pháp sắp xếp chỉ mục trên tập dữ liệu này Tiếp theo là phân vùng mảng đệ quy, tại mỗi mức
đệ quy phần tử trung vị của mảng được tìm thấy mất O(n) thời gian tìm kiếm Do
mảng này được sắp xếp, sau khi tìm được vị trí trung vị thì chọn làm nút gốc của nhánh Nửa dưới và nửa trên của mảng được tạo thành cây con trái và cây con phải Với phương pháp này được đánh giá là quá trình xây dựng cây khá nhanh nhờ tìm kiếm chỉ mục trên các Tuple thuận tiện cho quá trình xác định cây con trái, phải và nút gốc [61] Quá trình xây dựng cấu trúc KD_Tree cần bằng được minh họa như
trúc KD_Tree lũy tiến để tìm kiếm gần đúng k-láng giềng gần nhất Trong chương
này đã thực hiện hai cải tiến cho cấu trúc KD_Tree đó là: (1) Kích hoạt tái tạo cây khi thực sự cần thiết; (2) xây dựng một hàng đợi để thực hiện quá trình tái tạo cây
Trang 37Cấu trúc KD_Tree cải tiến này cải thiện tốc độ truy vấn trực tuyến và nâng cao độ chính xác
Qua phân tích và khảo sát như trên cho thấy, cấu trúc KD_Tree cần phải được cải tiến để phù hợp cho bài toán tìm kiếm ảnh dựa trên chỉ mục Việc tìm kiếm ảnh này cần được kết hợp giữa các chỉ mục đa chiều và cấu trúc gom cụm túi từ
2.4 Cấu trúc KD_Tree cho bài toán tìm kiếm ảnh
Đến những năm đầu của thập kỷ 20, việc sử dụng cấu trúc KD_Tree để tìm kiếm ảnh tương tự đã mang lại hiệu suất cao, tuy nhiên mất nhiều chi phí thời gian cho quá trình xây dựng cây khi lưu trữ tập dữ liệu hình ảnh lớn Các phương pháp xây dựng cấu trúc KD_Tree khác nhau nhằm thực hiện phân lớp và phân cụm dữ liệu trên cây khá hiệu quả cho bài toán tìm kiếm ảnh
Yunshuang He (2002) và cộng sự [40] đã đề xuất cấu trúc KD_Tree nhằm tăng hiệu quả tìm kiếm ảnh đặc biệt là giảm thiểu thời gian tìm kiếm trên cây gọi là VAM KD-Tree Quá trình xây dựng cấu trúc VAM KD-Tree được minh họa như
Hình 2.5 Công trình đã thực nghiệm trên tập dữ liệu gồm 10.115 hình ảnh với lược
đồ màu có 4096 chiều, kết quả công trình chứng minh cải thiện thời gian tìm kiếm ảnh nhanh gấp ba lần so với cách tìm kiếm tuyến tính
Trong Hình 2.5, mô tả quá trình xây dựng cấu trúc VAM KD-Tree Ban đầu
toàn bộ dữ liệu không gian là một nút gốc (Root) (a), khi chèn thêm dữ liệu vào cây, nút gốc (Root) bị đầy và thực hiện qua trình tách nút dựa phương sai lớn nhất và giá trị trung bình của nút này Sau đó, dữ liệu được chuyển sang nút gốc tương ứng với
vị trí của nó trong phần tách nút (b) Lần chèn tiếp theo, nút phải của Root bị đầy thì tiếp tục chia tách thành hai nút con Quá trình này lặp lại cho đến khi gặp điều kiện tạo nút lá (Leaf) thì dừng hoàn chỉnh quá trình tạo cây VAM KD-Tree (c)
Mohamed Aly và cộng sự (2011) [46] xây dựng một cấu trúc KD_Tree phân tán gọi là Distribute KD-Tree nhằm thực hiện tìm kiếm ảnh từ tập dữ liệu thu thập lớn đến hàng trăm nghìn mẫu ảnh dựa trên tính chất cấu trúc KD_Tree chia thành một “cây con gốc” và nhiều “cây con lá” nằm trên các máy xử lý tại các vị trí khác nhau Mỗi nút lá được lưu trữ trên một máy gọi là “máy lá”, với cách lưu trữ và xử
Trang 38lý này đã thực hiện truy vấn trên hàng triệu mẫu ảnh chạy trên hàng nghìn máy nhằm mang lại hiệu suất nhận dạng ảnh tối ưu hơn các hệ thống đơn lẻ Thực nghiệm đã tiến hành trên 100 triệu ảnh chạy trên 2048 máy thì thời gian truy vấn mỗi hình ảnh là một giây Trong chương này, cấu trúc KD_Tree đã được thực nghiệm song song để truy vấn hình ảnh cực lớn bằng cách phân tán dữ liệu theo các máy con cho lưu trữ và truy vấn theo mô hình cấu trúc KD_Tree Bên cạnh đó, một cấu trúc KD_Tree độc lập cũng được thử nghiệm trong công trình này và minh chứng cho cơ sở lý thuyết đề xuất của tác giả là khả thi Để thực hiện song song hóa, kiến trúc MapReduce đã được sử dụng, thực nhiệm trên 100 triệu hình ảnh và
so sánh hai phương pháp thì DKD-Tree (Distribute KDTree) có độ chính xác cao hơn 30% so với IKD-Tree (Independent KD Tree), đồng thời thông lượng tăng gấp
30 lần và thời gian truy vấn chỉ trong một phần giây Đây là một cải tiến khá lớn cho bài toán tìm kiếm ảnh dựa trên cấu trúc KD_Tree bằng cách xây dựng cây DKD-Tree và cây IKD-Tree [22]
Hình 2.5 Cấu trúc cây VAM KD-Tree một nút Root (a), chia đôi Root (b) và cây
VAM KD-Tree hoàn chỉnh (c)
Trang 39Hình 2.6 Mô hình huấn luyện và truy vấn trên Distribute KD-Tree
Hình 2.7 Cây DKD-Tree và cây IKD-Tree
Hình 2.6, mô tả quá trình xây dựng và huấn luyện cấu trúc KD_Tree theo
phương pháp chỉ mục lưu trữ dữ liệu hình ảnh trong pha huấn luyện (Training
Phase); pha thực thi (Query Phase) từ một ảnh truy vấn thực hiện giảm chiều và
thực hiện đối sánh để trả về kết quả thực hiện Hình 2.7, mô tả cấu trúc một cây con
gốc gồm nhiều cây con lá Trên cơ sở này, một các cây con lá hình thành một máy
lá độc lập và chạy song song nhằm nâng cao hiệu suất cho bài toán
Fengquan Zhang (2019) [45] và cộng sự đã thực hiện xây dựng KDTree nhằm thiện hiện bài toán đối sánh hình ảnh Trong công trình này, nhóm tác giả đã thực hiện hai quá trình: (1) phân cụm dữ liệu hình ảnh theo tính chất tương đồng; (2) đối sánh dữ liệu trực tuyến với một ảnh đầu vào Cây Vocabulary-
Vocabulary-KDTree dựa trên tính năng SIFT (Scale-Invariant Feature Transform) bằng cách
điều chỉnh trọng số tại các nút trên cây Cấu trúc Vocabulary-KDTree được chia thành 2 nhóm: (1) nhóm chứa các đặc trưng hình ảnh; (2) nhóm các nút lá cùng với việc điều chỉnh các trọng số liên quan quá trình huấn luyện để xây dựng cây Quá
trình xây dựng Vocabulary-KDTree được minh họa như Hình 2.8
Hình 2.8, diễn đạt mô hình tìm kiếm ảnh dựa trên cấu trúc Vocabulary
KD-Tree được thực hiện bằng hai pha: offline và online Trong pha offline, mỗi hình ảnh sau khi trích xuất đặc trưng được đối sánh và gom cụm với cấu trúc KD_Tree,
Trang 40từ đó xây dựng cây Vocabulary KD-Tree và thực hiện gom cụm lại trên cấu trúc này Trong pha online, một ảnh đầu vào sau khi trích xuất đặc trưng từ dữ liệu ảnh biến đổi theo thời gian được so sánh đặc trưng này với cấu trúc Vocabulary KD-Tree, tìm ra từ khóa làm cơ sở so sánh với đặc trưng đã trích xuất Cuối cùng lọc ra những điểm bất thường trong kết quả tìm kiếm và trả về kết quả tốt nhất
Hình 2.8 Mô hình xây dựng Vocabulary KD-Tree và tìm kiếm ảnh
Phương pháp xây dựng Vocabulary KD-Tree được chia thành hai phần: phân nhóm lại dữ liệu ngoại tuyến dựa trên Vocabulary KD-Tree tổng hợp và đối sánh tính năng trực tuyến Dựa trên cây Vocabulary KD-Tree, bằng cách tăng ngưỡng số đặc điểm cho các nút lá, có thể điều chỉnh các tính năng tối đa của Vocabulary KD-Tree và được cấu trúc bằng cách sử dụng cấu trúc KD_Tree Một ưu điểm nổi bậc của cây Vocabulary-KDTree này là khi dữ liệu tăng nhanh sẽ không đủ vùng lưu trữ, vì vậy một đề xuất là xây dựng cây Vocabulary KD-Tree chỉ mục để lưu trữ trên bộ nhớ ngoài, bên cạnh đó một giải pháp khác là thực hiện đa tiến trình song song
Với cấu trúc Vocabulary KD-Tree được minh họa như Hình 2.9, quá trình xây
dựng được thực hiện theo phương pháp phân chia vùng không gian dữ liệu bằng cách đệ quy cho đến khi gặp điều kiện vùng không gian cha không thể chia nhỏ thêm thì dừng để tạo nút lá và hình cây Vocabulary KD-Tree Trong phương pháp này, mỗi vùng dữ liệu được chi thành nhiều vùng con từ một vùng cha với một nút gốc thuộc từng vùng Cấu trúc Vocabulary KD-Tree được đánh giá là hiệu quả trong quá trình xây dựng cho các bài toán có vùng không gian dữ liệu lưu trữ lớn Reid Pinkham và cộng sự (2020) [18] đã thực hiện một phương pháp tối ưu bộ nhớ và tăng tốc độ truy vấn dựa trên cấu trúc KD_Tree, cấu trúc KD_Tree được xây dựng theo phương pháp phân chia dữ liệu thành các nhóm nút trên cây và nhóm điểm dựa trên sự khác biệt giữa hai nhóm này: (1) Các nút được lưu vào bộ nhớ