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 />
iV i , jE<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 />
iV i , jE<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 />
sE ( 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 />
sE ( 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 />
iN ( 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 />
iV i , jE<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 />