Tải bản đầy đủ (.docx) (33 trang)

HỆ THỐNG THEO dõi CHUYỂN ĐỘNG cầu THỦ BÓNG rổ, có CODE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.59 MB, 33 trang )

HỆ THỐNG THEO DÕI CHUYỂN
ĐỘNG CẦU THỦ BÓNG RỔ
CÓ CODE


MỤC LỤC
LỜI CẢM ƠN........................................................................................................I
DANH MỤC CÁC HÌNH VẼ..............................................................................V
DANH MỤC CÁC TỪ VIẾT TẮT....................................................................VI
CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI.............................................................1
1.1

Giới thiệu đề tài..........................................................................................1

1.2

Mục đích nghiên cứu..................................................................................1

1.3

Đối tượng nghiên cứu.................................................................................2

1.4

Phạm vi nghiên cứu....................................................................................2

1.5

Dự kiến kết quả..........................................................................................2

CHƯƠNG 2. CƠ SỞ LÝ THUYẾT....................................................................3


2.1 Giới thiệu phần mềm Python..........................................................................3
2.2 Công cụ OpenCV...........................................................................................4
2.3 Xử lý ảnh........................................................................................................5
2.3.1 Tổng quan về xử lý ảnh............................................................................5
2.3.2 Xử lý ảnh bằng OpenCV của Python.......................................................5
2.4 Tổng quan về Matlab......................................................................................5
2.5 Tổng quan về Object Tracking.......................................................................6
2.5.1 Khái niệm................................................................................................6
2.5.2 Phân loại..................................................................................................7
2.5.3 Phương pháp Object Tracking trong OpenCV.........................................8
CHƯƠNG 3. GIẢI THUẬT VÀ ĐIỀU KHIỂN................................................10
3.1 Nguyên lí làm việc của hệ thống..................................................................10
3.2 Phương pháp và giải thuật............................................................................10
3.2.1 Nhận diện sân đấu:.................................................................................11
3.2.2 Nhận diện người di chuyển bằng HOG ( Histogram of oriented
Gradients).......................................................................................................11
3.2.3 Phát hiện và phân loại dựa trên màu sắc................................................13
3.2.4 Theo dõi.................................................................................................15
3.2.5 Xây dựng sơ đồ trận đấu:.......................................................................17
3.3 Phân tích và kết quả.....................................................................................18
CHƯƠNG 4. THỰC NGHIỆM..........................................................................22
4.1 Các bước tiến hành thực nghiệm..................................................................22


4.2 Kết quả thực nghiệm....................................................................................22
4.2.1 Kết quả trên Python...............................................................................22
4.2.2 Kết quả trên Matlab...............................................................................23
CHƯƠNG 5. KẾT LUẬN...................................................................................24
5.1 Kết luận........................................................................................................24
5.2 Hướng phát triển..........................................................................................24

TÀI LIỆU THAM KHẢO...................................................................................25
PHỤ LỤC 1: CHƯƠNG TRÌNH PYTHON......................................................26
PHỤ LỤC 2: CHƯƠNG TRÌNH MATLAB......................................................27


DANH MỤC CÁC HÌNH VẼ
HÌNH 2.1: VÍ DỤ VỀ VIỆC THEO DÕI DUY NHẤT MỘT ĐỐI TƯỢNG..........7
HÌNH 2.2: VÍ DỤ VỀ VIỆC THEO DÕI NHIỀU ĐỐI TƯỢNG............................8
HÌNH 3.1: SƠ ĐỒ HỆ THỐNG............................................................................10
HÌNH 3.2: HÌNH ẢNH PHÁT HIỆN ĐƯỜNG BIÊN CỦA HỆ THỐNG............11
HÌNH 3.3: PHÁT HIỆN CẦU THỦ BẰNG OPENCV VÀ HOG........................13
HÌNH 3.4: RGB VÀ HSV.....................................................................................14
HÌNH 3.5: PHÁT HIỆN CẦU THỦ BẰNG HOG................................................15
HÌNH 3.6: CÁC TÌNH HUỐNG KHÁC NHAU CĨ THỂ XẢY RA TRONG
TRẬN ĐẤU .........................................................................................................17
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 .........................................................................18
HÌNH 3.8: BẢN ĐỒ NHIỆT VỊ TRÍ CẦU THỦ CỦA HAI ĐỘI VÀNG VÀ
TRẮNG

