You are on page 1of 41

NHÓM 04 - AI

Trí tuệ nhân tạo


You Only Look Once:
Unified, Real-Time Object Detection
NHÓM 04 - AI

TÀI LIỆU THAM KHẢO


You Only Look Once:
Unified, Real-Time Object Detection

A comprehensive review of YOLO architectures


in computer vision
I. Giới thiệu
Joseph Redmon
Bối cảnh, năm xuất bản

You Only Look Once: Unified, Real-


Time Object Detection (YOLO)
Ross Girshick

Được công bố lần đầu vào ngày 8 tháng 6


năm 2015 và được cập nhật lần cuối vào
ngày 9 tháng 5 năm 2016 bởi Joseph
Redmon, Santosh Divvala , và Ali Farhadi từ
Đại học Washington, Viện AI Allen và Ross
Girshick từ Nghiên cứu AI Facebook/ Meta Ali Farhadi
Bối cảnh, năm xuất bản
Bối cảnh của bài báo YOLO là giải quyết vấn đề
này bằng cách tiếp cận nhận diện đối tượng
như một bài toán regression (hồi quy), trong đó
một mạng nơ-ron đồng thời dự đoán các hộp
giới hạn (bounding boxes) và các xác suất cho
các lớp đối tượng trong một lần chạy duy nhất
trên toàn bức ảnh. Phương pháp này giúp
YOLO trở thành một trong những phương pháp
đầu tiên có khả năng nhận diện đối tượng thời
gian thực với tốc độ rất nhanh.
Các công trình trước đó thường sử dụng các bộ phân
loại để thực hiện việc phát hiện đối tượng. Trong khi đó,
YOLO đưa ra cách tiếp cận mới, coi việc phát hiện đối
Phương pháp phát hiện đối tượng tượng như một vấn đề hồi quy đến các hộp giới hạn
được phân tách không gian và xác suất lớp tương ứng

Các hệ thống phát hiện đối tượng trước đó thường


chậm và khó tối ưu hóa do mỗi thành phần phải
được huấn luyện riêng biệt Ngược lại, YOLO có thể Tốc độ xử lý
xử lý hình ảnh theo thời gian thực với tốc độ 45
khung hình/giây.
So với các hệ thống phát hiện đối tượng hàng đầu,
YOLO thực hiện nhiều lỗi định vị hơn nhưng ít có
Lỗi định vị khả năng dự đoán sai các phát hiện nơi không có gì
tồn tại .

Cuối cùng, YOLO học được các đại diện rất chung của
các đối tượng. Nó vượt trội hơn tất cả các phương
pháp phát hiện khác, bao gồm DPM và R-CNN, khi tổng Đại diện đối tượng
quát từ hình ảnh tự nhiên sang các lĩnh vực khác

May
II. Vấn đề chính
VẤN ĐỀ CHÍNH

Trước khi YOLO (You Only Look Once) được giới thiệu,
các phương pháp trước đó trong việc nhận diện đối tượng
thường chia hình ảnh thành các ô nhỏ và áp dụng một
mạng nơ-ron để phát hiện các đối tượng trong mỗi ô.
VẤN ĐỀ CHÍNH

Vấn đề chính mà YOLO đặt ra là làm thế nào để nhận diện


đối tượng trong hình ảnh một cách toàn diện (unified) và
trong thời gian thực, tức là phát hiện tất cả các đối tượng
cùng một lúc và chỉ cần một lần duy nhất (once) duy nhất
trên toàn bức ảnh, mà không cần phải chia nhỏ và xem xét
từng phần nhỏ riêng lẻ. Điều này giúp giảm thiểu thời gian
tính toán và tăng hiệu suất cho việc nhận diện đối tượng.
III. Phát hiện
1. MÔ HÌNH PHÁT HIỆN VẬT THỂ CỦA YOLO
1. MÔ HÌNH PHÁT HIỆN VẬT THỂ CỦA YOLO

Ngoài phát hiện được vật thể, thì YOLO còn nhìn thấy
được tổng quan hình ảnh đầu vào - input. (So với các hệ
thống sử dụng 2 bước để phát hiện vật thể thì việc này là
không thể, vì nó không thể nhìn được tổng quan của hình
ảnh xem nó có những gì).

