Phát Hiện Vật Thể Bay: Đại Học Đà Nẵng Trường Đại Học Bách Khoa

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

ĐẠI HỌC ĐÀ NẴNG

TRƯỜNG ĐẠI HỌC BÁCH KHOA

khoa điện tử - viễn thông

PHÁT HIỆN VẬT THỂ BAY

Project based learning 4

Sinh viên thực hiện: Giáo viên hướng dẫn:


Phạm Minh Tùng TS. Trần Thị Minh Hạnh
Nguyễn Huỳnh Tiến
Trần Văn Đạt

Ngày 4 tháng 5 năm 2024


Mục lục
1 Giới thiệu 2

2 Bộ dữ liệu 2

3 Quá trình train 3


3.1 Mô hình sử dụng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2 Kết quả sau khi train . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

4 YOLOv1 6
4.1 Kiến trúc mô hình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2 Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.3 Hàm mất mát . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.4 YOLOv1 limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

5 YOLOv5 8
5.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.1.1 Feature pyramid networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.1.2 Spatial pyramid pooling fast . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.1.3 CSP_Darknet53 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.1.4 Non-maximum suppression . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Tài liệu tham khảo 13

1
1 Giới thiệu
Drone là một loại thiết bị bay không người lái (UAV - Unmanned Aerial Vehicle) được điều
khiển từ xa hoặc tự động bằng máy tính hoặc điều khiển từ xa. Chúng thường được sử dụng cho
nhiều mục đích khác nhau, từ quân sự và an ninh đến công nghiệp, giải trí, và nhiều ứng dụng
khác trong cuộc sống hàng ngày. Trong thời gian gần đây, đã có báo cáo về các vụ tấn công ám sát
thông qua drone với các quả bom nhỏ [2], việc giao ma túy đến các nhà tù nhà nước [1], và giám
sát cảnh sát biên giới Hoa Kỳ bởi các tay buôn lậu để lợi dụng những điểm yếu. Drone và UAV
mini có khả năng tàng hình và có thể tránh được việc phát hiện bởi hầu hết các hệ thống radar
hiện đại do chúng có tín hiệu điện từ nhỏ. Chúng cũng nhỏ gọn, linh hoạt và tạo ra mức độ tiếng
ồn thấp. Điều này, cùng với sự dễ dàng tiếp cận, tạo ra một động cơ tự nhiên để drone tiếp tục là
một phần không thể thiếu của chiến tranh hiện đại và các hoạt động bất hợp pháp. Trong khi các
phương pháp như phát hiện bằng sóng radio và âm thanh đã được đề xuất là các giải pháp, chúng
hiện được biết đến là không chính xác. Điều này thúc đẩy việc tích hợp một bộ phát hiện hình ảnh
vào bất kỳ hệ thống phát hiện nào có sẵn.
Mục tiêu chính của đề tài là cung cấp một mô hình phát hiện đối tượng bay thời gian thực. Xác
định một mô hình tổng quát là một mô hình có hiệu suất phát hiện và phân loại tốt trên một số
lớn các lớp ở độ phân giải cao trong khi vẫn duy trì một tỷ lệ khung hình hợp lý . Thay vì chỉ huấn
luyện mô hình của chúng tôi trên drone, chúng tôi huấn luyện trên một tập dữ liệu chứa 40 loại
đối tượng bay để buộc mô hình học các biểu diễn đặc trưng trừu tượng hơn của các đối tượng bay.
Sau đó, chúng tôi chuyển giao các trọng số này trên một tập dữ liệu cuối cùng chứa nhiều trường
hợp hơn của các môi trường "thực tế". Chúng tôi sử dụng mô hình YOLOv8. Phát hiện đối tượng
thời gian thực vẫn đầy thách thức do sự biến đổi về kích thước không gian và tỷ lệ khía cạnh của
đối tượng, tốc độ suy luận và nhiễu. Điều này đặc biệt đúng đối với trường hợp sử dụng của chúng
tôi, vì các đối tượng bay có thể thay đổi vị trí, tỷ lệ, xoay và quỹ đạo rất nhanh chóng. Điều này
thể hiện sự cần thiết của tốc độ suy luận nhanh chóng và đánh giá mô hình kỹ lưỡng giữa các lớp
ít biến động, kích thước đối tượng, xoay, phông nền và tỷ lệ khía cạnh.

