Nhận dạng chuyển động trên MATLAB

Chào các bạn, mình là sv năm 2, hiện mình đang đăng kí tham gia nghiên cứu khoa học ở trường với đề tài :“Nhận dạng oto trong 1 video có cả oto, xe máy và người đi bộ” .
Hiện mình chỉ mới làm đc thuật toán so sánh 2 ảnh để nhận dạng chuển động.
Vậy các pro cho mình hỏi giờ mình muốn so sánh 1 background với 1 video để kết quả là phần mềm nhận dạng được chuyển động trên video thì dùng thuật toán nào nhỉ. Tks ALL

Ý bạn là bạn có 1 ảnh mẫu và bạn muốn so sánh video với ảnh mẫu đó để biết ô tô trong video có chuyển động hay ko?

1 Like

Tớ nghĩ là đề tài này có thể chia làm 2 bài toán:

  • Bài toán 1: Nhận dạng chuyển động.

Bài toán này thì không khó để gỉai, chỉ cần đối chiếu 2 ma trận ảnh xem sự thay đổi giua chúng. Nếu sự thay đổi vượt qua một ngưỡng thì kết luận là có chuyển động. Ảnh ở đây là chuỗi liên tiếp các khung hình trong video.

  • Bài toán 2(khó hơn): Nhận dạng ô tô.

Với bài toán này thì nó liên quan đến việc nhận dạng đối tượng. Để nhận dạng được đối tượng thì có thể nghiên cứu mạng neron hoặc các kỹ thuật tương tự. Tuy nhiên trong bài của bạn có một cái khó là đối tượng không tồn tại riêng lẻ mà ở trong lẫn những đối tượng khác. Mình nghĩ trước khi nhận dạng thì cần phải tách đối tượng ra(trong tiếng anh gọi là segmentation).

Đấy là những gì mình có thể tư vấn, tuy nhiên mình không hiểu tại sao bạn lại chọn matlab, về xử lý những cái liên quan đến ảnh thì có một thư viện tên là opencv(chạy trên c++). Thư viện này có nhiều hàm và tiện ích, bạn đỡ phải xử lý thô nhiều.

2 Likes

Đúng rồi bạn ạ, mình định dùng thuật toán trừ ảnh ấy. Mình đã trừ được nhưng bây giờ mình muốn nó thực hiện vs cả video

Cảm ơn bạn. Đề tài này cô giáo hướng dẫn của mình hướng mình sdung Matlab nên mình chọn thôi. Mình cũng muốn thực hiện trên C++ hơn vì mình đang học C++, bạn có biết tài liệu nào C++ về mảng này ko chỉ mình với

1 Like

Vậy thì ko khó, vì video thực chất là tập hợp ảnh được phát liên tục, thông thường là 25 hình (thường gọi là frame)/s. Bạn chỉ cần đọc video thành các ảnh (frame) rồi so sánh từng ảnh với ảnh mẫu bạn có là được. Cái này bạn tìm hiểu trên Matlab sẽ có, mình thường làm với OpenCV trên C++ nên ko rõ lắm, nhưng mình cũng từng làm với Matlab nên chắc chắn có.

Thực ra Matlab được tối ưu nhiều hơn OpenCV đó bạn à, chỉ là Matlab chọn lọc một số hàm xử lý ảnh để tối ưu chứ ko phải có tất cả như OpenCV. Với mục đích dạy học thì Matlab là tuyệt vời rồi, mở rộng ra đc OpenCV thì càng tốt, coi như là 1 hướng nghiên cứu mới :smile:

3 Likes

Cho mình xin source code được không ạ?

[email protected]

Xin cảm ơn nhiều lắm luôn!

Bạn ơi bạn có thể cho mình xin code được không ạ?

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?