Top Ad unit 728 × 90

Latest news

recent

Tìm chuyển động bằng phương pháp Background Subtraction

Trong bối cảnh ứng dụng là một camera tĩnh (static camera) quan sát vùng (Field of View) không thay đổi, thao tác trích xuất chuyển động (motion detection) từ video là thủ tục nền rất quan trọng trong nhiều ứng dụng phân tích video hiện nay.
Mục tiêu của xử lý này là làm sao tách bạch được đâu là vùng chuyển động (motion, foreground) đâu là nền (background) trong vùng không gian camera đang theo dõi.  Trong nhiều kỉ thuật thì Background subtraction là một nhóm các giải pháp có thể giúp giải quyết vấn đề này đang được sử dụng phổ biến. Ý tưởng chính của Background subtraction là trước tiên đi xác định mô hình background (một hình, một tập tham số, hay một công thức có khả năng mô tả background) qua từng khung hình (frame) trong chuỗi các khung hình tuần tự của video, sau đó dựa vào giá trị pixel của khung hình hiện tại mà tính toán sự khác biệt để suy ra foreground. Quá trình này có thể đơn giản được mô tả bằng hình minh họa bên dưới.

Để làm rõ hơn nhóm kỉ thuật Background subtraction, trong bài viết này Bioz sẽ trình bày vài thuật toán đơn giản như là ví dụ minh họa để người đọc có được cảm nhận trực quan về vấn đề. Sự khác biệt chính giữa các thuật toán nằm ở cách mà mô hình BG được tạo ra; phương pháp, các nhân tố được sử dụng trong quá trình tính sự khác biệt (Differencing) và xử lý Filtering được tiến hành như thế nào. Hình trên chỉ được đưa ra ở mức tổng quan nhất của Background Subtraction.

- Thuật toán đầu tiên cũng là sơ đẳng nhất có thể giúp hiểu một cách trực quan vấn đề có lẽ là thuật toán nền cố định (fixed background). Với thuật toán này Mô hình BG được sử dụng luôn cố định là một ảnh (frame) đầu vào làm giá trị khởi tạo cho thuật toán. Tại các khung hình (frame) tiếp theo, thao tác BG Differencing chỉ đơn giản là tính ra một ảnh lưu sự khác biệt của từng điểm ảnh giữa khung hình hiện tại và Mô hình BG (Diff Image). Từ đó quá trình Filtering là quá trình nhị phân hóa bằng một giá trị ngưỡng (tùy chọn) để đưa Diff Image về một hình nhị phân trong đó điểm ảnh trắng thể hiện cho foreground hay object còn điểm ảnh đen thể hiện cho nền (background). Từ kết quả đầu ra của Background Subtraction người ta tiếp tục tiến hành các thuật toán như morphology để loại nhiễu, đánh nhãn các thành phần liên kết (connected component labeling) để khoanh vùng (segmentation) các đối tượng tách bạch ra với nhau. Các thuật toán này đã được trình bày trong vài bài viết khác của IEEV.org. Dưới đây là sơ đồ thuật toán:

+ Khởi tạo: oBgImg = oCurImg
+ Xử lý:
                   Loop: duyệt từng frame của video 1 ... N
                   {
                         Loop: duyệt từng điểm ảnh [x, y]
                         {
                                   oDiffImg[x, y] = abs(oCurImg[x, y] - oBgImg[x, y]);
                                   if(oDiffImg[x, y] > THRESHOLD)
                                   {
                                          oMaskImg[x, y] = 255;
                                   }else{
                                          oMaskImg[x, y] = 0;
                                   }
                         }
                         ...
                   }

Còn nữa...


Binh Nguyen - Bioz
Tìm chuyển động bằng phương pháp Background Subtraction Reviewed by Bioz Nguyen on 2:30:00 PM Rating: 5

8 comments:

  1. Anh ơi, sao anh chưa viết thêm ạ. Hiện em đã làm được cơ bản của background subtract để tìm ra vị trí của đầu ngón tay khi chuyển động. Nhưng đơn giản lắm. Hy vọng anh viết tiếp để em hiểu sâu hơn.

    ReplyDelete
  2. Bạn tham khảo thêm bài viết này cũng hữu ích.
    http://uuu.enseirb.fr/~megret/Enseignement/Projet_E2_S4/Archives/Videosurveillance/papers/mcivor%20-%20Background%20Subtraction%20Techniques%20--%20ivcnz00.pdf

    ReplyDelete
  3. Đây là một trong những nhóm thuật toán xác định đối tượng chuyển động được dùng khá nhiều. Nhưng vấn đề ở đây là làm sao xác định được BG thích nghi với frame hiện tại (không fix BG).

    ReplyDelete
  4. Trong bài viết này, tôi sẽ trình bày từ từ lên dần các thuật tóan đại loại như link bạn chia sẻ. Vấn đề của motion detection không chỉ là chuyện thích nghi, mà còn là sự ứng xử của thuật tóan với các loại nhiễu, biến động ánh sáng, bóng, chuyển động không trông đợi,... sự cân bằng giữa khả năng xử lý, tốc độ, trường hợp ứng dụng sẽ tạo ra tính khả dụng của thuật tóan. Tôi kì vọng sẽ có một bài viết hòan chỉnh, giúp người đọc có cái nhìn tốt nhất, cụ thể nhất, ứng dụng nhất về vấn đề này ... bài viết sẽ còn tiếp tục được cập nhật. Cảm ơn bạn đã chia sẻ.

    ReplyDelete
  5. Em đang muốn tìm hiểu cái này các Anh có thể viết 1 bài tổng quan và chỉ cho Em các tài liệu hay cần đọc để hiểu và phát triển nó không ạ

    ReplyDelete
  6. Hi all,
    Minh co mot vai bai bao ve motion detection using genetic programming. Cac ban co the dung cum tu khoa tren de search hoac email minh se goi den ban: nmluan.ctu@gmail.com
    Cheers

    ReplyDelete
  7. sao bạn không share link luôn cho tiện.

    ReplyDelete
  8. Đang mong chờ các bài báo tiếp theo cho chủ đề background subtraction. Bioz có thể tiếp tục chia sẻ?. Thanks

    ReplyDelete

chia sẻ cho chúng tôi ý tưởng hay khó khăn của bạn ...

All Rights Reserved by IEEV © 2009 - 2016
Powered By Blogger, Designed by Sweetheme

Contact Form

Name

Email *

Message *

Powered by Blogger.