Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 26

6. Compute top-1 & top-5 error rates for AlexNet and two other models.

Use at
least 5 classes with minimum 20 images per class

- Models: Using Pretrained Network from Deep Learning Toolbox of Matlab

Top-1 error rates Top-5 error rates

Alexnet 11% 8%

Inceptionv3 4% 1%

ResNet101 5% 2%
Bảng 6.1.1. Top-1 và top-5 error rates của các model

6.1. Alexnet model

6.1.1. Code

net = alexnet; inputSize = net.Layers(1).InputSize

classNames = net.Layers(end).ClassNames;

numClasses = numel(classNames);

I = imread('Hog (20).jpg');

figure

imshow(I)

size(I)

I = imresize(I,inputSize(1:2));

figure

imshow(I)

[label,scores] = classify(net,I);

label

figure

imshow(I)
title(string(label) + ", " + num2str(100*scores(classNames == label),3) + "%");

[~,idx] = sort(scores,'descend');

idx = idx(5:-1:1);

classNamesTop = net.Layers(end).ClassNames(idx);

scoresTop = scores(idx);

figure

barh(scoresTop)

xlim([0 1])

title('Top 5 Predictions')

xlabel('Probability')

yticklabels(classNamesTop)

6.1.2. Kết quả

Hình 6.1.1. Kích thước đầu vào, kích thước ảnh thật và kết quả dự đoán
Hình 6.1.2. Ảnh đầu vào

Hình 6.1.3. Ảnh sau khi điều chỉnh phù hợp với yêu cầu đầu vào
Hình 6.1.4. Kết quả dự đoán có tỷ lệ cao nhất

Hình 6.1.5. 5 kết quả dự đoán có tỷ lệ cao nhất


Wombat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Wombat 0.95 0.94 0.99 0.3 0.87 0.61 0.99 0.87 0.62 0.99 0.99 0.96 0.33 0.97 0.91 0.99 0.87 0.16 1 0.98

Starfish 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Wild boar 0.004 0 0.0004 0 0 0 0 0 0 0 0 0.03 0 0.003 0.005 0 0 0 0 0

Hog 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Hare 0 0 0.0007 0 0 0 0 0 0 0 0 0 0 0.001 0 0 0 0 0 0

Bảng 6.1.2. Kết quả dự đoán của 20 ảnh Wombat

Starfish 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Wombat 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Starfish 0.34 0 0.99 1 1 1 0 0.2 1 0.98 0.89 0.001 0.68 0.86 0.31 0.99 0.99 0 0 0.99

Wild boar 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Hog 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Hare 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Bảng 6.1.2. Kết quả dự đoán của 20 ảnh Starfish

Wild boar 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Wombat 0 0 0 0 0 0 0 0.41 0 0 0 0 0 0 0 0 0 0 0 0.006

Starfish 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Wild boar 0.4 0.68 0.84 0.03 0.43 0 0.6 0.24 0.113 0.12 0.58 0.03 0.61 0.34 0.82 0.1 0.39 0.6 0.9 0.73

Hog 0.43 0.29 0.15 0.94 0.21 0 0.11 0.13 0.110 0 0.35 0 0.14 0.35 0.13 0.03 0.28 0.05 0.08 0.23

Hare 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0 0 0 0

Bảng 6.1.3. Kết quả dự đoán của 20 ảnh Wild boar


Hog 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Wombat 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Starfish 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Wild boar 0 0 0.76 0 0.14 0.0003 0 0 0.0004 0.063 0 0 0 0 0 0 0 0 0 0

Hog 0.82 0 0.05 0.98 0.81 0.86 0.06 0.79 0.99 0.068 0.86 0 0.03 0.55 0.07 0.97 0.47 0.44 0.19 0.98

Hare 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Bảng 6.1.4. Kết quả dự đoán của 20 ảnh Hog

Hare 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Wombat 0 0 0 0 0 0 0.32 0 0 0 0 0 0 0 0 0 0 0 0 0

