0. 참고 문서
https://kr.mathworks.com/help/deeplearning/ug/classify-image-using-googlenet.html
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) |