.........................................................................................................18

HÌNH 3.9: BẢN ĐỒ NHIỆT VỊ TRÍ CẦU THỦ CỦA ĐỘI VÀNG VÀ ĐỘI
ĐỎ

.........................................................................................................19

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.............................................................................20
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 TRONG 1
ĐOẠN VIDEO......................................................................................................20
HÌNH 4.1: GIAO DIỆN CỦA TRẬN ĐẤU BĨNG RỔ.......................................22
HÌNH 4.2: THEO DÕI CẦU THỦ BẰNG CÁC KHUNG HÌNH.........................23
HÌNH 4.3: VỊ TRÍ CẦU THỦ TRÊN SÂN BĨNG RỔ THEO MÔ PHỎNG
2D.

.........................................................................................................23


DANH MỤC CÁC TỪ VIẾT TẮT
MATLAB

Matrix Laboratory

ID

Identification

SOT

Single Object Tracking

MOT

Mutliple Object Tracking

HOG

Histogram of Oriented Gradients


SVM

Support vector machine


Trang 1/28

CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI
1.1 Giới thiệu đề tài
- Giới thiệu:
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
ngày càng được chú trọng trong thời gian gần đây. Khi mà lợi nhuận từ đài
truyền hình, sân vận động đang được tăng lên đáng kể, các đội bóng cần chạy
đua về thành tích để thu hút cổ động viên của mình. Qua đó việc thu thập các
số liệu thống kê về vận động viên giúp ích rất nhiều đối với các đội, chẳng hạn
như quảng đường chạy trong trận đấu, có thể cung cấp thơng tin về sức khỏe
của người chơi. Hơn nữa, việc nhận diện người chơi theo thời gian thực có giá
trị rất lớn đối với việc xác định cự ly đội hình, chiến thuật của mình và đối thủ,
đồng thời có thể đưa ra các dự đoạn thông tin chi tiết về khả năng chiến thắng
trong một số trận đấu. Qua đó, đề tài này có thể thu thập thơng tin liên quan
đến các vị trí của các cầu thủ trong sân, cũng như dữ liệu liên quan đến phong
cách chơi của mỗi đội. Những thông tin như vậy có thể rất quan trọng đối với
chiến thắng của các trận đấu, nếu được huấn luyện viên tận dụng và phân tích
triệt để.
- Chức năng:
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.
- Ứng dụng:
Có thể sử dụng mơ hình này áp dụng cho các trận đấu bóng rổ hoặc các mơn

thể thao tương tự như bóng chuyền, bóng đá, cầu lơng,... Hoặc có thể phát triển
để nhận diện các vật thể khác như ơ tơ, xe máy,...
1.2 Mục đích nghiên cứu
- Dựa trên những kiến thức đã học về xử lý ảnh số, thực hành mô phỏng
Matlab. Tiến hành nghiên cứu cách viết lập trình ngơn ngữ Python dựa trên nền


Trang 2/28

tảng ngôn ngữ C và kết hợp với Matlab để cho ra hệ thống điều khiển như
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.
1.3 Đối tượng nghiên cứu
- Matlab & Simulink
- Python & Pycharm
- Video trận đấu bóng rổ giữa hai đội của giải NBA của Mỹ
1.4 Phạm vi nghiên cứu
Ở góc độ là đồ án chuyên ngành, hạn chế về mặt thời gian, kinh phí và ảnh
hưởng bởi dịch bệnh nên khơng thể làm mơ hình thực tế cho nên phạm vi
nghiên cứu chỉ là những video từ những nguồn trên mạng Internet.
1.5 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.