Starfish 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Wild boar 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Hog 0 0 0 0 0 0 0.003 0 0 0 0 0 0 0 0 0 0 0 0 0

Hare 0.86 0.99 0.58 0.84 0.99 0.71 0 0.26 0.98 0.27 1 0.63 0.28 0.81 0.92 0.64 0.89 0.96 0.93 1

Bảng 6.1.5. Kết quả dự đoán của 20 ảnh Hare

6.2. Inceptionv3 model

6.2.1. Code

net = inceptionv3;

inputSize = net.Layers(1).InputSize

classNames = net.Layers(end).ClassNames;

numClasses = numel(classNames);

I = imread('Hog (20).jpg');

figure

imshow(I)

size(I)

I = imresize(I,inputSize(1:2));
figure
imshow(I)

[label,scores] = classify(net,I);

label

figure

imshow(I)

title(string(label) + ", " + num2str(100*scores(classNames == label),3) + "%");

[~,idx] = sort(scores,'descend');

idx = idx(5:-1:1);

classNamesTop = net.Layers(end).ClassNames(idx);

scoresTop = scores(idx);

figure

barh(scoresTop)

xlim([0 1])

title('Top 5 Predictions')

xlabel('Probability')

yticklabels(classNamesTop)

6.2.2. Kết quả


Hình6.2.1. Kích thước đầu vào, kích thước ảnh thật và kết quả dự đoán

Hình 6.2.2. Ảnh đầu vào

Hình 6.2.3 Ảnh sau khi điều chỉnh phù hợp với yêu cầu đầu vào
Hình 6.2.4 Kết quả dự đoán có tỷ lệ cao nhất

Hình 6.2.5 5 kết quả dự đoán có tỷ lệ cao nhất


Wombat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Wombat 0.93 0.48 0.83 0.26 0.59 0.03 0.89 0.72 0.94 0.93 0.88 0.93 0.32 0.93 0.96 0.8 0.72 0.87 0.89 0.78

Starfish 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Wild
0.0008 0.01 0.001 0 0 0 0 0 0.0004 0 0 0.0009 0 0.0009 0 0 0 0 0.001 0
boar

Hog 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Hare 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.002 0 0 0

Bảng 6.2.1. Kết quả dự đoán của 20 ảnh Wombat

Starfish 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Wombat 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Starfish 0.88 0 0.99 0.95 0.99 1 0.04 0.97 0.99 0.98 0.99 0.83 0.99 1 1 1 0.99 0.97 0.98 1

Wild boar 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Hog 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Hare 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Bảng 6.2.2. Kết quả dự đoán của 20 ảnh Starfish

Wild boar 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Wombat 0 0 0 0 0 0 0 0.003 0 0 0 0 0 0 0 0 0 0 0 0

Starfish 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Wild boar 0.79 0.76 0.75 0.06 0.6 0.47 0.66 0.47 0.14 0.74 0.62 0.07 0.85 0.8 0.72 0.75 0.65 0.78 0.79 0.73

Hog 0.16 0.17 0.17 0.78 0.22 0.15 0.04 0.42 0.83 0.15 0.36 0.05 0.1 0.14 0.22 0.2 0.3 0.17 0.15 0.23

Hare 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Bảng 6.2.3. Kết quả dự đoán của 20 ảnh Wild boar

Dog 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Wombat 0 0 0.001 0 0 0 0 0 0 0 0 0 0.03 0 0 0 0 0 0 0

Starfish 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Wild boar 0 0.08 0.67 0.004 0.07 0.005 0.64 0.01 0.08 0.18 0.002 0.03 0 0 0 0.002 0.02 0.01 0.01 0.01

Hog 0.88 0.86 0.2 0.79 0.89 0.93 0.18 0.82 0.87 0.7 0.97 0.52 0.24 0.71 0.66 0.99 0.82 0.64 0.85 0.93

Hare 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Bảng 6.2.4. Kết quả dự đoán của 20 ảnh Hog

