Điều khiển camera bám mục tiêu di động
Bạn đang xem tài liệu "Điều khiển camera bám mục tiêu di động", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
dieu_khien_camera_bam_muc_tieu_di_dong.pdf
Nội dung text: Điều khiển camera bám mục tiêu di động
- ĐIỀU KHIỂN CAMERA BÁM MỤC TIÊU DI ĐỘNG TS.Nguyễn Thị Lưỡng – ĐH Sư phạm Kỹ thuật Tp Hồ Chí Minh Nguyễn Anh Tuấn – Trường Sĩ quan Kỹ thuật quân sự Tóm tắt: Bài báo sử dụng các hình dạng đặc trưng về màu sắc, đặc trưng về biên, cạnh trên cơ sở thuật toán Hough và thuật toán Camshift kết hợp bộ lọc Kalman được tích hợp trong thư viện mã nguồn mở OpenCV phiên bản 2.4.11 để điều khiển hệ thống camera bám theo đối tượng di chuyển. Hệ thống bao gồm cơ cấu pan-tilt hai bậc tự do mang camera, board điều khiển hai động cơ sử dụng vi điều khiển Arduino Mega 2560 để điều khiển 2 động cơ theo thuật toán PID và máy tính có tích hợp sẵn thư viện OpenCV. Kết quả thử nghiệm cho thấy hệ thống bám tốt trong điều kiện môi trường ánh sáng tốt, có giới hạn nhiễu, đối tượng dịch chuyển với tốc độ tối đa 5m/s khi sử dụng thuật toán Camshift kết hợp với bộ lọc Kalman. 1. Đặt vấn đề: Bài toán điều khiển bám mục tiêu là một trong những bài toán phổ biến nhất trong lĩnh vực điều khiển. Dựa vào những yêu cầu về tính ổn định và chất lượng điều khiển của hệ thống, ta có nhiều phương pháp giải quyết khác nhau. Hiện nay, để điều khiển bám một đối tượng dịch chuyển có chất lượng tốt, nhiều tác giả đã ứng dụng công nghệ xử lý ảnh trên nền tảng sử dụng camera để bám đối tượng. Đối tượng bám ở đây rất đa dạng: có thể là người, xe, bóng, tùy theo yêu cầu thực tế. Vì vậy, bài toán đầu tiên trong hệ thống điều khiển bám đối tượng dịch chuyển dùng camera là phải nhận dạng được đối tượng dịch chuyển trên cơ sở các frame ảnh phản hồi từ camera, sau đó sử dụng các giải thuật xử lý ảnh. Giải thuật xử lý bám đối tượng trên nền các frame ảnh thu được đưa ra tọa độ, vận tốc dịch chuyển, hướng dịch chuyển hiện thời của đối tượng trên nền ảnh và cuối cùng là áp dụng các giải thuật điều khiển động cơ để điều khiển cơ cấu mang camera bám theo đối tượng thực. Trong thực tế, đã có rất nhiều tác giả trong và ngoài nước nghiên cứu chế tạo các mô hình điều khiển hệ thống mang camera bám theo đối tượng dịch chuyển. Ví dụ như: hệ robot xe – camera, cánh tay máy mang camera, nòng súng mang camera, hệ pan – tilt camera, có thể xoay nhiều hướng. Trong số các mô hình này, hệ pan-tilt camera là một trong những mô hình cơ bản nhất, mục tiêu của mô hình này là điều khiển hai động cơ bước hoặc động cơ DC servo để đảm bảo tầm và hướng quan sát của camera nhằm theo dõi và bám theo đối tượng di chuyển. Hình dưới đây mô tả sơ đồ tổng quát của hệ pan-tilt camera theo dõi và bám theo đối tượng di chuyển.
- Việc xây dựng hệ thống điều khiển bám mục tiêu di động sử dụng thị giác máy tính không chỉ là nền tảng cho các nghiên cứu sau này, mà còn có thể ứng dụng cụ thể trong ngành điều khiển robot bám mục tiêu theo những quỹ đạo mong muốn để thực hiện một số nhiệm vụ cụ thể, hoặc có thể ứng dụng trong lĩnh vực quốc phòng như xây dựng hệ thống ngắm bắn tự động bám mục tiêu trên các loại pháo phòng không 2. Nội dung nghiên cứu a. Mô hình hệ camera bám mục tiêu di động Hệ thống bao gồm một cánh tay 2 bậc tự do mang camera để camera có thể quay theo hai hướng palt và tilt (hình 1). Cấu trúc hệ điều khiển bám gồm hai thành phần chính: Phần thứ nhất là phần xử lý ảnh, dựa vào chuỗi ảnh liên tiếp nhận được từ camera để nhận dạng và tính toán vị trí của đối tượng quan tâm; Phần thứ hai là phần điều khiển, dựa vào thông tin của đối tượng trong mặt phẳng ảnh, tính toán tín hiệu điều khiển cánh tay 2 bậc sao cho ảnh của đối tượng nằm ở chính giữa mặt phẳng ảnh. Hình 1: Mô hình điều khiển khiển camera bám mục tiêu di động b. Mô hình hóa hệ thống Hình 2: Tọa độ đối tượng trên frame ảnh
- Giả sử camera đọc được mỗi frame ảnh về đối tượng di chuyển với tọa độ như hình 2. Mục tiêu của hệ thống là nhận dạng được đối tượng, tính toán xác định tọa độ trên mặt phẳng ảnh của đối tượng, độ lệch vị trí theo các phương, vận tốc di chuyển của đối tượng. Điều khiển cơ cấu pan-tilt sao cho tọa độ trọng tâm của đối tượng trên mặt phẳng ảnh trùng với tọa độ tâm của bức ảnh. Cơ cấu pan-tilt được mô hình như sau: - là góc quay của động cơ pan (góc quay tầm). - là góc quay của động cơ tilt (góc quay hướng). - d1 là chiều dài của trục động cơ pan. - d2 là chiều dài của trục động cơ tilt *) Mô hình xấp xỉ hình học: OXYZ là hệ toạ độ thực của hệ camera pan-tilt và OcXcYcZc là hệ toạ độ gắn với camera. P(X, Y, Z) là toạ độ của đối tượng trên hệ toạ độ thực, toạ độ của P chiếu lên mặt phẳng ảnh là (xp, yp). Thực hiện phép chiếu quay quanh trục OZ như hình sau: Hình 3: Mô hình hóa hệ pan tilt 푌 푌 − Ta có tan(휙) = ; tan(훼) = = = 푃 푍 − 1 휆 trong đó X và Y thể hiện vị trí của tâm mục tiêu trong hệ tọa độ thực, d1 là khoảng cách từ trục OY đến trục OcXc , λ là tiêu cự camera. *) Mô hình động học của hệ palt – tilt mang camera Để tìm mô tả quan hệ giữa xp và yp đối với và θ, đầu tiên ta tìm ma trận chuyển O đổi đồng nhất R Oc của hai phép quay camera xung quanh O một góc và θ. Hệ toạ độ quy chiếu của hệ pan-tilt được xác định theo quy tắc David – Hetenberg. Ma trận chuyển từ hệ toạ độ O’X’Y’Z’ về hệ toạ độ OXYZ:
- cos(ϕ) 0 sin (ϕ) 0 sin(ϕ) 0 -cos(ϕ) 0 푅 ′ = (1) 0 1 0 0 0 0 0 1 Ma trận chuyển từ hệ toạ độ OcXYZ về hệ toạ độ O’X’Y’Z’ khi quay quanh O’Z’ góc θ: cos(θ) -sin (θ) 0 0 sin(θ) cos(θ) 0 0 ′ 푅 = (2) 0 0 1 0 0 0 0 1 Ma trận đồng nhất khi chuyển từ hệ toạ độ camera Oc về hệ toạ độ thực O là: ′ ′ 푅 = 푅 푅 (3) cos(ϕ)cos(θ) sin(ϕ)cos(θ) sin(ϕ) 0 - c os( ϕ )sin(θ) - sin( ϕ )sin(θ) cos(θ) 0 (4) 푅 = s in( ϕ ) - cos(θ) 0 0 0 0 0 1 Điểm P(X, Y, Z) sẽ được chiếu lên tâm của mặt phẳng ảnh IP sau khi thực hiện phép quay và θ. Do đó, ma trận đồng nhất 푅 có thể được viết lại như sau: c cos(ϕ)cos(θ) sin(ϕ)cos(θ) sin(ϕ) 0 X 0 -cos(ϕ)sin(θ) -sin(ϕ)sin(θ) cos(θ) 0 Y (5) 0 = sin(ϕ) -cos(θ) 0 0 Z 1 0 0 0 1 1
- Trong đó, (c, 0, 0, 1) và (X, Y, Z, 1) là tọa độ đồng nhất của điểm P khi nhìn trong hệ toạ độ Oc và hệ toạ độ O tương ứng. Giải phương trình (5), ta có: 푌 푍 휙 = arctan ( ) và 휃 = arctan ( cos (휙)) (6) 푌 Từ biểu thức xấp xỉ hình học, ta suy ra được: 휙 = arctan ( ) và 휃 = arctan ( cos (휙)) (7) 휆 휆 c. Thuật toán xử lý ảnh và bám đối tượng Thuật toán bao gồm bước tiền xử lý ảnh: thu nhận ảnh từ camera, tách nền, lọc nhiễu, dò cạnh biên, thuật toán bám đối tượng camshift kết hợp với bộ lọc nhiễu dự báo Kalman. Việc tách nền được thực hiện bằng phương pháp phân ngưỡng Thresholding. Đề tài sử dụng bộ lọc Gaussian Blur để lọc nhiễu và phương pháp Canny để dò biên. Camera Tính tọa độ tâm vật Thu nhận ảnh thể, tốc độ di chuyển Tách nền Camshift+Kalman Lọc nhiễu Dò cạnh biên Hình 4. Giải thuật bám đối tượng *) Thuật toán Camshift [3] Camshift viết gọn của “Continuously Adaptive Mean Shift” là cơ sở của thuật toán theo dõi khuôn mặt trong OpenCV. Nó bao gồm thuật toán cơ sở Mean Shift với thích ứng các bước thay đổi kích cỡ của vùng. Các bước tiến hành thuật toán Camshift: 1. Kích chọn kích thước khung bám. 2. Chọn vị trí khởi tạo của khung bám (cửa sổ bám).
- 3. Tính giá trị trung bình bên trong khung bám. 4. Đặt tâm khung bám ở vị trí trung bình đã tính trong bước 3. 5. Lặp lại bước 3 và bước 4 cho đến khi hội tụ (hoặc cho đến khi độ dịch chuyển vị trí tâm nhỏ hơn một ngưỡng đặt trước). Kích chọn khởi tạo vị trí và kích thước khung bám Ảnh HSV Thiết lập vùng tính toán Tính Histogram tại tâm khung bám nhưng của vùng tính toán kích thước lớn hơn khung bám Xác suất phân bố màu Sử dụng (X, Y) là tâm Tính trọng tâm của khung bám, diện tích đối tượng khung là kích thước của khung bám Đặt tâm khung bám vào tâm đối tượng và tính diện tích Kết quả X, Y, Z và N Hội tụ Roll Y Hình 5. Lưu đồ thuật toán Camshift *) Bộ lọc Kalman Theo như mô hình của ước lượng dùng bộ lọc Kalman, trước tiên, mô hình hệ thống sẽ cho ta một giá trị gọi là ước lượng tiên nghiệm (ước lượng chưa qua bộ lọc Kalman). Nó được tính bằng phương trình: xkk Ф x 1 wk 1 trong đó: xk : giá trị tiên nghiệm tại bước k xk 1 : giá trị hậu nghiệm của bước k-1 (giá trị đã tối ưu của bước trước) wk-1: nhiễu hệ thống tại bước k-1
- Một chú ý quan trọng: Tất cả các nhiễu trong bộ lọc Kalman đều được giả định là tuân theo phân phối chuẩn (Gauss). Sau đó, giá trị tiên nghiệm xk(−) sẽ “đi qua” bộ lọc Kalman để kết hợp với giá trị đo (zk) tạo ra một ước lượng tối ưu. Có thể tóm tắt quá trình làm việc của lọc Kalman như sau: Hình 6. Tóm tắt quá trình làm việc của lọc Kalman Tính tiên nghiệm (từ hậu nghiệm bước trước) “Lọc” Hậu nghiệm (ước lượng tối ưu). 3. Kết quả thực nghiệm a. Điều khiển bám theo đối tượng hình tròn màu hồng sử dụng thuật toán Hough Hệ thống bám tốt đối tượng trong khoảng cách tối đa 3m, trong điều khiển ánh sáng tốt, vận tốc di chuyển đối tượng 3m/s. Các trường hợp mất bám xảy ra do vật thể dịch chuyển nhanh, tốc độ đọc ảnh của camera không đáp ứng kịp, hệ thống xử lý ảnh bằng máy tính cấu hình không phải chuyên dùng cho xử lý ảnh (hình 7).
- Hình 7. Kết quả thực nghiệm nhận dạng và bám theo đối tượng hình tròn màu hồng dựa vào thuật toán Hough b. Điều khiển bám đối tượng sử dụng thuật toán Camshift và bộ lọc Kalman Hệ thống bám tốt đối tượng dịch chuyển với khoảng cách tối đa 5m, vận tốc dịch chuyển tối khoảng 5m/s. Hệ thống mất bám khi vật thể di chuyển nhanh thoát khỏi vùng quan sát của camera (hình 8). Hình 8. Kết quả thực nghiệm với thuật toán Camshift và Kalman
- 4. Kết luận Kết quả thực nghiệm cho thấy hệ thống bám tốt khi vật thể di chuyển với vận tốc khoảng 5m/s, trong điều kiện ánh sáng tốt và ít nhiễu (nhiễu Gauss) của nền ảnh; việc ứng dụng thuật toán Camshift và bộ lọc Kalma đã nâng cao hiệu năng của hệ thống lên rất nhiều, tỷ lệ mất bám giảm đáng kể. Đặc biệt, với bộ lọc Kalma, hệ thống có thể bắt và bám lại mục tiêu sau khi đã bị mất bám trong một khoảng thời gian cho phép. Tuy nhiên do nhiều nguyên nhân đáp ứng của hệ thống còn bị trễ nhiều do hệ thống sử dụng máy tính có cấu hình tương đối tốt nhưng không có card đồ họa để hỗ trợ, tốc độ truyền nối tiếp của USB, độ phân giải camera còn thấp, Hướng khắc phục là: sử dụng board xử lý điều khiển chuyên dụng có tích hợp các thư viện mã nguồn mở xử lý ảnh hay các board mạch DSP chuyên dụng hoặc các bộ xử lý nhúng và dung camera chuyên dụng có tốc độ đọc frame ảnh cao; sử dụng các board mạch giao tiếp máy tính chuyên dụng thông qua khe cắm mở rộng PCI để đáp ứng việc xử lý tín hiệu trong thời gian thực. Tối ưu các giải thuật xử lý ảnh và điều khiển nhằm hạn chế thấp nhất thời gian trễ khi xử lý giao tiếp Tài liệu tham khảo [1] Lý Thanh Phương, “Điều khiển camera bám theo mục tiêu di động”, Luận văn Thạc sỹ, 2008. [2] Bùi Trọng Tuyên, Phạm Thượng Cát, “Về một phương pháp điều khiển hệ camera- robot bám mục tiêu sử dụng mạng nơ ron”, Kỷ yếu hội nghị Cơ điện tử toàn quốc lần thứ 2.- Tp. Hồ Chí Minh : Đại học Bách Khoa Tp. HCM, 2004.- tr. 216-221. [3] Ngô Mạnh Tiến, Phan Xuân Minh, Hà Thị Kim Duyên, “Một phương pháp sử dụng bộ lọc Kalman kết hợp với thuật toán bám ảnh Camshift nhằm nâng cao chất lượng bám trong các hệ thống robot tự động tìm kiếm và bám bắt mục tiêu”, Hội nghị toàn quốc về Điều khiển và Tự động hoá VCCA, 2001. [4] D. Comaniciu, V. Ramesh, P. Meer, “Real-Time Tracking of Non-Rigid Objects using Mean Shift”, IEEE Conf.on Comp. Vis. and Pat. Rec., Hilton Head Island, South Carolina, 2000.
- [5] K. Daniilidis, C. Krauss, M. Hansen and G. Sommer, “Real-Time Tracking of Moving Objects with an Active Camera”. Real-Time Imaging 4, 1998. [6] Kyu Bum Han, Yoon Su Back, “Visual servo tracking strategy using time varying Kalman filter estimation”, Yonsei University, Seoul, Korea,1999. [7] J.A. Piepmeier, G.V. McMuray, H.Lipkin, “Tracking moving target with Model Independent Visual Servoing: a predictive estimate Approach”, Proceeding of the 1998 IEEE, Int. Conf. On intelligent robot and system, Leuven, Begium, 1998. [8] Afef SALHI and Ameni YENGUI JAMMOUSSI ,”Object tracking system using Camshift, Meanshift and Kalman filter”, World Academy of Science, Engineering and Technology 64, 2012.
- BÀI BÁO KHOA HỌC THỰC HIỆN CÔNG BỐ THEO QUY CHẾ ĐÀO TẠO THẠC SỸ Bài báo khoa học của học viên có xác nhận và đề xuất cho đăng của Giảng viên hướng dẫn Bản tiếng Việt ©, TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH và TÁC GIẢ Bản quyền tác phẩm đã được bảo hộ bởi Luật xuất bản và Luật Sở hữu trí tuệ Việt Nam. Nghiêm cấm mọi hình thức xuất bản, sao chụp, phát tán nội dung khi chưa có sự đồng ý của tác giả và Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh. ĐỂ CÓ BÀI BÁO KHOA HỌC TỐT, CẦN CHUNG TAY BẢO VỆ TÁC QUYỀN! Thực hiện theo MTCL & KHTHMTCL Năm học 2017-2018 của Thư viện Trường Đại học Sư phạm Kỹ thuật Tp. Hồ Chí Minh.