Trang 3/28

CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu phần mềm Python

- Giới thiệu: Python là ngơn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ,
được tạo ra bởi Guido van Rossum. Nó dễ dàng để tìm hiểu và đang nổi lên
như một trong những ngơn ngữ lập trình nhập môn tốt nhất cho người lần đầu
tiếp xúc với ngơn ngữ lập trình. Python hồn tồn tạo kiểu động và sử dụng cơ
chế cấp phát bộ nhớ tự động. Python có cấu trúc dữ liệu cấp cao mạnh mẽ và
cách tiếp cận đơn giản nhưng hiệu quả đối với lập trình hướng đối tượng. Cú
pháp lệnh của Python là điểm cộng vơ cùng lớn vì sự rõ ràng, dễ hiểu và cách
gõ linh động làm cho nó nhanh chóng trở thành một ngôn ngữ lý tưởng để viết
script và phát triển ứng dụng trong nhiều lĩnh vực, ở hầu hết các nền tảng.
- Chức năng:
+ 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).
+ Nhiều cấp độ của cơ cấu tổ chức: chức năng, lớp, mơ-đun và gói. Những điều
này hỗ trợ trong việc tổ chức mã. Một ví dụ tuyệt vời và lớn là thư viện chuẩn
Python.
+ Biên dịch nhanh chóng sang mã byte. Mã nguồn được biên dịch thành mã
byte mà không cần bước biên dịch riêng biệt. 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.
+ Python hướng đối tượng cung cấp một cách nhất quán để sử dụng các đối
tượng: mọi thứ đều là một đối tượng. Và, trong Python, rất dễ dàng để triển
khai các kiểu đối tượng mới (được gọi là các lớp trong lập trình hướng đối
tượng).
+ Các phần mở rộng trong C và C ++ Các mô-đun mở rộng và các loại phần
mở rộng có thể được viết bằng tay. Ngồi ra cịn có các cơng cụ hỗ trợ việc này,
chẳng hạn như SWIG, nhâm nhi, Pyrex.


Trang 4/28


+ Jython là phiên bản Python "chơi tốt với" Java.
2.2 Công cụ OpenCV
- Giới thiệu:
+ Project OpenCV được bắt đầu từ Intel năm 1999 bởi Gary Bradsky. OpenCV
viết tắt cho Open Source Computer Vision Library. OpenCV là thư viện nguồn
mở hàng đầu cho Computer Vision và Machine Learning, và hiện có thêm tính
năng tăng tốc GPU cho các hoạt động theo real-time.
+ OpenCV được phát hành theo giấy phép BSD (Dành riêng cho các loại mã
nguồn mở nhằm cho phép sử dụng miễn phí và hạn chế tối đa các rào cản luật
lệ thông thường. Giấy phép BSD là một giấy phép đơn giản chỉ yêu cầu tất cả
các mã được cấp phép theo giấy phép BSD nếu được phân phối lại ở định dạng
mã nguồn.), do đó nó miễn phí cho cả học tập và sử dụng với mục đích thương
mại. Nó có trên các giao diện C++, C, Python và Java và hỗ trợ Windows,
Linux, Mac OS, iOS và Android. OpenCV được thiết kế để hỗ trợ hiệu quả về
tính tốn và chun dùng cho các ứng dụng real-time (thời gian thực). Nếu
được viết trên C/C++ tối ưu, thư viện này có thể tận dụng được bộ xử lý đa lõi
(multi-core processing).
- 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).
+ CUDA acceleration (gpu).


Trang 5/28

2.3 Xử lý ảnh