Hare 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Wombat 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Starfish 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Wild boar 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Hog 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Hare 0.4 0.93 0.95 0.89 0.95 0.95 0.97 0.97 0.88 0.48 0.94 0.81 0.98 0.94 0.87 0.74 0.94 0.93 0.88 0.9

Bảng 6.2.5. Kết quả dự đoán của 20 ảnh Hare

6.3. ResNet101 model

6.3.1. Code

net = resnet101;

inputSize = net.Layers(1).InputSize

classNames = net.Layers(end).ClassNames;

numClasses = numel(classNames);

I = imread('Hog (20).jpg');

figure

imshow(I)

size(I)

I = imresize(I,inputSize(1:2));

figure
imshow(I)

[label,scores] = classify(net,I);

label

figure

imshow(I)

title(string(label) + ", " + num2str(100*scores(classNames == label),3) + "%");

[~,idx] = sort(scores,'descend');

idx = idx(5:-1:1);

classNamesTop = net.Layers(end).ClassNames(idx);

scoresTop = scores(idx);

figure

barh(scoresTop)

xlim([0 1])

title('Top 5 Predictions')

xlabel('Probability')

yticklabels(classNamesTop)

6.3.2. Kết quả


Hình 6.3.1. Kích thước đầu vào, kích thước ảnh thật và kết quả dự đoán

Hình 6.3.2. Ảnh đầu vào


Hình 6.3.3. Ảnh sau khi điều chỉnh phù hợp với yêu cầu đầu vào

Hình 6.3.4 Kết quả dự đoán có tỷ lệ cao nhất


Hình 6.3.5. 5 kết quả dự đoán có tỷ lệ cao nhất

Wombat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Wombat 0.91 0.97 0.99 0.7 0.83 0.91 0.99 0.8 0.95 0.99 0.98 0.67 0.55 0.35 0.98 0.91 0.23 0.94 0.99 0.99

Starfish 0 0 0 0 0 0 0 0 0 0 0 0 0 0.28 0 0 0 0 0 0

Wild
0.005 0.007 0 0 0 0 0 0 0.01 0 0 0.12 0.19 0 0.005 0 0 0.002 0.0006 0
boar

Hog 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Hare 0 0 0 0 0 0 0.0001 0 0 0 0 0 0 0 0 0 0 0 0 0

Bảng 6.3.1. Kết quả dự đoán của 20 ảnh Wombat


Starfish 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Wombat 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Starfish 0.86 0.57 0.99 0.98 1 1 0 0.34 1 0.99 0.95 0.03 0.96 0.99 0.99 1 0.98 0.91 0.8 1

Wild boar 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Hog 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Hare 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Bảng 6.3.2. Kết quả dự đoán của 20 ảnh Starfish

Wild boar 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Wombat 0 0 0 0 0 0 0 0.01 0 0.01 0 0 0 0 0 0 0 0 0 0

Starfish 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Wild boar 0.78 0.67 0.83 0.97 0.61 0 0.69 0.63 0.17 0.64 0.86 0.05 0.91 0.77 0.82 0.86 0.48 0.92 0.78 0.68

Hog 0.2 0.29 0.13 0.01 0.38 0 0.15 0.25 0.81 0.25 0.13 0.06 0.08 0.17 0.15 0.11 0.47 0.06 0.2 0.31

Hare 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Bảng 6.3.3. Kết quả dự đoán của 20 ảnh Wild boar

Hog 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Wombat 0 0 0 0 0 0 0 0 0 0 0 0 0.24 0 0 0 0 0 0 0

Starfish 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Wild
0 0.005 0.89 0.001 0.04 0.02 0.37 0.02 0.01 0.22 0.004 0 0 0.0001 0 0.001 0.003 0 0.009 0.005
boar

Hog 0.98 0.99 0.08 0.99 0.25 0.24 0.61 0.82 0.98 0.73 0.93 0.11 0.12 0.98 0.08 0.99 0.99 0.55 0.98 0.99

Hare 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Bảng 6.3.4. Kết quả dự đoán của 20 ảnh Hog


