TỔNG QUAN VỀ ĐỀ TÀI
Giới thiệu đề tài
Việc tự động theo dõi và nhận diện người chơi trong các môn thể thao đồng đội đang ngày càng trở nên quan trọng, đặc biệt khi lợi nhuận từ truyền hình và sân vận động gia tăng Các đội bóng cần cải thiện thành tích để thu hút cổ động viên, và việc thu thập số liệu thống kê về vận động viên, như quảng đường chạy trong trận đấu, giúp đánh giá sức khỏe người chơi Nhận diện người chơi theo thời gian thực không chỉ hỗ trợ xác định cự ly đội hình và chiến thuật, mà còn cung cấp dự đoán chi tiết về khả năng chiến thắng trong các trận đấu Thông tin về vị trí cầu thủ và phong cách chơi của từng đội có thể là yếu tố quyết định cho chiến thắng, nếu được huấn luyện viên phân tích hiệu quả.
Nhận diện các cầu thủ bóng rổ đang di chuyển trên sân trên thời gian thực tế và chuyển dữ liệu đó qua mô phỏng 2D.
Mô hình này có thể áp dụng cho các trận đấu bóng rổ và các môn thể thao tương tự như bóng chuyền, bóng đá, cầu lông, hoặc mở rộng để nhận diện các vật thể khác như ô tô và xe máy.
Mục đích nghiên cứu
Dựa trên kiến thức về xử lý ảnh số, chúng tôi đã thực hành mô phỏng bằng Matlab và nghiên cứu lập trình ngôn ngữ Python, kết hợp với ngôn ngữ C Mục tiêu là phát triển một hệ thống điều khiển đáp ứng yêu cầu mong đợi.
- Đồng thời tìm hiểu thêm kiến thức về Python để phát triển cho con đường học tập và làm việc sau này.
Đối tượng nghiên cứu
- Video trận đấu bóng rổ giữa hai đội của giải NBA của Mỹ
Phạm vi nghiên cứu
Do hạn chế về thời gian, kinh phí và ảnh hưởng của dịch bệnh, đồ án chuyên ngành không thể thực hiện mô hình thực tế Vì vậy, phạm vi nghiên cứu chỉ tập trung vào việc phân tích các video từ các nguồn trên Internet.
Dự kiến kết quả
Hệ thống dựa trên video đã có sẵn để chạy chương trình mô phỏng Python vàMatlab để cho ra kết quả như mong muốn.
CƠ SỞ LÝ THUYẾT
Giới thiệu phần mềm Python
Python là ngôn ngữ lập trình hướng đối tượng, cấp cao và mạnh mẽ, được phát triển bởi Guido van Rossum Với cú pháp rõ ràng và dễ hiểu, Python trở thành một trong những ngôn ngữ lập trình lý tưởng cho người mới bắt đầu Ngôn ngữ này hỗ trợ kiểu dữ liệu động và tự động quản lý bộ nhớ, cùng với cấu trúc dữ liệu mạnh mẽ, giúp lập trình viên dễ dàng phát triển ứng dụng và viết script trên nhiều nền tảng khác nhau.
+ Các kiểu dữ liệu cấp cao Builtin: chuỗi, danh sách, từ điển, v.v.
+ Các cấu trúc điều khiển thông thường: if, ifelse, ifelifelse, while, cộng với trình vòng lặp thu thập mạnh mẽ (for).
Cấu trúc tổ chức mã có nhiều cấp độ, bao gồm chức năng, lớp, mô-đun và gói, giúp tăng cường khả năng tổ chức và quản lý mã nguồn Một ví dụ tiêu biểu cho sự tổ chức này là thư viện chuẩn của Python.
Mã nguồn được biên dịch nhanh chóng thành mã byte mà không cần bước biên dịch riêng biệt Ngoài ra, các mô-đun mã nguồn cũng có thể được "biên dịch trước" thành các tệp mã byte để tăng hiệu suất.
Python hướng đối tượng mang đến một phương pháp nhất quán để làm việc với các đối tượng, trong đó mọi thứ đều được coi là một đối tượng Việc tạo ra các kiểu đối tượng mới, hay còn gọi là lớp, trong lập trình hướng đối tượng bằng Python rất dễ dàng và linh hoạt.
Các phần mở rộng trong C và C++ có thể được tạo ra thông qua việc viết tay các mô-đun mở rộng và các loại phần mở rộng khác nhau Ngoài ra, có nhiều công cụ hỗ trợ quá trình này, bao gồm SWIG, nhâm nhi và Pyrex.
+ Jython là phiên bản Python "chơi tốt với" Java.
Công cụ OpenCV
OpenCV, short for Open Source Computer Vision Library, was initiated by Intel in 1999 by Gary Bradsky It is a leading open-source library for Computer Vision and Machine Learning, now enhanced with GPU acceleration for real-time operations.
OpenCV là một thư viện mã nguồn mở được phát hành theo giấy phép BSD, cho phép người dùng tự do học tập và sử dụng cho mục đích thương mại mà không gặp phải rào cản pháp lý Thư viện này hỗ trợ nhiều ngôn ngữ lập trình như C++, C, Python và Java, đồng thời tương thích với các hệ điều hành như Windows, Linux, Mac OS, iOS và Android OpenCV được thiết kế để tối ưu hóa hiệu suất tính toán, đặc biệt cho các ứng dụng thời gian thực, và khi được viết trên C/C++ một cách tối ưu, nó có khả năng tận dụng bộ xử lý đa lõi để nâng cao hiệu quả xử lý.
- Tính năng nổi bật của OpenCV:
+ Xử lý và hiển thị Hình ảnh/ Video/ I/O (core, imgproc, highgui).
+ Phát hiện các vật thể (objdetect, features2d, nonfree).
+ Geometry-based monocular hoặc stereo computer vision (calib3d, stitching, videostab).
+ Computational photography (photo, video, superres).
+ Machine learning & clustering (ml, flann).
Xử lý ảnh
2.3.1 Tổng quan về xử lý ảnh
Xử lý ảnh là một lĩnh vực con của xử lý tín hiệu số, tập trung vào việc xử lý hình ảnh Đây là một ngành khoa học mới đang phát triển mạnh mẽ trong những năm gần đây.
Xử lý ảnh bao gồm bốn lĩnh vực chính: nâng cao chất lượng ảnh, nhận dạng ảnh, nén ảnh và truy vấn ảnh Sự phát triển trong lĩnh vực này mang lại nhiều lợi ích thiết thực cho cuộc sống con người.
2.3.2 Xử lý ảnh bằng OpenCV của Python
- Cài đặt môi trường OpenCV trên kho quản lý gói của Python là OpenCV- Python.
- Hiển thị hình ảnh từ tệp tin đã tạo lên cửa sổ giao diện chính bằng hàm gọi của Python.
- Lựa chọn kích thích ảnh hiện thị theo chiều dài, chiều rộng và chiều cao
- Sau đó lựa chọn màu cho ảnh theo mong muốn Giá trị thành phần màu có giá trị từ 0 đến 255.
Tổng quan về Matlab
+ Matlab là tên viết tắt của Matrix laboratory phần mềm được MathWorks thiết kế để cung cấp môi trường lập trình và tính toán kỹ thuật số.
Matlab là một công cụ mạnh mẽ cho phép người dùng thực hiện các phép toán với ma trận, trực quan hóa dữ liệu thông qua đồ thị và hàm số, cũng như triển khai các thuật toán phức tạp Ngoài ra, Matlab còn hỗ trợ tạo giao diện người dùng và tích hợp với các chương trình viết bằng nhiều ngôn ngữ lập trình khác nhau.
+ Matlab là một ngôn ngữ lập trình cao cấp để tính toán số và phát triển ứng dụng.
+ Cung cấp một môi trường tương tác để điều tra, thiết kế và giải quyết các vấn đề.
Thư viện này cung cấp một bộ hàm toán học phong phú, hỗ trợ giải quyết các bài toán liên quan đến hàm số tuyến tính, thống kê, phân tích Fourier, lọc, tối ưu hóa, tích phân và phương trình vi phân bình thường.
+ Matlab cung cấp các biểu đồ tích hợp để trực quan hóa dữ liệu và các công cụ để tạo biểu đồ tùy chỉnh.
+ Cung cấp các công cụ phát triển để tăng khả năng bảo trì chất lượng mã và tối đa hóa hiệu suất.
+ Cung cấp các công cụ để xây dựng ứng dụng bằng giao diện đồ họa tùy chỉnh.
+ Các chức năng để tích hợp các thuật toán dựa trên Matlab với các ứng dụng bên ngoài và các ngôn ngữ khác như C, Java, NET và Microsoft Excel.
+ Xử lý tín hiệu và truyền thông.
+ Xử lý chất lượng hình ảnh, video.
+ Ứng dụng tính toán tài chính, sinh học.
+ Ứng dụng trong kiểm tra, tính toán và đo lường.
Tổng quan về Object Tracking
Object Tracking là một nhiệm vụ quan trọng trong việc theo dõi một hoặc nhiều đối tượng di chuyển qua thời gian trong video Khác với object detection, nơi chỉ xác định các đối tượng trong một bức ảnh tĩnh, Object Tracking xử lý một chuỗi hình ảnh liên tục, tức là video, để theo dõi chuyển động của các đối tượng.
Việc tracking không chỉ đơn giản là xác định các bounding box, mà còn phải xem xét nhiều yếu tố và nhiễu khác nhau để đảm bảo độ chính xác và hiệu quả trong quá trình theo dõi.
+ ID của mỗi đối tượng cần đảm bảo luôn không đổi qua các frame.
+ Khi đối tượng bị che khuất hoặc biến mất sau 1 vài frame, hệ thống vẫn cần đảm bảo nhận diện lại được đúng ID khi đối tượng xuất hiện.
+ Các vấn đề liên quan đến tốc độ xử lí để đảm bảo realtime và tính ứng dụng cao.
- Object Tracking có thể chia thành 2 cách tiếp cận chính:
Single Object Tracking (SOT) là phương pháp theo dõi một đối tượng duy nhất trong video, yêu cầu phải cung cấp một bounding box ban đầu để xác định đối tượng cần theo dõi.
Hình 2-1 Ví dụ về việc theo dõi duy nhất một đối tượng
Theo dõi nhiều đối tượng (MOT) nhắm đến các ứng dụng có khả năng mở rộng cao hơn, với mục tiêu phát hiện và theo dõi đồng thời tất cả các đối tượng trong tầm nhìn, bao gồm cả các đối tượng mới xuất hiện trong video Do tính chất phức tạp này, MOT thường khó hơn so với theo dõi một đối tượng (SOT) và nhận được nhiều sự quan tâm từ cộng đồng nghiên cứu.
Hình 2-2 Ví dụ về việc theo dõi nhiều đối tượng
- Bên cạnh việc tiếp cận, các phương pháp giải lớp bài toán này cũng được phân chia rất đa dạng, phổ biến nhất là:
Online Tracking trong xử lý video chỉ sử dụng khung hình hiện tại và khung hình trước đó để theo dõi Mặc dù phương pháp này có thể làm giảm độ chính xác của thuật toán, nhưng nó phản ánh đúng thực tế khi tính "online" là yếu tố cần thiết trong quá trình xử lý.
+ Offline Tracking : Các phương pháp Offline thường sử dụng toàn bộ frame của video, do đó thường đạt được độ chính xác cao hơn nhiều so với Online Tracking.
2.5.3 Phương pháp Object Tracking trong OpenCV
Trong OpenCV, có tổng cộng 8 phương pháp theo dõi đối tượng, bao gồm OOSTING Tracker, MIL Tracker, KCF Tracker, CSRT Tracker, MedianFlow Tracker, TLD Tracker, MOSSE Tracker và GOTURN Tracker Tuy nhiên, trong thực tế, người dùng thường chỉ áp dụng 3 phương pháp phổ biến nhất.
+ MOSSE Tracker: Tốc độ cao nhất, chính xác thấp nhất Sử dụng trong các bài toán cần ưu tiên tốc độ.
+ KCF Tracker: Tốc độ chậm hơn MOSSE và chính xác cao hơn MOSSE.
+ CSRT Tracker: Tốc độ chậm nhất trong 3 món nhưng độ chính xác lại cao nhất trong 3 món.
GIẢI THUẬT VÀ ĐIỀU KHIỂN
Nguyên lí làm việc của hệ thống
- Đầu tiên hệ thống sẽ khởi chạy chương trình Matlab và Pycharm.
- Lưu một video bất kì từ mạng Internet và đưa nó vào đường dẫn chạy tệp tin của Matlab và Pycharm.
- Phần mềm Pycharm sẽ cho ra kết quả là theo dõi cầu thủ bằng các khung ảnh màu với 2 màu sắc đặc trưng cho 2 đội.
- Phần mềm Matlab sẽ cho ra kết quả là hình ảnh 2D về vị trí cầu thủ thực tế theo video.
Phương pháp và giải thuật
Để đạt được mục tiêu cuối cùng là có được hình ảnh hai chiều có định vị người chơi, chúng ta đã sử dụng thuật toán năm bước:
(1) Xác định sân đấu - tìm các đường của sân đấu;
(2) Xác định cầu thủ - xác định cầu thủ đứng trên sân;
(3) Phân loại màu sắc - Tách những cá nhân này thành hai đội;
(4) Theo dõi người chơi - Giữ thông tin vị trí từng khung;
(5) Xây dựng sơ đồ trận đấu – chuyển liệu lên sân đấu đó
Hình 3-1 Sơ đồ hệ thống
Các khung hình từ video được chuyển đổi từ RGB sang mô hình màu HSV, tập trung vào mặt phẳng H để tạo ra mô hình nhị phân của hệ thống Chúng ta thực hiện quá trình erosion để loại bỏ các pixel nhiễu và dilation để nối liền hình ảnh, làm nổi bật đối tượng trong ảnh Sau đó, sử dụng phương pháp Canny để phát hiện các đường trong hệ thống Cuối cùng, áp dụng phép biến đổi Hough để nhận diện các đường thẳng trong hệ thống.
Hình 3-2 Hình ảnh phát hiện đường biên của hệ thống
3.2.2 Nhận diện người di chuyển bằng HOG ( Histogram of oriented
Thuật toán Gistogram of Oriented Gradients (HOG) được sử dụng để nhận diện người di chuyển bằng cách mô tả hình dạng và sự xuất hiện của đối tượng trong ảnh dựa trên các điểm xám Mặc dù việc thiết lập các đặc điểm để phát hiện một đối tượng cụ thể là khó khăn, nhưng các bộ phân loại máy học như support vector machine (SVM) có thể xác định đối tượng mong muốn dựa trên dữ liệu đã được huấn luyện HOG là một tính năng vượt trội trong việc phát hiện người di chuyển, và hiệu suất có thể được cải thiện bằng cách kết hợp thêm các tính năng khác Trong nghiên cứu này, chúng tôi đã sử dụng công cụ dò tìm HOG từ OpenCV, nhờ vào bộ dữ liệu mặc định của nó cho nhận diện người di chuyển và khả năng tính toán hiệu quả HOG và SVM Chúng tôi đã áp dụng tập dữ liệu “Daimler” với kích thước khung hình 48 x 96 pixel để huấn luyện công cụ HOG, giúp nhận diện người di chuyển có kích thước tối thiểu tương ứng.
Chức năng HOG kết hợp với SVM có thể bỏ qua khoảng 70% để phát hiện người di chuyển, nhưng độ chính xác của máy dò HOG trong ứng dụng này có thể thấp hơn do người chơi có thể ngã, nhảy hoặc gập người để lấy bóng Do đó, cần một hệ thống dự phòng để phát hiện người chơi khi máy dò HOG gặp lỗi Nhóm đã phát triển một bộ phát hiện và phân loại dựa trên màu sắc, nhằm phát hiện cầu thủ theo màu áo đấu của họ Máy dò này không chỉ phân loại cầu thủ theo đội mà còn loại trừ những "người di chuyển" khác như trọng tài, huấn luyện viên và khán giả Bên cạnh đó, máy dò màu còn xác định người chơi trong hộp HOG, đặc biệt trong những trường hợp mà các cầu thủ đứng quá gần nhau hoặc bị cản trở, khi đó máy dò HOG có thể chỉ trả về một phát hiện duy nhất cho tất cả.
Hình 3-3 Phát hiện cầu thủ sử dụng OpenCV và công cụ phát hiện người di chuyển HOG
3.2.3 Phát hiện và phân loại dựa trên màu sắc
Bộ nhận diện màu sắc giúp phát hiện người chơi trong khung HOG, là vùng hình ảnh xác định người di chuyển nhờ công cụ nhận diện HOG Phát hiện dựa trên màu sắc có thể áp dụng trong hình ảnh lớn hơn, nhưng công cụ HOG cải thiện hiệu suất của bộ dò màu bằng cách giới hạn phạm vi quét và tập trung vào một vài người chơi Điều này giúp giảm thiểu việc phát hiện nhầm các vật thể khác có màu sắc tương tự như áo đấu của cầu thủ, chẳng hạn như chi tiết trên sàn nhà trong sân bóng rổ.
Thiết bị dò màu sử dụng ngưỡng trong không gian HSV để phát hiện màu sắc, mang lại khả năng phân biệt tốt hơn giữa các thay đổi màu so với không gian RGB Việc sử dụng không gian HSV giúp giảm thiểu các kết quả dương ảo do phản xạ từ mặt sàn, điều thường gặp với phương pháp RGB Để phân tích, một tập hợp hình ảnh chứa cầu thủ, trọng tài và khán giả được thu thập, từ đó tính toán các tọa độ H, S và V Các ngưỡng màu được xác định theo phương pháp Otsu, cho phép phân biệt hiệu quả giữa các yếu tố khác nhau dựa trên màu sắc của hai nhóm.
Để phát hiện màu sắc trong hình ảnh, chúng ta cần xác định các ngưỡng cụ thể cho từng màu Ví dụ, màu vàng có giá trị (60o, 100%, 100%) trong không gian HSV, trong khi màu trắng là (0%, 0%, 100%) Nhờ vào các ngưỡng này, chúng ta có thể phân biệt giữa màu vàng và màu trắng bằng cách yêu cầu màu sắc và tọa độ bão hòa cao hơn ngưỡng của màu vàng, đồng thời thấp hơn một ngưỡng nhất định đối với màu trắng.
Việc phát hiện màu sắc là một phương pháp hỗ trợ quan trọng cho máy dò HOG trong trò chơi Khi trò chơi diễn ra, một số người chơi có thể bị che khuất hoặc không được máy dò HOG phát hiện trong một khung hình nhất định Trong những tình huống này, bộ dò màu sắc sẽ được sử dụng để tìm kiếm người chơi bị mất tích, bằng cách thực hiện phát hiện trong khu vực nhỏ xung quanh vị trí của họ trong khung hình trước đó Phương pháp này hoạt động hiệu quả nhờ vào việc sử dụng video với tốc độ 24 khung hình/giây, cho phép dự đoán vị trí của người chơi Các điều kiện thay đổi trong việc thêm và loại bỏ người chơi trong quá trình phát hiện sẽ được xử lý bởi thuật toán theo dõi được đề cập trong phần phụ tiếp theo.
Hình 3-5 Phát hiện cầu thủ bằng HOG
Sau khi phát hiện, mục tiêu tiếp theo là thiết lập định vị từng khung hình của người chơi để hiểu tổng thể trận đấu Để thực hiện điều này, một thuật toán theo dõi đã được sử dụng để theo dõi chuyển động của người chơi, dựa vào thông tin từ các khung hình trước đó nhằm xác định các điều kiện ban đầu Chúng tôi đã xử lý nhiều tình huống khác nhau trong quá trình này.
Trong tình huống người chơi được nhận diện trong nhiều khung hình liên tiếp, bộ dò HOG và bộ phân loại màu sắc phát hiện người chơi qua các khung hình quay lại Với tốc độ 24 khung hình/giây, vị trí của người chơi giữa các khung hình có sự liên quan cao, dẫn đến việc các hộp phát hiện có độ chồng chéo lớn Khi đó, vị trí của người chơi sẽ được cập nhật với vị trí mới và lưu lại.
Trong tình huống 2, một người chơi có thể không được phát hiện bởi máy dò HoG nhưng có thể được xác định bằng máy dò màu trong khu vực lân cận HOG không phát hiện mọi người chơi trong mọi khung hình do người chơi có thể đang chuyển động, bị mờ hoặc ở tư thế không thể nhận diện Chúng tôi tìm kiếm người chơi bị mất trong phạm vi 20 pixel xung quanh vị trí của họ trong khung trước đó Nếu máy dò màu xác định được cầu thủ có cùng màu áo trong khu vực này, nó sẽ khớp cầu thủ với vị trí mới Nếu có nhiều cầu thủ trong khu vực, hệ thống sẽ khớp cầu thủ với vị trí gần nhất trước đó Như vậy, việc không phát hiện HOG trong một khung hình không dẫn đến việc mất định vị của cầu thủ.
- Tình huống 3 & 4: Thêm và Bỏ: Hai tình huống tiếp theo, mặc dù khá khác nhau, nhưng có cách giải quyết tương tự:
Trong tình huống 3, một người chơi ban đầu không được phát hiện trong khung hình đầu tiên nhưng đã được tìm thấy sau đó, được gọi là một phần bổ sung Máy dò HOG không thể nhận diện cầu thủ này trong khung hình đầu tiên, nơi có 9 cầu thủ được phát hiện trên sân (Hình 3-6a) Tuy nhiên, trong khung hình tiếp theo, cầu thủ thứ 10 đã được thêm vào (Hình 3-6b).
Trong tình huống khi một người chơi đã được xác định trước đó nhưng bị mất dấu do các đồng đội hợp nhất, bộ phân loại màu sắc không thể phân biệt họ, dẫn đến sự sụt giảm thông tin Ví dụ, trong một khung hình, có thể phân biệt năm cầu thủ, nhưng khi họ hội tụ, chỉ còn ba khung có thể nhận diện Để giải quyết vấn đề này, một bộ tương quan khoảng cách tối thiểu được áp dụng, lưu trữ khung và vị trí của từng cầu thủ Nếu một cầu thủ bị bỏ rơi, phương pháp HoG sẽ phát hiện lại anh ta sau một thời gian, nhưng vị trí sẽ không được thiết lập trước đó Thuật toán kiểm tra khoảng cách cho phép giữa cầu thủ bị bỏ rơi và những người chơi khác, và nếu có cầu thủ nào gần đó, anh ta sẽ trở lại vị trí cũ Tuy nhiên, nếu không có ai gần, cầu thủ mới sẽ được thêm vào dữ liệu theo dõi Việc theo dõi này hoạt động hiệu quả nhất với 3 đến 4 cầu thủ, nhưng phụ thuộc nhiều vào thông tin phát hiện Khi cầu thủ bị che khuất, việc dự đoán khoảng cách tối thiểu trở nên khó khăn, và chuyển động của cầu thủ là phức tạp Giải pháp tốt nhất cho vấn đề này là sử dụng nhiều góc nhìn camera ổn định, điều này thường không có sẵn trong các chương trình phát sóng nhưng có thể được áp dụng trong môi trường chuyên nghiệp như đội NBA.
Hình 3-6 Các tình huống khác nhau có thể xảy ra trong trận đấu
3.2.5 Xây dựng sơ đồ trận đấu:
Bước cuối cùng trong dự án là xác định vị trí của người chơi từ góc nhìn trên cao của sân Bằng cách sử dụng kích thước của sân, chúng ta có thể xác định ma trận raphy đồng nhất 3x3 thông qua biến đổi affine.
Vị trí của từng người chơi sẽ được nhân với phép đồng nhất ma trận để chiếu họ vào sân mô hình 2D, như minh họa trong Hình 3-7.
Hình 3-7 So sánh giữa những người chơi được phát hiện và hình chiếu trong sân.
Phân tích và kết quả
Chúng tôi đã phát triển một thuật toán để phân tích vị trí của các cầu thủ trong suốt trận đấu Hình 3-8 minh họa bản đồ nhiệt định vị của các cầu thủ, cho thấy đội trắng duy trì chiến thuật phòng thủ liên tục, trong khi đội vàng chỉ vượt qua hàng phòng thủ của đội trắng để thực hiện các cú ném rổ.
Hình 3-8 Bản đồ nhiệt vị trí cầu thủ của hai đội vàng và trắng
Một bản đồ nhiệt cho trận đấu giữa Michigan (màu vàng) và Syracuse (màu đỏ) đã được tạo ra, cho thấy sự phân bố của người chơi trên sân phù hợp với video Điều này chứng tỏ rằng tính năng phát hiện người chơi và tính năng đồng nhất đang hoạt động hiệu quả, cung cấp dữ liệu hữu ích về vị trí của người chơi trên sân.
Hình 9 Bản đồ nhiệt vị trí cầu thủ của đội vàng và đội đỏ
Để xác thực kết quả theo dõi, chúng tôi chia trận đấu giữa Syracuse và Michigan thành hai đội Phân tích vị trí cầu thủ từ Michigan, chúng tôi thu được hình ảnh tương thích với Hình 3-10 cho 60 khung hình đầu tiên, cho thấy việc gán nhãn chính xác cho 5 cầu thủ của đội Michigan Hơn nữa, các chuyển động cũng phù hợp với những gì được thể hiện trong video.
Hình 3-10 Vị trí cầu thủ từ đội Michigan, mỗi thành viên là một màu khác nhau và sự chuyển động của cầu thủ tương thích với video
Hệ thống theo dõi và nhận dạng người chơi của chúng tôi nổi bật với khả năng nắm bắt chuyển động chính xác của một cầu thủ duy nhất, ngay cả khi di chuyển qua nhiều người khác Điều này được thể hiện rõ qua Hình 3-11.
Hình 3-11 Chúng ta có thể thấy 1 thành viên của đội Michigan được theo dõi theo 1 phân đoạn màu trên toàn sân trong 1 đoạn video
THỰC NGHIỆM
Các bước tiến hành thực nghiệm
- Bước 1: Mở video cần mô phỏng, mở phần mềm Matlab và mở phần mềm Pycharm
- Bước 2: Khởi chạy chương trình Pycharm
- Bước 3: Hệ thống sẽ hiện ra quá trình các cầu thủ thi đấu với hai khung màu theo dõi riêng biệt của mỗi đội
- Bước 4: Hệ thống sẽ tự kết thúc nếu chạy xong quá trình theo dõi hoặc có thể kết thúc ngay lúc nhấn chữ P
- Bước 5: Khởi chạy chương trình Matlab
Hệ thống sẽ hiển thị quá trình di chuyển của cầu thủ từ hai đội trên một mặt phẳng 2D, mô phỏng lại sân bóng rổ thực tế.
- Bước 7: Hệ thống sẽ kết thúc khi chạy xong chương trình
- Nhận diện được cầu thủ trong video đã chọn trước đó qua các khung hình
Hình 4-1 Giao diện của trận đấu bóng rổ
- Theo dõi cầu thủ bằng các khung đã quy ước trước đó
Hình 4-2 Theo dõi cầu thủ bằng các khung hình
- Sự chuyển động của các chấm tròn trên mặt phẳng 2D mô phỏng lại sân đấu bóng rổ.
Hình 4-3 Vị trí cầu thủ trên sân bóng rổ theo mô phỏng 2D