Tra cứu ảnh dựa trên lưới là kỹ thuật biểu diễn đặc trưng ảnh và sử dụng phép đo độ tương tự của các dữ liệu ảnh dựa trên cơ sở lưới , kỹ thuật được đánh giá là hứa hẹn thực hiện tốt việc trích rút tra cứu ảnh theo hình dạng.
Tra cứu ảnh dựa trên lưới được thực hiện thông qua các công việc sau:
- Tách vùng hình dạng của đối tượng có trong ảnh, tìm trục chính, trục phụ và độ lệch tâm tương ứng.
- Chuẩn hóa xoay, chuẩn hóa co dãn vùng hình dạng vừa tách.
- Phủ lưới lên các vùng hình dạng đó và tìm chuỗi bít đặc trưng tương ứng. - So sánh khoảng cách giữa các chuỗi bít của ảnh truy vấn với ảnh trong cơ sở dữ liệu và hiển thị kết quả theo thứ tự của độ đo tương tự.
Phần tiếp theo sẽ giới thiệu chi tiết các công việc cần thực hiện khi tra cứu ảnh dựa trên lưới.
3.2.2.1 Tách vùng hình dạng của đối tượng
Từ một ảnh ban đầu, chúng ta có thể thực hiện tách vùng hình dạng bằng cách sử dụng các phương pháp tách biên (nổi biên) hoặc biến đổi từ miền quan sát sang miền tần số đã trình bày tại mục 2.3 của luận văn này.
3.2.2.2 Biểu diễn vùng hình dạng dựa trên lưới
Sau khi đã có vùng hình dạng của đối tượng trong ảnh , ta sẽ thực hiện phủ lưới lên vùng hình dạng và biểu diễn vùng hình dạng đó bởi dãy bít đại diện . Đầu tiên ta vẽ đè một lưới gồm các ô có cùng kích thước lên vùng hình dạng. Lưới đó bao gồm các ô vuông có kích thước được định trước , chỉ lớn vừa đủ để bao phủ vùng hình dạng . Khi đó một ô lưới có thể bị phủ kín hoặc phủ một phần vùng hình dạng hoặc trống . Quy ước rằng:
- Số 1 tương ứng với ô có ít nhất 15% ( hoặc 25%, …tùy theo qui định của chương trình) số điểm ảnh của vùng hình dạng phủ lên ô lưới.
- Số 0 ứng với mỗi ô còn lại.
Sau đó để có được dãy bít đại diện cho vùng hình dạng chúng ta đọc lần lượt các số trong lưới theo thứ tự từ trái sang phải, từ trên xuống dưới.
Ví dụ , vùng hình dạng ở hình 3.2 có thể được biểu diễn bởi dãy bit sau : 11100000 11111000 01111110 01111111.
Hình 3.2: Tạo chuỗi bít biểu diễn vùng hình dạng
Dễ dàng thấy rằng , kích thước ô lưới càng nhỏ thì độ chính xác của việcc biểu diễn vùng hình dạng càng chính xác , nhưng lại đòi hỏi dung lượng lưu trữ và số lượng tính toán càng lớn . Một sự lựa chọn hợp lý là kích thước ô lưới trong khoảng từ 10 × 10 tới 20 × 20 điểm ảnh.
Cách biểu diễn vùng hình dạng như trên sẽ gọn nhẹ , dễ dàng cho lưu trữ và chuyển đổi nhưng lại không bất biến đối với sự co dãn (kích thước qu i mô ) và độ xoay. Vì vậy chuỗi bít cần được chuẩn hóa đối với độ co dãn và độ xoay nếu chúng ta muốn sử dụng nó làm đại diện cho vùng hình dạng.
3.2.2.3 Chuần hóa xoay
Mục đích của chuẩn hóa độ xoay là đặt vùng hình dạng theo một hướng cố định duy nhất, bằng cách xoay vùng hình dạng sao cho trục chính của nó song song với trục hoành Ox (hoặc trục tung Oy tùy theo từng chương trình). Khi đó vẫn có hai khả năng xảy ra đối với vị trí của vùng hình dạng. Một đầu trục chính của vùng có thể ở bên trái hoặc bên phải theo hướng trục Ox (đối xứng qua ox), khi đó chỉ cần dùng phép xoay 180 độ là chuyển đổi được. Ví dụ ở hình 3.3 có thể biểu diễn vùng hình dạng theo một trong hai vị trí như sau:
Hình 3.3: Hai hướng của cùng một vùng hình dạng
Hai chuỗi nhị phân khác nhau cần được tạo ra để đại diện cho hai hướng trên . Khi đó việc lưu trữ biểu diễn trích chọn của mỗi vùng hình dạng cần tăng gấp đôi không gian nhớ. Để tiết kiệm, chúng ta chỉ sử dụng và lưu trữ một chuỗi bít , chuỗi nào trong hai chuỗi là không quan trọng mà tùy theo qui ước . Hai hướng của hình dạng trong câu truy vấn trong quá trình tìm kiếm mới được biểu diễn đầy đủ bởi hai chuỗi bít và hai chuỗi này được so sánh với mỗi chuỗi biểu diễn của các vù ng hình dạng có trong cơ sở dữ liệu.
3.2.2.4 Chuẩn hóa co dãn
Để thuận tiện trong việc tra cứu ta sẽ thực hiện chuẩn hóa co d ãn, thống nhất đưa vùng hình dạng về kích thước đồng dạng mà ở đó trục chính của nó có cùng độ dài không đổi là 192 điểm ảnh (pixel). Tuy nhiên độ dài chuẩn này có thể thay đổi tùy theo chương trình và ý đồ của người dùng.
3.2.2.5 Chỉ mục vùng hình dạng
Sau khi đã thực hiện chuẩn hóa xoay, chuẩn hóa co dãn và chọn kích thước ô lưới phủ, chúng ta chỉ cần lưu trữ một chuỗi bít biểu diễn duy nhất cho mỗi vùng hình dạng trong cơ sở dữ liệu , với giả định rằng mỗi vùng chỉ có một trục chính. Chuỗi bít này được coi là đại diện hoặc chỉ mục cho vùng hình dạng trong cơ sở dữ liệu . Ví dụ, chỉ mục vùng hình dạng của hình 3.3 (được chuẩn hóa) là:
11111111 01111110 00011000 hoặc 00111110 11111111 11111111.
Khi đã quyết định kích thước lưới phủ và kích thước mỗi ô lưới thì số lượng của ô lưới tính theo trục Ox là cố định , do trục chính của vùng hình dạng song song với Ox. Trong khi đó, số lượng ô theo hướng Oy thì phụ thuộc vào độ lệch tâm chính và trục phụ, hay kích thước của trục phụ, vì trục chính có độ dài không đổi, nhưng số ô theo trục Oy này lớn nhất thì cũng chỉ bằng số ô theo trục Ox . Chẳng hạn, nếu ô lưới có kích thước 24 × 24 điểm ảnh, và giả sử số lượng ô lưới theo hướng Ox là 8, khi đó
số ô theo hướng Oy chỉ có thể trải dài từ 1 tới 8, do trục chính là trục dài nhất nối 2 điểm thuộc biên của vùng hình dạng.
3.2.2.6 Độ đo tương tự
Sau khi đã chỉ mục xong vùng hình dạng thì vấn đề tiếp theo là làm thế nào để đo lường được mức độ tương tự giữa những vùng hình dạng dựa vào chỉ mục của chúng. Về tổng quan, cách tính độ đo tương tự có thể được thể hiện bởi các bước sau:
Giả sử: R và R’ là các véctơ hàng của hai ảnh, C và C’ là các véctơ cột của hai ảnh. Ta thực hiện:
- Tính toán độ đo tương tự.
- Tính toán các véctơ hàng và cột của mọi vùng hình dạng trong ảnh truy vấn. - Tìm khác biệt hàng và cột giữa các vùng hình dạng trong hai ảnh.
- Ri và Ci là bit thứ i của các véctơ ảnh thứ nhất - Ri’ và Ci’ là bit thứ i của các véctơ ảnh thứ hai
- Nếu (Rd+Cd) < T (ngưỡng) thì hai ảnh tương tự . Trong đó Rd và Cd là hiệu số hàng và cột giữa hai ảnh
Vì chỉ mục chính là chuỗi bít biểu diễn số ô lưới và vị trí các ô phủ lên vùng hình dạng, do đó một cách tự nhiên chúng ta có thể lấy sự khác biệt hay khoảng cách giữa các vùng chính là số lượng ô lưới khôn g phủ hai vùng hình dạng . Việc xoay 180 độ và các phép toán vùng khác sẽ được xem xét sau. Dựa trên độ lệch tâm, chúng ta có ba trường hợp tính toán độ tương tự:
- Trường hợp 1: Nếu hai vùng hình dạng đã được chuẩn hóa có cù ng hình chữ nhật nền cơ bản , chúng ta so sánh bít trên hai dãy chỉ số của hai vùng hình dạng, khoảng cách giữa chúng chính là số vị trí bít tương ứng khác nhau . Ví dụ, nếu vùng hình dạng A và B có cùng độ lệch tâm là 2 và các chỉ mục lần lượt là 11111111 11100000 và 1111111 11111100, thì khoảng cách giữa A và B là 3.
- Trường hợp 2: Nếu hai vùng hình dạng có hình chữ nhật nền cơ bản khác nhau, mà thực chất là trục phụ có độ dài khác nhau , khi đó ta quy định một sai số cho phép (thông thường là ba ô lưới), mà với sai số đó, nếu hai trục phụ của hai vùng hình dạng chênh nhau lớn hơn sai số đó thì được coi là hai vùng khác nhau hoàn toàn.
- Trường hợp 3: Trong trường hợp hai vùng hình dạng có trục phụ chênh nhau tương đối ít, không vượt quá sai số, thì ta có thể coi chúng gần giống nhau ở mức chấp nhận được. Khi đó ta thêm các bít 0 vào chuỗi bít của vùng có trục phụ nhỏ hơn , sao cho số lượng bít của hai vùng so sánh là bằng nhau, rồi tiến hành tính toán độ tương tự như trường hợp 1. Ví dụ , vùng hình dạng A có độ dài trục phụ là 2 và chuỗi bít là 11111111 11110000, còn vùng hình dạng B có độ dài trục phụ là 3 và chuỗi bít là 11111111 111111000 11100000. Khi đó ta thêm các bít 0 vào cuối dãy bít của A thành
dãy mới là 11111111 11110000 00000000 và xác định được khoảng cách giữa A và B là 4.
Để thuận tiện cho việc tính toán độ tươn g tự , chúng ta lưu trữ với mỗi vùng hình dạng một bộ hai tham số: Độ lệch tâm và một chuỗi bít duy nhất đại diện . Bộ hai tham số đó tạo nên chỉ mục duy nhất của vùng hình dạng đó.
3.2.2.6 Các phép toán khác
Bên cạnh phép quay 180 độ, chúng ta cần quan tâm tới 2 phép quay khác là phép đối xứng theo trục ngang và đối xứng theo trục thẳng đứng . Hình 3.4 cho ta thấy kết quả của phép đối xứng.
Hình 3.4: Phép đối xứng
Để tiết kiệm tính toán , chúng ta vẫn chỉ lưu trữ duy nhất một dãy bít cho mỗi vùng hình dạng trong cơ sở dữ liệu , nhưng sẽ phát sinh 4 dãy bít tương ứng với các phép xoay 180 độ và đối xứng gương đối với vùng hình dạng trong câu truy vấn . Sau đó độ tương tự sẽ được tí nh toán giữa dãy bít trong chỉ mục của các vùng hình dạng trong cơ sở dữ liệu với lần lượt bốn dãy bít của vùng hình dạng truy vấn. Kết quả tốt nhất sẽ được dùng làm cơ sở trích rút ra kết quả.
3.2.2.7 Xử lý trường hợp vùng hình dạng có hơn một trục chính
Các tính toán trên đây đã dựa vào giả định mỗi vùng hình dạng chỉ có một trục chính. Tuy nhiên trong thực tế chúng ta có thể gặp những vùng hình dạng có nhiều hơn một trục. Để giải quyết trường hợp này , ta cần phải tìm chuỗi bít chỉ mục của vùng hình dạng đó theo từng trục chính của nó. Khi đó việc so sánh để tìm kiếm ảnh sẽ được thực hiện tốn kém hơn bằng cách so sánh từng cặp chuỗi bít trong tất cả các chuỗi bít biểu diễn vùng hình dạng trong cơ sở dữ liệu với 4 chuỗi bít phát sinh cho vùng hình dạng truy vấn.
3.2.2.8 Quy trình tạo chỉ mục và tra cứu ảnh dựa trên lưới
Trên đây, chúng ta đã tiến hà nh nghiên cứu và chỉ ra các khái niệm , cách thức để xử lý việc biểu diễn , trích chọn đặc trưng của các vùng hình dạng , trên cơ sở xác định trục chính , trục phụ, chuẩn hóa về co dãn và độ xoay , cùng với các độ đo tươn g tự và phép toán đối xứng gương. Trong mỗi hệ thống tra cứu ảnh trên cơ sở lưới vùng, mỗi vùng hình dạng cần phải được đánh chỉ mục . Vùng hình dạng trong câu truy vấn cũng được đánh chỉ mục trong suốt quá trình tra cứu. Việc tra cứu được thực hiện dựa trên sự so sánh giữa các chỉ mục của vùng hình dạng truy vấn với các vùng hình dạng trong cơ sở dữ liệu thông qua độ đo tương tự.
Hệ thống tra cứu ảnh dựa trên lưới được thực hiện thông qua việc xử lý các trích chọn đặc trưng để tạo chỉ mục cho các hình dạng trong cơ sở dữ liệu , bao gồm các bước sau, với giả định hình dạng là các vùng chỉ có một trục chính:
- Xác định trục chính, trục phụ, độ lệch tâm của mỗi vùng hình dạng.
- Chuẩn hóa co dãn đưa kích thước trục chính về độ dài cố định cho trước , và chuẩn hóa xoay sao cho trục chính song song với trục Ox (hoặc Oy).
- Xác định kích thước lưới phủ , kích thước ô lưới và cố định kíc h thước đó . Dùng lưới phủ lên trên vùng hình dạng một cách bao khít.
- Xác định chuỗi bít chỉ mục bằng cách xác định các ô lưới chứa được một số lượng điểm ảnh nhất định của vùng hình dạng (thường từ 15% đến 25% số điểm ảnh trong một ô lưới) cho tương ứng với giá trị 1, các ô còn lại có giá trị 0, sau đó ghép các số từ trái qua phải, từ trên xuống dưới của lưới phủ để được chuỗi bít.
- Chuỗi bít duy nhất cùng với độ dài trục phụ t ạo thành một cặp chỉ mục cho vùng hình dạng và được lưu trữ trong cơ sở dữ liệu.
Như vậy trong quá trình tra cứu, các bước sau đây được sử dụng để mô tả vùng hình dạng trong truy vấn và thực hiện so sánh độ đo tương tự.
1. Vùng hình dạng trong ảnh truy vấn được mô tả bởi chiều dài trục phụ và chuỗi bít nhị phân bằng cách sử dụng cùng một thủ tục như trong quá trình lập chỉ mục trên (có bốn chuỗi nhị phân).
2. Thực hiện so sánh bốn chuỗi bít nhị phân với các chuỗi trong cơ sở dữ liệu nhằm tìm kiếm các vùng hình dạng giống hoặc tương tự.
3. Khoảng cách giữa vùng hình dạng truy vấn với một vùng hình dạng trong cơ sở dữ liệu được tính toán bởi số lượng các vị trí bít bị sai khác.
4. Các vùng hình dạng tương tự được hiển thị hoặc lấy thứ tự tăng dần các khoảng cách giữa các vùng hình dạng.
Đây là phương pháp đơn giản và gần gũi với tư duy của con người cho hiệu quả tốt với các tra cứu liên quan đến hình dạng.