2 Bộ dữ liệu
Bộ dữ liệu sử dụng là flying_object_dataset .

• Tập dữ liệu ban đầu chứa 15,064 hình ảnh bao gồm 40 đối tượng bay khác nhau.

• Tỷ lệ phân chia của tập dữ liệu là 80% cho tập huấn luyện và 20% cho tập xác thực.

• Mỗi hình ảnh được gán nhãn với số lớp của đối tượng và tọa độ của các cạnh của hộp giới
hạn tương ứng.

• Trung bình, mỗi hình ảnh có 1.6 đối tượng được gán nhãn và tổng cộng có 24,769 nhãn trên
tất cả các hình ảnh.

• Tỷ lệ hình ảnh trung bình là 416x416.

• Các hình ảnh đã được tiền xử lý với tự động chỉnh hướng, nhưng không có phép tăng cường
nào được áp dụng.

2
• Tập dữ liệu được xuất bản trên Roboflow với một tác giả không được đặt tên và được tạo ra
vào năm 2022

Hình 1: Minh họa ảnh và nhãn tương ứng

Hình 1 mô tả về hình ảnh và nhãn tương ứng với hình ảnh đó được lấy trong tập dữ liệu. Ở đây,
các thông số trong nhãn được hiểu như sau:
37: Đây là số thứ tự của nhãn của lớp đối tượng được phát hiện trong tập dữ liệu.
0.4651442307692308, 0.4723557692307692, 0.7331730769230769, 0.5913461538461539: Đây là các
tọa độ của hộp giới hạn của đối tượng được phát hiện, được biểu diễn dưới dạng tâm của hộp
(x_center, y_center) và kích thước của hộp (width, height). Tất cả các giá trị này đã được chuẩn hóa
để nằm trong khoảng từ 0 đến 1. Điều này có nghĩa là tâm của hộp nằm ở vị trí (0.4651442307692308,
0.4723557692307692) trong hình ảnh và có chiều rộng và chiều cao lần lượt là 0.7331730769230769
và 0.5913461538461539, được tính dựa trên kích thước của hình ảnh.

3 Quá trình train


3.1 Mô hình sử dụng
Mô hình Yolov8n được pretrain trên tập dữ liệu COCO với các thông số đạt được như sau:

• Kích thước (pixels): 640. Đây là kích thước của hình ảnh đầu vào mà mô hình sử dụng.

• mAPval 50-95: 37.3. Đây là giá trị Mean Average Precision (mAP) của mô hình, được tính
tại ngưỡng IoU từ 0.5 đến 0.95. Giá trị này cho thấy mức độ chính xác của mô hình trong
việc phát hiện đối tượng.

3
Hình 2: Thông số mô hình pretrained Yolov8n

• Tốc độ CPU ONNX (ms): 80.4. Đây là thời gian mà mô hình mất để thực hiện một lần suy
luận trên CPU sử dụng ONNX.

• Tốc độ A100 TensorRT (ms): 0.99. Đây là thời gian mà mô hình mất để thực hiện một lần
suy luận trên GPU A100 sử dụng TensorRT.

• params (M): 3.2. Đây là số lượng tham số của mô hình, được đo bằng triệu (M).

• FLOPs (B): 8.7. Đây là số lượng phép toán dấu phẩy động (FLOPs) mà mô hình thực hiện
trong một lần suy luận, được đo bằng tỷ (B).

Mô hình được train trong 10 epochs, với hàm tối ưu sử dụng là AdamW(lr=0.000714, momen-
tum=0.9).

3.2 Kết quả sau khi train

Hình 3: Kết quả loss với tập train.

4
Hình 4: Kết quả loss với tập val.

Hình 5: Kết quả metrics.

Sau 10 epochs thì precision đạt: 0.151, recall: 0.3181, mAP50: 0.1925, mAP50-95: 0.1386. Trong
đó:

5
• P (Precision - Độ chính xác): Độ chính xác của các đối tượng được phát hiện, cho biết
có bao nhiêu phát hiện là chính xác.
• R (Recall - Độ nhớ): Khả năng của mô hình trong việc nhận diện tất cả các trường hợp
của đối tượng trong ảnh.
• mAP50: Trung bình độ chính xác được tính ở ngưỡng IoU (Intersection over Union) là 0.50.
Đây là một đánh giá về độ chính xác của mô hình chỉ tính đến các phát hiện "dễ dàng".
• mAP50-95: Trung bình của độ chính xác trung bình được tính ở các ngưỡng IoU khác nhau,
từ 0.50 đến 0.95. Nhằm khái quát hiệu suất của mô hình trên các mức độ khác nhau của độ
khó trong việc phát hiện.

4 YOLOv1
4.1 Kiến trúc mô hình
Hình 2 thể hiện kiến trúc của YOLOv1. Mỗi khối trong sơ đồ đại diện cho một lớp trong mạng
nơ-ron. Kiến trúc này giúp YOLOv1 có khả năng phát hiện đối tượng nhanh chóng và chính xác.

Hình 6: Kiến trúc YOLOv1 [3]

• Đầu vào: Mô hình nhận đầu vào là một ảnh màu có kích thước 448x448x3.
• Lớp Convolutional (Conv. Layers): Có nhiều lớp Conv với kích thước bộ lọc và độ sâu khác
nhau giúp trích đặc trưng từ ảnh.
• Lớp Maxpooling (Maxpool Layer): Theo sau các lớp Conv là lớp Maxpool, giúp giảm kích
thước không gian của đặc trưng.
• Lớp kết nối đầy đủ (Fully Connected Layers): Cuối cùng, mô hình sử dụng các lớp kết nối
đầy đủ để dự đoán vị trí và loại đối tượng trên một lưới 7x7.

6
Kiến trúc mạng YOLOv1 được lấy ý tưởng từ mô hình GoogLeNet cho phân loại ảnh. Nó gồm có
24 Convolutional Layers dùng để trích xuất các features từ bức ảnh, theo sau bởi 2 Fully Connected
Layers để dự đoán output probabilities và coordinates. Thay vì sử dụng inception modules trong
GoogLeNet, YOLO chỉ sử dụng reduction layers có kích thước 1×1 theo sau bởi Convolutional
Layers có kích thước 3×3. Layer cuối cùng của network là các dự đoán ở dạng tensor với kích thước
7×7×30. Các Convolutional Layers được pretrain trên trên tập dữ liệu ImageNet cho việc phân loại
ảnh với độ phân giải 224×224, rồi sau đó gấp đôi độ phân giải cho việc detection.

4.2 Output
• Convolution network tiến hành trích xuất đặc trưng ảnh

• Extra layers (fully connected layers) phân tích, phát hiện vật thể. Trả về output là một matrix
A có kích thước:

Shape(A) = S ∗ S ∗ (5∗ B + C) (1)


Trong đó:

• S là số cell.

• B là số bound box, mỗi bound box gồm 5 số liệu: (x,y,w,h, confidence score).

– x: trọng tâm đối tượng theo tọa độ x.


– y: trọng tâm của đối lượng theo tọa độ y.
– w: độ rộng của vật thể, tỉ lệ với kích thước của ảnh đầu vào.
– h: chiều cao của vật thể, tỉ lệ với kích thước của ảnh đầu vào.
– confidence score: độ tin cậy, xác suất đó là vật thể.

• C là phần tử đại diện cho phân bố xác suất về loại object, tức class distribution.

4.3 Hàm mất mát


2B
S X  

X p p q
Lloc = λcoord 1obj
ij
2 2 2
(xi − x̂i ) + (yi − ŷi ) + ( wi − ŵi ) + ( hi − ĥi )2
(2)
i=0 j=0

2
S X
B S X 2
X obj obj
X
Lcls = 2
(1ij + λnoobj (1 − 1ij ))(Cij − Ĉij ) + 1obj
i (p(c) − p̂i (c))
2
(3)
i=0 j=0 i=0 c∈C