2.3.1 Tổng quan về xử lý ảnh
Xử lý ảnh là một phân ngành trong xử lý số tín hiệu với tín hiệu xử lý là ảnh.
Đây là một phân ngành khoa học mới rất phát triển trong những năm gần đây.
Xử lý ảnh gồm 4 lĩnh vực chính: xử lý 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 của xử lý ảnh đem lại rất nhiều lợi
ích cho cuộc sống của 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à OpenCVPython.
- 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.
2.4 Tổng quan về Matlab
- Giới thiệu:
+ 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 tốn kỹ thuật số.
+ Matlab cho phép bạn sử dụng ma trận để tính tốn các con số, vẽ thơng tin
cho các hàm và đồ thị, chạy các thuật toán, tạo giao diện người dùng và liên kết
với các chương trình máy tính được viết bằng nhiều ngơn ngữ lập trình khác.
- Tính năng chính:
+ Matlab là một ngơn ngữ lập trình cao cấp để tính tố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
đề.


Trang 6/28

+ Nó cung cấp một thư viện lớn các hàm tốn học để giải các 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 tốn dựa trên Matlab với các ứng dụng
bên ngồi và các ngơn ngữ khác như C, Java, NET và Microsoft Excel.
- Ứng dụng của Matlab:
+ 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 tốn tài chính, sinh học.
+ Ứng dụng trong kiểm tra, tính tốn và đo lường.
+ Hệ thống điều khiển.
2.5 Tổng quan về Object Tracking
2.5.1 Khái niệm
- Object Tracking là bài toán theo dõi một hoặc nhiều đối tượng chuyển động
theo thời gian trong một video. Hiểu một cách đơn giản nhất, nó là bài toán ở
mức độ cao hơn so với object detection, khi đối tượng được xử lí khơng đơn
giản là một hình ảnh mà là một chuỗi các hình ảnh là video.
- Đương nhiên không chỉ đơn giản như vậy, việc tracking bên cạnh việc xác
định các bounding box, còn quan tâm đến khá nhiều yếu tố hoặc nhiễu khác
nhau:
+ ID của mỗi đối tượng cần đảm bảo luôn không đổi qua các frame.


Trang 7/28


+ 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.
2.5.2 Phân loại
- Object Tracking có thể chia thành 2 cách tiếp cận chính:
+ Single Object Tracking (SOT): Cái tên nói lên tất cả, Single Object Tracking
tập trung vào việc theo dõi một đối tượng duy nhất trong toàn bộ video. Và tất
nhiên, để biết được cần theo dõi đối tượng nào, việc cung cấp một bounding
box từ ban đầu là việc bắt buộc phải có.

Hình 2-1. Ví dụ về việc theo dõi duy nhất một đối tượng

+ Mutiple Object Tracking (MOT): Mutliple Object Tracking hướng tới các
ứng dụng có tính mở rộng cao hơn. Bài toán cố gắng phát hiện đồng thời theo
dõi tất cả các đối tượng trong tầm nhìn, kể cả các đối tượng mới xuất hiện trong
video. Vì điểu này, MOT thường là những bài tốn khó hơn SOT và nhận được
rất nhiều sự quan tâm của giới nghiên cứu.


Trang 8/28

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 : Khi xử lí video, Online Tracking chỉ sử dụng frame hiện tại
và frame ngay trước đó để tracking. Cách xử lí này có thể sẽ làm giảm độ chính
xác của thuật tốn, tuy nhiên nó lại phản ảnh đúng cách vấn đề được xử lí trong
thực tế, khi mà tính "online" là cần thiết

+ Offline Tracking : Các phương pháp Offline thường sử dụng tồ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ó đến 8 phương pháp Object Tracking khác nhau (đó là
OOSTING Tracker, MIL Tracker, KCF Tracker, CSRT Tracker, MedianFlow
Tracker, TLD Tracker, MOSSE Tracker và GOTURN Tracker). Tuy nhiên, theo
như thông thường sử dụng thì chỉ dùng 3 cái:
+ 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.


Trang 9/28

+ 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.


Trang 10/28

CHƯƠNG 3. GIẢI THUẬT VÀ ĐIỀU KHIỂN
3.1 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.

3.2 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 tố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


Trang 11/28

