Quá trình này tương tự như huấn luyện các mô hình object detectionkhác.Kiểm tra mô hình: Sau khi huấn luyện xong, ta sẽ đánh giá mô hình bằng cáchchạy nó trên tập dữ liệu kiểm tra.Phát h
Trang 1TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM
TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG
KHOA CÔNG NGHỆ THÔNG TIN
FINAL PROJECT FOOTBALL PLAYERS DETECTION USING DETR
Người hướng dẫn: THẦY LÊ ANH CƯỜNG Người thực hiện: MAI BẢO THẠCH-520H0490
VÕ THANH DANH-520H0211
Lớp: 20H50302 Khoá: 24
THÀNH PHỐ HỒ CHÍ MINH, NĂM 2022
Trang 2TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM
TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG
KHOA CÔNG NGHỆ THÔNG TIN
FINAL PROJECT FOOTBALL PLAYERS DETECTION USING DETR
Người hướng dẫn: THẦY LÊ ANH CƯỜNG Người thực hiện: MAI BẢO THẠCH-520H0490
VÕ THANH DANH-520H0211
Lớp: 20H50302 Khoá: 24
THÀNH PHỐ HỒ CHÍ MINH, NĂM 2022
Trang 3LỜI CẢM ƠN
Tôi muốn gửi lời cảm ơn đến thầy Lê Anh Cường đã hỗ trợ tôi trong suốt quátrình làm việc trên dự án image captioning này Các đóng góp, ý kiến và sự giúp đỡ củacác thành viên trong nhóm cũng như là thầy Anh Cường đã giúp tôi hiểu rõ hơn về bàitoán Football Players Detection và hoàn thiện mô hình của mình
Tôi cũng muốn gửi lời cảm ơn đến Khoa Công nghệ thông tin đã hết lòng giúp
đỡ, cung cấp các thiết bị, bài giảng để chúng em hoàn thiện đề tài giữa kỳ
Xin chân thành cảm ơn
TP Hồ Chí Minh, ngày tháng năm 2022
Tác giả (ký và ghi rõ họ tên)
i
Trang 4BÁO CÁO ĐƯỢC HOÀN THÀNH
TẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi và được sự hướngdẫn khoa học của Thầy Lê Anh Cường Các nội dung nghiên cứu, kết quả trong đề tàinày là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây Những số liệutrong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giảthu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo
Ngoài ra, trong bài báo cáo còn sử dụng một số nhận xét, đánh giá cũng như sốliệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồngốc
Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm
về nội dung bài báo cáo của mình Trường Đại học Tôn Đức Thắng không liên quan
đến những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện (nếucó)
TP Hồ Chí Minh, ngày tháng năm 2022
Tác giả (ký và ghi rõ họ tên)
ii
Trang 5PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊNPhần xác nhận của giảng viên hướng dẫn
_ _ _ _ _ _
TP Hồ Chí Minh, ngày tháng năm
(kí và ghi rõ họ tên)
Phần đánh giá của giảng viên chấm bài
_
TP Hồ Chí Minh, ngày tháng năm (kí và ghi rõ họ tên)
iii
Trang 6TÓM TẮT
DETR (Detection Transformer) là một mô hình object detection sử dụng kiếntrúc transformer để dự đoán các vật thể trong ảnh Quá trình sử dụng DETR cho việcphát hiện cầu thủ bóng đá bao gồm các bước sau:
Chuẩn bị dữ liệu: Bộ dữ liệu phát hiện cầu thủ bóng đá phải được chuẩn bị vàgắn nhãn trước khi đưa vào huấn luyện mô hình DETR
Huấn luyện mô hình: Sử dụng bộ dữ liệu đã được chuẩn bị, ta có thể huấn luyện
mô hình DETR Quá trình này tương tự như huấn luyện các mô hình object detectionkhác
Kiểm tra mô hình: Sau khi huấn luyện xong, ta sẽ đánh giá mô hình bằng cáchchạy nó trên tập dữ liệu kiểm tra
Phát hiện cầu thủ bóng đá: Sử dụng mô hình đã được huấn luyện, ta có thể dựđoán vị trí và kích thước của các cầu thủ bóng đá trong ảnh
Tối ưu hóa kết quả: Cuối cùng, ta có thể tinh chỉnh kết quả bằng cách sử dụngcác thuật toán để loại bỏ các kết quả trùng lặp và giữ lại kết quả chính xác nhất
iv
Trang 7MỤC LỤC
Contents
LỜI CẢM ƠN i
BÁO CÁO ĐƯỢC HOÀN THÀNH ii
PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN iii
TÓM TẮT iv
MỤC LỤC v
CONTENT OF THE REPORT 1
Chương 1: Mô tả bài toán và hướng giải quyết bài toán 1
Chương 2: Các mô hình sử dụng trong bài 2
2.1 Giới thiệu Datasets: 2
2.2 DETR model: 3
2.2.1 Tổng quát DETR model: 3
2.2.2 Pineline: 4
2.2.3 2D Positional Encoding: 5
2.2.4 Multihead attention: 5
2.2.5 Parallel decoding: 6
2.2.6 Object queries: 7
2.2.7 Learned positional encoding: 8
2.2.8 Object detection head: 8
2.2.9 Direct set prediction 9
2.2.10 Hungarian loss 10
2.2.11 Practical uses 10
Chương 3: Cách xây dựng mô hình Football Players Detection 11
3.1 Xử lí Data: 11
3.1.1 Tạo Coco data loaders: 11
3.1.2 Định nghĩa collate_fn: 13
3.1.3 Tạo các DataLoader: 14
3.1.4 Định nghĩa DETR model: 15
3.1.4.1 common_step: 18
v
Trang 83.1.4.1.1 Regularization L2: 19
3.1.4.2 training_step: 20
3.1.4.3 validation_step: 20
3.1.4.4 configure_optimizers: 21
3.1.4.5 parallel_decode: 22
3.2 Khởi tạo Model: 23
Chương 4: Kết quả 23
TÀI LIỆU THAM KHẢO 25
vi
Trang 9CONTENT OF THE REPORT Chương 1: Mô tả bài toán và hướng giải quyết bài toán
Bài toán Football Players Detection là bài toán phát hiện và định vị các cầu thủbóng đá trong một trận đấu bóng đá Đây là một bài toán quan trọng trong lĩnh vực thểthao và có thể được ứng dụng để phân tích tình huống trên sân bóng, đánh giá kĩ năngcủa các cầu thủ và cải thiện chiến thuật đội bóng
Để giải quyết bài toán này, ta có thể sử dụng mô hình DETR (DetectionTransformer), một mô hình object detection sử dụng kiến trúc transformer để dự đoáncác vật thể trong ảnh Mô hình này có thể được huấn luyện để phát hiện và định vị cáccầu thủ bóng đá trong ảnh
Để sử dụng mô hình DETR cho bài toán Football Players Detection, ta cầnchuẩn bị một bộ dữ liệu phù hợp, chứa ảnh các trận đấu bóng đá và nhãn tương ứng vớicác vị trí của các cầu thủ bóng đá trong ảnh Sau đó, ta có thể huấn luyện mô hìnhDETR với bộ dữ liệu này để nó có thể dự đoán vị trí và kích thước của các cầu thủbóng đá trong ảnh
Sau khi huấn luyện xong, ta có thể sử dụng mô hình để phát hiện và định vị cáccầu thủ bóng đá trong ảnh mới Để tối ưu hóa kết quả, ta có thể sử dụng các thuật toánpost-processing như non-maximum suppression để loại bỏ các kết quả trùng lặp và giữlại kết quả chính xác nhất
Sử dụng mô hình DETR cho bài toán Football Players Detection có thể cải thiệnhiệu quả và độ chính xác của việc phát hiện các cầu thủ bóng đá trong ảnh, đồng thờigiúp cho việc phân tích trận đấu bóng đá và đánh giá kĩ năng của các cầu thủ trở nên dễdàng hơn
1
Trang 10Chương 2: Các mô hình sử dụng trong bài
2.1 Giới thiệu Datasets:
Dataset chúng em sử dụng có nguồn từ Roboflow Dataset này bao gồm tổng1cộng là 663 tấm hình về các trận đấu bóng đá chụp từ góc camera cao Trong đó có 612tấm hình thuộc Training Set, 38 tấm hình thuộc Validation Set và 13 tấm hình TestingSet
Dataset này có 4 versions, chúng em chọn version số 1 để áp dụng vào ModelDETR Để có thể sử dụng, chúng em sẽ import thư viện Roboflow, sau đó tải Datasetvề
2.2 DETR model:
2.2.1 Tổng quát DETR model:
DETR là viết tắt của "DEtection TRansformer", là một mô hình máy học sửdụng kiến trúc Transformer để giải quyết bài toán phát hiện đối tượng trong ảnh Mô
1 https://universe.roboflow.com/roboflow-jvuqo/football-players-detection-3zvbc
2
Trang 11hình DETR giải quyết bài toán phát hiện đối tượng một cách đồng thời, bằng cách đưavào ảnh đầu vào và tạo ra đầu ra dưới dạng danh sách các đối tượng được phát hiện và
vị trí của chúng
So với các phương pháp truyền thống cho bài toán phát hiện đối tượng, như CNN hoặc YOLO, DETR không sử dụng các giai đoạn tiền xử lý khác nhau và cũngkhông sử dụng các khu vực đề xuất (region proposals) hay các mạng tích chập(Convolutional Neural Networks - CNNs) để phát hiện đối tượng Thay vào đó, DETR
R-sử dụng một mô hình Transformer để xử lý toàn bộ ảnh đầu vào và tạo ra các dự đoántrên toàn bộ ảnh, đồng thời phân biệt giữa các đối tượng và nền Điều này giúp DETRtiết kiệm được nhiều thời gian và tối ưu hóa quá trình phát hiện đối tượng
Mô hình DETR bao gồm ba thành phần chính: Encoder, Decoder và Object DetectionHead
Encoder: Encoder có trách nhiệm trích xuất đặc trưng từ ảnh đầu vào Thông
thường nó bao gồm một mạng nơ-ron tích chập (CNN) chuyển đổi giá trị pixel thôthành một tập hợp các bản đồ đặc trưng cấp cao
Decoder: Decoder là một mạng dựa trên transformer xử lý đầu ra của Encoder
và tạo ra một tập hợp các truy vấn đối tượng, được sử dụng để quan sát các phần khácnhau của các bản đồ đặc trưng Decoder có thể được coi là một mô hình ngôn ngữ tạo
ra một chuỗi các truy vấn đối tượng
Object Detection Head: Object Detection Head nhận đầu ra của Decoder và
thực hiện các nhiệm vụ phân loại và suy luận cuối cùng Nó bao gồm một mạng nơ-rontruyền thẳng nhận các vector đặc trưng từ Decoder cùng với các truy vấn đối tượng vàtạo ra các đầu ra phát hiện cuối cùng
Nhìn chung, mô hình DETR khác biệt trong việc thay thế các bước đề xuất vùng
và RoI pooling truyền thống được sử dụng trong các phương pháp phát hiện đối tượngtrước đó bằng một mô hình đào tạo từ đầu đến cuối Điều này đơn giản hóa quá trình
3
Trang 12đào tạo và cho phép tốt hơn trong việc tổng quát hóa cho các lớp đối tượng khác nhau
1 x 1 để giảm chiều của feature từ 2048 xuống 256 Vì vậy, mỗi vị trí trong feature map
có một vector gồm 256 giá trị Trong phần tiếp theo, tôi sẽ gọi số lượng phần tử trongmột vector feature là d_embed
DETR làm phẳng feature map H x W thành HW vector feature và thêm các mãhóa vị trí cho mỗi vector feature Vì Transformer encoder không có tính chất biến đổihoán vị và không có cấu trúc tích hợp để xử lý thông tin vị trí, chúng ta phải bổ sung
mã hóa vị trí cho mỗi vector feature (chi tiết hơn sẽ được giải thích ở phần tiếp theo).Sau đó, DETR truyền các vector embedding đầu vào vào bộ mã hóa giải mã củaTransformer, từ đó tạo ra các vector embedding đầu ra Cuối cùng, DETR đưa mỗivector embedding đầu ra vào FFN phân loại và FFN hộp giới hạn để tạo ra các dự đoáncuối cùng
Do đó, như bạn có thể thấy, DETR không có anchors hoặc NMS, khác vớiYOLO và Faster R-CNN, và pipeline khá đơn giản Tuy nhiên, tôi giải thích ở đây làmột cái nhìn tổng quan, bỏ qua các chi tiết như DETR thực hiện mã hóa vị trí 2D nhưthế nào, điều này sẽ được thảo luận ở phần tiếp theo
2.2.3 2D Positional Encoding:
Trong mô hình DETR transformer, mã hóa vị trí 2D được sử dụng để tích hợpthông tin không gian vào các embedding đặc trưng Điều này là do mạng transformerkhông có cấu trúc tích hợp để xử lý thông tin không gian
4
Trang 32Mã này khởi tạo một thể hiện của lớp Detr với các siêu tham số lr, lr_backbone,
và weight_decay được truyền vào Sau đó, nó lấy một lô dữ liệu từTRAIN_DATALOADER bằng cách sử dụng next(iter( )) và đưa nó vào mô hình đểtính toán đầu ra Đầu ra chứa các thông tin về phát hiện đối tượng, được sắp xếp dướidạng tensor và được trả về dưới dạng đối tượng Outputs
Trong code này, một đối tượng model được khởi tạo bằng cách gọi lớp Detr với
ba tham số:
lr: learning rate (tỷ lệ học) cho bộ tối ưu hóa AdamW được sử dụng để tối
ưu hóa mô hình
lr_backbone: learning rate cho phần backbone của mô hình (vì có thểmuốn giảm tốc độ học cho các phần được huấn luyện trước đó).weight_decay: hệ số suy giảm trọng lượng (hay còn gọi là regularization)được sử dụng trong quá trình tối ưu hóa mô hình
Sau đó, một đối tượng batch được lấy từ tập dữ liệu huấn luyện (được đưa vàoqua TRAIN_DATALOADER) bằng cách gọi hàm next(iter(TRAIN_DATALOADER)).Đây là một batch dữ liệu, bao gồm các tensor có kích thước và kiểu tương tự nhau, baogồm các giá trị pixel của hình ảnh (được đưa vào qua pixel_values) và mặt nạ của cácpixel không bị trống (được đưa vào qua pixel_mask)
Cuối cùng, đầu vào của batch này được đưa vào mô hình bằng cách gọimodel(pixel_values=batch['pixel_values'], pixel_mask=batch['pixel_mask']) Mô hìnhtrả về một đối tượng outputs mà có thể được sử dụng để tính toán giá trị của hàm mấtmát hoặc đánh giá kết quả
24
Trang 333.3 Training Model:
Code thiết đặt một số cài đặt huấn luyện, bao gồm số lượng tối đa các epoch đểhuấn luyện (MAX_EPOCHS), số lượng thiết bị (GPU) để sử dụng (devices=1), kiểuaccelerator để sử dụng (accelerator="gpu"), giá trị cực đại của gradient để cắt(gradient_clip_val=0.1), số lượng batch để tích lũy gradient trước khi cập nhật trọng số(accumulate_grad_batches=8), và tần suất ghi lại tiến trình huấn luyện(log_every_n_steps=5)
25
Trang 343.4 Tạo các box bao quanh vật thể:
Đường dẫn ảnh được chỉ định và được tải lên bằng thư viện Image của PIL Sau đó,ảnh được chuyển đổi thành một mảng NumPy để tiếp tục xử lý
26
Trang 35Biến categories được thiết lập cho các loại đối tượng của bộ dữ liệu, id2label là một từđiển ánh xạ các ID loại đối tượng đến nhãn tương ứng của chúng, và box_annotator là mộtphiên bản của lớp tiện ích BoxAnnotator.
Các chú thích cho ảnh đã tải được lấy bằng cách sử dụng phương thức imgToAnns của
bộ dữ liệu COCO
Ảnh được đọc lại bằng phương thức cv2.imread của OpenCV
Đoạn mã thực hiện suy luận bằng cách sử dụng một mô hình được huấn luyện trước.Ảnh đã tải được tiền xử lý và đưa vào đầu vào của mô hình Đầu ra kết quả được xử lý saubằng phương thức post_process_object_detection, loại bỏ các phát hiện có độ tin cậy thấp và
áp dụng phương pháp non-maximum suppression (NMS) để loại bỏ các hộp chồng chéo Kếtquả được lưu trong biến results Phương pháp này hoạt động bằng cách chọn ra phát hiện có
độ tin cậy cao nhất cho mỗi đối tượng và loại bỏ các phát hiện khác có độ tin cậy thấp hơn vàtrùng với phát hiện cao nhất Việc loại bỏ các phát hiện trùng lắp này giúp giảm thiểu số lượngphát hiện giả, tăng độ chính xác và hiệu suất của hệ thống phát hiện đối tượng
Lớp sv.Detections được sử dụng để định dạng các phát hiện thành một định dạngchuẩn Phương thức with_nms áp dụng NMS cho các phát hiện và đặt một ngưỡng tối thiểucho điểm tin cậy
Biến labels được tạo bằng cách nối các nhãn được dự đoán cho mỗi phát hiện bằngcách sử dụng từ điển id2label
Bước cuối cùng là chú thích ảnh bằng các hộp giới hạn và nhãn của các đối tượng pháthiện được sử dụng phương thức box_annotator.annotate Ảnh kết quả được hiển thị bằngphương thức sv.show_frame_in_notebook
Chương 4: Kết quả4.1 Phương pháp đánh giá Models:
4.1.1 IoU (Intersection over Union):
IoU (Intersection over Union) là một phép đo độ chính xác của các mô hìnhphân đoạn và phát hiện đối tượng trong Computer Vision IoU đo độ chồng lấp giữa dựđoán của mô hình và thực tế trong hình ảnh Nó được tính bằng cách chia diện tích
27
Trang 36phần chung giữa dự đoán và thực tế cho diện tích phần tổng của hai vùng đó IoUthường được sử dụng để đánh giá chất lượng các phân đoạn và phát hiện đối tượng, và
là một trong những metric phổ biến trong lĩnh vực Computer Vision
IoU có giá trị trong khoảng từ 0 đến 1, với giá trị càng gần 1 thì độ chính xáccủa việc phát hiện đối tượng càng cao Tuy nhiên, giá trị IoU tốt phụ thuộc vào loại vậtthể cần phát hiện, cụ thể là kích thước, hình dáng và độ khó của đối tượng Với một sốloại đối tượng như người, ô tô, xe đạp thì IoU tốt phải cao hơn, ít nhất là 0.5 đến 0.7.Nhưng với các đối tượng nhỏ hơn, như chó mèo, IoU có thể thấp hơn một chút Tuynhiên, cần lưu ý rằng chỉ có thể so sánh giá trị IoU giữa các phương pháp phát hiện đốitượng khác nhau khi chúng được đánh giá trên cùng một tập dữ liệu và cùng một tiêuchí
4.1.2 Average Precision:
Average Precision (AP) là một chỉ số đánh giá độ chính xác của mô hình objectdetection Chỉ số này tính toán độ chính xác của mô hình trong việc dự đoán vị trí và
độ chắc chắn của các đối tượng được phát hiện trong bức ảnh
Trong bài toán football players detection, mô hình DETR có thể được sử dụng
để phát hiện và phân loại cầu thủ trong bức ảnh Khi thực hiện đánh giá với các bứcảnh kiểm tra, một số đối tượng cầu thủ sẽ được phát hiện và định vị trên ảnh Tuynhiên, không phải tất cả các dự đoán này đều chính xác, do đó cần có một chỉ số đánhgiá để xác định độ chính xác của mô hình
Trong trường hợp này, AP được sử dụng để đánh giá độ chính xác của mô hìnhDETR trong việc phát hiện cầu thủ trong bức ảnh AP tính toán tổng trung bình diệntích phủ lên các đối tượng (cầu thủ) với giá trị ngưỡng IoU được chọn, sau đó tính toándiện tích dưới đường cong Precision-Recall từ các kết quả dự đoán đó Giá trị AP càngcao thì mô hình phát hiện và định vị đối tượng càng tốt
28