Phương pháp trích xuất đối tượng mặt phẳng dựa trên ảnh thị giác máy

Một phần của tài liệu (LUẬN án TIẾN sĩ) nghiên cứu phát triển các thuật toán ước lượng mặt phẳng và dẫn đường cho hệ thống thị giác rô bốt trong nhà (Trang 35 - 42)

4. Cấu trúc nội dung của luận án

1.3.2. Phương pháp trích xuất đối tượng mặt phẳng dựa trên ảnh thị giác máy

máy tính.

1.3.2.1. Phát hiện mặt phẳng sử dụng chuyển đổi Hough

Trong Hình 1.5, một mặt phẳng thuộc khơng gian (OXYZ) được biểu diễn bằng phương trình (1.1).

Z = a.X + b.Y +c (1.1)

Hình 1.5. Biểu diễn các thông số của mặt phẳng theo dạng chuẩn [25]

Một điểm (a, b, c) thì có thể được biểu diễn trong không gian tham số (Oabc). Nếu phương trình phẳng có dạng (1.2), thì nó khơng thể được biểu diễn trong khơng gian tham số vì hệ số trục Z bằng không.

Để giải quyết vấn đề này, có thể sử dụng dạng biểu diễn bằng pháp tuyến của mặt phẳng như phương trình (1.3).

cos θ. cos φ. X + sin θ. cos φ. Y + sin φ. Z = ρ (1.3)

trong đó θ, φ và ρ là các thông số của mặt phẳng pháp tuyến đi qua gốc (Hình 1.5). Vì vậy, θ, φ và ρ là hằng số và không gian tham số là (O θ φ ρ). Trong trường hợp

a X+ b Y + c = 0 (1.2) P O Z X Y (X1, Y1, Z1)   

này, một điểm (X1, Y1, Z1) trong không gian 3D đại diện cho một bề mặt hình sin trong khơng gian tham số (O θ φ ρ). Đây chính là nguyên lý của biến đổi. Phần tiếp theo trình bày chi tiết thuật toán Hough cơ bản dưới dạng mã giả [25] trong thuật toán 1.1.

Thuật toán 1.1: Phát hiện mặt phẳng bằng chuyển đổi Hough 3D Đầu vào: θ_step, φ_step, ρ_step

Đầu ra: H planes

1: X_min = min(X); Y_min = min(Y); Z_min = min (Z)

2: X_max = max(X); Y_max = max(Y); Z_max = max (Z)

3: Tính Dis_min; Dis_max;

4: θ = từ 0 đến 360, step = θ_step; n_θ = length(θ); 5: φ = từ -90 đến +90, step = φ_step; n_φ = length(φ);

6: n_ ρ = 2* (Dis_max - Dis_min) / ρ_step;

7: ρ = từ Dis_min đến Dis_max; step = ρ _step;

8: θ_mat (n_φ, n_θ) = [θ θ θ … θ]’ *π/180;

9: φ_mat(n_φ, n_ θ) = [φ φ φ …. φ] * π /180;

10: H(n_θ, n_φ, n_ ρ) = 0;

11: ratio = (n_ ρ – 1)/( ρ (n_ ρ) – ρ (1));

12: for k = 1 to length(X)

13: ρ_mat = cos (φ_mat)*cos (θ_mat)* X (k) + cos (φ_mat)*sin (θ_mat)* Y (k)+ sin(φ_mat)* Z (k);

14: ρ_indix = round (ratio *( ρ_mat – ρ (1)+1));

15: for i = 1 to n_φ

16: for j = 1 to n_ θ

17: H (j, i, ρ_index (i, j)) = H (j, i, ρ_index (i, j)) +1;

18: next j ;

19: next i ;

20: next k;

Dữ liệu đầu vào là các mức (bước) được gọi là _step, _step và _step trên các trục  ,  và  tương ứng. Đám mây điểm 3D được biểu diễn bằng ba danh sách toạ độ X, YZ. Trong thuật toán này, Dis_min và Dis_max là khoảng cách giữa gốc và hai đầu của các điểm đám mây được tính tốn tại các dịng lệnh 1 và 2; H là ma trận 3D; θ_mat, φ_mat và ρ_mat là ma trận 2D; θ, φ và ρ là ba danh sách. Kết quả của thuật toán là xây dựng được ma trận 3D H chứa đại diện của đám mây điểm gốc trong không gian tham số. Mỗi điểm trong điểm không gian (OXYZ) cho kết quả một bề mặt hình sin trong khơng gian tham số.

