Phƣơng pháp phát hiện biên gián tiếp

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin nghiên cứu một số phương pháp phát hiện biên và ứng dụng vào bài toán robot di chuyển dọc theo hành lang (Trang 53 - 59)

2.2. Kỹ thuật tìm đƣờng đi của robot

2.2.3.3. Phƣơng pháp phát hiện biên gián tiếp

a. Một số khái niệm cơ bản

Ảnh và điểm ảnh

Ảnh là một mảng số thực 2 chiều (Iij) có kích thƣớc (MxN), trong đó mỗi phần tử Iij(i = 1..M, j = 1..N) biểu thị mức xám của ảnh tại (i,j) tƣơng ứng.

Ảnh đƣợc gọi là ảnh nhị phân nếu các giá trị Iij chỉ nhận giá trị 0 hoặc 1. Ở đây ta chỉ xét tới ảnh nhị phân vì ảnh bất kỳ có thể đƣa về dạng nhị phân bằng kỹ thuật phân ngƣỡng. Ta ký hiệu  là tập các điểm vùng (điểm

đen) và  là tập các điểm nền (điểm trắng).

Các điểm 4 và 8-láng giềng

Giả sử (i,j) là một điểm ảnh, các điểm 4-láng giềng là các điểm kề trên, dƣới, trái, phải của (i,j):

N4(i,j) = {(i‟,j‟) : |i-i‟| + |j-j‟| = 1}, và những điểm 8-láng giềng gồm

N8(i,j) = {(i‟,j‟) : max(|i-i‟| + |j-j‟|) = 1}

Trong hình 3.1 biểu diễn ma trận 8 láng giềng kề nhau, các điểm P0, P1, P2, P3, P4, P5, P6, P7 là các 8-láng giềng của P

P3 P2 P1

P4 P P0

P5 P6 P7

Đối tƣợng ảnh

Hai điểm Ps, Pe  E, E   hoặc  đƣợc gọi là 8-liên thông (hoặc 4-

liên thông) trong E nếu tồn tại tập các điểm đƣợc gọi là đƣờng đi (i0,j0) sao cho (i0,j0)=Ps, (in,jn) = Pe, (ir,jr)  E và (ir,jr) là 8-láng giềng (hoặc 4-láng giềng tƣơng ứng) của (ir-1,jr-1) với r = 1,2, ..,n

Nhận xét: Quan hệ k-liên thông trong E (k=4,8) là một quan hệ phản

xạ, đối xứng và bắc cầu. Bởi vậy, đó là một quan hệ tƣơng đƣơng. Mỗi lớp tƣơng đƣơng đƣợc gọi là mộ thành phần k-liên thông của ảnh. Về sau ta sẽ gọi mỗi thành phần k-liên thông của ảnh là một đối tƣợng ảnh.

b. Chu tuyến của một đối tƣợng ảnh Định nghĩa 1: [Chu tuyến]

Chu tuyến của một đối tƣợng ảnh là dãy các điểm của đối tƣợng ảnh P1…Pn sao cho Pi và Pi+1 là các 8-láng giềng của nhau (i=1,….,n-1) và P1 là 8- láng giềng của Pn, i Q không thuộc đối tƣợng ảnh và Q là 4-láng giềng của Pi (hay nói cách khác i thì Pi là biên 4). Kí hiệu <P1P2..Pn>

Tổng các khoảng cách giữa hai điểm kế tiếp của chu tuyến là độ dài của chu tuyến và kí hiệu Len(C) và hƣớng PiPi+1 là hƣớng chẵn nếu Pi và Pi+1 là các 4-láng giềng (trƣờng hợp cịn lại thì PiPi+1 là hƣớng lẻ).

Hình 2.6. dƣới đây biểu diễn chu tuyến của ảnh, trong đó, P là điểm khởi đầu chu tuyến.

P

Định nghĩa 2: [Chu tuyến ngoài]

Chu tuyến C đƣợc gọi là chu tuyến ngồi (hình 2.7a) nếu và chỉ nếu (i) Chu tuyến đối ngẫu C

là chu tuyến của các điểm nền (ii) Độ dài của C nhỏ hơn độ dài của C

Định nghĩa 3: [Chu tuyến trong]

Chu tuyến C đƣợc gọi là chu tuyến trong (hình 2.7b) nếu và chỉ nếu (i) Chu tuyến đỗi ngẫu C

là chu tuyến của các điểm nền (ii) Độ dài của C lớn hơn độ dài của C

a. Chu tuyến ngoài b. Chu tuyến trong

Hình 2.7. Chu tuyến trong, chu tuyến ngồi

c. Thuật tốn dị biên tổng quát

Biểu diễn đối tƣợng ảnh theo chu tuyến thƣờng dựa trên các kỹ thuật dị biên. Có hai kỹ thuật dị biên cơ bản. Kỹ thuật thứ nhất xét ảnh biên thu đƣợc từ ảnh vùng sau một lần duyệt nhƣ một đồ thị, sau đó áp dụng các thuật tốn duyệt cạnh đồ thị. Kỹ thuật thứ hai dựa trên ảnh vùng, kết hợp đồng thời q trình dị biên và tách biên. Ở đây ta quan tâm cách tiếp cận thứ hai.

Trƣớc hết, giả sử ảnh đƣợc xét chỉ bao gồm một vùng ảnh 8-liên thông

, đƣợc bao bọc bởi một vành đai các điểm nền. Dễ thấy  là một vùng 4-liên

thông chỉ là một trƣờng riêng của trƣờng hợp trên.

Chu tuyến C

Chu tuyến CChu tuyến C