3.2.1 Nhận diện sân đấu:
- Các khung hình được thu thập từ video, ban đầu chuyển đổi từ RGB sang mơ
hình màu HSV ( màu sắc, độ bão hịa, và giá trị). Sau đó, chúng ta tập trung
vào mặt phẳng H để tạo ra một mơ hình nhị phân của hệ thống. Tiến hành
erosion (loại bỏ những pixel nhiễu cơ lập) và diliation (những hình ảnh bị đứt
nét có thể giúp nối liền ảnh lại, làmbổi bật đối tượng trong ảnh) để loại bỏ
những vật thể không liên quan đến trận đấu. Tiếp theo dùng Canny để phát hiện
các đường trong hệ thống. Cuối cùng, chúng ta thực hiện 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
Gradients)
- Phần tiếp theo là nhận diện người di chuyển bằng thuật toán Gistogram of
Oriented Gradients (HOG). HOG được sử dụng chủ yếu để mơ tả hình dạng và

sự xuất hiện của một vật trong ảnh dựa trên các điểm xám của bức ảnh. Trong
khi rất khó để thiết lập các đặc điểm xác định cho các khung này để phát hiện
một đối tượng nhất định. Machine learning classifiers như là support vector
machine (SVM) có thể được sử dụng để xác định một đối tượng mong muốn
trong ảnh dựa trên dữ liệu được traning. Để phát hiện người di chuyển, khơng
có tính năng nào có thể xử lý tốt hơn HOG. Tuy nhiên, hiệu suất có thể được
cải thiện bằng cách sử dụng các tính năng bổ sung để cung cấp them thông tin.


Trang 12/28

Đối với đề tài này chúng ta đã sử dụng cơng cụ dị tìm HOG từ OpenCV. Bởi
OpenCV có bộ dữ liệu mặc định để nhận diện người di chuyển và việc tính
tốn tính năng HOG và SVM có thể được phát triển hiệu quả. Chúng ta đã sử
dụng tập dữ liệu “Daimler” phát hiện người di chuyển. Công cụ này được
trainning bằng cách sử dụng kích thước khung hình 48 x 96 pixel. Vì vậy, cơng
cụ HOG có thể nhận diện người di chuyển có kích thước ít nhất là như vậy.
- Các chức năng HOG với SVM có khả năng bỏ qua khoảng 70% để phát hiện
người di chuyển. Tuy nhiên, đối với ứng dụng cụ thể này, độ chính xác của máy
dị HOG dự kiến sẽ nhỏ hơn, vì người chơi có thể ngã, nhảy hoặc gập người để
lấy bóng và do đó máy dị HOG sẽ khơng phát hiện ra. Vì vậy, cần có một hệ
thống dự phòng để phát hiện người chơi khi máy dị HOG bị lỗi. Để đạt được
mục tiêu này, nhóm đã xây dựng một bộ phát hiện và phân loại dựa trên màu
sắc. Máy dò dựa trên màu sắc này phát hiện các cầu thủ dựa trên màu áo đấu
của họ. Mục đích của máy dị này là dị lại lần hai. Thứ nhất, nó có trách nhiệm
phân loại các cầu thủ theo đội của họ cũng như loại trừ những “người di
chuyển” khác có thể bị phát hiện bởi bộ dò HOG như trọng tài, huấn luyện
viên, khán giả, chẳng hạn. Thứ hai, máy dò màu sẽ xác định người chơi trong
hộp HOG. Thông thường, một số người chơi sẽ ở quá gần nhau hoặc bị cản trở
một phần bởi những người chơi khác. Trong những tình huống này, máy dị

HOG có thể trả về một (hộp) phát hiện duy nhất cho tất cả những người chơi
đó.