Hình 1.6b cho thấy hình ảnh trực quan của một mặt phẳng nằm ngang trong ma trận 3D H. Hình 1.6c minh họa kết quả của việc phát hiện mặt phẳng mái nhà. Để cải thiện kết quả này, cần sử dụng các giá trị tham số càng nhỏ càng tốt nhưng thời gian xử lý và bộ nhớ cần thiết sẽ cao hơn nhiều. Mẫu được sử dụng để kiểm định thuật tốn là hình ảnh một tịa nhà có nhiều chi tiết (Hình 1.6a) để thử nghiệm cách tiếp cận. Phần lớn các mặt phẳng trong ảnh đều nhỏ và mật độ điểm của nó tương đối nhỏ (1,3 điểm/m²).

(a) (b) (c)

Hình 1.6. Kết quả phát hiện mặt phẳng mái bằng cách sử dụng biến đổi Hough 3D. [25] Chú thích: (a): Ảnh màu gốc, (b): Mặt phẳng nằm ngang trong ma trận 3D H, (với số mặt phẳng ρ = 75); (c) Ảnh kết quả mặt phẳng

Bước tiếp theo bao gồm phát hiện các đỉnh từ ma trận 3D H như được đánh dấu bằng các vịng trịn màu đỏ trong Hình 1.6b. Mỗi đỉnh đại diện cho một mặt phẳng trong không gian (OXYZ). Hoạt động này có thể được thực hiện bằng cách tìm kiếm các voxels có giá trị cực đại trong ma trận H và sau đó áp dụng thuật tốn phát triển vùng 3D.

1.3.2.2. Phát hiện mặt phẳng sử dụng thuật toán RANSAC

Thuật toán RANSAC một phương pháp lặp để ước tính các tham số của mơ hình tốn học bắt đầu từ một tập hợp dữ liệu chứa các ngoại lệ. Đây là một thuật tốn khơng xác định, nghĩa là nó tạo ra một kết quả chính xác chỉ với một xác suất nhất định, sẽ tăng lên khi số lần lặp được phép tăng lên. Thuật toán được xuất bản lần đầu tiên bởi Fischler và Bolles vào năm 1981 [50]. Thuật toán RANSAC này cần bốn dữ liệu đầu vào gồm:

1. Đám mây điểm 3D (point_list) là ma trận ba cột gồm tọa độ (X, Y , Z).

2. Ngưỡng dung sai của khoảng cách t giữa mặt phẳng đã chọn và các điểm khác. Giá trị của nó liên quan đến độ chính xác cao của đám mây điểm.

3. forseeable_support là số điểm tối đa của cùng một mặt phẳng. Nó được suy ra từ

mật độ điểm và bề mặt mặt phẳng mái có thể dự đốn tối đa.

4. Xác suất α là xác suất tối thiểu tìm thấy ít nhất một bộ quan sát tốt trong N các

thử nghiệm. Nó thường nằm trong khoảng từ 0,90 đến 0,99.

Thuật toán 1.2 [25] minh họa chi tiết cách thức làm việc của RANSAC cơ bản để phát hiện các mặt phẳng trong tập điểm cho trước.

Trong mã lệnh giả này, ε là một tỷ lệ phần trăm các quan sát được phép sai; hàm

pts2plane tính tốn các thơng số mặt phẳng từ ba điểm được chọn. Nên sử dụng dạng

pháp tuyến của mặt phẳng thay vì dạng cổ điển (xem cơng thức (1.3)) để xem xét biểu thức chung của mặt phẳng. Hàm dist2plan tính tốn khoảng cách giữa tập điểm và mặt phẳng đã cho. Khoảng cách này được đưa ra trong phương trình (1.4).

dist2plan = cos θ cos φX + sinθcosφY + sinφZ -ρ (1.4)

trong đó X, Y và Z là ba cột của ma trận point-list. θ, φ và ρ là các tham số mặt phẳng. Giá trị khoảng cách dist2plan có thể nhận giá trị âm hoặc dương.

Thuật toán 1.2: Phát hiện mặt phẳng dùng RANSAC.

