end rectangle = record XLB, XUB, YLB, YUB: interger; objlist:objnode; day, mth, yr:integer; camera_type: string; other_info: data_record; (* Lưu trữ thông tin về chữ nhật*) place: string end objnode = record objid: string; imageid: string; data: infotype (* Lưu trữ thông tin tuỳ ý về đối tượng*) nxt: objnode end infotype = record objname: string; objdata: objdata_record; Lp, Up: real; (* Biên trên, dưới của xác suất *) Next: infotype end Trong định nghĩa của objnode trên đây, Lp và Up ký hiệu biên trên và biên dưới của xác suất mà sự nhận diện này là đúng. Hãy xem xét CSDL ảnh đơn giản đã mô tả ở đầu chương, chỉ bao gồm các ảnh pic1.gif, pic2.gif và pic3.gif trong hình 3.1. Giả sử các ảnh này chứa đối tượng o 1 , o 2 , o 3 và o 4 với khoảng xác suất chỉ ra trên đây trong phiên bản xác suất khoảng của quan hệ name. Hình 3.12 cho thấy cây R được sử dụng để biểu diễn ba ảnh này và bốn đối tượng trên đó. Cây R trên hình 3.12 được xây dựng theo các bước sau: 1. Error! Lấy chữ nhật: Trước hết ta xây dựng bảng con mô tả các chữ nhật và ảnh. Hình 3.13 chỉ ra bốn chữ nhật o 1 , o 2 , o 3 và o 4 . Chú ý rằng mặc dù các chữ nhật này có được từ các ảnh khác nhau, chúng ta có thể chồng chúng lên trong cùng một ảnh. 2. Tạo cây R: Tạo cây R biểu diễn các chữ nhật trên (hình 3.12). Tại bước này các nút đối tượng trong cây R vẫn chưa được làm đầy. ObjId ImageId XLB XUB YLB YUB o 1 pic1.gif 10 60 5 50 o 2 pic1.gif 80 120 20 55 o 3 pic2.gif 20 65 20 75 o 4 pic3.gif 25 75 10 60 3. Error! Bổ sung đối tượng: Chúng ta bổ sung đối tượng và làm đầy các trường tương ứng của các đối tượng khác nhau lưu trong cây R. Hình 3.14 chỉ ra nội dung của các nút khác nhau khi đối tượng mới o được bổ sung vào hệ thống, và đối tượng mới này có cùng các trường XLB, XUB, YLB và YUB như đối tượng o 1 . Chỉ có một sự khác biệt giữa đối tượng o 1 và đối tượng mới o là ở chỗ đối tượng mới o xuất hiện trong ảnh khác. 3.7.1 Biểu diễn CSDL ảnh bằng cây R tổng quát Biểu diễn dữ liệu ảnh bằng cây R mô tả trên đây không cho khả năng tìm kiếm láng giềng gần nhất. Lý do là mỗi đối tượng o có chữ nhật liên kết, R o . Tuy nhiên, chữ nhật này là chữ nhật 2-d như chỉ ra trên hình 3.14. Cách biểu diễn này lưu trữ các thuộc tính của mỗi đối tượng trong trường “Data” của nó. Vì trường “Data” không được sử dụng để tạo ra chỉ số R-tree, có nghĩa rằng truy vấn trên cơ sở các trường này là không hiệu quả, việc tìm kiếm láng giềng gần nhất trở nên nặng nề. Có hai mở rộng không phức tạp về cây R có thể sử dụng để giải quyết vấn đề này. Thứ nhất dựa trên cơ sở khái niệm của cây R khái quát hóa (gR-tree) mô tả dưới đây. Thứ hai dựa trên cơ sở cây véctơ lồng nhau (telescoping vector tree) sẽ được mô tả sau. Nhớ lại rằng đối tượng o có thể được biểu diễn bởi vùng trong không gian n+2 chiều, nơi mà mỗi đối tượng có n đặc trưng và không gian hai chiều khác biểu diễn chữ nhật bao đối tượng. Chữ nhật tổng quát hóa cho không gian có số chiều g (có thể coi g=n+2) được xác định bởi tập các ràng buộc sau: l 1 £ x 1 £ u 1 l 2 £ x 2 £ u 2 l g £ x g £ u g Chú ý rằng khi g=2, chúng ta có n=0, khi đó chữ nhật 2-d là trường hợp đặc biệt của định nghĩa này. Nếu bây giờ ta có tập đối tượng Obj, chúng ta có thể biểu diễn tập đối tượng này bởi tập ràng buộc (n+2)-d. Cây R khái quát hoá (gR-tree) bậc K hoàn toàn giống cây R trừ các hệ số sau đây. · Khi nút N biểu diễn chữ nhật bao khái quát hóa GBR(N) của số chiều (n+2), nó được biểu diễn bởi 2x(n+2) trường số thực, cho cận dưới và cận trên của mỗi chiều. · Khi nút N bị bẻ gẫy, hợp nhất của các chữ nhật bao khái quát hóa với con của chúng chữ nhật bao khái quát hóa kết hợp với N. · Mỗi nút (không phải là gốc và lá) chứa nhiều nhất k chữ nhật bao khái quát hóa và ít nhất [K/2] chữ nhật khái quát hóa. · Thông thường, mọi chữ nhật (n+2)-d được lưu trữ tại lá. Do đó, cây gR được định nghĩa đúng như cây R, trừ khi các nút chứa tập các chữ nhật bao khái quát hóa thay cho tập các chữ nhật bao 2-d. Rõ ràng, cấu trúc của nút được mở rộng để mô tả cận trên và cận dưới của (n+2)-d. Tìm kiếm láng giềng gần nhất có thể được thực hiện hiệu quả như sau đây. Giả sử R q là chữ nhật truy vấn (nó có thể biểu diễn đối tượng ảnh). Ta muốn tìm mọi chữ nhật trong cây gR có tên T mà nó gần R q nhất (mức gần được xác định bởi thước đo d trên các điểm). Ta mở rộng thước đo d để áp dụng vào chữ nhật như sau: d(R, R’) = min{d(p, p’) | pÎ R, p’ Î R’} Tiến trình tìm kiếm được thể hiện trong giải thuật sau: Giải thuật 3.5 NN_Search_GR(T, R Q ) SOL=NIL; (* cho đến bây giờ chưa có giải pháp *); Todo = List containing T only; Bestdist = ¥; (* khoảng cách của giải pháp tốt nhât từ R Q *); while Todo ¹ NIL do { F=first element of Todo; Todo = delete F from Todo; if d( GBR (F), R Q )) < Bestdist then { Compute children N 1 , ,N r of F; if N i ’s are leaves of T then { N min = any N i at minimal distance from R Q ; Ndist = d (GBR(N i ), R Q )); if Ndist < Bestdist then { Bestdist = Ndist; SOL = N min ; } } else Todo=insert all N i ’s into Todo in order of distance from R Q ; } } Return SOL; end 3.8 Truy vấn ảnh bằng bố trí không gian Phần này trình bày loại thao tác truy vấn ảnh khác. Cho trước ảnh I và hai đối tượng o 1 và o 2 trong I, Người sử dụng có các câu truy vấn như sau: 1. o 1 ở phía nam của o 2 ? 2. o 1 ở phía đông nam của o 2 ? 3. o 1 ở phía trái của o 2 ? 4. o 1 phủ lên o 2 ? Có bốn câu truy vấn đơn giản mà người sử dụng muốn hỏi về bố trí không gian của các đối tượng trong ảnh. Để trả lời hiệu quả các câu hỏi loại này, trước hết cần có các quan hệ ưu tiên. Hình 3.15 chỉ ra một vài quan hệ ưu tiên cơ bản mà có thể định nghĩa giữa các đối tượng khi so sánh chúng theo một chiều. Mở rộng quan hệ ưu tiên từ 1 chiều thành 2 chiều là không phức tạp. Nếu gọi o[x] và o[y] là phép chiếu đối tượng o theo chiều x và y, thì dễ thu được các quan hệ không gian như sau: . nhật 2-d là trường hợp đặc biệt của định nghĩa này. Nếu bây giờ ta có tập đối tượng Obj, chúng ta có thể biểu diễn tập đối tượng này bởi tập ràng buộc (n+2)-d. Cây R khái quát hoá (gR-tree). chữ nhật 2-d như chỉ ra trên hình 3.14. Cách biểu diễn này lưu trữ các thuộc tính của mỗi đối tượng trong trường “Data” của nó. Vì trường “Data” không được sử dụng để tạo ra chỉ số R-tree, có. cận trên của mỗi chiều. · Khi nút N bị bẻ gẫy, hợp nhất của các chữ nhật bao khái quát hóa với con của chúng chữ nhật bao khái quát hóa kết hợp với N. · Mỗi nút (không phải là gốc và lá) chứa