Link Download: ĐAMH2
1. Giới thiệu
Đếm người là một bài toán quan trọng trong nghiên cứu thị trường, phân tích dữ liệu.
Có nhiều phương pháp giải bài toán này. Như sử dụng các máy đếm cơ học, cổng quét hồng ngoại, cảm biến nhiệt … tuy nhiên vẫn còn nhiều hạn chế.
Với sự phát triển của kĩ thuật máy tính, các thuật toán xử lý ảnh phức tạp bây giờ có thể giúp việc đếm người bằng camera thu hình với độ chính xác có thể đạt 98% dù ở trong các điều kiện làm việc khác nhau.
2. Mục đích nghiên cứu
Xuất phát từ nhu cầu thực tiễn trên cho thấy việc đếm người bằng camera và xử lý ảnh rất quan trọng trong cuộc sống ngày nay.
Đề tài này nghiên cứu một số thuật toán trong việc đếm người (People counting) và làm quen với OpenCV, thư viện mã ngồn mở được sử dụng rộng rãi trên toàn thế giới.
3. Lý thuyết
3.1 Các thuật toán trừ nền
- Background Subtraction
- Averaging Method
- Codebook Method
3.2 Thuật toán theo vết chuyển động:
- Motion Templates
3.3 Các bước nhận dạng chuyện động và đếm số lần vào/ra
Bước 1:
- Dùng phương pháp trừ nền, ở đây sử dụng phương pháp codebook, để tách các vật chuyển động.
- Ảnh sau khi tách được lọc nhiễu, giảm bóng và loại bỏ các phần ảnh nhỏ hơn kích thước 1 người trung bình.
- Khi chương trình khởi động codebook được tạo bằng việc lấy mẫu khoảng 100 frame đầu tiên hoặc lấy mẫu trong vài giây.
- Tuần hoàn sau một khoảngiang thời chương trình tự động cập nhật và xóa các dữ liệu trong codebook.
Bước 2:
- Sử dụng thuật toán Motion Templates để tính toán các thành phần chuyển động của ảnh để xác định hướng di chuyển của vật là vào hay ra.
- Với mỗi vật chuyển động sẽ được đánh dấu bởi một hình chữ nhật, một chấm sáng tại tâm của vật và một vạch ngắn thể hiện hướng di chuyển của vật.
Bước 3:
- Dựa vào kết quả hướng di chuyển của vật ở bước 2. Ta tính được số lượng người đi vào và ra khi tâm của vật đi qua một vạch nằm ngang ở giữa khung hình
4. Vấn đề giảm bóng và lọc nhiễu
Hình 3,4,5: quá trình khử nhiễu
5. Kết quả
Video: People counter – OpenCV – C Programming
Một số hình ảnh chụp từ video kết quả