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

Tìm hiểu về YOLO trong bài toán realtime object detection

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 (1.22 MB, 12 trang )

Tìm hiểu về YOLO trong bài tốn real-time
object detection
I.

Yolo là gì?
Object Detection là một bài tốn quan trọng trong lĩnh vực Computer Vision, thuật
toán Object Detection được chia thành 2 nhóm chính:
-

Họ các mơ hình RCNN ( Region-Based Convolutional Neural Networks) để
giải quyết các bài toán về định vị và nhận diện vật thể.
- Họ các mơ hình về YOLO (You Only Look Once) dùng để nhận dạng đối
tượng được thiết kế để nhận diện các vật thể real-time.
Yolo là một mơ hình mạng CNN cho việc phát hiện, nhận dạng, phân loại đối
tượng. Yolo được tạo ra từ việc kết hợp giữa các convolutional layers và
connected layers. Trong đó, các convolutional layers sẽ trích xuất ra các feature –
đặc trưng của ảnh, cịn full-connected layers sẽ dự đốn ra xác suất đó và tọa độ
của đối tượng.

II.
-

Hoạt động của thuật toán YOLO
1. Tổng hợp một số khái niệm liên quan
AI - Artificial intelligence: Trí tuệ nhân tạo là một ngành khoa học cơng nghệ
cho phép máy móc bắt trước hành vi của con người.
Machine Learning: là tập con của AI, sử dụng các thuật toán trên tập dữ liệu
được “training” để máy móc hoạt động như con người và nâng cao hiệu suất.
Deep Learning: là tập con của cả hai thành phần trên, hoạt động dựa trên một
cấu trúc giống như bộ não của con người. Cấu trúc đó gọi là Mạng nơ-ron nhân
tạo – Artificial Neural Network.




-

CNN – Convolutional Neural Network: Mạng nơ-ron tích chập là một mạng
nơ-ron nhân tạo được sử dụng nhiều trong deep learning. Thuật toán Yolo hoạt
động liên quan đến cấu trúc này.
2. Hoạt động
II.1. Với một bức ảnh đơn giản, chỉ có một đối tượng duy nhất và đối
tượng ở chính giữa bức ảnh.
Ví dụ: Làm thế nào máy tính có thể để nhận diện con chó trong bức ảnh?

Hình 1.

-

-

Giải quyết vấn đề
Đầu tiên, phân loại đối tượng sử dụng mạng nơ-ron (Neural Network).
Giả sử có hai Class:
o 0 – Con chó
o 1 – Con người
 Thuật tốn liên quan: Image classification
Xác định vị trí chính xác của đối tượng bằng một hình bao quanh(Bounding
box) =>Thuật tốn liên quan: Object Localization


-


Tấm ảnh được phân loại và đánh dấu vị trí đối tượng bằng BB. Khi đó các
thơng tin liên quan đến BB và tấm ảnh được thể hiện bằng một vector. Vector
này chứa thơng tin cho biết chính xác vị trí và loại(Class) của đối tượng.

Các tham số trong vector:
o
o
o
o

Pc: xác suất dự đốn có đối tượng trong BB
X, Y: tọa độ trung tâm của đối tượng trong BB
W, H: dài, rộng của BB
C1, C2: class


-

Một số ví dụ:
Con chó

Con người


Khơng có gì

-

Dùng các tập dữ liệu để train cho mơ hình mạng CNN.
Data = tập ảnh đã xác định vị trí đối tượng bằng BB

Labels = vector tương ứng với BB.


-

Vậy nếu đưa vào một ảnh mới, ta sẽ nhận được một vector tương ứng và đối tượng
sẽ được BB nếu có.

Trên đây ta đã nói về nguyên lý hoạt động cơ bản của thuật toán YOLO với các
ảnh đơn giản. Các ảnh phức tạp hơn sẽ được trình bày ở phần tiếp theo.
II.2. Với một ảnh phức tạp, đối tượng khơng ở chính giữa bước ảnh
và có nhiều thành phần khác
Ta sẽ xử lý tấm ảnh phức tạp theo cách chuẩn hóa nó thành grid với nhiều
ơ. Và với mỗi ô áp dụng cách tương tự như 2.1.
Ảnh đầu vào được chuẩn hóa thành grid có kích thước S×S ơ, thường thì sẽ
là 3×3, 7×7, 9×9... việc chia ơ này có ảnh hưởng tới việc mơ hình phát hiện
đối tượng, được trình bày ở phần sau.
Nếu INPUT: ảnh kích thước S x S
OUTPUT: ma trận 3 chiều kích thước S x S x N x (5 + M ) có số lượng
tham số mỗi ơ là N x (M + 5)
Trong đó, N là số lượng BB, M là số lượng Class.
Ví dụ với hình ảnh dưới chia thành 3×3 = 9 ơ, mỗi ơ cần dự đóan N = 2 BB
(BB màu đỏ, BB màu xanh). Và giả sử M = 3 class : người đi đường, ô tơ,
xe đạp.
Có tổng 3x3x2 = 18 BB.
Mỗi ơ sẽ có 2x8 = 16 tham số, 5 tham số của BB màu đỏ, 5 tham số của BB
màu xanh, 6 tham số class cho mỗi BB.