L = Lloc + Lcls (4)


Trong đó:

• 1obj
ij : Hàm indicator có giá trị 0, 1 nhằm xác định xem cell i có chứa vật thể hay không. Bằng
1 nếu chứa vật thể và 0 nếu không chứa.

7
• 1obj
j : Cho biết bounding box thứ j của cell i có phải là bounding box của vật thể được dự đoán
hay không

• Cij : Điểm tin cậy của ô i, P(contain object) * IoU (predict bbox, ground truth bbox).

• Ĉij : Điểm tự tin dự đoán.

• C: Tập hợp tất cả các lớp.

• pi (c): Xác suất có điều kiện, cô hay không ô i có chứa một đối tượng của lớp c ∈ C.

• p̂i (c): Xác suất có điều kiện dự đoán.

4.4 YOLOv1 limitations


Hạn chế lớn nhất là YOLO dự đoán một lớp duy nhất trên mỗi grid cell và sẽ không hoạt động
tốt nếu có nhiều đối tượng thuộc các loại khác nhau trong cùng một cell.
Hạn chế thứ hai: độ phân giải grid cố định sẽ tạo ra các ràng buộc mạnh mẽ về không gian đối với
những gì mô hình có thể thực hiện. Các mô hình YOLO thường sẽ không hoạt động tốt trên các
bộ sưu tập các vật thể nhỏ, chẳng hạn như một đàn chim, nếu không điều chỉnh grid cẩn thận cho
tập dữ liệu.
Ngoài ra YOLO cũng có xu hướng xác định vị đối tượng với độ chính xác tương đối thấp. Lý do
chính là nó hoạt động trên bản đồ đặc trưng cuối cùng từ ngăn xếp convolutional, thường là bản
đồ có độ phân giải không gian thấp nhất và chỉ chứa các tín hiệu vị trí thô sơ.
Mặc dù có những hạn chế này, kiến trúc YOLO rất đơn giản để triển khai, đặc biệt là với một hộp
phát hiện duy nhất cho mỗi grid cell, điều này làm cho nó trở thành một lựa chọn tốt khi bạn muốn
thử nghiệm với mã của riêng bạn.

5 YOLOv5
5.1 Overview
YOLOv5 là một mô hình phát hiện đối tượng được giới thiệu vào năm 2020 bởi Ultralytics, công
ty mà đã cho ra mắt YOLOv1 và YOLOv3. YOLOv5 đạt được hiệu suất SOTA trên bộ dữ liệu
chuẩn COCO đồng thời cũng nhanh và hiệu quả trong việc huấn luyện và triển khai. YOLOv5 đã
thực hiện một số thay đổi kiến trúc, đáng chú ý nhất là việc chuẩn hóa việc cấu trúc mô hình thành
ba thành phần, gọi là backbone, neck và head.
Backbone của YOLOv5 là Darknet53, một kiến trúc mạng mới tập trung vào việc trích xuất đặc
trưng, được đặc trưng bởi các cửa sổ bộ lọc nhỏ và kết nối dư. Kết nối Cross Stage Partial cho phép
kiến trúc đạt được tính toán gradient nhanh hơn trong khi giảm số lượng tính toán như được mô
tả được đề xuất bởi Wang et al.
Neck, như được mô tả bởi Teven et al., của YOLOv5 kết nối backbone với head, mục đích của nó là
tổng hợp và tinh chỉnh các đặc trưng được trích xuất bởi backbone, tập trung vào việc tăng cường
thông tin không gian và ngữ nghĩa trên các tỷ lệ khác nhau. Một mô-đun Spatial Pyramid Pooling
(SPP) loại bỏ ràng buộc kích thước cố định của mạng, loại bỏ nhu cầu phải warp, tăng cường hoặc
cắt hình ảnh. Điều này được theo sau bởi một mô-đun CSP-Path Aggregation Network, nó kết hợp
các đặc trưng đã học trong backbone và rút ngắn đường dẫn thông tin giữa các lớp thấp và cao

