CHƯƠNG III HỆ TRA CỨU ẢNH DỰA TRÊN CẤU TRÚC CÂY R-TREE
3.2. Một phương pháp cải tiến cho bài toán tìm kiếm ảnh dựa trên cây R-Tree
3.2.1. Cấu trúc cây RG-Tree
Cấu trúc cây RG-Tree [27] là một cây đa nhánh để phân cụm theo từng vùng dữ liệu. Bao gồm một nút gốc (root), tập các nút trong (inNode) và nút lá (lvNode). Mỗi nút trong chứa liên kết đến các nút con (nút con có thể là nút trong hoặc nút lá), tạo ra đường dẫn từ nút gốc đến nút lá. Mỗi nút lá lưu tập các vector đặc trưng tương đồng với nhau. Các phần tử tại mỗi nút trong và nút lá được phân bổ lần lượt theo bán kính 𝜃 (theta – ngưỡng trên) và 𝜉 (slack – ngưỡng dưới).
Gọi E = <f, id> là một thành phần trong một nút trên cây, với f = (v1, …, vk); và
id lần lượt là các số hiệu của vector đặc trưng ảnh – hay định danh của ảnh. Cây RG-
Tree lưu trữ tập các vector đặc trưng ảnh T = {Ei | i = 1, …, N}, trong đó N là số lượng ảnh trong bộ dữ liệu. Cây RG-Tree được dùng để phân cụm các vector đặc trưng của ảnh dựa trên khoảng cách Euclide.
Gọi fI, fJ lần lượt là hai vector đặc trưng của hai ảnh I, J. Hai ảnh là tương tự nhau được định nghĩa như sau:
Định nghĩa 1: Hai ảnh I, J được gọi là tương tự nhau nếu 𝑑(𝑓𝐼 , 𝑓𝐽) < 𝜉. Trong đó 𝑑(𝑓𝐼 ,
𝑓𝐽) là khoảng cách Euclide giữa hai ảnh I và J.
Cây RG-Tree tạo ra một mơ hình phân cụm tập vector đặc trưng ảnh nhằm phục vụ cho bài tốn tìm kiếm ảnh tương tự. Kết quả của quá trình tạo cây là một tập các nút trong và nút lá; nút trong chứa các liên kết đến các nút con; nút lá chứa các vector đặc trưng tương đồng với nhau.
Gọi <inEi, linkSi> là một bộ mô tả một thành phần của một nút trong với lần lượt là phần tử và liên kết đến các nút kế cận.
Gọi <lvEi, id> là một bộ mô tả một thành phần của một nút lá với lần lượt là
phần tử và các id định danh ảnh. Các nút của cây RG-Tree được định nghĩa như sau:
Định nghĩa 2: Một cây phân cụm RG-Tree là một cây đa nhánh, gồm:
a) Một nút gốc root liên kết đến các nhánh con kế cận:
root = {<inEi, linkSi> | i = 1…t}
b) Một tập nút trong: inNode = {<inEi, linkSi> | k = 1…K}, inE = <fc, links>,
thoả d(fci, fctb) ≤ 𝜃, fctb = 1
𝑀∑ 𝑓𝑀 𝑐𝑖 1 .
c) Một tập nút lá: lvNode = {<lvEi, id> | k = 1…K}, lvE = <f, id>, thoả d(fi, fc)
< 𝜉, fc = 1
𝑀∑ 𝑓𝑀 𝑖 1
Tại thời điểm ban đầu, cây RG-Tree chỉ gồm một nút gốc chứa các liên kết rỗng. Sau đó, từng phần tử Ei được thêm vào cây để tạo ra các nhánh tương ứng với các nút lá trong cây trên cơ sở độ đo Euclide. Quy tắc phân bố các phần tử trong cây được định nghĩa như sau:
Định nghĩa 3: Quy tắc phân bố các phần tử trên cây RG-Tree, bắt đầu thực hiện từ nút
gốc và lần lượt thực hiện theo quy tắc sau:
a) Quy tắc 1: Chọn hướng đi từ nút hiện hành đến các nút của nhánh kế cận
và chọn nhánh có d(fi, fci) gần nhất.
b) Quy tắc 2: Nếu d(fi, fci) ≤ 𝜃, thì đi theo nhánh đó và tìm nhánh con phù
hợp tiếp theo cho đến khi gặp nút lá, có 3 trường hợp:
▪ Nếu d(fi, fci) < 𝜉, đưa phần tử fi vào nút lá hiện hành (có tâm fci)
▪ Nếu 𝜀 ≤ d(fi, fci) ≤ 𝜃, tạo một nút lá mới (newLeaf) để chứa fi ; một nút cha mới (inNode) chứa nút lá cũ (có tâm fci) và nút newLeaf
▪ Nếu d(fi, fci) > 𝜃, tạo một nút newLeaf để chứa fi có cùng cha với
c) Quy tắc 3: Nếu d(fi, fci) > 𝜃, tạo một nút newLeaf để chứa fi có cùng cha với nút hiện hành.
Vì dữ liệu ảnh được gia tăng nhanh chóng, do đó cây RG-Tree cần có khả năng tăng trưởng để phù hợp cho việc lưu trữ dữ liệu ảnh. Các định lí sau đây chứng minh tính tăng trưởng của cây RG-Tree.
• Định lí 1: Cây RG-Tree tăng trưởng từ gốc đến lá
Chứng minh: Theo Định nghĩa 3 [8], mỗi khi thêm một phần tử (vector đặc
trưng) vào cây thì phần tử này sẽ chọn một hướng đi phù hợp và được thêm vào một nút lá sẵn có hoặc một nút lá mới. Do dó, RG-Tree là một cây tăng trưởng.
Mỗi phần tử lần lượt được thêm vào RG-Tree, do đó cần tồn tại một nút để chứa phần tử này. Định lí sau đây chứng minh tính tồn tại và duy nhất của một nút trên cây RG-Tree lưu trữ các phần tử.
• Định lí 2: Cho một vector đặc trưng fi, thì vector này thuộc vào một nút trên cây. Chứng minh: Gọi fi là vector cần thêm vào một nút trên cây RG-Tree. Theo
Định nghĩa 3 [8], thực hiện quy tắc tạo cây thì phần tử fi này thuộc về một nút lá hiện tại hoặc tạo một nút lá mới phù hợp. Do đó, ta ln có một nút để lưu trữ vector fi.
• Định lí 3: Một vector đặc trưng fi chỉ được lưu trữ trong một nút duy nhất trên
cây RG-Tree.
Chứng minh: Giả sử có 2 vector fi, fj cùng thuộc một nút. Khi đó fi, fj là hai
phần tử thuộc cụm của một nút. Suy ra: d(fi, fc) = d(fj, fc). Vì một nút là một phâm cụm phẳng, do đó fi ≡ fj. Nghĩa là, một vector đặc trưng fi chỉ được lưu trữ trong một nút duy nhất trên cây RG-Tree. Khi thực hiện phân bố từng phần tử, thì phần tử này phải thuộc về một cụm phù hợp nhất. Tức là, các phần tử trong cùng một cụm sẽ có độ tương tự nhiều nhất theo độ đo đã được chọn trước. Định lí sau đây chứng minh tính phân bố phù hợp của một phần tử trên cây RG-Tree. • Định lí 4: Một vector đặc trưng v được phân bố vào cụm phù hợp nhất theo độ
đo Euclide.
Chứng minh:
a) Trường hợp 1: Vector đặc trưng thuộc vào nút lá hiện hành, nghĩa là 𝑑(𝑓𝑖,
b) Trường hợp 2: Nếu tất cả các khoảng cách giữa các tâm với vector fi đều
vượt ngưỡng 𝜃 cho trước, tức là các nút hiện tại trên cây đều không phù hợp (𝑑(𝑓𝑖, 𝑓𝑐𝑗) > 𝜃) , hay nói cách khác khơng tồn tại nút nào trên cây có đặc tính giống với vector fi, thì ta tạo nút lá mới newLeaf và áp dụng quy tắc tại Định nghĩa 3 [8], nút mới này sẽ chứa các phần tử khác có đặc tính gần giống với fi.
Từ 2 trường hợp trên, ta có một vector đặc trưng fi được phân bố vào cụm phù hợp nhất theo độ đo Euclide.
Cây RG-Tree tạo ra một phân hoạch đa tầng, do đó khi tìm một cụm có bán kính 𝜉 thì độ chính xác đạt cao nhất. Nếu trong phạm vi bán kính 𝜃, cây sẽ phân hoạch vector đặc trưng về một nhánh. Do đó các phân hoạch sẽ có xu hướng đều đặn vì các phần tử quá khác biệt nhau sẽ không thuộc một nhánh của cây. Như vậy, cây RG-Tree có xu hướng trở thành cây đa nhánh cân bằng.