Trang 13/28
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 thực hiện phát hiện người chơi trong khung HOG, là
vùng hình ảnh ban đầu xác định là người di chuyển bởi công cụ nhận diện
HOG. Phát hiện dựa trên màu sắc cũng có thể được sử dụng trong một hình ảnh
lớn hơn (khơng nhất thiết chỉ trong hộp HOG). Tuy nhiên, cơng cụ HOG có thể
cải thiện đáng kể hiệu suất của bộ dị màu này, vì các khung HOG giới hạn
phạm vi quét, chỉ tập trung vào một vài người chơi. Do đó, các vật thể khác có
thể có cùng màu với áo đấu của cầu thủ, chẳng hạn như các chi tiết trên sàn nhà
thường thấy trong các sân bóng rổ, sẽ khơng được phát hiện thường xuyên như
khi sử dụng toàn bộ khung ảnh.
- Thiết bị dò màu thực hiện phát hiện bằng cách sử dụng các ngưỡng trong
không gian HSV. Sự lựa chọn của khơng gian HSV đối lập với RGB vì HSV
cho phép phân biệt cao hơn giữa các thay đổi về màu sắc hơn là độ bão hịa và
độ sáng. Ví dụ, ban đầu dựa trên màu RGB được triển khai sẽ liên tục thu được
kết quả dương ảo do phản xạ trên sàn. Đưa ra một tập hợp các hình ảnh chứa
các cầu thủ của cả hai đội, trọng tài, thành viên của khán giả, v.v. Biểu đồ cho
tất cả các tọa độ H, S và V được tính tốn và các ngưỡng được tính bằng
phương pháp của Otsu. ùy thuộc vào màu sắc của hai nhóm, nhiều hơn một
ngưỡng có thể cần thiết để cho phép phân biệt giữa các yếu tố khác có thể xuất
- hiện trong hình ảnh (ví dụ: màu vàng và sàn). Khi đã biết các ngưỡng này,
chúng ta có thể lấy ra các biểu thức logic để phát hiện màu sắc. Ví dụ: màu
vàng tương ứng với (60o, 100%, 100%) trong không gian HSV, trong khi màu
trắng tương ứng với (0%, 0%, 100%). Do đó, 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 tương ứng của chúng đối với màu vàng và thấp hơn một ngưỡng nhất
định đối với thông tin màu trắng.


Trang 14/28

Hình 3-4. RGB và HSV

- Việc phát hiện màu cũng đóng một vai trị quan trọng như một bản sao lưu
của máy dò HOG. Khi trò chơi tiếp tục, một số người chơi có thể bị cản trở một
phần bởi những người chơi khác hoặc đơn giản là họ có thể khơng được máy
dị HOG phát hiện trong một khung hình nhất định. Trong các tình huống khác
nhau này, bộ dò dựa trên màu sắc sẽ được gọi để tìm người chơi bị mất tích
bằng cách thực hiện phát hiện trong vùng lân cận nhỏ của hộp tương ứng từ
khung trước đó. Điều này hoạt động khá tốt vì chúng tơi sử dụng video có tốc
độ 24 khung hình / giây, do đó, người chơi dự kiến sẽ ở xung quanh nơi anh ta
đã ở trong khung hình trước đó. Các điều kiện khác nhau này trong việc thêm
người chơi và bỏ người chơi trong quá trình phát hiện được thực hiện bởi thuật
toán theo dõi được thảo luận trong phần phụ tiếp theo.

Hình 3-5. Phát hiện cầu thủ bằng HOG


Trang 15/28

3.2.4 Theo dõi
- Sau khi được 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 từng người chơi để hiểu tổng thể trận đấu. Do đó, một thuật tốn theo dõi
đã theo dõi chuyển động của người chơi. Thuật tốn này sử dụng thơng tin từ

