2월 3주차_프로젝트 진행상황 - chloe73/openCV GitHub Wiki
영어 인식 실습하기 숫자 인식 마무리 단계
☀️이번주 목표 : import tensorflow as tf
import cv2
import matplotlib.pyplot as plt
from tensorflow.keras import datasets, layers, models
(train_images, train_labels), (test_images, test_labels) = datasets.mnist.load_data()
train_images = train_images.reshape((60000, 28, 28, 1))
test_images = test_images.reshape((10000, 28, 28, 1))
# 픽셀 값을 0~1 사이로 정규화합니다.
train_images, test_images = train_images / 255.0, test_images / 255.0
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.summary()
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))
model.summary()
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=5)
test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)
print(test_acc)
인식률
gray = cv2.imread("4_num.jpg", cv2.IMREAD_GRAYSCALE)
plt.imshow(gray)
plt.show()
# 이미지 사이즈 변경
gray = cv2.resize(255 - gray, (28, 28))
test_num = gray.flatten() / 255.0
test_num = test_num.reshape((-1, 28, 28, 1))
# 이미지 숫자 테스트
print('The Answer is ', model.predict_classes(test_num))
시도
실패한 것
0, 5 이미지
문제점
- 이미지의 비율
해결
- 사진의 가로세로를 숫자에 딱맞게 자름
- resize 되어서 사진이 작아지더라도 이미지의 비율을 맞게 조정함
느낀것 : 그래서 추출할 객체의 컨투어(윤곽)을 검출하여 객체를 가공하는구나 싶었다