Lời nói đầuỞ bài tập lớn lần này, nhóm chúng em chọn chủ đề “Phát hiện và theo vếtđối tượng chuyển động” để phát hiện và theo vết một đối tượng từ video – cụthể là quả bóng golf nhằm tru
Trang 1ĐẠI HỌC BÁCH KHOA HÀ NỘI
TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
*********************
BÁO CÁO ĐỒ ÁN MÔN HỌC
Thị giác máy tính
Đề tài 14: Phát hiện và theo vết đối tượng chuyển động
Giảng viên hướng dẫn: PGS TS Nguyễn Thị Hoàng Lan
Nguyễn Thành Vinh 20183859
Trang 2Mục lục
L i nói đầầu ờ 2
I M c đích, yêu cầầu c a bài t p l n ụ ủ ậ ớ 3
II S đồầ chung vêầ theo vêết đồếi t ơ ượ ng chuy n đ ng ể ộ 3
1 Sơ đồ chung 3
2 Phương pháp phát hiện đối tượng chuyển động 4
2.1 Luồng quang học (optical flow) 4
2.2 Phát hiện sự thay đổi của các điểm ảnh (Change Detection) 5
3 Các phương pháp phân loại đối tượng 6
3.1 Biểu diễn mô hình (Model Representations) 6
3.2 Trích chọn đặc trưng (Model Features) 6
4 Theo vết đối tượng 7
5 Phân loại 7
III Thu t toán mean-shif ậ 7
1 Một số khái niệm 7
1.1 Tiếp cận dựa trên mô hình 7
1.2 Tiếp cận dựa trên miền 7
1.3 Tiếp cận dựa trên đường viền 8
1.4 Tiếp cận dựa trên đặc trưng 8
2 Ý tưởng thuật toán 9
3 Cơ chế thuật toán 9
IV Cài đ t ng d ng ặ ứ ụ 10
1 Môi trường lập trình 11
2 Chức năng chính 11
3 Quy trình triển khai 12
V K ch b n ki m th ị ả ể ử 12
1 Kịch bản 1 12
2 Kịch bản 2 13
Tài li u tham kh o ệ ả 15
Trang 3Lời nói đầu
Ở bài tập lớn lần này, nhóm chúng em chọn chủ đề “Phát hiện và theo vết đối tượng chuyển động” để phát hiện và theo vết một đối tượng từ video – cụ thể là quả bóng golf nhằm truy vết cũng như có thể vẽ được quỹ đạo đi của vật thể đã định trước Qua bài tập lớn, nhóm chúng em đã có thể hiểu rõ hơn về bài học cũng như biết cách ứng dụng những lý thuyết sách vở bài giảng vào thực tế Báo cáo gồm các nội dung chính:
- Sơ đồ chung về theo vết đối tượng chuyển động
- Phương pháp phát hiện đối tượng chuyển động
- Các phương pháp phân loại đối tượng
- Thuật toán Meanshift
- Cài đặt ứng dụng
- Kịch bản kiểm thử
Chúng em xin được gửi lời cảm ơn chân thành tới cô Nguyễn Thị Hoàng Lan đã hướng dẫn, chỉ bảo và đôn đốc chúng em trong suốt quá trình thực hiện
đồ án này, từ đó giúp chúng em hoàn thành môn học một cách tốt nhất
Do thời gian nghiên cứu và triển khai, trình độ hiện tại của nhóm có hạn nên chắc chắn trong quá trình thực hiện đề tài không tránh khỏi những sai lầm, thiếu sót cả về nội dung lẫn hình thức Chúng em rất mong nhận được sự thông cảm, góp ý và tận tình chỉ bảo của cô
Trang 4I Mục đích, yêu cầu của bài tập lớn
- Mục đích: Phát hiện và theo vết đối tượng chuyển động (Motion object
Detection and Tracking)
- Yêu cầu:
o Tìm hiểu mô hình chung về theo vết đối tượng chuyển động
o Tìm hiểu thuật toán Mean-shift để theo vết đối tượng chuyển động
o Cài đặt ứng dụng thuật toán Mean-shift
o Xây dựng kịch bản thử nghiệm tình huống phù hợp ứng dụng và nhận xét
1 Sơ đồ chung
Trang 52 Phương pháp phát hiện đối tượng chuyển động
2.1 Luồng quang học (optical flow)
- Tìm vector hướng chuyển động của các điểm ảnh trong 2 khung hình liên tiếp
- Nguyên lí hoạt động:
o Tìm các điểm đặc trưng nổi bật trong khung hình hiện tại
o Tìm các điểm tương đồng với các điểm vừa tìm trong khung hình
kế tiếp
o Vector nối các điểm vừa tìm được với các điểm tương ứng với nó trong khung hình kế tiếp chính là các vetor chuyển động luồng quang học
Trang 62.2 Phát hiện sự thay đổi của các điểm ảnh (Change Detection)
- Là việc xác định các thay đổi trong trạng thái của pixel thông qua việc kiểm tra giá trị của chúng giữa các khung hình
- Nguyên lí hoạt động:
o Chọn 1 khung hình làm hình nền cho 1 vài khung hình liên tiếp
o Lần lượt tính hiệu pixel giữa các khung hình còn lại với hình nền Nếu hiệu này lớn hơn ngưỡng T thì vị trí đó thuộc về vùng ảnh nổi (Foreground)
o Loại bỏ các pixel nhiễu ta thu được đối tượng chuyển động
Trang 73 Các phương pháp phân loại đối tượng
3.1 Biểu diễn mô hình (Model Representations)
Đối tượng chuyển động sẽ được thể hiện dưới dạng mô hình Phương pháp này áp dụng với các đổi tượng có thể thay đổi hình của bản thân trong quá trình chuyển động
3.2 Trích chọn đặc trưng (Model Features)
- Mỗi đối tượng sẽ có nhưng đặc trưng riêng nhờ vào đó ta có thể phân biệt được đối tượng này với đối tượng khác
- Một số đặc điểm của hình ảnh như sau:
o Hình dạng
o Màu sắc
o Kết cấu
Trang 84 Theo vết đối tượng
- Sau khi xác định được đối tượng cần theo vết và mô hình hóa đối tượng ta cần ước tính chuyển động của đối tượng thông qua tốc độ từ đó có thể dự doán được vị trí tiếp theo của đối tượng
- Sau khi vị trí của đối tượng đã gần đúng, ta có thể sử dụng mô hình trực quan của đối tượng để xác định vị trí chính xác của mục tiêu
5 Phân loại
- Theo dõi 1 đối tượng: Chỉ theo dõi 1 đối tượng duy nhất Đối tượng theo dõi được xác định thủ công bằng việc vẽ hộp giới hạn trong khung hình đầu tiên
- Theo dõi nhiều đối tượng: Theo dõi cùng lúc nhiều đối tượng có trong video Các đối tượng được phát hiện theo dõi dựa trên đặc trưng chung
1 Một số khái niệm
Có 4 cách tiếp cận chính để giải quyết bài toán theo vết với meanshift:
- Tiếp cận dựa trên mô hình
- Tiếp cận dựa trên miền
- Tiếp cận dựa trên đường viền
- Tiếp cận dựa trên đặc trưng
1.1 Tiếp cận dựa trên mô hình
- Cách tiếp cận dựa trên mô hình bao gồm việc tạo mô hình hình học cấu trúc của đối tượng
- Các ràng buộc trên việc mô hình được cho phép biến dạng như thế nào có thể được kết hợp vào quá trình so khớp
- Vấn đề với cách tiếp cận này là quá trình khởi tạo tự động thì khó và chi phí tính toán cao do độ phức tạp của mô hình
1.2 Tiếp cận dựa trên miền
- Cách tiếp cận dựa trên miền bao gồm việc kết hợp một miền với mỗi đối tượng đang được theo vết
Trang 9- Miền được theo vết qua thời gian bằng phép đo độ tương tự
- Lợi ích của cách tiếp cận này là khởi tạo khá dễ dàng, chỉ có vị trí và kích thước của cửa sổ cần được định nghĩa
1.3 Tiếp cận dựa trên đường viền
- Cách tiếp cận dựa trên đường viền bao gồm tìm đường viền bao của một đối tượng và sau đó cố gắng làm khớp đường viền với các đối tượng trong các frame sau
- Nơi khớp nhất sẽ là đường viền hiện tại, mô hình sẽ cập nhật đường viền hiện tại để phản ánh hình dáng của đối tượng trong frame hiện tại
- Quá trình này được lặp lại với mô hình đường viền được cập nhật
- Với mô hình là nó yêu cầu sự khởi tạo chính xác, và điều này thì khó
để thực hiện tự động
1.4 Tiếp cận dựa trên đặc trưng
- Tiếp cận dựa trên đặc trưng chỉ theo vết một tập các đặc trưng của đối tượng
- Ví dụ như chỉ theo vết các điểm ở góc của đối tượng, vị trí của đối tượng trong frame sau sẽ được tìm thấy bằng cách tìm các điểm góc
mà khớp với các điểm của mô hình nhất
- Khuyết điểm của phương pháp này là chất lượng theo vết phụ thuộc nhiều vào việc chọn các đặc trưng Các đặc trưng phải được chọn sao cho chúng cung cấp sự nhận diện duy nhất cho đối tượng
Trang 102 Ý tưởng thuật toán
- Thuật toán dùng để theo vết đối tượng chuyển động khi đối tượng đó có thể thể hiện qua biểu đồ tần suất (histogram)
- Thuật toán mô hình hóa vật thể qua sự phân bố màu sắc
- Vd:
o Đối với những vật thể bị thay đổi hình dạng khi chuyển động (ví
dụ người đi bộ), khó có thể bắt được chuyển động một cách rõ ràng
o Vì vậy để thuật toán sẽ dựa vào sự mô hình hoá với sự phân bố về màu sắc
- Theo dõi chuyển động của một cụm các đối tượng nổi bật
- Chọn phân bố đặc điểm để đại diện cho một đối tượng trong video (ví dụ: mật độ màu sắc + họa tiết)
- Sử dụng mean shift trên phân phối các đặc điểm được tạo bởi đối tượng
- Cuối cùng tính toán phân phối của đặc điểm đã chọn qua khung video tiếp theo
o Bắt đầu từ vị trí hiện tại, mean shift tìm đỉnh hoặc đặc điểm mới của phân bố đối tượng, mà (có thể là) tập trung vào đối tượng tạo
ra màu sắc và kết cấu ngay từ đầu
o Bằng cách này, thuật toán sẽ theo dõi chuyển động của khung đối tượng theo từng khung
3 Cơ chế thuật toán
- Lựa chọn vùng có đối tượng cần theo dõi (tracking) được gọi là ROI
Trang 11- Với vùng ROI đã được chọn, chuyển đổi sang Histogram, từ đây có được biểu đồ phân bố các pixels trên từng khu vực sáng tối, trong đó trục tung (chiều dọc) biểu thị số lượng pixel đang có ở khu vực đó, trục hoành là dải sáng Với mỗi frame tiếp theo, đối tượng được theo dõi sẽ là vùng có phân bố các pixels gần với phân bố trên vùng ROI tại frame đầu tiên nhất
Trang 12IV Cài đặt ứng dụng
1 Môi trường lập trình
- Môi trường cài đặt:
1 CPU: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz( 8 CPUs), ~ 2.0GHz
2 RAM: 16GB
3 SSD: 200GB
4 HDD: 1TB
5 OS: Window 10 Enterprise 64-bit
- Ngôn ngữ lập trình : Python 3.9.10
2 Chức năng chính
- Điều chỉnh các tham số như: bán kính quả golf, kích thước vùng ROI, … để phát hiện quả bóng golf (tìm vật có hình cầu, bán kính như đã chọn) rồi theo vết chuyển động Từ đó đưa ra quỹ đạo chuyển động
- Đầu vào:
o Đường dẫn ảnh
o Bán kính hình cầu
o Kích thước vùng ROI
- Đầu ra:
o Video theo vết quả bóng golf kèm theo FPS
o Quỹ đạo chuyển động
- Mô tả chi tiết:
o B1: Tách từng frame trong video, tìm kiếm trong từng frame cho đến khi tìm thấy hình cầu có kích thước được nhập từ đầu vào
o B2: Sau khi tìm thấy quả bóng golf, ta sử dụng chính frame đó để xác định vị trí quả bóng golf và vùng ROI có kích thước như đầu vào Kết hợp thêm các tham số cần thiết cho thuật toán Mean-shift là:
Điều kiện dừng: tốc độ theo vết tối đa, số lần lặp để kiểm tra đối tượng đã dừng chuyển động chưa
Vector dữ liệu biểu đồ histogram
Trang 13o B3: Trong các frame tiếp theo, sử dụng thuật toán Mean-shift để tím
vị trí mới của quả golf Sử dụng sai số tối thiểu trung bình bình phương để xác định
3 Quy trình triển khai
Để sử dụng phần mềm, ta cần thực hiện như sau:
- Cách 1: Khởi động phần mềm bằng cách mở file:
golf_tracking.exe
- Cách 2: Cài đặt python và các thư viện cần thiết và chạy câu lệnh: Python golf_tracking.py
Lúc này, giao diện sẽ hiện lên và người dùng có thể tương tác với phần mềm để lựa chọn chức năng
1 Kịch bản 1
Nội dung: Đối tượng bị che khuất trong một phần quá trình chuyển động Kết quả: Đối tượng đang theo vết khi bị che khuất một phần trong quá trình chuyển động thì sẽ không thể tiếp tục theo vết nữa
Trang 14nh th i đi m bắết đầầu và kêết thúc khi b che trong quá trính chuy n đ ng.
2 Kịch bản 2
Nội dung: Thay đổi vùng ROI
Kết quả: Tùy theo kích thước vùng ROI được chọn mà đối tượng có thể theo vết được hoặc không Nếu kích thước vùng ROI quá nhỏ hoặc quá lớn sẽ không theo vết đúng đối tượng được chọn
nh th i đi m bắết đầầu và kêết thúc khi ch n kích th c vùng ROI h p lý (100x100).
Trang 15nh th i đi m bắết đầầu và kêết thúc khi ch n kích th c vùng ROI quá nh (30x30).
Trang 16Tài liệu tham khảo