các khung trước đó để theo dõi các điều kiện ban đầu. Chúng tơi đã xử lý các
tình huống sau đây.
- Tình huống 1: Người chơi được nhận diện trong nhiều khung hình liên tiếp:
Trong trường hợp này, người chơi được phát hiện bởi bộ dò HOG và bộ phân
loại màu sắc trong các khung hình quay lại. Vì các khung hình được chụp ở tốc
độ 24 khung hình / giây nên vị trí của người chơi từ khung hình này sang
khung hình tiếp theo có liên quan rất cao. Do đó, những hộp được phát hiện
này sẽ có độ chồng chéo cao. Trong trường hợp này, vị trí của người chơi này
được cập nhật với vị trí mới, và vị trí mới được lưu.
- Tình huống 2: Ước tính khu vực lân cận: Trong tình huống này, một người
chơi khơng được phát hiện bởi máy dị HoG, nhưng có thể được tìm thấy bằng
máy dị màu trong khu vực lân cận. Với kịch bản từng khung hình này, HOG
khơng phát hiện mọi người chơi trong mọi khung hình. Người chơi có thể đang
chuyển động và bị mờ, cúi người hoặc theo một cách nào đó khơng thể phát
hiện được đối với máy dị HOG trong một khung hình cụ thể. Một người chơi
được phát hiện trong khung trước đó sẽ khơng có mối tương quan với một
người chơi trong khung hiện tại. Chúng tơi tìm kiếm trình phát bị mất này trong
phạm vi 20 pixel được giới hạn xung quanh vị trí của trình phát trong khung
trước đó. Nếu máy dị màu có thể xác định một cầu thủ có cùng màu áo trong ơ
này, nó sẽ khớp cầu thủ này với vị trí mới này. Nếu nhiều người chơi được tìm
thấy trong hộp này, nó sẽ khớp người chơi này với vị trí trước đó gần nhất. Do
đó, việc mất phát hiện HOG cho một khung hình khơng dẫn đến việc mất định
vị của trình phát.
- 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ự:


Trang 16/28

+ 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 đó. Trong trường hợp này, một
người chơi khơng được phát hiện trong khung hình đầu tiên. Máy dị HOG ban
đầu khơng thể tìm thấy người chơi này. Tình huống này sẽ được gọi là một
phần bổ sung. Trong khung hình ban đầu, 9 cầu thủ được phát hiện trên sân
trong Hình 3-6a; tuy nhiên, trong khung hình sau đó, cầu thủ thứ 10 này đã
được thêm vào trong Hình 3-6b.
+ Tình huống 4: Một người chơi đã được xác định trước đó bởi phương pháp
HOG và bộ phận loại màu sắc đã bị loại bỏ. Điều này sẽ xảy ra khi những
người chơi trong cùng một đội hợp nhất với nhau và bộ phân loại màu sắc
không thể phân biệt họ là những người chơi riêng biệt. Tình huống này sẽ được
coi là một sự sụt giảm. Ví dụ trong khung đầu tiên, người ta có thể phân biệt
năm cầu thủ của đội vàng trong Hình 3-6a. Tuy nhiên, vì các người chơi hội tụ
nên chỉ có 3 khung màu vàng có thể phân biệt được trong Hình 3-6c. Do đó,
thơng tin bị mất. Các tình huống này có một giải pháp kết hợp, một bộ tương
quan khoảng cách tối thiểu. Trên mỗi khung hình, các khung và vị trí được lưu
trữ. Nếu một người chơi bị bỏ rơi, sau một khoảng thời gian, phương pháp
HoG sẽ phát hiện ra anh ta một lần nữa. Bởi vì khơng có khung nào tương quan
với anh ta từ trước, vị trí của anh ta sẽ khơng được thiết lập trước đó. Thuật
tốn kiểm tra xem liệu một người chơi bị bỏ rơi có tương đối gần với vị trí của
anh ta hay khơng. Khoảng cách cho phép là khoảng cách cố định nhân với số
khung hình kể từ khi người chơi này bị mất. Nếu người chơi này ở trong
khoảng cách với bất kỳ người chơi nào đã bị che trước đó, thì anh ta quay trở
lại với vị trí vốn có của anh ta, chống lại vấn đề bị ẩn đi. Tuy nhiên, nếu khơng
có ai đứng gần phạm vi của anh ta, người chơi mới được thêm vào dữ liệu theo
dõi, chống lại vấn đề thêm. Thuật tốn theo dõi này giải quyết các tình huống
từ 3 đến 4 cầu thủ là tốt nhất. Bản thân việc theo dõi phụ thuộc nhiều vào thông
tin phát hiện. Vị trí của cầu thủ dự bị và cái sân có thể dẫn đến việc dự đốn
khoảng cách tối thiểu không tốt nếu cầu thủ bị che. Với việc những người chơi
hợp nhất trên sân, việc giải quyết vấn đề ẩn đi là đặc biệt khó khăn. Sự chuyển



