Phát hiện đối tượng chuyển động

Một phần của tài liệu Nghiên cứu và xây dựng module theo dõi tự động các đối tượng ảnh (Trang 66 - 68)

Quá trình phát hiện đối tượng chuyển động bao gồm hai pha: phát hiện chuyển động và phát hiện đối tượng (hình 3-5).

3.5.1. Lưu đồ thuật toán

 

Hình 3-4. Lưu đồ thuật toán phát hiện đối tượng chuyển động

Kết quả đầu ra của quá trình học và trừ nền là một ảnh foreground hai mức xám 0 và 255. Giá trị 0 tương ứng với nền và 255 tương ứng với đối tượng.

Pha phát hiện chuyển động đơn giản là tìm điểm ảnh có giá trị xám 255 bằng cách quét toàn bộ ảnh. Nếu tổng sumVal các điểm ảnh có giá trị xám 255 bằng

53

không, thì xác định là không có đối tượng chuyển động trong frame ảnh hiện tại và chương trình quay lại bước đọc frame từ video. Ngược lại, sumVal khác không,

chương trình sẽ tiếp tục với pha phát hiện đối tượng.

Pha phát hiện đối tượng sẽ tính toán các đặc trưng cho mỗi vùng ảnh được phát hiện: đường bao, hình chữ nhật bao quanh đối tượng (bounding rectangle), trọng tâm.

Vùng ảnh phát hiện sau bước trừ nền có thể vẫn là nhiễu, bởi quá trình lọc bỏ

nhiễu và liên kết thành phần không xử lý hết hoặc đó là những đối tượng mà ta không quan tâm. Vì vậy, căn cứ vào thông tin ước lượng dựa trên vị trí quan sát, như kích thước tương đối chiều rộng ojW, chiều cao ojH nhỏ nhất của đối tượng, ta sẽ xác định xem vùng ảnh này có phải là đối tượng cần theo dõi.

Các thông số chiều rộng bW, chiều cao bH của bounding rectangle được so sánh với ojW, ojW. Nếu thỏa mãn điều kiện thì xác định có đối tượng chuyển động trong frame ảnh hiện tại, và chương trình tiếp tục với bước gán quan sát và theo dõi.

3.5.2. Các hàm xử lý

9 Hàm tìm đường bao:

int cvFindContours(image, storage, firstcontour, headersize, mode, method);

Trong đó :

image : ảnh đầu vào đơn kênh 8-bit.

storage : vùng nhớ lưu contours.

firstcontour : tham sốđầu ra, chứa con trỏ tới contour đầu.

headersize : kích thước dãy contour.

54

method : phương pháp xấp xỉ.

Hàm tìm đường bao sẽ tìm kiếm các đường bao từ một ảnh nhị phân đầu vào và trỏ con trỏ tới đường bao đầu tiên. Việc truy xuất tới các đường bao khác thực hiện thông qua tham số h_next và v_next trong cấu trúc đường bao do OpenCV định nghĩa.

Trong chương trình, vì chỉ sử dụng biểu diễn đường bao cho mục đích phát hiện đối tượng nên cài đặt các lựa chọn mode = CV_RETR_EXTERNAL, method =

CV_RETR_LIST như mặc định. Những mã cấu trúc khác có thể xem thêm tại [17] và các tài liệu hướng dẫn của OpenCV .

9 Hàm tìm bounding rectangle:

CvRect cvBoundingRect( points, update);

Trong đó :

points : tập điểm ảnh biểu diễn đường bao.

update : biến cờ, set = 1 thì cho phép lưu thông tin.

Hàm cvBoundingRect trả về kết quả là tọa độ (x,y) đỉnh dưới cùng bên trái và các giá trị chiều rộng bW, chiều cao bH một hình chữ nhật chứa đường bao.

Một phần của tài liệu Nghiên cứu và xây dựng module theo dõi tự động các đối tượng ảnh (Trang 66 - 68)

Tải bản đầy đủ (PDF)

(89 trang)