intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giải pháp nâng cao hiệu quả xử lý tín hiệu trong thị giác robot

Chia sẻ: ViEngland2711 ViEngland2711 | Ngày: | Loại File: PDF | Số trang:9

36
lượt xem
3
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài viết trình bày việc đề xuất một phương pháp cải tiến thuật toán BP (Belief Propagation) để xác định bản đồ sai lệch của ảnh camera kép (Stereo camera) có mật độ dầy đặc ứng dụng cho thị giác robot.

Chủ đề:
Lưu

Nội dung Text: Giải pháp nâng cao hiệu quả xử lý tín hiệu trong thị giác robot

Nghiên cứu khoa học công nghệ<br /> <br /> GIẢI PHÁP NÂNG CAO HIỆU QUẢ XỬ LÝ TÍN HIỆU<br /> TRONG THỊ GIÁC ROBOT<br /> Đoàn Văn Tuấn1,*, Bùi Trung Thành2, Hà Hữu Huy1<br /> Tóm tắt: Bài báo này chúng tôi đề xuất một phương pháp cải tiến thuật toán BP<br /> (Belief Propagation) để xác định bản đồ sai lệch của ảnh camera kép (Stereo<br /> camera) có mật độ dầy đặc ứng dụng cho thị giác robot. BP là thuật toán suy diễn<br /> dựa trên mô hình trường ngẫu nhiên Markov có độ tin cậy cao, tuy nhiên, độ phức<br /> tạp và yêu cầu bộ nhớ lớn. BP thực hiện lan truyền tin cậy theo vòng lặp, số lượng<br /> vòng lặp phụ thuộc vào các mức sai lệch của ảnh camera kép. Trong phương pháp<br /> đề xuất, chúng tôi thực hiện lựa chọn số mức sai lệch cố định và sau mỗi vòng lặp<br /> mức sai lệch sẽ thực hiện chia thô tới mịn mức 2. Phương pháp đề xuất tên là<br /> CFCSBP (Coarse to Fine Constant Space Belief Propagation) đã nâng cao hiệu<br /> quả thực hiện bản đồ sai lệch so với thuật toán BP. Hiệu quả được thể hiện qua<br /> hiệu năng thực hiện đã tăng nhanh 2,3 lần và yêu cầu bộ nhớ giảm 22 lần so với<br /> thuật toán BP khi thực hiện trên GPU GTX 750Ti dùng CUDA.<br /> Từ khóa: Bản đồ sai lệch, Thị giác robot, Lan truyền tin cậy với không gian cố định, Biến đổi kiểm kê, Camera kép.<br /> <br /> 1. MỞ ĐẦU<br /> Thị giác robot (Robot Vision) đóng vai trò quan trọng trong công nghiệp 4.0 [1]. Từ<br /> thông tin bản đồ sai lệch, robot xác định được ảnh 3D và bản đồ độ sâu của vật. Trong<br /> công nghiệp 4.0, robot dần thay thế sức lao động của con người, do vậy, con người mong<br /> muốn tạo hệ thị giác robot như hệ thị giác con người thông qua hệ camera kép (Stereo<br /> Camera) [2]. Một thách thức khó khăn cho thị giác robot là độ phân giải ảnh ngày càng<br /> tăng, tốc độ xử lý nhanh và yêu cầu bộ nhớ thấp. Các thuật toán SIFT [3] và SURF [4] dựa<br /> theo mật độ thưa (Sparse) số lượng điểm khớp khoảng 30% của ảnh camera kép có tốc độ<br /> thực hiện nhanh và yêu cầu bộ nhớ thấp tuy nhiên độ tin cậy thấp. Các thuật toán thực hiện<br /> bản đồ sai lệch của camera kép có mật độ phân theo đoạn (Segmentation) [5] thường cân<br /> bằng giữa độ tin cậy, hiệu năng thực hiện và yêu cầu bộ nhớ. Để đáp ứng được độ tin cậy<br /> cao, thuật toán thực hiện trên camera kép có mật độ dầy đặc (Dense) như thuật toán SAD<br /> [6], CT [7], và BP [8]. Các thuật toán này có độ tin cậy cao nhưng chưa đáp ứng về hiệu<br /> năng cũng như yêu cầu về bộ nhớ.<br /> Thuật toán BP (Belief Propagation) thực hiện dựa trên các vòng lặp và cho độ tin cậy<br /> cao nhưng có nhược điểm là độ phức tạp của tính toán cao và yêu cầu bộ nhớ lớn. Để khắc<br /> phục nhược điểm này, các thuật toán BP cải tiến được thực hiện song song trên nền hệ<br /> thống nhúng GPU [9] hay FPGA [10] và giảm độ phức tạp tính toán và yêu cầu bộ nhớ.<br /> Đã có nhiều thuật toán BP cải tiến đề xuất đều thực hiện trên cấu trúc ảnh dạng lưới với 4<br /> kết nối cho một điểm ảnh. Tác giả Sun [8] đã biểu diễn BP dùng suy diễn MAP (Maximum<br /> a Posterior) với độ phức tạp tính toán O(L2), trong đó, L là véc tơ độ sâu của ảnh. Tác giả<br /> Felzenszwalb [11] đã dùng phương pháp tối ưu năng lượng chi phí theo tích chập tối thiểu<br /> đã giảm thời gian tính toán từ O(L2) xuống O(L) và thực hiện chia thô tới mịn (Coarse to<br /> Fine) điều này đã giảm được số vòng lặp và bộ nhớ yêu cầu tuy nhiên phải trả giá cho độ<br /> chính xác. Tác giả Li Zhang [12] đề xuất bổ xung tham số MRF cho hàm chi phí, điều đó<br /> làm giảm không gian tìm kiếm do đó cũng nâng cao được tốc độ. Tác giả Yu-Cheng Tseng<br /> [13] đã đề xuất một giải pháp nhằm giảm bộ nhớ bằng cách chia ảnh thành các khối độc<br /> lập và thực hiện BP riêng từng khối, phương pháp này có ưu điểm là thực hiện nhanh<br /> nhưng độ tin cậy giảm. Để khắc phục nhược điểm này tác giả Chia [14] đã đề xuất như<br /> mỗi khối sẽ được lưu trữ các thông tin của các điểm đường bao của khối do vậy nó cần bổ<br /> xung bộ nhớ cho các thông tin đường bao. Để giảm yêu cầu bộ nhớ cho thông tin đường<br /> <br /> <br /> Tạp chí Nghiên cứu KH&CN quân sự, Số 53, 02 - 2018 19<br /> Kỹ thuật điều khiển & Điện tử<br /> <br /> bao, tác giả Chao [15] đã đề xuất là tái sử dụng thông tin đường bao nhưng độ phức tạp<br /> của tính toán tăng lên. Tác giả Yang [16] đề xuất giải pháp giảm bộ nhớ 12% so với BP<br /> bằng cách cố định không gian sai lệch.<br /> Trong bài báo này, chúng tôi đề xuất một giải pháp cải tiến thuật toán BP, với phương<br /> pháp lựa chọn cố định các mức sai lệch để thực hiện lặp lan truyền tin cậy thông tin. Sau<br /> mỗi vòng lặp sẽ thực hiện chia thô tới mịn mức 2. Với phương pháp đề xuất thực hiện bản<br /> đồ sai lệch ảnh camera kép có mật độ dầy đặc sẽ tăng được hiệu năng thực hiện và giảm<br /> được yêu cầu về bộ nhớ tuy nhiên độ tin cậy sẽ bị trả giá so với thuật toán BP tiêu chuẩn.<br /> Phần còn lại của bài báo được tổ chức như sau: phần 2 trình bày cơ sở toán học cho<br /> thuật toán đề xuất CFCSBP. Kết quả thực nghiệm và thảo luận đưa ra trong phần 3; Kết<br /> luận được cho trong phần 4.<br /> 2. CƠ SỞ TOÁN HỌC ĐỀ XUẤT THUẬT TOÁN CFCSBP<br /> 2.1. Thuật toán BP<br /> Thuật toán BP là thuật toán suy diễn lặp gần đúng dựa trên mô hình trường ngẫu nhiên<br /> Markov, lan truyền độ tin cậy giữa các nút bằng thông điệp [8]. Đây là thuật toán toàn cục,<br /> có ưu điểm là độ tin cậy cao nhưng độ phức tạp tính toán và yêu cầu bộ nhớ lớn. Bảng 1<br /> liệt kê một số kí hiệu được sử dụng trong bài báo này.<br /> Bảng 1. Các kí hiệu và định nghĩa của nó.<br /> Kí hiệu Định nghĩa<br /> i,j Biểu diễn nút thứ i và nút lân cận i.<br /> X,Xi Biến ngẫu nhiên liên kết x và biến ngẫu nhiên của nút i.<br /> xi Sự chuẩn hóa của Xi và Xi là không gian trạng thái của xi (xiϵ Xi)<br /> xiL,xiR Cường độ sáng điểm ảnh i của ảnh trái và ảnh phải.<br /> x Sự chuẩn hóa các giá trị mô hình đồ thị trong không gian X<br /> E(x) Giá trị năng lượng.<br /> D(xi) Giá trị năng lượng cho nút i<br /> W( xi , x j ) Giá trị năng lượng giữa nút i và nút j lân cận<br /> V ( xi  x j ) Giá trị năng lượng sai lệch giữa nút i và nút j lân cận<br /> <br /> mit j ( x j ) Thông điệp chuyển từ nút i sang nút lân cận j.<br /> <br /> bj ( x j ) Độ tin cậy nút j<br /> c Tỉ lệ tăng của hàm nhẵn<br /> d Ngưỡng dừng tăng của hàm nhẵn<br /> k,k’ Số mức sai lệch và số mức sai lệch được lựa chọn<br /> E(i)\j Tập các nút i ngoài trừ nút j.<br /> dC(x,y) Bản đồ sai lệch thực hiện<br /> dT(x,y) Bản đồ sai lệch mẫu<br /> Xét mô hình trường ngẫu nhiên Markov<br /> (Markov Random Filed: MRF) như hình 1. Từ [11]<br /> và bảng 1, năng lượng chi phí được xác định là<br /> E ( x)   D( xi )   W( xi , x j ) (1)<br /> iV i , jE<br /> Trong thị giác robot, các nút là các nhãn được<br /> gán cho sự sai lệch cường độ sáng của điểm ảnh<br /> tương đồng trên ảnh camera kép. Giá trị năng lượng Hình 1. Mô hình MRF.<br /> <br /> <br /> 20 Đ. V. Tuấn, B. T. Thành, H. H. Huy, “Giải pháp nâng cao hiệu quả … thị giác robot.”<br /> Nghiên cứu khoa học công nghệ<br /> <br /> của nút đến các nút lân cận dựa trên sự khác nhau giữa các nút. Do vậy, giá trị năng lượng<br /> được xác định là:<br /> W( xi , x j )  V ( xi  x j ) (2)<br /> E ( x)   D( xi )   V (x  x ) i j (3)<br /> iV i , jE<br /> Thuật toán BP dựa trên phương pháp lặp, với sự lan truyền thông điệp tin cậy qua các<br /> nút. Mỗi thông điệp là một véc tơ của kích thước được cho bởi số lượng các nút có thể có, k.<br /> Thông điệp cập nhật tại vòng lặp t được xác định là:<br /> mit j ( x j )  min(V ( xi  x j )  Di ( xi ) <br /> xi<br /> <br /> sE ( i )\ j<br /> mst 1i ( xi )) (4)<br /> <br /> Thông thường, giá trị năng lượng chi phí nhẵn được xác định theo mô hình tuyến tính.<br /> V ( xi  x j )  min(c xi  x j , d ) (5)<br /> Khi đó, thông điệp cập nhật được xác định:<br /> mit j ( x j )  min(min(c xi  x j , d )  Di ( xi ) <br /> xi<br /> <br /> sE ( i )\ j<br /> mst 1i ( xi )) (6)<br /> <br /> Sau T vòng lặp thì véc tơ độ tin cậy của mỗi nút được xác định là:<br /> bj ( x j )  Dj ( x j )  m<br /> iN ( j )<br /> T<br /> i j (x j ) (7)<br /> <br /> *<br /> Nút x j được lựa chọn và xác định theo công thức:<br /> <br /> x*j  arg min b j ( x j ) (8)<br /> Giá trị năng lượng được xác định:<br /> E ( x)   xiL  xiR   min(c xi  x j , d ) (9)<br /> iV i , jE<br /> 2.2. Mô tả thuật toán đề xuất<br /> <br /> <br /> <br /> <br /> Hình 2. Chia thô tới mịn mức 2. Hình 3. Sơ đồ thông điệp lan truyền.<br /> Thuật toán BP yêu cầu bộ nhớ lớn do vậy chiếm dụng nhiều tài nguyên bộ nhớ của thị<br /> giác robot. Để giảm yêu cầu về bộ nhớ, chúng tôi đề xuất, lựa chọn cố định k’ các mức sai<br /> lệch để thực hiện lặp lan truyền thông điệp. Sau khi thực hiện xong k” mức sai lệch, chúng<br /> tôi thực hiện chia thô tới mịn mức 2 như hình 2, quá trình này số lượng điểm ảnh giảm đi 4<br /> lần và thực hiện k” vòng lặp tiếp theo. Tại mỗi vòng lặp, các thông điệp được thực hiện<br /> đồng thời với cấu trúc xử lý song song như hình 3. Khi chia thô tới mịn mức 2 thì giá trị<br /> năng lượng chi phí cho mỗi mức chia được tính theo công thức (10). Số lượng mức sai<br /> lệch được lựa chọn k’ = 100 mức (ảnh kiểm thử có mức sai lệch k = 300) và k” = 10 (ảnh<br /> <br /> <br /> Tạp chí Nghiên cứu KH&CN quân sự, Số 53, 02 - 2018 21<br /> Kỹ thuật điều khiển & Điện tử<br /> <br /> kiểm thử có kích thước 620 x555), có nghĩa là khi mức sai lệch của ảnh camera kép tăng<br /> lên thì hiệu năng thực hiện và yêu cầu về bộ nhớ không đổi.<br /> E ( x)   D( x )<br /> i[1,4]<br /> *<br /> i (10)<br /> <br /> 2.3. Chương trình đề xuất<br /> Đầu vào: Ảnh camera kép #1 ((620x555), k=300, k’ = 100, k”=10, i)<br /> Đầu ra: Bản đồ sai lệch.<br /> Các bước thực hiện:<br /> 1. Lựa chọn k’ mức sai lệch tương ứng với k’ vòng lặp.<br /> 2. For (i = 0, i ≤ k”, i++)<br /> 3. Tại mỗi mức sai lệch được chọn sẽ thực hiện:<br /> 4. Đặt các thông điệp ban đầu bằng 0.<br /> 5. Cập nhật thông điệp lan truyền tin cậy xuất phát từ nút có tọa độ (0,0) theo<br /> công thức (6).<br /> 6. Tính toán độ tin cậy của nút theo công thức (7).<br /> *<br /> 7. Nút x j được lựa chọn và xác định theo công thức (8).<br /> 8. Tính giá trị năng lượng chi phí theo công thức (9).<br /> 9. Tính tổng năng lượng của k” mức sai lệch.<br /> 10. Thực hiện chia thô tới mịn mức 2 như hình 2.<br /> 11. Tính năng lượng chi phí cho mỗi mức chia theo công thức (10)<br /> 12. Lặp lại bước 2<br /> 13. Tính tổng năng lượng chi phí của k’ mức sai lệch.<br /> <br /> 3. KẾT QUẢ THỰC NGHIỆM MÔ PHỎNG VÀ THẢO LUẬN<br /> 3.1. Dữ liệu thực nghiệm<br /> Hệ thống thực nghiệm với cấu hình PC được mô tả trong bảng 2 và ảnh camera kép<br /> trong tập dữ liệu kiểm thử [17] được mô tả trong bảng 3.<br /> Bảng 2. Mô tả cấu hình PC Destop.<br /> Phần cứng Phần mềm<br /> CPU RAM Card màn hình Hệ điều hành Phần mềm ứng dụng<br /> Intel 8GB Geforce GTX750 Ti Window 8.1 QT Creator 5.8<br /> core i7 Bộ nhớ trong: 2GB 64 bít OpenCV 3.0<br /> Core: 460 nhân Visual Studio 2013<br /> BUS: 128 bít CUDA<br /> 3.2. Chỉ số đánh giá độ tin cậy RMSE<br /> Để đánh giá độ tin cậy của kết quả thực nghiệm, chúng tôi sử dụng tham số RMSE<br /> (Root Mean Squared Error: Sai số toàn phương trung bình) theo công thức (11). Tham số<br /> RMSE càng nhỏ càng tốt, điều đó chứng tỏ kết quả bản đồ sai lệch thực hiện được càng<br /> gần với bản đồ sai lệch mẫu.<br /> 1<br /> 1<br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2