Đầu vào: point_list, α. Đầu ra: bestPlan, bestStd

1: bestSupport = 0; bestPlane(3,1) = [0, 0, 0]

2: bestStd = ∞; i = 0;

3: dis = dist2plan(pl, point_list);

4: ε = 1 – forseeable_support/length(point_list);

5: N=round (log (1 – α)/log (1 – (1 – ε) ^3));

6: while (i <= N)

7: j = chọn 3 điểm ngẫu nhiên trong (point_list);

8: pl = pts2plane(j);

9: s = find(abs(dis)<= t);

10: st = Standard_deviation (s);

11: if (length(s) > bestSupport or (length(s) = bestSupport and st < bestStd)) then

12: bestSupport = length (s);

13: bestPlan = pl; bestStd = st;

14: endif;

15: i = i+1;

Dòng thứ 11 trong thuật tốn 2 là dịng lệnh thiết yếu, bởi vì nó đại diện cho một bộ lọc mà cho phép chấp nhận hoặc từ chối mặt phẳng ứng cử vừa được tính tốn. Thật vậy, điều kiện lọc được sử dụng là số lượng điểm thuộc mặt phẳng được tính tốn. Sau đó, thuật tốn chấp nhận mặt phẳng mới nếu nó chứa nhiều điểm hơn so với mặt phẳng được tính tốn cuối cùng, nếu khơng mặt phẳng mới sẽ bị loại bỏ.

Sau khi thử nghiệm, ta thấy rằng điều kiện tốt nhất để xác thực phát hiện mặt phẳng có giá trị là phải tính đến khơng chỉ số lượng điểm của mặt phẳng, mà cịn đồng thời xem xét cả thơng số độ lệch chuẩn. Việc sử dụng độ lệch chuẩn làm giảm ảnh hưởng tiêu cực của ngưỡng dung sai khoảng cách t. Ngưỡng này cho phép chấp nhận toàn bộ các điểm có khoảng cách tới mặt phẳng nhỏ hơn t.

Ví dụ, chúng ta hãy lấy một mặt phẳng "xấu" không đại diện cho mặt phẳng mái, với độ lệch chuẩn lớn và chứa một số lượng lớn các điểm. Nếu áp dụng điều kiện số lượng điểm tối thiểu thì thuật tốn RANSAC sẽ khơng chấp nhận một mặt phẳng khác để thay thế nó. Để giải quyết vấn đề này, một ngưỡng mới được đưa vào thuật toán được xác định là số điểm của mặt phẳng có thể dự đốn nhỏ nhất (PN_S). Nó bằng với bề mặt mặt phẳng nhỏ nhất có thể dự đốn trước được thơng qua thông tin mật độ điểm. Như vậy, dịng lệnh thứ 11 trong thuật tốn RANSAC trở thành (1.5). Sau sửa đổi này, tỷ lệ kết quả thành công đạt được bằng việc áp dụng thuật tốn RANSAC được điều chỉnh đạt 85% (Hình 1.7).

if st < bestStd and length(s) > PN_S then (1.5)

(a) (b)

Hình 1.7. Hình ảnh của các đám mây điểm 2D phát sinh từ việc phát hiện mặt phẳng mái bằng RANSAC [25]

Chú thích: (a): Ảnh màu gốc, (b) Ảnh kết quả. Màu sắc đại diện cho các mặt phẳng mái nhà khác nhau

Việc áp dụng thuật toán RANSAC cho phép phát hiện các mặt phẳng trong ảnh thị giác. Mặt phẳng kết quả bao gồm mặt phẳng có giá trị và các điểm nhiễu thuộc về các mặt phẳng khác và có một số điểm bị mất như trong Hình 1.7b. Các điểm nhiễu này cần được loại bỏ khỏi mặt phẳng thật vừa được phát hiện và phải được gán lại cho đám mây điểm ban đầu. Những điểm bị mất phải được thêm vào mặt phẳng được phát hiện để nâng cao tính đầy đủ của phép trích xuất mặt phẳng. Đồng thời, các điểm này cũng được tách ra từ đám mây điểm ban đầu. Do đó giải thuật RANSAC áp dụng để trích xuất mặt phẳng chưa chứng minh được tính mạnh mẽ trừ phi cần thêm các giải pháp khắc phục. Ngồi ra kết quả trực quan trên chưa có chứng minh độ ổn định của thuật tốn mà cần có các số liệu đánh giá khách quan. Hơn nữa, mặc dù ảnh gốc có, nhưng khơng rõ trong ảnh gốc thực sự có bao nhiêu mặt phẳng do khơng có kết quả trích xuất mặt phẳng tham chiếu.

