Chương 1: Giới thiệu tổng quan về đề tài gồm: giới thiệu đề tài, mục tiêu và nội dung của đề tài, giới hạn đề tài và cấu trúc trình bày luận văn. Chương 2: Trình bày một số kiến thức nền tảng: mô hình của hệ thống giám sát thông minh , phương pháp tách các đối tượng chuyển động Temporal Median Filter, phương pháp ước tính vector chuyển động của các điểm ảnh Optical Flow. Chương 3 này cũng trình bày một số công trình nghiên cứu liên quan đến vấn đề tracking, của các nhà nghiên cứu trên thế giới hiện nay. Chương 3: Trình bày mô hình và giải thuật đề xuất của luận văn, đồng thời cũng nêu ra phương pháp thực hiện và phương pháp đánh giá kết quả luận văn.
Chương 4: Trình bày các bước hiện thực hệ thống của mô hình mà giải thuật mà luận văn đã đề xuất, và các kết quả ouput của các bước này. Chương 5: Trình bày tóm tắt kết quả đạt được, ưu và nhược điểm của mô hình luận văn, đồng thời cũng nên ra hướng nghiên cứu tiếp theo trong tương lai. Cuối cùng là phần liệt kê các tài liệu tham khảo trong quá trình nghiên cứu và hiện thực của luận văn. 4 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN 2.
Cơ sở lý thuyết Một hệ thống giám sát thông minh đầy đủ thường có 4 module chức năng sau: phát hiện chuyển động (Motion Detection), phân loại đối tượng (Object Classification), theo dõi đối tượng (Object Tracking), nhận dạng hành vi (Behavior Recognition). Trong đó Motion Detection sẽ làm module cơ sở cho tất cả các module khác kể cả module Object Tracking. Chương này sẽ trình bày về cơ sở lý thuyết và các phương pháp hiện có để hiện thực module Motion Detection và Object Tracking [1]. Phát hiện chuyển động (Motion Detection) Phát hiện chuyển động là chức năng cơ bản trong hệ thống giám sát thông minh, nó thường dùng để tách đối tượng chuyển động ra khỏi phần còn lại của ảnh.
Phát hiện chuyển động là module phải được hiện thực đầu tiên trong hệ thống, vì kết quả của nó sẽ được dùng lại để phát triển các module khác như là phân loại đối tượng, theo dõi đối tượng và nhận dạng hành vi của đối tượng. Có nhiều phương pháp để phát hiện đối tượng chuyển động đã được nghiên cứu và phát triển, từ những phương pháp đơn giản như Frame Diffrencing [1], Temporal Differencing [1] cho đến các phương pháp cao cấp khác như là Temporal Median Filter [5], Optical Flow [4] và nhóm phuơng pháp Background Subtraction [3]. Chuơng này sẽ giới thiệu sơ luợc tất cả các phương pháp trên nhưng sẽ đi sâu vào phuơng pháp Temporal Median Filter [5], phương pháp mà sẽ được sử dụng để hiện thực trong đề tài. Frame Diffrencing: Là phương pháp đơn giản nhất để phát hiện và tách đối tượng chuyển động ra khỏi ảnh nền, phương pháp này xem frame ngay trước frame hiện hành chính là ảnh nền (background), và đối tượng chuyển động (foreground) chính là kết quả trừ của frame hiện hành cho frame trước đó.
Ưu điểm của phương pháp này là đơn giản, thời gian đáp ứng nhanh, phát hiện chuyển động rất nhạy kể cả những chuyển động rất nhỏ. Nhược điểm của phương pháp này là sẽ không thể 5 tách ra chính xác được hình dạng của đối tượng chuyển động và sẽ làm xuất hiện những lỗ trống. Temporal Diffrencing: Là một phương pháp tương tự như phương pháp Frame Differencing, chỉ khác ở chỗ là phương pháp này không lấy frame trước đó mà nó sẽ lấy n frame trước đó làm nền, n sẽ được chọn phù hợp theo môi trường và ngữ cảnh của ứng dụng. Ưu điểm và nhược điểm của phương pháp này hoàn toàn giống với phương pháp Frame Diffrencing.
Background Subtraction: Đây là tên của một nhóm các phương pháp cao cấp để tách đối tượng ra khỏi ảnh nền, nhóm phương pháp này sẽ dựa trên các cơ sở toán học và lý thuyết xác suất thống kê để ước lượng và tính toán ra khung cảnh nền, các mô hình tính toán khung cảnh nền này được gọi chung là Background Modelling. Nhóm phương pháp này được sử dụng rất nhiều trong các hệ thống giám sát vì nó khá hiệu quả. Một số phương pháp đặc trưng của nhóm này có thể kể tới như là Running gaussian average [15], Mixture of Gaussians [16], Eigen backgrounds [17]. Optical Flow: Là phương pháp dựa trên sự tiếp cận của vector, phương pháp này sẽ xác định vị trí của đối tượng dựa bằng cách so trùng từng pixel của đối tượng trên nhiều frame, từ đó có thể xác định vector chuyển động của các pixel đó.
Optical Flow được chia thành hai phương pháp chính là gradient-based và feature- based. Phương pháp Gradient-based [4] tính toán sự thay đổi độ sáng thông qua không gian và thời gian, nó tìm kiếm trong các điểm lân cận trên mặt phẳng ảnh. Feature-based [18] tính toán dựa trên đặc trưng cạnh của các đối tượng trong những frame gần nhất. Optical Flow là phương pháp có thể áp dụng tốt trong trường hợp khung cảnh có số lượng các đối tượng dày đặc, và phương pháp này vẫn sẽ hoạt động chính xác trong trường hợp camera bị rung.
Temporal Median Filter: Là phương pháp ước tính background của frame hiện tại bằng giá trị median của n frame trước đó, đây là phương pháp với ý tưởng đơn giản nhưng cho ra kết quả rất tốt [3], trước đây phương pháp này được ít người sử dụng vì thời gian tính toán phức tạp, tuy nhiên hiện nay, phương pháp này đã được các nhà nghiên cứu cải tiến thời gian chạy rất nhiều, đặc biệt là nghiên cứu của tác 6 giả Thanh-Sach LE và Trung-Hieu LUU [5], đã cho ra đời một phương pháp tính median chạy trong thời gian O(1), một phương pháp tốt nhất tính đến thời điểm hoàn thành luận văn này. Luận văn sẽ dùng phương pháp Temporal Median Filter để hiện thực khối Motion Detection, và kết hợp với Optical Flow Gradient-based [4] để thực hiện bước tracking, giải thuật chi tiết của phương pháp Temporal Median Filter và Optical Flow sẽ được trình bày trong phần 2.3 tiếp theo đây. Temporal median filter [5] Luận văn sẽ hiện thực khối motion detection bằng phương pháp Temporal Median Filter được trình bày trong bài báo [5]. Phương pháp này tính median bằng cách dùng Histogram biễu diễn sự phân bố của từng pixel của n frame gần nhất.
Giá trị median sẽ được cập nhật lại mỗi khi có sự xóa một frame cũ hoặc thêm một frame mới. Định nghĩa Left Weight (LW) là số phần tử có giá trị nhỏ hơn median hiện tại, Median Weight (MW) là số phần tử có giá trị bằng median hiện tại và Right Weight (RW) là số phần tử có giá trị lớn hơn median hiện tại. Cứ mỗi lần cập nhật frame mới, thì bộ 3 tham số này sẽ được tính toán lại, sau đây là phương pháp cập nhật bộ 3 tham số này. Gọi R= { , , } là một structure median, phương pháp này sẽ cố gắng làm cho các giá trị của struct này luôn được cân bằng theo thời gian.
Điều kiện để struct này cân bằng là ≤( + ), <( + ) và ≠ 0. Giả sử rằng ban đầu bộ ba tham số này được khởi tạo, để giữ tính chất cân bằng khi cập nhật các frame ta phải xét các trường hợp sau a) Khi thêm một phần tử mới vào histogram: Có 3 trường hợp sau 1) Trường hợp 1: Phần tử mới nhỏ hơn median hiện tại: trong trường hợp này LW được tăng lên 1, và R có thể không còn cân bằng, khi R không còn cân bằng có nghĩa là LW nặng hơn các phần tử còn lại, nghĩa là >( + ), vì vậy để R cân bằng trở lại thì phải dịch median sang bên trái của histogram, median sẽ được dịch đến vị trí bin gần nhất bên trái với giá trị bin đó phải khác 0 gọi giá trị này là new weight. Các giá trị khác cũng phải được cập nhật theo các công thức sau 7 ← + (2.1: Một structure median cân bằng [5] Hình 2.2: Sau khi thêm giá trị 79 hai lần vào hình 2.1; LW > (MW+RW) [5] Giả sử rằng histogram của một pixel nào đó đang chứa 49 phần tử, và giả sử rằng R đã được khởi tạo cân bằng như trong hình 2. Sau khi thêm một phần tử có giá trị là 79 vào thì R= {25, 3, 22} và số lượng phần tử là 50, lúc này R vẫn ở trạng thái cân bằng, tuy nhiên nếu tiếp tục thêm một phần tử giá trị 79 vào nữa giá trị của R như hình 2.2 sẽ là R= {26, 3, 22}, lúc này R đã không còn cân bằng vì > ( + ), do đó R sẽ được cập nhật dựa vào các công thức (2.
Sau khi được cân bằng trở lại như hình 2.3, giá trị median mới là 80 và R= {14, 12, 25} 8 Hình 2.3: Sau khi cân bằng [5] 1) Trường hợp 2: Phần tử mới lớn hơn median hiện tại: trong trường hợp này RW được tăng lên 1, và R có thể không còn cân bằng, khi R không còn cân bằng có nghĩa là RW nặng hơn hoặc bằng các phần tử còn lại, nghĩa là R ≥( + ), vì vậy để R cân bằng trở lại thì phải dịch median sang bên phải của histogram, median sẽ được dịch đến vị trí bin gần nhất bên phải với giá trị bin đó phải khác 0 gọi giá trị này là new weight. Các giá trị khác cũng phải được cập nhật theo các công thức sau ← + (2.6) Ví dụ ta thêm một phần tử có giá trị 85 vào hình 2.3, lúc này tổng số phần tử là 52 và = {14, 12, 26}, lúc này R đã không còn cân bằng vì R ≥( + ) như hình 2.4, vì vậy R sẽ được cập nhật dựa vào các công thức (2. Sau khi R được cân bằng trở lại thì kết quả là = {26, 3, 23} như hình 2.4: Sau khi thêm giá trị 85 vào hình 2.5: Sau khi cân bằng [5] 1) Trường hợp 3: Phần tử mới bằng median hiện tại: Trong trường hợp này MW được tăng lên 1, và R vẫn còn cân bằng, do đó trường hợp này chỉ cần cập nhật MW bằng cách tăng nó lên 1. Ví dụ ta thêm giá trị 81 năm lần vào hình 2.5, lúc đó giá trị của = {26, 8, 23}, và tổng số phần tử là 57.
b) Khi xóa một phần tử từ histogram: Có 3 trường hợp sau 1) Trường hợp 1: Phần tử xóa nhỏ hơn median hiện tại: Trong trường hợp này LW sẽ bị giảm đi 1, và R có thể không còn cân bằng. Do đó điều kiện cân bằng R <( + ) phải được kiểm tra, và R phải được cân bằng lại nếu cần thiết.