Hare 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Wombat 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Starfish 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Wild boar 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Hog 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Hare 0.97 0.99 0.96 0.98 0.99 0.77 0.54 0.98 0.99 0.62 0.99 0.9 0.99 0.95 0.94 0.66 0.87 0.98 0.98 0.99

Bảng 6.3.5. Kết quả dự đoán của 20 ảnh Starfish

7. Evaluate the performance of AlexNet using images with various aspect


ratios

- Hiệu suất của AlexNet trên hình ảnh có nhiều tỷ lệ khung hình khác nhau có thể bị

ảnh hưởng bởi một số yếu tố. AlexNet, được thiết kế cho kích thước đầu vào cụ thể

là 224x224 pixel. Nếu sử dụng hình ảnh có tỷ lệ khung hình khác nhau có thể gặp

phải một số thứ:

- Kích thước đầu vào và tỷ lệ khung hình không khớp: Nếu hình ảnh có tỷ lệ khung
hình khác, cần thay đổi kích thước hoặc cắt chúng để phù hợp với kích thước đầu
vào dự kiến của mạng. Việc thay đổi kích thước hoặc cắt xén này có thể làm sai lệch

tỷ lệ khung hình gốc, có khả năng dẫn đến mất thông tin.

- Thích ứng mô hình: Kiến trúc của AlexNet có thể không tối ưu cho tất cả các loại
hình ảnh. Các mô hình gần đây hơn, chẳng hạn như các mô hình dựa trên ResNet
hoặc EfficiencyNet, được thiết kế để xử lý các biến thể về kích thước đầu vào một
cách đa dạng hơn.

- Tăng cường dữ liệu: Để cải thiện độ mạnh mẽ của mô hình, có thể sử dụng các kỹ

thuật tăng cường dữ liệu. Đối với các hình ảnh có nhiều tỷ lệ khung hình khác nhau,

có thể áp dụng cắt, xoay và lật ngẫu nhiên trong quá trình huấn luyện để hiển thị mô

hình với các biến thể đầu vào đa dạng.


9. For classification problems, why we use one-hot encoding instead of one
output (e.g. encoding 4 classes as 1, 2, 3, 4) or binary encoding (e.g encoding
4 classes as 00, 01, 10, 11)?

- Trong các bài toán phân loại Classification sử dụng data input là datasets hoạt

dataframe có chứa những features với kiểu dữ liệu Categorical chúng ta thường

dùng kiểu mã hóa one_hot label encoding thay vì encoding theo thứ tự 1, 2,.. hoặc

mã hóa nhị phân 00, 01,… trong 1 số bài toán vì nhiều lí do:

• Tránh “phân cấp” cho các dữ liệu được mã hóa: việc mã hóa theo thứ tự 1, 2,…
có thể làm mô hình hiểu sai về mối quan hệ giữ các values có trong 1 feature. Ví

dụ như feature Car có 1 số values như Lambo, Toyota, Honda, 3 values này có
“cấp độ” như nhau trong feature Car và chúng cũng không liên hệ với nhau theo
1 quan hệ cụ thể do đó việc chọn one_hot label là phù hợp hơn cả. Ngoài ra khi 1
features có rất nhiều values unique như 10 hay 15 values thì one_hot label rất
phù hợp cho việc mã hóa dữ liệu.

• Phù hợp cho các bài toán phân loại đa lớp Multi-Label Classification: việc sử

dụng one_hot label trong các bài toán này giúp cho mạng neuron dễ dàng tính

toán và đem lại hiệu suất cao cũng như đem lại cái nhìn tổng quan về dữ liệu

dạng Categorical.

10. Write a program implementing feature normalization

10.1. Code
Hình 10.1. Code matlab thực hiện

10.2. Kết quả

Hình 11.2. Hình ảnh trước-sau chuẩn hóa


13. Evaluate object detector using YOLO or R-CNN pretrained model.

13.1. YOLO

- Trình phát hiện một giai đoạn: Xử lý toàn bộ hình ảnh cùng một lúc, xử lý rất nhanh