YOLO nhìn đối tượng một cách tổng quát, vì thế YOLO
vẫn phát hiện được vật thể khi cho YOLO học hình ảnh ở
tự nhiên và có thể dự đoán vật thể trên ảnh nghệ thuật.
1. MÔ HÌNH PHÁT HIỆN VẬT THỂ CỦA YOLO
2. Hệ thống phát hiện đối tượng của YOLO
Để thực hiện điều này, YOLO chia hình ảnh
đầu vào thành lưới S × S và dự đoán B-hộp
giới hạn cùng lớp, dọc theo với độ tin cậy của
nó đối với C-các lớp khác nhau trên mỗi phần
tử lưới.

Mỗi B được dự đoán sẽ có 5 giá trị: bx by, bw,


bh và Pc.

Trong đó:
bx: Trọng tâm của đối tượng theo tọa độ x
by: Trọng tâm của đối tượng theo tọa độ y
bw: Độ rộng của vật thể, tỉ lệ với kích thước
YOLO thống nhất các bước phát hiện đối của ảnh đầu vào
tượng bằng cách phát hiện tất cả các B - bh: Chiều cao của vật thể, tỉ lệ với kích
bounding boxes (bbox) cùng một lúc. thước của ảnh đầu vào
Pc: Độ tin cậy, xác suất đó là vật thể
2. Hệ thống phát hiện đối tượng của YOLO
Độ tin cậy (confidence) được tính bằng cách so sánh thông tin dự báo (predict) ra và thông tin được
gán nhãn (label), được định nghĩa bằng công thức:

Trong đó:

Pr(Classi|Object): Xác suất của mỗi lớp cho ô


Pr(Object): Xác suất có vật thể trong ô
IOU: Phần giao nhau giữa hộp giới hạn được
dự đoán và hộp giới hạn thực tế
Area of Overlap: là diện tích giao nhau giữa 2
hộp.
Area of Union: là diện tích phần hợp nhau của
2 hộp.
2. Hệ thống phát hiện đối tượng của YOLO

Trong bài báo YOLO này, các tác giả đã dùng dataset PASCAL VOC để đánh giá mô hình, với
dataset này thì tác giả đã chọn S = 7, B = 2, tập VOC có C = 20 class, như vậy chúng ta sẽ có
output (đầu ra) của mô hình YOLO là:

S x S x (B x 5 + C) = 7 x 7 x 30 tensor.

Lưu ý:
Trong 1 ô lưới thì chỉ có tâm của 1 object, ví dụ 2 object cùng có
tâm trên 1 ô lưới, thì chỉ phát hiện được 1 object có độ tin cậy cao
nhất. Đây cũng là điểm yếu của YOLO ở những version đầu, trong
trường hợp kích thước lưới 7 × 7 thì chỉ có tối đa 49 ô lưới do đó chỉ
có tối đa 49 object được phát hiện trong 1 ảnh.
1. MÔ HÌNH PHÁT HIỆN VẬT THỂ CỦA YOLO
Giải pháp và cải tiến
Tăng số lượng và đa dạng của anchor boxes: Mỗi ô lưới có
thể dự đoán nhiều anchor boxes với các kích thước và tỷ lệ
khác nhau, giúp cải thiện khả năng phát hiện các đối tượng có
kích thước và hình dạng đa dạng hơn.

Sử dụng cấu trúc lưới đa quy mô: Các phiên bản mới hơn của
YOLO, như YOLOv4 và YOLOv5, sử dụng các lưới với kích
thước khác nhau trong cùng một mô hình, cho phép phát hiện
đối tượng ở các quy mô khác nhau một cách hiệu quả hơn.

Cải tiến thuật toán: Sử dụng các kỹ thuật như non-maximum


suppression (NMS) để loại bỏ các dự đoán trùng lặp và chọn ra
những dự đoán tốt nhất.
3. Kiến trúc mạng của YOLO

