Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 29

Xây dựng mô tả ảnh

thông qua bước dò tìm


đối tượng bằng mô hình
YOLO và mạng RNN với
dữ liệu FLIRK8K.
Giảng viên: TS Cao Văn Chung

Thành viên:
1. Nguyễn Thành Vinh - 18001085
2. Trần Thế Hùng - 18001043
3. Hoàng Trung Kiên – 18001048

2
I.
CNN – Convolutional
Neural Network
1. Khái niệm về CNN
⬡ Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập)
là một trong những mô hình Deep Learning tiên tiến. CNN xây
dựng được những hệ thống thông minh với độ chính xác cao.

⬡ CNN được ứng dụng rất nhiều trong những bài toán nhận dạng
object trong ảnh.

4
2. Mô hình kiến trúc mạng CNN:

⬡ Các lớp cơ bản trong CNN:


• Lớp Convolutional.
• Lớp ReLU.
• Lớp Pooling.
• Lớp Fully connected.
5
• Lớp Convolutional (Convolutional Layer)
- Convolutional Layer có nhiệm vụ thực hiện mọi tính toán. Những yếu tố
quan trọng của một convolutional layer là: filter map, stride, padding,
feature map.
- CNN sử dụng các filter để áp dụng vào vùng của hình ảnh. Những filter
map được gọi là ma trận 3 chiều, bên trong là các con số và chúng là
parameter.
- Stride là khi dịch chuyển filter map theo pixel dựa vào giá trị trừ trái sang
phải. Và sự chuyển dịch này chính là Stride.
- Padding: Là các giá trị 0 được thêm vào với lớp input.
- Feature map: Thể hiện kết quả của mỗi lần filter map quét qua input. Sau
mỗi lần quét sẽ xảy ra quá trình tính toán.

6
• Lớp ReLU (ReLU Layer)
- Relu layer là một hàm kích hoạt trong neural network (activation function).
Trong activation function có các hàm cơ bản như: Sigmoid, Tanh, Relu,
Leaky relu, Maxout.

- Ưu điểm : việc tính toán sẽ trở nên nhanh hơn,...

- Lưu ý: + Tùy chỉnh các learning rate và theo dõi dead unit.
+ Những relu layer đã được sử dụng sau khi filter map được tính ra
và áp dụng hàm relu lên những giá trị của filter map.

7
• Lớp Pooling (Pooling Layer)
- Khi đầu vào quá lớn, những Pooling layer sẽ được xếp vào giữa giữa
những lớp Convolutional layer để làm giảm parameter.

 Với một bức ảnh kích thước lớn qua nhiều Pooling layer sẽ được thu nhỏ
lại tuy nhiên vẫn giữ được những đặc trưng cần cho việc nhận dạng.

- Pooling layer có 2 loại phổ biến là:


+ Max pooling
+ Average pooling.

8
• Lớp Fully connected (Fully connected Layer)
- Fully-connected Layer liên kết các nơ-ron trong một layer với các layer
khác. Nó giống như mạng Multi-layer perceptron neural network (MLP).

- Ma trận được làm phẳng (flattened matrix) đi qua Fully-connected Layer để


phân loại các hình ảnh.

9
II.
MÔ HÌNH YOLO.
⬡ YOLO (You only look once) là một mô hình CNN để phát hiện đối tượng mà một
ưu điểm nổi trội là nhanh hơn nhiều so với những mô hình cũ.

⬡ Là một trong những thuật toán nhận diện đối tượng nhanh nhất thời điểm hiện
tại.

⬡ Có ba mô hình chính là YOLOv1, YOLOv2 và YOLOv3.

11
1. Cách thức hoạt động của mô hình YOLO:

⬡ Thuật toán YOLO phân chia bất kỳ hình ảnh đầu vào
bởi hệ thống lưới SxS.

12
2. Chi tiết mô hình YOLO:

Tổng hợp lại, với mỗi ô vuông


chúng ta cần dự đoán các
thông tin sau:
• Ô vuông có chứa đối tượng
nào hay không?
• Dự đoán độ lệch 2 box chứa
đối tượng so với ô vuông hiện
tại.
•Lớp của đối tượng đó.

Hình minh họa phát hiện tâm của object. Dự đoán boundary box

13
⬡ Như vậy với mỗi ô vuông chúng ta cần dự đoán một vector có
(nbox+4*nbox+nclass) chiều. Ví dụ, chúng ta cần dự đoán 2 box, và 3 lớp đối
với mỗi ô vuông thì chúng sẽ có một ma trận 3 chiều 7x7x13 chứa toàn bộ
thông tin cần thiết.

14
3. YOLO phát hiện đối tượng trong CNN.

⬡ Đối với mỗi ô vuông, xây dựng một mô hình CNN có cho ra ouput với hình dạng
phù hợp theo yêu cầu của chúng ta, tức là: grid size x grid size x
(nbox+4*nbox+nclass).
⬡ YOLO sử dụng hồi quy tuyến tính (linear regression) để dự đoán các thông tin ở
mỗi ô vuông.
⬡ Ví dụ:
- Với grid size là 7x7 là mỗi ô vuông dự đoán 2 boxes, và có 3 loại object tất cả
thì chúng ta phải cần output có hình dạng 7x7x13 từ mô hình CNN.

15
4. Kiến trúc các YOLO.

