본문 바로가기

MATLAB/ㄴ 영상 딥러닝

예제_영상 분류하기(Googlenet)

0. 참고 문서

https://kr.mathworks.com/help/deeplearning/ug/classify-image-using-googlenet.html

 

GoogLeNet을 사용하여 영상 분류하기 - MATLAB & Simulink - MathWorks 한국

이 예제의 수정된 버전이 있습니다. 사용자가 편집한 내용을 반영하여 이 예제를 여시겠습니까?

kr.mathworks.com

 

 

1. 사전훈련된 신경망 불러오기

 


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

% 클래스 이름 표시
classNames = net.Layers(end).ClassNames;
numClasses = numel(classNames);
disp(classNames(randperm(numClasses,10)))

 

 

 

2. 영상 읽기 및 크기 조정하기

 


% 분류하려는 영상을 읽어들이고 표시함
I = imread('peppers.png');
figure
imshow(I)

% 영상의 크기 표시
size(I)

% imresize를 이용하여 영상의 크기를 신경망의 입력크기와 맞게 조절
I = imresize(I,inputSize(1:2));
figure
imshow(I)

 

 

 

3. 영상 분류하기

 


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

% 영상을 예측된 레이블 및 확률과 함께 표시함
figure
imshow(I)
title(string(label) + ", " + num2str(100*scores(classNames == label),3) + "%");

 

 

 

4. 상위예측 표시하기

 


[~,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)