이와 같이 3가지의 모델을 저장하였고, 이제 이 모델을 별도의 개발 환경에서 불러와 이미지를 올바르게 예측할 수 있는지 확인한다. 이번 포스팅에선 CNN 모델을 활용한다.
from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing.image import load_img , img_to_array
model = load_model('cnn_test.h5')
load_model이라는 모듈을 활용하면 저장한 모델을 불러올 수 있습니다.
모델 적용에 앞서 numpy를 활용하여 배열로 변환해야 한다. 단 모델 학습 시 적용한 이미지의 크기와 동일하게 설정해야 오류가 발생하지 않는다.
import numpy as np
imag = load_img('finger_test.jpg',target_size = (128,128))
imag = img_to_array(imag)
img = imag.reshape(1,128,128,3)
img = img.astype('float32')
test_image = img/255.0
result = model.predict(test_image)
위의 이미지를 모델이 읽고, 이에 대한 예측 결과를 받아볼 예정이다.
categories=['one_finger','two_finger','three_finger','four_finger','five_finger']
print("Prediction: " + str(np.argmax(result)))
accuracy = str(int(np.max(result)*100))+"%"
pred = [np.argmax(value) for value in result]
print('New data category :',categories[pred[0]])
Prediction: 0
New data category : one_finger
이렇게 모델 학습부터 활용까지 포스팅을 모두 마쳤다. 아직 보완해야 할 부분이 많고, 모르는 부분도 많다. 지속적으로 AI 분야에 관심을 가지면서 이와 관련된 포스팅을 할 생각이다😂
github 주소 : https://github.com/Kihoon-Kwon/multiclass_ImageClassification.git