a) YOLO v1:
⬡ Yolo v1 sử dụng khung Darknet được huấn luyện trên tập dữ liệu ImageNet-
1000.
⬡ Hạn chế yolo v1 là nó không thể tìm thấy các vật thể nhỏ nếu chúng xuất hiện
dưới dạng cụm.
⬡ Kiến trúc này gặp khó khăn trong việc khái quát hóa các đối tượng nếu hình ảnh
có kích thước khác với hình ảnh được huấn luyện.

16
4. Kiến trúc các YOLO.

b) YOLO v2:
⬡ Phiên bản thứ hai của YOLO được đặt
tên là YOLO9000 đã được Joseph
Redmon và Ali Farhadi xuất bản vào
cuối năm 2016.
⬡ YOLO v2 sử dụng kiến trúc Darknet 19
với 19 lớp chập và 5 lớp gộp tối đa và
một lớp softmax cho các đối tượng
phân loại. Kiến trúc của Darknet 19.

17
4. Kiến trúc các YOLO.

c) YOLO v3:
⬡ YOLOv3 có tất cả những gì chúng ta cần để phát hiện đối tượng trong thời gian
thực với việc phân loại các đối tượng.
⬡ Dự đoán hộp giới hạn : Trong YOLO v3 đưa ra điểm của các đối tượng cho mỗi hộp
giới hạn. Nó sử dụng hồi quy logistic để dự đoán điểm tương đồng.
⬡ Dự đoán lớp: Trong YOLO v3, nó sử dụng các trình phân loại logistic cho mọi lớp
thay vì dùng lớp softmax đã được sử dụng trong YOLO v2. Bằng cách làm như vậy
trong YOLO v3, chúng ta có thể có phân loại đa nhãn. Với trình phân loại độc lập
đưa ra xác suất cho từng lớp đối tượng.

18
III.
BÀI TOÁN XÂY DỰNG CHÚ
THÍCH MÔ TẢ ẢNH THÔNG
QUA BƯỚC DÒ TÌM ĐỐI
TƯỢNG BẰNG MÔ HÌNH
YOLO & MẠNG RNN.
1. Dữ liệu thực nghiệm bài toán.

• Dataset: Flickr8k (8000 ảnh) (1.4gb)


• Training set: 6000 ảnh
• Validation set: 1000 ảnh
• Testing set: 1000 ảnh

20
1. Dữ liệu thực nghiệm bài toán.

Dữ Liệu gồm 2 folder: Flickr8k_Dataset và Flickrk_Text.


Dữ liệu Flickr8k gồm 60 lớp đối tượng được quan tâm, ví dụ như: person, sport
ball, dog, ….
• Flickr8k_Dataset chứa các ảnh với tên là các id khác nhau.
• Flickr8k_Text chứa:

- - Flickr_8k.testImages, Flickr_8k.devImages, Flickr_8k.trainImages,


Flickr_8k.devImages chứa id các ảnh dùng cho việc test, train, validation.
- Flickr8k.token chứa các caption của ảnh, mỗi ảnh chứa 5 captions.

21
1. Dữ liệu thực nghiệm bài toán.
- A child in a pink dress is climbing up a
set of stairs in an entry way.

- A girl going into a wooden building.

- A little girl climbing into a wooden


playhouse.

- A little girl climbing the stairs to her


playhouse.

- A little girl in a pink dress going into a


wooden cabin.

22
1. Dữ liệu thực nghiệm bài toán.

⬡Một ảnh 5 caption sẽ cho ra 5 traning set khác nhau: (ảnh, caption 1), (ảnh,
caption 2), (ảnh, caption 3), (ảnh, caption 4), (ảnh, caption 5).

⬡ Như vậy traning set sẽ có 8000 * 5 = 40000 dataset.

23
2. Xác định bài toán.

• Input: Ảnh.
• Output: Văn bản hoặc giọng nói với nhiều ngôn ngữ.
Dữ liệu ra là văn bản và giọng nói với nhiều ngôn ngữ là Tiếng Anh.

24
2. Ý tưởng bài toán.

 Object detection:
- phân loại được đối tượng (object)
- xác định vị được vị trí của đối tượng.
- sử dụng mô hình YOLO v3.

25
2. Ý tưởng bài toán.

 Object detection:
- Đầu vào là một ảnh, đối với bài toán dò tìm đối tượng (object detection), ta không
chỉ phải phân loại được đối tượng (object) trên bức ảnh mà còn phải định vị được vị
trí của đối tượng đó.

- Chia ảnh đầu vào thành nhiều hộp (box), mỗi box sẽ phát hiện đối tượng trong box
đó. Vị trí của đối tượng chính là tọa độ của box đó.

- Thay vì chia thành từng box, ta sẽ sử dụng thuật toán để lựa chọn những khu vực
ứng viên, các vùng ứng viên này có thể tưởng như là những vùng liên thông với
nhau trên kênh màu RGB, sau đó với mỗi vùng ứng viên này, ta dùng model để
phân loại object.

26
3. Ý tưởng bài toán.

 Image captioning:

sơ đồ ý tưởng bài toán image captioning.

27
3. Ý tưởng bài toán.

 Ví dụ embedding vector dự đoán từ tiếp theo trong caption của ảnh.


CAPTION: A little girl in a pink dress going into a wooden cabin.
Ví dụ:
- Embedding vector + A -> girl
- Embedding vector + A girl -> going
- Embedding vector + A girl going -> into
- Embedding vector + A girl going into -> a.
- Embedding vector + A girl going into a -> wooden
- Embedding vector + A girl going into a wooden -> building .

28
thanks for watching

29

You might also like