Output là ma trận 3x3x2x8.


S = 3, N = 2 BB, M = 3 class
Như 2.1, mỗi ô

tương ứng với một vector

Cịn tồn bộ tấm ảnh được biến đổi thành ma trận 3 chiều


-

Dùng các tập dữ liệu để train cho mơ hình mạng CNN.
Data = tập ảnh đã xác định vị trí các đối tượng bằng BB
Labels = ma trận tương ứng.

-

Vậy nếu đưa vào một ảnh mới, ta sẽ nhận được một ma trận tương ứng. Và từ
ma trận có thể đưa ra thông tin để nhận dạng đối tượng – Object Detection.

Trên đây là tồn bộ nội dung trình bày về hoạt động của thuật toán
YOLO để nhận dạng đối tượng.
III.

Vấn đề phát sinh Multi-BB


Giải quyết bằng thuật toán Non Maximum Suppression dựa trên thông số IOU:
IOU(Intersection Over Union) - hàm đánh giá độ chính xác của object detector trên tập
dữ liệu cụ thể.

Cơng thức:


Trong đó Area of Overlap là diện tích phần giao nhau giữa predicted bounding box với
grouth-truth bouding box , còn Area of Union là diện tích phần hợp giữa predicted
bounding box với grouth-truth bounding box. Những bounding box được đánh nhãn bằng
tay trong tập traing set và test set. Nếu IOU > 0.5 thì prediction được đánh giá là tốt.
IV.

Loss Function

Hàm lỗi trong YOLO được tính trên việc dự đốn và nhãn(labels) của mơ hình để
tính. Cụ thể hơn nó là tổng độ lỗi của 3 thành phần con sau:
-

Độ lỗi của việc dự đoán loại nhãn của object - Classifycation loss
Độ lỗi của dự đoán tọa độ tâm, chiều dài, rộng của boundary box (x, y ,w, h) Localization loss
Độ lỗi của việc dự đốn bounding box đó chứa object so với nhãn thực tế tại ơ
vng đó - Confidence loss
1. Classifycation loss
Classifycation loss - độ lỗi của việc dự đốn loại nhãn cuả object, hàm lỗi
này chỉ tính trên những ơ vng có xuất hiện object, cịn những ô vuông
khác ta không quan tâm. Classifycation loss được tính bằng công thức sau:

2. Localization loss
Localization loss là hàm lỗi dùng để tính giá trị lỗi cho boundary box được
dự đoán bao gồm tọa độ tâm, chiều rộng, chiều cao của so với vị trí thực tế
từ dữ liệu huấn luyện của mơ hình. Lưu ý rằng chúng ta khơng nên tính giá
trị hàm lỗi này trực tiếp từ kích thức ảnh thực tế mà cần phải chuẩn hóa về
[0, 1] so với tâm của bounding box. Việc chuẩn hóa này kích thước này

giúp cho mơ hình dự đốn nhanh hơn và chính xác hơn so với để giá trị
mặc định của ảnh. Hãy cùng xem một ví dụ:


Giá trị hàm Localization loss được tính trên tổng giá trị lỗi dự đoán toạ độ tâm
(x, y) và (w, h) của predicted bounding box với grouth-truth bounding box. Tại
mỗi ô có chưa object, ta chọn 1 boundary box có IOU (Intersect over union) tốt
nhất, rồi sau đó tính độ lỗi theo các boundary box này.
Giá trị hàm lỗi dự đoán tọa độ tâm (x, y) của predicted bounding box và (x̂, ŷ)
là tọa độ tâm của truth bounding box được tính như sau :

GIá trị hàm lỗi dự đốn (w, h ) của predicted bounding box so với truth
bounding box được tính như sau :

Với ví dụ trên thì S =7, B =2, còn λcoord là trọng số thành phần trong paper
gốc tác giả lấy giá trị là 5
3. Confidence loss
Confidence loss là độ lỗi giữa dự đoán boundary box đó chứa object so với
nhãn thực tế tại ơ vng đó. Độ lỗi này tính trên cả những ơ vuông chứa object
và không chứa object.


Với ví dụ trên thì S =7, B =2, cịn λnoobject là trọng số thành phần trong paper gốc tác
giả lấy giá trị là 0.5. Đối với các hộp j của ơ thứ i nếu xuất hiệu object thì Ci =1 và ngược
lại
4. Total loss
Tổng lại chúng ta có hàm lỗi là tổng của 3 hàm lỗi trên :

V.


The Network

Như ta đã nói ở trên mơ hình mạng YOLO là một mơ hình mạng CNN thơng thường
gồm các convolutional layers kết hợp maxpooling layers và cuối cùng là 2 lớp fully
connected layers, với hàm kích hoạt cho layer cuối cùng là một linear activation
function và tất cả các layers khác sẽ sử dụng leaky RELU :

s



×