(trong một số trường hợp là thời gian thực).

- Cách tiếp cận dựa trên lưới: 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 đối tượng cho mỗi ô.
- Khả năng thu hồi cao, độ chính xác thấp hơn: Phát hiện nhiều đối tượng nhưng có
thể gặp khó khăn với các chi tiết nhỏ hơn hoặc các đối tượng chồng chéo.
- Tốt cho các ứng dụng thời gian thực như giám sát video hoặc xe tự hành.

13.2. R-CNN

- Trình phát hiện hai giai đoạn: Đầu tiên tạo ra các đề xuất vùng, sau đó phân loại và

tinh chỉnh chúng.


- Chính xác hơn YOLO, đặc biệt đối với những cảnh phức tạp.
- Chậm hơn YOLO do quy trình gồm hai giai đoạn.
- Tốt hơn cho các tác vụ có độ chính xác cao như chụp ảnh y tế hoặc xe tự lái.
13.4. Kết luận
Tính năng
YOLO R-CNN

Một giai đoạn Hai giai đoạn


Kiến trúc

Tốc độ
Nhanh nhất Chậm nhất

Thu hồi cao, độ chính


Sự chính xác xác thấp Độ chính xác cao

Nhiệm vụ có độ chính xác


Thời gian thực, giám cao, hình ảnh y tế,
Các ứng dụng
sát video, xe tự hành
xe tự lái

Bảng 13.1. So sánh Object detector

14. Train object detection YOLO or R-CNN


14.1 Object Detector Yolo

14.1.1 Code
Hình 14.1. Code python thực hiện Object Detection sử dụng YOLO

14.1.2. Kết quả

Hình 14.2. Kết quả Object Detection sử dụng YOLO


14.2 Object Detector R-CNN

14.2.1 Code

Hình 14.3. Code python thực hiện Object Detection sử dụng R-CNN
14.2.2 Kết quả

Hình 14.4. Kết quả Object Detection sử dụng R-CNN

16. What are PF, FN for object detection problem?

- PF: Độ chính xác: Điều này đề cập đến tỷ lệ các đối tượng được phát hiện chính xác
(Dương tính thật) so với tất cả các đối tượng được phát hiện, bao gồm cả Dương
tính thật và Dương tính giả. Nói cách khác, nó đo lường mức độ chính xác của mô

hình trong các phát hiện tích cực của nó.


- FN: Phủ định sai: Điều này đề cập đến số lượng đối tượng thực tế cơ bản mà mô
hình bỏ lỡ . Đây là những đối tượng có trong ảnh nhưng không được mô hình phát
hiện.
- Dưới đây là phân tích các thuật ngữ này trong Object Detection:

• Tích cực thực sự (TP): Một đối tượng được mô hình phát hiện và phân loại chính
xác.
• Dương tính giả (FP): Một đối tượng được mô hình phát hiện nhưng không thực
sự xuất hiện trong hình ảnh ("báo động sai").

• Âm tính thực (TN): Một đối tượng không được mô hình phát hiện và không thực

sự xuất hiện trong hình ảnh (nền được bỏ qua chính xác).
• Âm tính giả (FN): Một đối tượng có trong ảnh nhưng không được mô hình phát
hiện (một đối tượng bị bỏ sót).

Hình 16.1. Confusion matrix

- PF và FN là các số liệu quan trọng để đánh giá hiệu suất của mô hình phát hiện đối
tượng vì chúng cung cấp cho chúng ta cái nhìn sâu sắc về điểm mạnh và điểm yếu
của nó. PF cao cho biết mô hình có độ chính xác cao, nghĩa là nó chủ yếu phát hiện
được những gì nó nói. FN thấp cho biết mô hình có khả năng thu hồi tốt, nghĩa là mô
hình không bỏ sót nhiều đối tượng. Tuy nhiên, các số liệu này thường đánh đổi lẫn
nhau. Ví dụ: việc tăng ngưỡng phát hiện để giảm FP cũng có thể tăng FN.

You might also like