1.3.2.3. Phát hiện mặt phẳng sử dụng bộ phát hiện đoạn thẳng

Cơng cụ ước tính mặt phẳng mạnh mẽ dựa trên RANSAC [51] hoặc biến đổi Hough [52] đã được sử dụng rộng rãi trong nghiên cứu thị giác nổi nhưng dường như không phù hợp với trường hợp khi số lượng mặt phẳng rất nhiều. Trong [6], sự đồng nhất và định hướng cục bộ được kết hợp với RANSAC để phù hợp với các mơ hình với dữ liệu 3D dày đặc, nhưng một số ngưỡng phải được điều chỉnh để có kết quả tốt. Một trong những thách thức phải vượt qua khi sử dụng RANSAC là ban đầu nó được thiết kế để chỉ phát hiện một đối tượng trong số các ngoại lệ. Như đã chỉ ra trong [51] [52], hầu hết các phương thức đều có xu hướng thất bại trong các trường hợp xuất hiện bóng của các đối tượng.

Phương pháp phát hiện mặt phẳng sử dụng Bộ phát hiện đoạn thẳng (LSD) [7] tránh sử dụng các mơ hình phức tạp và cung cấp tìm kiếm nhanh hơn các vùng phẳng với giá trị lỗi tương tự so với các phương pháp được mô tả trong [53] và [6] kết hợp với tiêu chí quyết định của [53] như được minh họa trong Hình 1. Mục tiêu thứ hai của [7] là đưa ra ước tính tự động về độ chính xác của các điểm. Đây là ưu điểm chính của phương pháp này đối với các phương pháp RANSAC trong đó tham số độ chính xác là rất quan trọng để thu được kết quả tốt. Trong [7], các tác giả đưa ra một tiêu chí thống kê để quyết định xem một nhóm điểm có thể được coi là phẳng hay khơng. Thủ tục chia tách/hợp nhất mảnh phẳng sử dụng tiêu chí này được đề xuất để tìm các mảnh phẳng của bản đồ chênh lệch. Tuy nhiên, thủ tục này được tính tốn chun sâu cho các cảnh phẳng phức tạp.

Ảnh màu Bản đồ chênh lệch Bản đồ mặt phẳng

(a) (b) (c)

Hình 1.8. Kết quả phát hiện mặt phẳng sử dụng bộ phát hiện đoạn thẳng [7]

Chú thích: Bộ ảnh thử nghiệm lấy từ thư viện Middlebury: từ trên xuống dưới, Venus, Sawtooth, Cones, Teddy, Books.

Cột (a): hình ảnh màu. Cột (b): bản đồ chênh lệch gốc. Cột (c): phân loại mặt phẳng với mỗi cấp độ màu xám tương ứng với một mặt phẳng khác.

Bảng 1.2. Thông số đánh giá kết quả thực nghiệm [7] Ảnh Lỗi (pixel) Số lượng mặt phẳng (Nplanes ) Tỷ lệ điểm hợp lệ (%) Thời gian chạy (s) Sawtooth 0.036 3 100% 2 Venus 0.039 5 100% 2 Cones 0.187 77 93.2% 3.9 Teddy 0.189 72 93.1% 5.3 Books 0.149 63 98% 7.4

Chú thích: Cột đầu tiên: lỗi sai khác giữa phép tính gần đúng mặt phẳng so với ảnh tham chiếu tính bằng pixel. Cột thứ hai: Số lượng mặt phẳng tìm thấy. Cột thứ ba: tỷ lệ phần trăm của điểm hợp lệ. Cột thứ tư: thời gian tính tốn tínhPhương pháp nhận dạng đối tượng mặt đất

Một phần của tài liệu (LUẬN án TIẾN sĩ) nghiên cứu phát triển các thuật toán ước lượng mặt phẳng và dẫn đường cho hệ thống thị giác rô bốt trong nhà (Trang 35 - 42)

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

(137 trang)