8
hơn. Head của YOLOv5 bao gồm ba nhánh, mỗi nhánh dự đoán một tỷ lệ đặc trưng khác nhau.
Trong bản xuất bản gốc của mô hình, người tạo ra đã sử dụng ba kích thước ô lưới là 13 x 13, 26
x 26 và 52 x 52, mỗi ô lưới dự đoán B = 3 hộp giới hạn (Bounding boxes). Mỗi head tạo ra hộp
giới hạn (bounding box), xác suất lớp và điểm tin cậy (confidence score). Cuối cùng, mạng sử dụng
Non-maximum Suppression (NMS) để lọc ra các hộp giới hạn chồng chéo.

5.1.1 Feature pyramid networks

Hình 7: Cấu trúc FPN

Hình 7 mô tả quá trình diễn ra trong FPN. Trong con đường đi xuống của mạng tích chập
(convolutional backbone), các lớp tích chập (convolutional layers) dần dần lấy ra những thông tin
ngữ nghĩa quan trọng của bức ảnh, trong khi các lớp gộp (pooling layers) giảm kích thước không
gian của các bản đồ đặc trưng (các chiều x và y của hình ảnh). Trong con đường đi lên, các bản đồ
đặc trưng từ các lớp dưới cùng chứa thông tin ngữ nghĩa cấp cao hơn được upsample kích thước để
chúng có thể được thêm vào các bản đồ đặc trưng ở phía trên của ngăn xếp. Điều này giúp đồng bộ
hóa thông tin ngữ nghĩa từ các tầng khác nhau của mạng và tăng cường khả năng nhận diện các
đặc trưng ở nhiều tỷ lệ không gian khác nhau. Các bản đồ đặc trưng được upsample sau đó được
thêm vào, từng phần tử, vào các bản đồ đặc trưng ở các tầng cao hơn của ngăn xếp, tạo ra một
mạng có khả năng nhận diện vật thể ở nhiều tỷ lệ không gian và cung cấp thông tin ngữ nghĩa chi
tiết và toàn diện hơn. Các tích chập 1x1 được sử dụng trong các kết nối bên cạnh để đưa tất cả
các bản đồ đặc trưng về cùng một độ sâu kênh và để cho phép cộng trở nên có thể thực hiện được.

9
5.1.2 Spatial pyramid pooling fast

Hình 8: Cấu trúc SPPF

Hình 8 mô tả một phần của kiến trúc mạng SPPF (Spatial Pyramid Pooling Fast). Cấu trúc này
bao gồm:
ConvBNReLU: Các lớp “MaxPool2d” được kết nối với một lớp “ConvBNReLU” có tham số “k1, s1,
p0, c512” với kernel size là 1, stride là 1 và gồm 512 kênh.
MaxPool2d: Có ba lớp “MaxPool2d” với các tham số “k5, s1, p2”, với kernel size là 5, stride là 1
được sử dụng để giảm kích thước không gian của đặc trưng bản đồ và tăng cường tính chất không
gian của đặc trưng.
Concat: Sau đó, đầu ra của các lớp “MaxPool2d” và “ConvBNReLU” được kết hợp lại thông qua
lớp “Concat”, cho phép mô hình học sâu kết hợp thông tin từ nhiều tỷ lệ không gian khác nhau.
ConvBNReLU cuối cùng: Đầu ra của lớp “Concat” sau đó được đưa vào một lớp “ConvBNReLU”
khác với tham số “k1, s1, p0, c1024” gồm kernel size là 1 và số lượng kênh là 1024.