Được lấy cảm hứng từ mô hình GoogleNet – mô hình dùng để phân loại hình ảnh, các tác
giả của YOLO đã thiết kế một mạng có 24 layers convolutional để trích xuất feature trên
mỗi ảnh đầu vào, và tiếp theo sau là 2 layer fully connected có nhiệm vụ dự đoán ra xác
suất và tọa độ của từng object có trong ảnh.
3. Kiến trúc mạng của YOLO

Với mục đích nhanh hơn nữa, một biến thể của YOLO v1 dùng để tăng tối đa tốc
độ cho việc phát hiện đối tượng là Fast YOLO cũng được giới thiệu. Khác với
YOLO thì Fast YOLO chỉ sử dụng 9 layer convolutional thay vì 24 layer
convolutional, kết hợp với dùng filter size nhỏ hơn đã giúp tốc độ infer của Fast
YOLO đạt được 155 fps.
4. Đào tạo
4. Đào tạo
5. Thử nghiệm so sánh YOLO với các hệ
thống Real – Time khác
5. Thử nghiệm so sánh YOLO với các hệ
thống Real – Time khác

Ta có thể thấy YOLO gặp khó khăn trong việc định vị vật thể một cách chính xác (sai số 19.0%),
nó lớn hơn tất cả các loại sai số khác của YOLO cộng lại. Faster R-CNN có localization error nhỏ
hơn (8.6%) nhưng nó có nhiều background error hơn (13.6%), gấp gần 3 lần so với YOLO
(4.75%).
5. Thử nghiệm so sánh YOLO với các hệ
thống Real – Time khác
Nhờ vào việc phân tích sai số ở trên, ta có thể kết hợp YOLO với Faster R-CNN để đạt
được độ chính xác cao hơn. Ta sẽ sử dụng YOLO để loại bỏ background từ Faster R-
CNN để đạt được hiệu quả cao hơn. Cụ thể là, với mỗi bounding box được dự đoán từ
Faster R-CNN, ta kiểm tra xem YOLO có dự đoán một box tương tự không.

Mô hình Faster R-CNN có kết quả dự đoán cao nhất là 71.8 mAP trên tập dữ liệu test
VOC 2007. Khi kết hợp với YOLO, độ chính xác tăng lên đến 75%, cao hơn 3.2%.
IV. Thành tựu
và ứng dụng
Thành tựu đạt được

01 02 03 04
SỰ ĐỘT PHÁ, ĐIỂM MỚI SO SÁNH YOLO VỚI R-CNN, SO SÁNH CÁC PHIÊN THÀNH TỰU THỰC TẾ
CỦA YOLO FastR-CNN(2015),FasterR- BẢN YOLO CUỘC SỐNG
CNN(2016)
TỐC ĐỘ

XỬ LÍ THỜI GIAN THỰC-REAL TIME

PHÁT HIỆN VẬT THỂ


YOLO vượt xa các mô hình tiên tiến khác về độ
chính xác với rất ít lỗi nền.

KHÁI QUÁT TỐT

SỰ ĐỘT PHÁ, YOLO đã tiến xa hơn một chút bằng cách cung cấp khả năng
khái quát hóa tốt hơn cho các miền mới, điều này rất phù hợp

ĐIỂM MỚI CỦA cho các ứng dụng dựa vào tính năng phát hiện đối tượng
nhanh và mạnh mẽ.

YOLO MÃ NGUỒN MỞ
Việc tạo mã nguồn mở YOLO đã khiến cộng đồng không ngừng
cải tiến mô hình. Đây là một trong những lý do tại sao YOLO đã
có nhiều cải tiến trong thời gian có hạn như vậy.
SO SÁNH HỌ CÁC MÔ HÌNH RCNN & HỌ YOLO

Tiêu biểu: RCNN, FAST RCNN, KHẢ NĂNG NHẬN DIỆN VÀ XỬ LÝ


FASTER-RCNN,... NHANH

ĐỘ CHÍNH XÁC CAO,CÓ YÊU CẦU KHẢ NĂNG “REALTIME” TRONG NHẬN
CAO VỀ PHÂN LOẠI, VỊ TRÍ CỦA ĐỐI DIỆN VẬT THỂ
TƯỢNG, VẬT THỂ

CÓ ỨNG DỤNG CAO TRONG CÁC


