Giả sử rằng các vùng trong ảnh nơi chứa các đặc trƣng quan tâm, có thể nhận ra bằng cách nào đó, và nội dung của các vùng quan tâm đƣợc xác định bằng cách nào đó. Phần này khảo sát nhanh cách phân chia ảnh cho trƣớc thành các vùng đồng nhất, gọi chúng là đoạn (segment).
Người sử dụng
Chỉ số trên ảnh nén Ảnh thô
Giả sử ảnh I chứa (m x n) tế bào. Trƣờng hợp tồi nhất là tế bào tƣơng ứng pixel, nhƣng tổng quát thì tế bào là tập chữ nhật các pixel.
Vùng liên thông trong ảnh I là tập các tế bào mà nếu các tế bào (x1,y1)x…(xn, yn) , tồn tại trật tự các tế bào C1,…,Cn trong thoả mãn
1. C1=(x1,y1) và 2. Cn=(xn,yn) và
3. Khoảng cách Euclidean giữa Ci và Ci +1 với mọi điểm 1i<n là 1.
Hình 3.4 chỉ ra ba vùng R1, R2, R3, mỗi chúng là vùng liên thông. Hơn nữa, ta có:
1. (R1 R2) là vùng liên thông. 2 (R2 R3) là vùng liên thông. 3. (R1R2 R3) là vùng liên thông.
4. Nhƣng (R1 R3) không phải là vùng liên thông.
Khoảng cách Đề các giữa tế bào (2,3) của R1 và (3,4) của R3 là 2>1.
Thuộc tính đồng nhất kết hợp với ảnh I là hàm H lấy vùng liên thông bất kỳ trong ảnh I làm đầu vào và cho lại “true” hay “false”.
Dƣới đây là các thí dụ về tính chất đồng nhất:
1. Giả sử là số thực trong khoảng từ 0 đến 1 và ảnh khảo sát là ảnh đen trắng.
Có thể định nghĩa tính chất đồng nhất Hbw nhƣ sau: Hbw (R) cho lại “true” nếu nhƣ biểu diễn trong bảng dƣới 3.1đây:
Vùng Tổng số pixel đen Tổng số pixel trắng
R1 800 200
R2 900 100
R3 100 900
Bảng 3.1
Giả sử ta xem xét một vài tính chất khác nhƣ Hbw0.8,H0bw.89, Hbw0.92. Bảng 3.2 sau đây chỉ ra cho chúng ta thấy kế quả các thuộc tính đồng nhất lại:
Vùng
Hbw0.8 Hbw0.89 Hbw0.92. R1 True false false
R2 True True false
R3 True True false
Bảng 3.2
2. Giả sử ảnh xem xét với các pixel có giá trị thực giữa từ 0 đến 1. Giá trị này ta gọi là mức đen trắng (b-w level). Giá trị 0 mô tả trắng, 1 mô tả đen và độ xám đƣợc biểu diễn bởi giá trị nào đó xác định trong khoảng 0 và 1. Hãy khảo sát tính đồng nhất khác chút ít so với trên đây. Ta có hàm f thực hiện gắn các số từ 0 đến 1 vào từng pixel. Hơn nữa, ta còn có hệ số nhiễu (noise factor) 01, và mức ngƣỡng nhƣ trƣờng hợp trên đây. Hf..(R) là true nếu
mxn y x f y x level bw y x, ) ( , ) ( , ) } ( { >
Nói cách khác, tính chất đồng nhất sử dụng hàm cơ sở f và mức nhiễu cực đại cho phép . Việc xem xét mức bw của tế bào (x,y) là tƣơng đƣơng với kết quả của hàm f nếu)
bw – level(x,y) – f(x,y) <
Sau đó kiểm tra xem có đủ tế bào (xác định bởi hệ số ) trong vùng phù hợp với kết quả của hàm f. Nếu có, hãy coi vùng R là đồng nhất và nó cho lại giá trị “true”. Mặt khác nó cho lại giá trị “false”.
3. Trƣớc hết phân lớp mọi mức bw-level. Thí dụ, có thể phân lớp với mọi bw- level giữa ) và 0.1 là 1, mọi bw-level giữa 0.1 và 0.2 là 2, …cho đến mức bw-level giữa 0.9 và 1 là mức 10. Tƣơng tự nhƣ trên đây, nếu nằm giữa 0 và 1 thì Hclass(R) cho lại “true” nếu trên (100* )% của tế bào trong vùng R rơi vào.
4. Tính chất đồng nhất khác nữa đƣợc ký hiệu là Hdyn, đó là phiên bản động của hàm Hclass. Hclass đặt mức ƣu tiên cho các lớp chứ không phải đặt động. Ngƣợc lại, ta có thể nói rằng R là đồng nhất, tùy theo giá trị Hdyn
,
, nếu tên (100* )% của tế bào trong vùng R nằm trong dải của số thực r nào đó.
Cuối cùng, chú ý rằng dự báo đồng nhất không phải chỉ trên cơ sở các mức b/w hay các mức xám. Nó dự báo tuỳ ý, khi cho trƣớc vùng R, giá trị “true” hay “fale” cho lại dựa trên một vài tính toán. Nó có thể quan tâm đến các hệ số nhƣ độ sâu, cƣờng độ, kết cấu, lƣợc đồ màu…
Cho trƣớc ảnh I với tập pixel (m x n), hãy xác định đoạn của I với dự báo đồng nhất P là các tập R1,…,Rk thoả mãn:
1. RiRj=0 với mọi 1ijk, 2. I=Ri… Rk,
3. H(Ri)=true với mọi 1ik, và
4. Với mọi i, j khác nhau, 1i, j n, và Ri Rj là vùng liên thông thì H(Ri Rj)=false
Thí dụ, hãy xem xét vùng (4x4) chứa b-w levels chỉ ra trên bảng 3.3 sau:
Cột Hàng 1 2 3 4 1 0.10 0.25 0.50 0.50 2 0.05 0.30 0.60 0.60 3 0.35 0.30 0.55 0.80 4 0.60 0.63 0.85 0.90 Bảng 3.3
Hãy xem xét hàm dự báo đồng nhất H1dyn,0.03. Hàm dự báo đồng nhất này cho biết vùng R đƣợc xem nhƣ đồng nhất nếu tồn tại r sao cho mỗi tế bào trong vùng có mức bw là v thoả mãn
v-r 0.03
Theo cách phân lớp này, dế dễ dàng thấy rằng ta có 5 vùng hình thành từ phân đoạn ảnh trên H1dyn,0.03 nhƣ hình 3.5.[8,11]
R1={(1,1), (1,2)} R2={(1,3), (2,1), (2,3)} R3={(3,1), (3,2), (3,3), (4,1), (4,2)} R4={(3,4), (4,3), (4,4)} R5={(1,4), (2,4)} 4 3 2 1 1 2 3 4 Hình 3.5
Dƣới đây là phƣơng pháp đơn giản tìm kiếm phân đoạn ảnh theo dự báo đồng nhất H:
1. Bẻ gẫy: Bắt đầu bằng toàn bộ ảnh. Nếu đồng nhất, thực hiện xong và ảnh chính là đoạn hợp lệ. Nếu không, chia ảnh thành 2 phần và thực hiện lặp cho đến khi ta ra R1, …, Rn các vùng đồng nhất và thoả mãn mọi điều kiện (trừ điều kiện 4) trong định nghĩa thuộc tính đồng nhất.
2. Trộn : Kiểm tra xem những Ri nào có thể trộn vào nhau. Kết thúc bƣớc này ta có các đoạn hợp lệ R’1,…..,R’k của ảnh, trong đó k n và mỗi R’i là hợp nhất của một vài Rj.
Giải thuật cài đặt các bƣớc trên có thể mô tả dễ dàng bằng hàm và hàm chính có tên segment nhƣ sau:
Giải thuật 3.1
function segment (I: image)
SOL =0; chek_split(I); merg(SOL);
end function
funtion chek_split(R)
if H(R)=”true” then addsol(R) else {X=Split(R); chek_plit(X.part1); chek_plit(X.part2); } end function procedure addsol(R) SOL =SOL{R} end procedure funtion merge(S) While S do { Pick some cand in S; Merged = false; S=S-{Cand}; Enumerate S as C1,….,Ck; While i k do { if adjacent(Cand, Ci) then {Cand = Cand Ci; S=S-{Ci}; Merged = true; }
else{ i = i +1;
if merged then S= S {Cand}; merged= false;
} }};
end function
3.4 Truy vấn trên cơ sở tượng tự
Vấn đề đặt ra là nghiên cứu kỹ thuật lấy ảnh làm đầu vào, cho lại phiên ảnh nén của ảnh đầu vào nhờ biến đổi ảnh DCT, DFT hay wavelet. Câu hỏi cần trả lời là:
Cách nào có thể xác định nội dụng của phân đoạn (hay ảnh phân đoạn ) tƣơng tự với ảnh khác (hay tập ảnh khác) hay không?
Có nhiều trƣờng hợp ứng dụng, khi có CSDL ảnh lớn, ngƣời sử dụng mong muốn truy vấn nhƣ “Đây là ảnh cử một người. Hãy cho biết đó là ai?”
Có hai tiệm cận chính đến truy vấn ảnh trên cơ sở tƣơng tự.
1. Tiệm cận thước đo: Trong tiệm cận này ta giả sử rằng có thƣớc đo khoảng cách d để so sánh hai đối tƣợng ảnh. Hai đối tƣợng ảnh càng gần nhau thì chúng càng tƣơng tự nhau. Vấn đề truy vấn trên cơ sở tƣơng tự có thể đƣợc phát biểu nhƣ sau: Cho trƣớc ảnh vào i, hãy tìm láng giềng gần nhất của i trong tập ảnh. Cho đến nay, tiệm cận thƣớc đo đƣợc sử dụng nhiều nhất trong các CSDL ảnh,.
2. Tiệm cận biến đổi: Tiệm cận thƣớc đo giả sử rằng quan niệm tƣơng tự là “cố định”. Có nghĩa rằng, trong bất kỳ ứng dụng nào chỉ một quan niệm tƣơng tự đƣợc sử dụng để làm chỉ mục dữ liệu (mặc dù nhiều ứng dụng sử dụng nhiều quan niệm tƣơng tự khác nhau). Thí dụ với hai ảnh, ngƣời này cho rằng hai con vật giống nhau (hai con khỉ), nhƣng chuyên gia động vật cho rằng hai ảnh khác nhau: con đƣời ƣơi (hình 3.6a) và con tinh tinh (Hình 3.6b). tƣơng tự với xâu ký tự “AI” và “intelligence”. Dƣới con mắt ngƣời làm tin học thì chúng tƣơng đƣơng, nhƣng với các chuyên gia sinh học thì AI lại là Artificial Insemination (thụ tinh nhân tạo)…
Do vậy, ngƣời sử dụng phải chỉ ra cái gì đƣợc coi là tƣơng tự, thay cho việc để toàn bộ công việc cho hệ thống.
3.4.1. Tiệm cận thước đo
Giả sử , xem xét tập đối tƣợng Obj với các đặc tính pixel p1,….,pn. Mỗi đối tƣợng o đƣợc xem nhƣ tập S(o) của bộ (n+2) (n+2 tuple) có khuôn dạng sau:
(xcoord, ycoord, v1,….,vn)
Trong đó, vi là giá trị của thuộc tính pi kết hợp với toạ độ pixel (x,y). Rõ ràng, S(o) chứa (w x h) của bộ (x+2),trong đó w là độ rộng và h là độ cao của chữ nhật kết hợp với o.
Thông thƣờng một đối tƣợng là toàn bộ ảnh hay đoạn ảnh . Thí dụ , cho trƣớc CSDL ảnh mặt ngƣời. Nó bao gồm ảnh của nhiều ngƣời chụp dƣới các điều kiện khác nhau thì một đối tƣợng có thể bao gồm nhiều mặt ngƣời .Trong tiệm cận thƣớc đo, mức độ khác nhau đƣợc xác định bởi hàm khoảng cách d , hàm d từ tập X đến khoảng cách đơn vị [0,1] đƣợc gọi là hàm khoảng cách nếu thoả mãn các tiên đề sau đây . với mọi x,y,z X ta có :
d(x,y)= d(y,x)
d(x,x)=0
Gọi dObj là hàm khoảng cách trong không gian mọi đối tƣợng. Tuy nhiên trong chƣơng trƣớc cho ta thấy đối tƣợng đƣợc xem nhƣ tập các điểm trong không gian k- chiều với k= n+2. Do vậy việc tính toán cho dObj là khá phức tạp .
Thí dụ , hãy xem xét tập Obj gồm các ảnh với kích thƣớc (256x256) , có ba thuộc tính (red,green,blue) đƣợc gán giá trị từ tập (o,…,7). Ta định nghĩa hàm khoảng cách d :giữa hai ảnh nhƣ sau :
D1(o1,o2)= 256 1 256 1 , , , i j b g r i j diff i j diff i j diff i j
diffr , =(o1[i,j].red-o2[i,j].red)2 i j
diffg , =(o1[i,j].green-o2[i,j].green)2 i j
diffb , =(o1[i,j].blue-o2[i,j].blue)2
Rõ ràng tính toán trên là tiến trình khá nặng nề bởi vì tổng kép này dẫn tới 65536 phép tính. Ngay việc sử dụng cấu trúc dữ liệu cây R hay cây tứ phần nào đó cũng không cho kết quả khả quan.
Để giải quyết vấn đề này, nhiều nhà nghiên cứu đã gợi ý kỹ thuật quan trọng khác thay thế. Các kỹ thuật này hình thành dựa trên việc sử dụng hàm tách đặc trƣng “tốt” có tên fe (Feature Extrationn Function). Thí dụ các hàm này có thể là DFT và DCT. Dựa trên quan điểm này, hàm fe ánh xạ các đối tƣợng vào các điểm đơn trong không gian s- chiều, trong đó s thông thƣờng hơi nhỏ so với (n+2). Do vậy có thể có hai rút gọn có thể đạt đƣợc:
1.Hãy nhớ lại rằng đối tƣợng o là tập các điểm trong không gian (n+2) chiều. Ngƣợc lại, fe(o) là điểm đơn.
2. fe(o) là điểm trong không gian s chiều và s<<(n+2).
Hình 3.7 biểu diễn tiệm cận thƣớc đo. Ý tƣởng cơ bản là trƣớc hết ánh xạ các đối tƣợng vào các điểm trong không gian s chiều, sau đó tổ chức mọi đối tƣợng nhờ cấu trúc dữ liệu không gian nhƣ cây R. Tuy nhiên, bằng trực giác thì ánh xạ có thể bảo toàn khoảng cách: nếu o1,o2,o3 là các đối tƣợng mà d(o1,o2)d(o1,o3) thì d’(fe(o1), fe(o2)) d’(fe(o1), fe(o3)), trong đó d là thƣớc đo trong không gian gốc
n+2 chiều và d’ là thƣớc đo không gian mới s chiều. Nói cách khác, ánh xạ tách đặc trƣng có thể bảo toàn hệ khoảng cách trong không gian gốc.
Kết quả là, cho trƣớc đối tƣợng truy vấn o, ta chuyển đổi o sang fe(o) và thử tìm ra điểm p trong không gian s-d sao cho d’(p,fe(o)) nhỏ nhất có thể. Thuật toán hình thức dƣới đây sử dụng ký pháp d làm thƣớc đo trong không gian (n+2)-d và d’ là thƣớc đo trong không gian s ít chiều hơn.[8]
Thuật toán 3.2 IndexCreation
Input: Obj – tập các đối tượng.
1. T= NIL. (* T là cây tứ phân hay cây R rỗng cho dữ liệu s – chiều*) 2. if Obj = then returm T and Halt
3. else
a. Compute fe(o) b. Insert fe(o) into T. c. Obj = Obj – {0}. d. Go to 2.
Tiến trình hình thức để tìm câu trả lời tốt nhất khi truy vấn đối tƣợng thể hiện bằng giải thuật sau:
Thuật toán 3.3 FindMostSimilarObject
Input: Cây T có kiểu đã mô tả trên đây, đối tƣợng o. bestnode = NIL;
if T = NIL then returm betstnode and Halt else
tìm láng giềng trong T gần fe(o) nhất nhờ kỹ thuật tìm kiếm láng giềng gần nhất. nếu tồn tại nhiều láng giềng nhƣ vậy thì trả lại tất cả chúng.
Để tìm mọi đối tƣợng tƣơng tự khi truy vấn đối tƣợng trong khoảng cho trƣớc , có thể sử dụng tiệm cận trên cơ sở truy vấn khoảng. Giả sử rằng o1, o2 trong Obj ta có :
d(o1,o2) d’(fe(o1), fe(o2))
Thuật toán 3.4 FindSimilarObjects
Input: Cây T có kiểu nhƣ trên. Đối tƣợng o. Dung sai 0<1. Thực hiện truy vấn khoảng cây T với tâm fe(o) và bán kính . Gọi p1,……., pr là các điểm cho lại.
for i=1 to r do
(a) if d(o,fe-1(pi)) then print fe-1 (pi).
Thuật toán trên đây của Faloutsos chỉ làm việc khi thƣớc đo khoảng cách trong không gian có kích thƣớc nhỏ (thí dụ, không gian s), lớn hơn hoặc bằng thƣớc đo khoảng cách d..
3.4.2 - Tiệm cận biến đổi
Tiệm cận trên cơ sở biến đổi là tổng quát hơn tiệm cận thƣớc đo. Cho trƣớc hai đối tƣợng o1,o2, mức không tƣơng tự giữa chúng tƣơng ứng với giá (tối thiểu) của biến đổi đối tƣợng o1 và o2, hoặc ngƣợc lại.
Trong mô hình này tồn tại tập các toán tử biến đổi to1,…to2. Trong trƣờng hợp ảnh, các toán tử này có thể dịch chuyển, quay và co dãn. Toán tử mở rộng cũng có thể đƣợc bao gồm việc sửa đổi một hình dạng bằng cách thêm hình dạng mới vào nó. Toán tử cắt có thể lựa chọn hình dạng từ đối tƣợng đang tồn tại. Ngƣời sử dụng có thể chọn lựa ra tập con của các toán tử để sử dụng. hơn nữa họ có thể bổ sung toán tử mới nếu họ muốn. Mỗi toán tử có một hàm đánh giá (cost) kết hợp. Chi phí (cost) càng cao thì thao tác càng ít có cơ hội đƣợc sử dụng. Thí dụ ta có hàm tên là
paint với bốn đối số: paint (color1, vall, color2 ,val2), giá của hàm này đƣợc xác định nhƣ sau:
trong đó, diff(red,green)=3=diff(green,red),…
Biến đổi đối tƣợng o thành đối tƣợng o’ là trật tự các thao tác biến đổi to1,…,tor và trật tự các đối tƣợng to1,…,tor sao cho
to1(o) = o,
2. toi(oi-1) = oi v à 3. to(or) = o’
Chi phí của trình tự biến đổi trên đây (Transformaion Sequence-TS) đƣợc tính nhƣ sau: cost (TS)= r i 1 cost(toi)
Chú ý rằng có thể có 1,2 nhiều hay không có trình tự biến đổi nào cho phép ta chuyển đổi đối tƣợng o thành đối tƣợng o’. Giả sử TSeq(o,o’) là tập các trình tự biến đổi từ o sang o’. Tính không đồng dạng giữa o và o’, ký hiệu là dis (o,o’), đối với tập toán tử biến đổi TR và tập hàm chi phí CF đƣợc xác định nhƣ sau:
dis (o,o’’)=min {cost(TS)|TSTSeq(o,o’’) TSeq(o’,o’)
Thí dụ ta xem xét hai đối tƣợng o, o’ trên hình 3.8. Hãy khảo sát một vài cách biến đổi đối tƣợng này sang đối tƣợng khác.
1. TS1: Trình tự biến đổi này bao gồm thao tác co giãn (có phần tô vạch ngang 50%), tiếp theo thực hiện thao tác co giãn khác (dãn phần tô dọc 100%). Thao tác thứ ba tô (paint) để tô hai pixel tô dọc sử dụng mẫu tô ô vuông. Hình 3.9 mô tả từng bƣớc của cách làm này.
2. TS2: Trình tự biến đổi theo cách này bao gồm thao tác co giãn (có phần tô ngang 50%). Sau đó áp dụng thao tác paint để tô vùng sọc đứng sử dụng mẫu tô ô vuông. Cuối cùng áp dụng thao tác co giãn (dãn phần gạch ô vuông 100%). Hình 3.10 mô tả các bƣớc này.
Nếu hàm giá (cost function) kết hợp với co giãn không đồng nhất là độc lập với màu và thao tác paint chỉ đơn thuần đếm tổng số pixel đang đƣợc tô, thì dễ dàng thấy rằng biến đổi TS2 bao gồm các biến đổi với giá rẻ hơn (vì tô ít hơn TS1 một pixel). Hình 3.9 Co dãn Tô màu Co dãn
Mô hình biến đổi có độ mềm dẻo hơn mô hình thƣớc đo theo hai lý do sau