5.1.3 CSP_Darknet53
YOLO v5 sử dụng CSP-Darknet53 làm xương sống (backbone). CSP-Darknet53 nghĩa là mô
hình mạng Darknet53 được sử dụng làm mô hình mạng tích chập chính sau đó kết hợp thêm kỹ
thuật Cross Stage Partial (CSP). Lý do sử dụng thêm CSP là vì:
Trong YOLO, sử dụng các khối dày đặc và dư thừa (dense and residual blocks) giúp tối ưu hóa
quá trình lan truyền ngược( backpropagation) và giảm thiểu vấn đề độ dốc biến mất (vanishing
gradient). Tuy nhiên, việc sử dụng các khối này cũng có thể dẫn đến vấn đề của gradients dư thừa
(redundant gradient) và tăng số lượng tính toán, tài nguyên để train mô hình và CSP giúp giải
quyết vấn đề này bằng cách làm ngắn dòng gradient, được mô tả như sau ở hình 9. Bằng cách chia
khối (ConvBNSiLU) ra làm 2 khối giống nhau, một khối sẽ được giữ nguyên, còn một khối sẽ được
trải qua các khối trong mạng Darknet53. Sau đó 2 khối này được concat để kết hợp đặc trưng của
cả 2 từ đó mà CSP vẫn giữ được ưu điểm của tính tái sử dụng đặc điểm và đồng thời giảm thiểu
lượng thông tin gradient dư thừa.

10
Hình 9: Cấu trúc CSP

5.1.4 Non-maximum suppression


Trong YOLOv5, thuật toán non-maximum suppression (NMS) được sử dụng để loại bỏ các dự
đoán trùng lặp và chỉ giữ lại các hộp chứa có độ tin cậy cao nhất. Quá trình này giúp giảm số lượng
dự đoán không cần thiết và tăng cường độ chính xác của mô hình.Phương pháp "Non-maximum
suppression" (NMS) xem xét sự trùng lắp hộp (IOU) và độ tin cậy lớp để chọn ra hộp đại diện nhất
cho một đối tượng cụ thể. Thuật toán này sử dụng một phương pháp "tham lam" đơn giản: đối với
mỗi lớp, nó xem xét sự trùng lắp (IOU) giữa tất cả các hộp được dự đoán. Nếu hai hộp có sự trùng
lắp nhiều hơn một giá trị cụ thể A (IOU > A), nó sẽ giữ lại hộp có độ tin cậy lớp cao nhất. Trong
mã giả Python, đối với một lớp cụ thể:

def NMS(boxes, class_confidence):


result_boxes = []
for b1 in boxes:
discard = False
for b2 in boxes:
if IOU(b1, b2) > A:

11
if class_confidence[b2] > class_confidence[b1]:
discard = True
if not discard:
result_boxes.append(b1)
return result_boxes

Hình 10: Minh họa NMS

NMS hoạt động khá tốt trong thực tế nhưng có thể có một số hiệu ứng phụ không mong muốn.
Lưu ý rằng thuật toán này dựa trên một giá trị ngưỡng duy nhất (A). Thay đổi giá trị này sẽ thay
đổi việc lọc hộp, đặc biệt là đối với các đối tượng kề nhau hoặc trùng lắp trong ảnh gốc. Hãy xem
xét ví dụ trong hình 10. Nếu ngưỡng được đặt ở A = 0,4, thì hai hộp được phát hiện trong hình sẽ
được coi là "trùng lắp" cho cùng một lớp và hộp có độ tin cậy lớp thấp nhất (hộp bên trái) sẽ bị
loại bỏ. Điều này rõ ràng là sai. Có hai con bướm cần phát hiện trong hình này và, trước khi NMS,
cả hai đều được phát hiện với độ tin cậy cao.
Việc nâng cao giá trị ngưỡng sẽ giúp, nhưng nếu quá cao, thuật toán sẽ không thể hợp nhất các
hộp tương ứng với cùng một đối tượng. Giá trị thông thường cho ngưỡng này là A = 0,5, nhưng
vẫn gây ra việc các đối tượng gần nhau được phát hiện như là một.

12
References
[1] “Eastern District of California U.S. Attorney’s Office. Four indicted in scheme to deliver drugs
into state prisons by drone”. In: 2023.
[2] Emma Soteriou. Ukraine ’tried to assassinate putin using drone loaded with explosives’ but it
crashed miles from tar-get. 2023.
[3] “YOLOv1 - Nhận diện vật thể chỉ ngó 1 lần - Khởi nguồn”. In: url: https://viblo.asia/p/
yolov1-nhan-dien-vat-the-chi-ngo-1-lan-khoi-nguon-aNj4v0b0L6r.

13

You might also like