Tuyên bố miễn trừ trách nhiệm : Tôi đã đăng câu hỏi này lên StackOverFlow nhưng được biết rằng nó phù hợp hơn ở đây.
Tôi hơi mới đối với việc xử lý hình ảnh vì vậy tôi muốn hỏi bạn về việc tìm giải pháp tối ưu cho vấn đề của tôi, không giúp ích gì cho mã. Tôi không thể nghĩ ra một ý tưởng hay nhưng vì vậy muốn hỏi lời khuyên của bạn.
Tôi đang làm việc trên một dự án sử dụng OpenCV để đếm các phương tiện từ tệp video hoặc máy ảnh trực tiếp. Những người khác làm việc trong một dự án như vậy thường theo dõi các đối tượng chuyển động sau đó đếm chúng nhưng thay vào đó, tôi muốn làm việc với một quan điểm khác; yêu cầu người dùng đặt ROI (Vùng quan tâm) trên cửa sổ video và chỉ hoạt động cho vùng này (vì một số lý do, không muốn xử lý toàn bộ khung và tăng hiệu suất), như được thấy dưới đây. (Người dùng có thể đặt nhiều ROI và người dùng được yêu cầu đặt chiều cao của ROI khoảng hai lần so với một chiếc xe bình thường theo tỷ lệ.)
Tôi đã thực hiện một số tiến bộ cơ bản cho đến nay, như cập nhật nền, bộ lọc hình thái, ngưỡng và lấy đối tượng chuyển động dưới dạng hình ảnh nhị phân như dưới đây.
Sau khi thực hiện chúng, tôi đã cố gắng đếm các pixel trắng của khung nền trước ngưỡng cuối cùng và ước tính đó có phải là xe hơi hay không bằng cách kiểm tra tổng số pixel trắng (Tôi đặt giới hạn dưới bằng phép tính tĩnh bằng cách biết chiều cao của ROI) . Để minh họa, tôi đã vẽ một đồ họa mẫu:
Như bạn có thể thấy, thật dễ dàng để tính toán các pixel trắng và kiểm tra xem nó có vẽ đường cong theo thời gian hay không và xác định xem một chiếc xe hơi hay thứ gì đó giống như tiếng ồn.
Vấn đề
Tôi đã khá thành công cho đến khi hai chiếc xe vượt qua ROI của tôi cùng một lúc. Thuật toán của tôi không chính xác tính chúng là một chiếc xe. Tôi đã thử các cách tiếp cận khác nhau cho vấn đề này và tương tự như phương tiện dài này nhưng tôi chưa tìm được giải pháp thỏa đáng.
Câu hỏi
Có thể xử lý tác vụ này bằng cách tiếp cận đếm giá trị pixel này không? Nếu không, bạn đề nghị gì?