Đăng ký Đăng nhập
Trang chủ Kỹ thuật - Công nghệ Tự động hóa 95109904 một phương phap sử dụng bộ lọc kalman kết hợp với thuật toan bam ảnh ca...

Tài liệu 95109904 một phương phap sử dụng bộ lọc kalman kết hợp với thuật toan bam ảnh camshift nhằm nang cao chất lượng bam trong cac hệ thống robot tự động tim kiếm v

.PDF
6
495
74

Mô tả:

Một phương pháp sử dụng bộ lọc Kalman
Hội nghị toàn quốc về Điều khiển và Tự động hoá - VCCA-2011 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 A Method using Kalman Filter combining with Image Tracking Camshift Algorithm to bring higher tracking Quality in automatically searching and tracking target Robot System Ngô Mạnh Tiến Viện Vật Lý, Viện KH&CN Việt Nam Email: [email protected] Phan Xuân Minh Đại Học Bách Khoa Hà Nội Email : [email protected] Hà Thị Kim Duyên Đại Học Công Nghiệp Hà Nội Email : [email protected] 1. Mở Đầu Tóm tắt: Nhận biết chính xác mục tiêu là một vấn đề rất quan trọng trong bài toán điều khiển Robot bám đối tượng chuyển động. Bài báo đề xuất một phương pháp mới nhằm đảm bảo phát hiện chính xác mục tiêu trong môi trường có nhiễu tác động. Phương pháp đề xuất là sự kết hợp giữa bộ lọc Kalman và thuật toán bám ảnh Camshift. Các kết quả thực nghiệm cho thấy chất lượng bám của phương pháp đề xuất tốt hơn khi sử dụng đơn thuần thuật toán bám ảnh Camshifft. Abstract: To find exactly object is very important in the control problem of automatic image tracking Robot for moving object. The paper presents a new method to guarantee searching the object exactly in random invironment. the proposed method is the compiling beetween Kalman filter and image tracking Camshift algorithm. The experimental results show the tracking quality of the system is better than using only the image tracking Camshift algorithm. Môc tiªu Đơn vị pixel Ý nghĩa tọa độ điểm ảnh Moment bậc i,j Cảm biến Tâm của khung bám Pk  R ,  P , Y rad Tầng bám ảnh Pixels góc quay Roll, Pitch, Yaw Tính toán LOS Đế pan/tilt Field of View Line of Sight Window Trạng thái mục tiêu Động cơ xe H. 2 VCCA-2011 Xác định vị trí mục tiêu Vị trí mục tiêu Dự đoán vị trí mục tiêu Chữ viết tắt FOV LOS W Cấu tạo cơ bản của một hệ bám ảnh tự động H. 1 Hệ thống tổng quan [3] bao gồm có 3 bộ phận chính H. 2: (1) bộ cảm biến hình ảnh (camera), (2) bộ chấp hành là các trục khớp quay (gimbal) và bánh xe có gắn động cơ điện 1 chiều, và (3) máy tính PC và vi điều khiển (bộ vi xử lý). Một vòng điều khiển phản hồi, được gọi là vòng bám, liên tục hiệu chỉnh bộ chấp hành để giữ trọng tâm của mục tiêu vào tâm của trường nhìn viết tắt là FOV (Field Of View) của bộ cảm biến. Bộ vi xử lý sẽ khép kín vòng này bằng cách tính toán độ lệch để điều khiển cơ cấu chấp hành. Các thành phần hoạt động theo thứ tự: (1) bộ vi xử lý định vị tín hiệu mục tiêu trong các dòng hình ảnh từ bộ cảm biến, (2) bộ vi xử lý ước lượng trạng thái mục tiêu và tạo ra các lệnh điều khiển cơ cấu chấp hành trên cơ sở các thông tin trạng thái, (3) lệnh điều khiển được áp dụng vào LOS cảm biến, (4) bộ cảm biến tạo ra một vòng video mới, và (5) quá trình được lặp lại. Keywords: Camshift, OpenCV, Kalman Tracking, ATmega128, Computer Vision. Ký hiệu Ký hiệu x,y M ij M¸y tÝnh xö lý vµ ®iÒu khiÓn Camera èng kÝnh vµ ®Õ quay 513 Tạo luật điều khiển Các đo lường khác Tầng điều khiển Sơ đồ tổng quan của hệ thống Hội nghị toàn quốc về Điều khiển và Tự động hoá - VCCA-2011 Trong bài báo này sẽ đi sâu vào phần xử lý ảnh bám bắt đối tượng cần theo dõi [1,2]. Dùng các thuật toán bám bắt ảnh để ước lượng vị trí mục tiêu, vị trí mục tiêu thường được tính trên một ảnh con nhỏ được gọi là cửa sổ mục tiêu. H. 3 mô tả cửa sổ mục tiêu thường bao quanh mục tiêu. Khi đã xác định cửa sổ mục tiêu ta sẽ chỉ xử lý một phần của trường nhìn nằm bên trong cửa sổ này, khi đó các ảnh hưởng của nhiễu loạn và ồn trong quá trình bám là bị triệt tiêu lớn, làm cho hệ thống bám ổn định hơn. Tận dụng ảnh trong cửa sổ để ước lượng ví trị mục tiêu cũng tránh được hạn chế về số lượng cần xử lý. Như một quy tắc, cửa sổ (thường là hình chữ nhật hoặc hình vuông) nên có kích thước nhỏ nhất cần thiết để chắc chắn hoàn thành mục tiêu. 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) Chứng minh hội tụ: Giả sử trong không gian euclid có một phân bố f , ta sẽ chứng minh từng bước: 1 Chọn khung bám W có kích thước là s 2. Tâm của khung bám ở điểm Pk 3. Tính giá trị trung bình bên trong khung bám 1 (1) pˆ k (W )   p. j W jW sự thay đổi là gradien của f ( pk ) f ( pk ) pˆ k (W )  pk  f ( pk ) 4. Tâm của khung bám: Cửa sổ mục tiêu H. 3 Dãy detector và số liệu điện tử Hiệu chỉnh pixel và định dạng ảnh Đế cảm biến có khớp các-đăng Bộ điều khiển khớp các-đăng servo Lệnh khớp cácđăng Tạo luật điều khiển vòng bám H. 4 (3) pˆ k (W ) 5. Lặp lại bước 3 và bước 4 cho đến khi hội tụ hoặc f ( p) 0 do đó thuật toán Camshift là hội tụ Đối với ảnh 2D rời rạc thì vị trí tâm của khung bám được tính như sau: tìm Moment bậc không M 00   I ( x, y) (4) Cửa sổ mục tiêu Cảm biến ảnh có khớp các-đăng Các pixel Dự đoán vị trí mục tiêu x y sau đó tính moment bậc 1 cho x và y: M 00   xI ( x, y); M 01   yI ( x, y) (5) Xác định cửa mục tiêu x Ước lượng vị trí mục tiêu y x y và vị trí tâm của khung bám là: M M xc  10 ; yc  01 M 00 M 00 Tìm breaklock (6) ở đây I ( x, y) là giá trị điểm ảnh (xác suất phân bố) tại vị trí (x,y) và x, y nằm trong khung bám. Lưu đồ thuật toán Camshift: Ước lượng trạng thái mục tiêu Kiến trúc tổng thể của một vòng bám Khi đã dùng các thuật toán bám ảnh và xác định được vị trí mục tiêu, giá trị vị trí mục tiêu sẽ được gửi sang phần điều khiển đế xoay nhằm mục đích duy trì LOS hay là duy trì vị trí cửa sổ mục tiêu trên tâm màn hình chính. Các thuật toán bám đối tượng trong ảnh (Target Tracking) rất đa dạng, phải kể đến một số thuật toán như: Thuật toán KLT, Correlation-base template matching, thuật toán Meanshift, thuật toán Camshift. Trong bài báo này chúng tôi dùng thuật toán Camshift để bám đối tượng dựa trên màu sắc ảnh. kích chọn khởi tạo vị trí và kích thước khung bám thiết lập vùng tính tại tâm khung bám nhưng kích thước lớn hơn khung bám 2. Thuật toán bám ảnh Camshift Sử dụng (X,Y) là tâm của khung bám, diện tích khung là kích thước của khung bám Thuật toán Camshift [4,7,8] được phát triển trên cơ sở thuật toán Meanshift. Camshift viết tắt của “Continuously Adaptive Meanshift”. Nó bao gồm thuật toán cơ sở Meanshift với thích ứng các bước thay đổi kích cỡ của vùng. Các bước thực thi thuật toán: 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 VCCA-2011 (2) Kết quả X, Y, Z và Roll H. 5 514 ảnh HSV Tính Histogram của vùng tính toán Xác xuất phân bố mầu Tính trọng tâm đối tượng Đặt tâm khung bám vào tâm đối tượng và tính diện tích lại Hội tụ Lưu đồ thuật toán Camshift Hội nghị toàn quốc về Điều khiển và Tự động hoá - VCCA-2011 Đầu tiên là một Histogram được tạo ra, Histogram này chứa các thuộc tinh liên quan đến màu sắc và tiếp theo tâm và kích cỡ của mục tiêu được tinh toán để theo dõi mục tiêu khi hình dạng và kích cỡ của nó thay đổi. Tính xác suất phân bố mục tiêu căn cứ và Histogram nhận được. Dịch chuyển đến vị trí mới với mỗi khung hình vừa nhận được từ video. Camshift sẽ dịch chuyển đến vị trí mà nó ước lượng trên đối tượng nó mà nó tập trung nhiều điểm sáng nhất trong bức ảnh xác suất. nó tìm vị trí mới bắt đầu từ vị trí trước đó và tính toán giá trị trọng tâm vừa tìm được. Trong bài báo này chúng tôi lập trình xử lý ảnh bám bắt mục tiêu tự động trên nền Visual C 6.0 và có sử dụng thư viện OpenCV của Intel có hỗ trợ cvCamshift() để thực hiện thuật toán bám Camshift. ư c iệu ch nh k Trong phần này ta đặt đối tượng (là một chuỗi điểm được dự đoán trong trạng  thái tiên nghiệm x k ) và ta sử dụng vị trí thực của nó (đo đạc) để thực hiện việc hiệu chỉnh trạng thái bằng  cách sử dụng bộ lọc kalman tìm kiếm x k Bước 2 và 3 được thực hiện trong khi việc bám đối tượng vẫn đang tiến hành. Để minh họa những kết quả của việc dùng bộ lọc kalman trong việc bám đối tượng, chúng tôi lựa chọn cho bám theo một quả bóng và xem xét các trường hợp sau: a) Trong bài thử nghiệm này ta thực hiện bám theo một quả bóng, quả bóng sẽ di chuyển tương đương với một đường th ng tuyến tính, được miêu tả bởi hệ thống các phương trình sau: (7) x k 1  Fk 1,k x k  w k 3. Kết hợp bộ lọc Kalman với thuật toán bám ảnh Camshift  xk 1  1010   xk        yk 1   0101   yk   w k  xk 1  0010   xk         yk 1  0001   yk  yk  H k x k  vk Trong thuật toán bám đối tượng trong ảnh Camshift được giới thiệu ở phần trên có thể thấy đối tượng được bám tốt khi nền ảnh không ảnh hưởng đến đối tượng, như lẫn màu hay che khuất đối tượng. Khi đối tượng bám bị che khuất hay lẫn màu với nền ảnh, sẽ gây ra hiện tượng mất bám. Để khắc phục nhược điểm này và nâng cao chất lượng bám, bộ lọc Kalman được sử dụng [3,6,7]. Sau khi tiến hành thuật toán Camshift ta sẽ có đượng trạng thái hệ thống xk,, yk, vị trí x và y của đối tượng tại thời điểm k. Sự đánh giá được đề cập phía trên ta có thể sử dụng bộ lọc Kalman để tạo ra phương pháp giới hạn vị trí của đối tượng hiệu quả hơn, điều đó là để nói thay vì tìm kiếm đối tượng trong toàn bộ mặt ph ng ảnh ta sẽ định nghĩa một cửa sổ tìm kiếm (hay cửa sổ mục tiêu được dề cập trong phần 1) tập trung  xk     xmk  1000   yk   vk     ymk  0100   xk     yk  (8) (9) (10) x0  E[x 0 ] Khởi tạo P0  E[(x 0  E[x 0 ])(x 0  E[x 0 ]T )]  vào giá trị dự đoán x k của bộ lọc. ước lượng trạng Dữ liệu ảnh thái và phương sai Camsifht Ước lượng trạng thái mô hình chuyển động Pk  Fk ,k 1 Pk 1 FkT,k 1  Qk Kalman Vector đo lường và tín hiệu không chắc chắn H. 6 xˆk  Fk , k 1 xˆk 1 Gk  Pk H kT H k Pk H kT  Rk Sơ đồ kết hợp bộ lọc Kalman và Camshift Các bước sử dụng bộ lọc Kalman cho việc bám đối tượng là: ư c Kh i tạo k Trong bước này nó sẽ tìm kiếm đối tượng trong toàn bộ bức ảnh do chúng ta không biết vị trí trước của bức ảnh. Theo cách này ta nhận được x0. Tương tự ta có thể đánh giá một lượng dung sai lớn ban đầu (P0). ư c ự đoán k 0). Trong giai đoạn này sử dụng bộ lọc Kalman ta dự đoán vị trí tương đối của Ước lượng với hiệu chỉnh đo Pk  ( I  Gk H k ) Pk H. 7  đối tượng, như vậy vị trí x k được coi như trung tâm tìm kiếm để tìm kiếm đối tượng. VCCA-2011 xˆ k  xˆ k  Gk (yk  H k xˆ k ) Sơ đồ tóm tắt của bộ lọc Kalman Trong H. 8 là kết quả mô phỏng cho thấy vị trí ước lượng bám rất sát với vị trí thực của đối tượng bám. 515 Hội nghị toàn quốc về Điều khiển và Tự động hoá - VCCA-2011 1   exp( 4 ( xk  1.5xk ))    xk 1   1   exp( ( yk  1.5yk ))   4  yk 1      wk  xk 1   1   exp( xk )    4  yk 1     1 exp( xk )   4  yk h(k , xk ) vk (12) (13) xk xmk H. 8 1000 yk 0100 xk ymk Kết quả dự đoán vị trí v i bộ lọc Kalman (14) vk yk b) Một lợi thế của bộ lọc Kalman cho việc bám bắt đối tượng là nó có thể ước lượng được vị trí đối tượng ngay cả khi bị che khuất nhỏ. Cách để thực hiện việc này là xem xét hai giai đoạn của bộ lọc: dự đoán và hiệu chỉnh. Có nghĩa là nếu việc giới hạn vị trí của đối tượng là không trong một chuỗi của trạng thái dự đoán của bộ lọc (trong thời điểm k), ta có thể coi rằng đối tượng bị che khuất bởi một vài đối tượng khác, do đó ta sẽ không thể dùng hiệu chỉnh đo và sẽ chỉ lấy giá trị lọc tiên nghiệm vị trí của đối tượng. H. 9 chỉ ra hoạt động của bộ lọc khi đối tượng bị che khuất. Hệ thống này được mô hình với những biểu thức tượng tự được dùng trong trường hợp a). x 0  E[x 0 ] Khởi tạo P0  E[(x 0  E[x 0 ])(x 0  E[x 0 ]T )]  x k  f(k,x k 1 ] Ước lượng trạng thái Fk 1, k  f(k,x) x H x  t x h(k,x) x Tuyến tính hóa x  t x Pk  Fk ,k 1 Pk 1 FkT,k 1  Qk Gk  Ước lượng với hiệu chỉnh đo Pk H kT H k Pk H kT  Rk xˆ k  xˆ k  Gk yk  h(k , xˆ k ) Pk  ( I  Gk H k ) Pk H. 9 ộ lọc Kalman khi bị che khuất H. 10 Sơ đồ tóm tắt của bộ lọc Kalman m rộng c) Hầu hết các qu đạo chuyển động của đối tượng là thay đổi phức tạp (thay đổi cả vân tốc và gia tốc) không thể mô hình hóa bởi các hệ thống tuyến tính, khi đó chúng ta phải dùng các phương trình phi tuyến, do đó trong những trường hợp này ta sẽ dùng bộ lọc kalman mở rộng EKF (Extended Kalman Filter). H. 11 cho thấy rõ chất lượng bám sử dụng bộ lọc Kalman mở rộng cho việc bám đối tượng với qu đạo phức tạp tốt hơn h n của bộ lọc Kalman thông thường. Với bộ lọc Kalman mở rộng được mô hình hóa sử dụng các phương trình không giới hạn chuyển động của Brownian: (11) x k 1  f (k , x k )  w k VCCA-2011 H. 11 516 iệc theo d i các chu ển động ph c tạp sử dụng bộ lọc Kalman m rộng Hội nghị toàn quốc về Điều khiển và Tự động hoá - VCCA-2011 Trong khi bộ lọc Kalman thông thường, mô hình hệ thống được sử dụng các phương trình của trường hợp a). - Phần 1: xử lý ảnh dựa vào chuỗi hình ảnh thu được từ camera để nhận dạng và tính toán vị trí của đối tượng mục tiêu. - Phần 2: là phần điều khiển, dựa vào thông số vị trí đối tượng nhận được trong mặt ph ng ảnh, tính toán tín hiệu điều khiển robot sao cho đối tượng di chuyển được duy trì ở một vị trí nhất định trên mặt ph ng ảnh và ở một khoảng cách nhất định. Các kết quả chạy thử nghiệm khi dùng đơn thuần Camshift (H. 15) và khi kết hợp thêm bộ lọc Kalman (H. 16). Có thể thấy rõ khi kết hợp thêm bộ lọc Kalman thì đã khắc phục được hiện tượng mất bám mục tiêu khi mục tiêu bị lẫn vào nền ảnh. 4. Chạy thử nghiệm hệ thống Hệ thống để chạy thử nghiệm bao gồm một đế xoay có gắn camera, một hộp điều khiển được thiết kế dựa trên vi điều khiển AVR và một máy tính trung tâm chứa phần mềm được lập trình các thuật toán bám ảnh kết hợp với bộ lọc Kalman được viết trên nền Visual C kết hợp sử dụng thư viện OpenCV của Intel. Để đáp ứng đủ yêu cầu về khả năng điều khiển cơ cấu chấp hành và vừa có khả năng xử lý, chống nhiễu tốt tôi chọn và sử dụng vi điều khiển AVR, ATmega128 vì nó có đầy đủ tính năng và có khả năng chống nhiễu tốt. Để sử dụng điều khiển các cơ cấu chấp hành và kiểm soát tốc độ và góc quay chúng tôi đã sử dụng một số linh kiện chuyên dụng điều khiển cầu động cơ đó là dòng MC của Freescale và DVR của Texas Intrument. 5. Kết luận Bài báo trình bày về một phương pháp kết hợp bộ lọc Kalman với thuật toán bám ảnh Camshift: lý thuyết, phân các trường hợp mô phỏng và chạy thử nghiệm so sánh kết quả trước khi và sau khi thêm bộ lọc Kalman. Các kết quả cho thấy khi kết hợp thêm bộ lọc Kalman chất lượng bám của hệ thống tốt hơn, khi đối tượng bị che khất hệ vẫn duy trì bám tốt. Một hạn chế của việc kết hợp thêm bộ lọc kalman vào thuật toán bám đó là khối lượng tính toán lớn hơn do đó thời gian xử lý lâu hơn, dẫn đến tốc độ bám chậm: khi không có bộ lọc Kalman tốc độ bám tầm 15÷20 frame/s, khi có bộ lọc Kalman tốc độ là 7÷10 frame/s. Tuy nhiên hạn chế này có thể khắc phục bằng cách tăng tốc độ xử ý của CPU máy tính hoặc nhúng thuật toán trên các DSP, hay FPGA chuyên dụng. Một hạn chế khác là khi đối tượng bị che khuất với thời gian đủ lâu (trên 3s), hoặc khi có đối tượng khác chuyển động cùng chiều che khuất dần cũng dẫn đến hiện tượng mất bám. Điều này cũng mở ra hướng phát triển tiếp theo là kết hợp thêm thuật toán Correlation-base template matching sẽ có thể khắc phục được hạn chế này. H. 12 Ảnh chụp hệ thống thử nghiệm Máy tính và lưu trữ Xử lý ảnh Camera frame RF RS232 Mạch VĐK ATmega128 RF RS232 Cảm biến Công tác hành trình Động cơ Driver ĐK ĐC Tài liệu tham khảo H. 13 Cấu trúc phần c ng của hệ thống [1]. Giáo trình “Nhập môn xử lý ảnh số”, ĐH Bách Khoa Hà Nội. [2]. Nguyễn Văn Ngọ, “Xử lý ảnh dịch từ qu ển Two Dimensional Signal and Image Processing của tác giả Jae S Lim ”, 2002 [3]. Nathan Funk,: A Study of the Kalman Filter applied to Visual Tracking, Project for CMPUT 652, 7- 2003 [4]. Gary Bradski and Adrian Kaehler: Learning OpenCV Computer Vision with the OpenCV Library; O’Reilly; 2008 [5]. David A. Forsyth & Jean Ponce, “Computer vision a moderm approach”, Prentic Hall PTR, 2003 [6]. Erik Cuevas, Daniel Zaldivar, Raul Rojas: Kalman filter for vision tracking, Technical Report B 05-12, 2005 [7]. JYoung Min Kim: Object Tracking in a Video Sequence, CS 229 Final Project Report, 2006 [8]. Ahmad Ali, Sikander Mirza: Object Tracking using Correlation, Kalman Filter and Fast Means Shift Algorithms, IEEE-ICET, 2008 Start Khởi tạo Tính tọa độ tâm, hướng Chụp ảnh Lấy mẫu Giao tiếp RS232,RF Histogram Điều kiện dừng Lọc nhiễu Camshift+Kalman Dừng H. 14 Lưu đồ thuật toán Cấu trúc của hệ bám gồm hai phần chính: VCCA-2011 517 Hội nghị toàn quốc về Điều khiển và Tự động hoá - VCCA-2011 H. 15 Chụp các frame chạ thực nghiệm v i thuật toán bám Camshift không có bộ lọc Kalman H. 16 Chụp các frame chạ thực nghiệm v i thuật toán bám Camshift có bộ lọc Kalman Hướng nghiên cứu chính: Điều khiển tối ưu và bền vững, điều khiển thích nghi, hệ mờ và mạng Nơron, điều khiển quá trình. Ngô Mạnh Tiến: Học Đại học Bách Khoa Hà Nội, chuyên ngành Điều khiển tự động từ năm 19962001. Bảo vệ Thạc s năm 2004 và hiện nay đang theo học Tiến s tại Đại Học Bách Khoa Hà Nội. Hiện tại công tác tại phòng Quang điện tử - Viện Vật Lý-Viện Khoa Học và Công Nghệ Việt Nam. Hướng nghiên cứu chính: Điều khiển quá trình, điều khiển thông minh và thích nghi, hệ Mờ và mạng Neuron, điều khiển Robot, Robot tự hành,hệ thống quang điện tử nhìn đêm, xử lý ảnh. Hà Thị Kim Duyên: Học Đại Học Bách khoa Hà Nội, chuyên ngành điều khiển tự động từ năm 1996-2001, Bảo vệ Thạc s tại Học Viện k Thuật quân sự 2007. Hiện công tác và giảng dạy tại Khoa Điện tử - trường Đại Học Công Nghiệp Hà Nội. Chuyên môn nghiên cứu chính: Điều khiển quá trình, Các bộ điều khiển khả trình PLC và mạng truyền thông công nghiệp, Bộ điều khiển thông minh và thích nghi, Mờ và mạng Neuron, Xử lý ảnh. Phan Xuân Minh: Nhận bằng Thạc sĩ k thuật (1976) và Tiến sĩ k thuật (1989) - chuyên nghành: Điều khiển học tại trường Ilmenau University of Technology – Ilmenau, Đức. Hiện là Phó Giáo sư, công tác và giảng dạy tại Bộ môn Điều khiển tự động – Viện Điện - Trường Đại học Bách Khoa Hà Nội. VCCA-2011 518
- Xem thêm -

Tài liệu liên quan