Về cơ bản, các thuật tốn dị biên trên một vùng đều bao gồm các bƣớc sau:

 Xác định điểm biên xuất phát

 Dự báo và xác định điểm biên tiếp theo

 Lặp bƣớc 2 cho đến khi gặp điểm xuất phát

Do xuất phát từ những tiêu chuẩn và định nghĩa khác nhau về điểm biên, và quan hệ liên thơng, các thuậ tốn dị biên cho ta các đƣờng biên mang các sắc thái rất khác nhau.

Kết quả tác động của tốn tử dị biên lên một điểm biên r là điểm biên ri+1 (8-láng giềng của r). Thơng thƣờng các tốn tử này đƣợc xây dựng nhƣ một hàm đại số Boolean trên các 8-láng giềng của r. Mỗi cách xây dựng các toán tử đều phụ thuộc vào định nghĩa quan hệ liên thơng và điểm biên. Do đó sẽ gây khó khăn cho việc khảo sát các tính chất của đƣờng biên. Ngồi ra, vì mỗi bƣớc dị biên đều phải kiểm tra tất cả các 8-láng giềng của mỗi điểm nên thuậ toán thƣờng kém hiệu quả. Để khắc phục các hạn chế trên, thay vì sử dụng một điểm biên ta sử dụng cặp điểm biên (một thuộc , một thuộc ),

các cặp điểm này tạo nên tập nền vùng, kí hiệu là NV và phân tích tốn tử dị biên thành hai bƣớc:

 Xác định cặp điểm nền vùng tiếp theo

 Lựa chọn điểm biên

Trong đó bƣớc thứ nhất thực hiện chức năng của một ánh xạ trên tập NV lên NV và bƣớc thứ hai thực hiện chức năng chọn điểm biên.

Thuật tốn dị biên tổng qt

Bƣớc 2: Xác định cặp nền-vùng tiếp theo Bƣớc 3: Lựa chọn điểm biên vùng

Bƣớc 4: Nếu gặp lại cặp xuất phát thì dừng, nếu khơng quay lại bƣớc 2

Việc xác định cặp nền-vùng xuất phát đƣợc thực hiện bằng cách duyệt ảnh lần lƣợt từ trên xuống dƣới và từ trái qua phải rồi kiểm tra điều kiện lựa chọn cặp nền-vùng. Do việc chọn điểm biên chỉ mang tính chất quy ƣớc, nên ta gọi ánh xạ xác định cặp nền-vùng tiếp theo là tốn tử dị biên.

Định nghĩa 4: [Tốn tử dị biên]

Giả sử T là một ánh xạ nhƣ sau: T : NV  NV (b,r)  (b‟,r‟)

Gọi T là một toán tử dị biên cơ sở nếu nó thỏa mãn điều kiện: b‟,r‟ là các 8-láng giềng của r.

Giả sử (b,r) NV; gọi K(b,r) là hàm chọn điểm biên. Biên của một

dạng  có thể định nghĩa theo một trong ba cách:

 Tập những điểm thuộc  có mặt trên NV, tức là K(b,r) = r

 Tập những điểm thuộc  có trên NV, tức là K(b,r) = b

 Tập những điểm ảo nằm giữa cặp nền-vùng, tức là K(b,r) là những điểm nằm giữa hai điểm b và r.

Quá trình chọn điểm biên đƣợc thực hiện nhƣ sau: i:=1; (bi,ri) := (b0,r0)

While K(bi,ri) <> K(bn,rn) and i ≤ 8 do Begin (bi+1,ri+1) = T(bi,ri); i:=i+1; End Điều kiện dừng

Cặp nền-vùng thứ n trùng với cặp nền vùng xuất phát: (bn,rn) = (b0,r0)

Xác định cặp nền - vùng xuất phát

Cặp nền vùng xuất phát đƣợc xác định bằng cách duyệt ảnh lần lƣợt từ trên xuống dƣới và từ trái sang phải điểm đen đầu tiên gặp đƣợc cùng với điểm trắng trƣớc đó (theo hƣớng 4) để tạo nên cặp nền vùng xuất phát.

Xác định cặp nền – vùng tiếp theo

Đầu vào: pt, dir Ví dụ:

Point orient [] = {(1,0); (1,-1); (0,-1); (-1,-1); (-1,0); (-1,1); (0,1); (1,1)};

// Hàm tìm hƣớng có điểm đen gần nhất BYTE GetNextDir(POINT pt, BYTE dir) {

BYTE pdir = (dir + 7) % 8; do{

if(getpixel(pt.x+orient[pdir].x, pt.y+orient[pdir].y))==BLACK) return pdir;

pdir = (pdir + 7) % 8; }while(pdir != dir);

return ERR; // Điểm cô lập }

pdir = GetNextDir(pt, dir);

if(pdir==ERR) // Kiểm tra có là điểm cơ lập khơng return ERR; // Điểm cô lập

pt.x = pt.x + orient[pdir].x; pt.y = pt.y + orient[pdir].y;

Để tính giá trị cho hƣớng tiếp theo ta lập bảng dựa trên giá trị pdir đã tính đƣợc trƣớc đó theo các khả năng có thể xảy ra:

pdir Điểm trắng trƣớc đó Trắng so với đen mới 0 1 2 3 4 5 6 7 1 2 3 4 5 6 7 0 2 4 4 6 6 0 0 2

 Do đó cơng thức để tính hƣớng tiếp theo sẽ là

dir = ((pdir + 3)/2 * 2) % 8;

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin nghiên cứu một số phương pháp phát hiện biên và ứng dụng vào bài toán robot di chuyển dọc theo hành lang (Trang 53 - 59)

Tải bản đầy đủ (PDF)

(81 trang)