Trang 17/28

động của cầu thủ thay đổi khá nhanh và phức tạp, và việc sử dụng chuyển động
gốc của cầu thủ là không phù hợp để khớp vào các cầu thủ bị che cho khung
hình trước đó. Thuật tốn cũng bị ảnh hưởng bởi sự dao động của máy quay.
Giải pháp tốt nhất cho vấn đề thêm và bớt này là có nhiều góc nhìn camera ổn
định, khơng có sẵn cho chúng tơi từ chương trình phát sóng, nhưng sẽ khả dụng
trong môi trường chuyên nghiệp chẳng hạn như một độ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 liên quan đến dự án vị trí của người chơi ở góc nhìn từ trên
xuống của cái sân. Bằng cách có kích thước của cái sân, chúng tơi có thể tìm
thấy ma trận raphy đồng nhất 3x3 được tính bằng cách sử dụng biến đổi affine.
Vị trí của mỗi người chơi sau đó sẽ được nhân với phép đồng nhất ma trận
chiếu chúng vào cái sân mơ hình 2D, như được hiển thị 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.


Trang 18/28

3.3 Phân tích và kết quả
- Trong phần này, chúng tơi sử dụng thuật tốn được phát triển để phân tích vị
trí của những người chơi khi trị chơi diễn ra. Ví dụ, Hình 3-8 cho thấy bản đồ
nhiệt định vị của các cầu thủ khi trận đấu diễn ra. Vị trí của đội tương thích với
video vì chúng ta có thể thấy rằng đội trắng vẫn phịng thủ trong suốt trận đấu
và đội vàng chỉ vượt qua hàng phịng thủ của đội trắng để 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 tương tự có thể được tạo ra cho trận đấu thứ hai giữa
Michigan (được biểu thị bằng màu vàng) và Syracuse (được biểu thị bằng màu
đỏ), Hình 3-9. Chúng ta có thể thấy sự phân bố của người chơi trên sân tương
thích với phân bố được thấy trong video, chỉ ra rằng tính năng phát hiện người
chơi và tính năng đồng nhất của chúng tôi đang hoạt động cùng nhau để cung
cấp cho chúng tơi dữ liệu hữu ích liên quan đến vị trí người chơi trong sân.


Trang 19/28

Hình 9. Bản đồ nhiệt vị trí cầu thủ của đội vàng và đội đỏ.

- Để xác thực thêm kết quả theo dõi của chúng tôi, hãy chia trận đấu giữa
Syracuse và Michigan thành hai đội. Sau đó, nếu chúng tơi chỉ phân tích vị trí
của các cầu thủ từ Michigan, chúng tơi sẽ nhận được hình ảnh tương thích với
Hình 3-10 cho 60 khung hình đầu tiên. Trong đó, chúng ta có thể thấy rằng
chúng ta đang gắn nhãn chính xác cho 5 người chơi bên phía đội Michigan.
Hơn nữa, có những chuyển động dường như tương thích với những chuyển
động đượ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

- Tuy nhiên, điều ấn tượng nhất là khả năng của hệ thống theo dõi và nhận dạng
người chơi của chúng tôi để nắm bắt chuyển động của một người chơi duy nhất



Trang 20/28

di chuyển trên sân, đi qua nhiều người chơi khác và vẫn được gắn nhãn và nhận
dạng chính xác. Điều này có thể được nhận biết 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


×