KHẢ NĂNG “REALTIME” THẤP
ỨNG DỤNG CẦN THỜI GIAN XỬ LÝ
NHANH VỚI YÊU CẦU ĐỘ CHÍNH XÁC
Ở MỨC “TƯƠNG ĐỐI”
SO SÁNH CÁC PHIÊN BẢN YOLO
YOLO 1-YOU ONLY LOOK ONCE: YOLO 2– YOLO9000: BETTER, FASTER,
UNIFIED, REAL-TIME OBJECT STRONGER
DETECTION

ĐIỂM YẾU CẢI TIẾN

Độ chính xác kém hơn so với các mô Batch Normalization( BN): thêm BN vào tất cả các lớp
chập.
hình Region-based detector (kỹ thuật
sử dụng two-stage). Bộ phân loại phân giải cao (High Resolution Classifier).

Recall thấp, khả năng phát hiện bị Phát hiện nhiều đối tượng trong một ô lưới (gird cell).
thiếu/sót các đối tượng.
Anchor Boxes.
Dự đoán tối đa một object trong 1
cell, tối đa 49 object. Darknet19.
Với các cải tiến này, YOLOv2 đã tăng mAP từ 63.4 lên 78.6 so với YOLOv1 (độ chính xác và sai sót ít
hơn), mà chỉ phải giảm FPS từ 45 xuống 40 (tốc độ chạy của model).

Từ hình trên cho thấy YOLOv2 có hiệu quả và tốc độ tốt hơn các model trước đó.
YOLOV3 :An Incremental Improvement

YOLOv3 được publish vào năm 2018. YOLOv3 đã thực hiện một loạt các thay đổi nhỏ về thiết kế để
làm cho hệ thống chạy tốt hơn, với một số thay đổi:

Darknet53

Nhận dạng ở các tỉ lệ ảnh khác nhau:


YOLOv1 ô lưới ở: 7×7
YOLOv2 ô lưới ở: 13×13
YOLOv3: nhận dạng 3 lần trên 1 kích thước ảnh,
với input 416×416:
Conv 82: SxS = 13×13
Conv 94: SxS = 26×26
Conv 106: SxS = 52×5
Y TẾ

NÔNG NGHIỆP
ỨNG DỤNG
THỰC TẾ
AN NINH
CUỘC SỐNG
XE TỰ LÁI
Y TẾ
YOLO chia hình ảnh thành một lưới và
dự đoán các hộp giới hạn cũng như xác
suất lớp cho mỗi ô. YOLO đã được áp
dụng để phát hiện các cấu trúc khác
nhau, bao gồm khối u, cơ quan và mạch
máu.
Trong phẫu thuật, việc xác định vị trí các
cơ quan theo thời gian thực có thể là
một thách thức do tính đa dạng sinh học
từ bệnh nhân này sang bệnh nhân khác.
Nhận dạng thận trong CT đã sử dụng
YOLOv3 để hỗ trợ việc định vị thận ở
dạng 2D và 3D từ chụp cắt lớp vi tính
(CT)
Nông nghiệp
Giám sát cây trồng và phát hiện dịch bệnh

Kiểm soát sinh vật gây hại

Quản lý sức khỏe đất

Dự đoán năng suất cây trồng


An ninh
Mặc dù tính năng phát hiện đối tượng
chủ yếu được sử dụng trong giám sát
an ninh nhưng đây không phải là ứng
dụng duy nhất. YOLOv3 đã được sử
dụng trong đại dịch Covid19 để ước tính
hành vi vi phạm khoảng cách xã hội
giữa mọi người.
Xe tự lái
Phát hiện đối tượng theo thời gian thực là một
phần DNA của hệ thống xe tự hành. Sự tích
hợp này rất quan trọng đối với các phương
tiện tự hành vì chúng cần xác định đúng làn
đường cũng như tất cả các vật thể xung
quanh và người đi bộ để tăng cường an toàn
đường bộ. Khía cạnh thời gian thực của
YOLO khiến nó trở thành ứng cử viên sáng
giá hơn so với các phương pháp phân đoạn
hình ảnh đơn giản.
V. Demo kết quả
đơn giản
FINTECH

THANK YOU
NHÓM 04 - AI

You might also like