Đây là project đếm xe hơi bằng hình ảnh, trích xuất từng frame trong video để đếm oto. Project đơn giản, gọn nhẹ, dễ build, dễ đọc code, phù hợp cho những bạn mới làm quen OpenCV.
Do đơn giản gọn nhẹ nên độ chính xác cũng không cao, chỉ để tham khảo là chính. Các bạn có thể tự nâng cấp, chỉnh sửa để phù hợp với nhu cầu của mình.
Mô tả thuật toán
Chương trình sẽ so sánh sự khác nhau giữa các frame, rồi xem những vị trí khác biệt là xe. Thuật toán tương tự như Background Subtraction.
Đầu tiên là nhị phân ảnh (threshold)
Tìm các blob
Lọc các blob rồi vẽ kết quả
Nhược điểm là những chuyển động nhỏ, bóng của vật thể di chuyển cũng bị xem là xe. Do đó cần code thêm những filter như kích cỡ tối đa, tối thiểu của mỗi blob.
Build project
Mình sử dụng Visual Studio 2015 để build trên hệ điều hành Windows. Các bạn có thể sử dụng version mới hơn: 2017, 2019 để build cũng được.
Việc build rất đơn giản, mình chỉ pull code về, ấn nút build là xong. Khi build Visual Studio sẽ download các Nuget Pakage cần thiết về, trong đó có gói OpenCV. Nếu các bạn gặp vấn đề gì thì comment bên dưới mình sẽ hỗ trợ.
Nếu các bạn muốn build với lib OpenCV thì mình có add về repo: https://github.com/thigiacmaytinh/TGMTcpp. Các bạn chạy CarCounting.sln để build project vì trong repo có nhiều project example