프로젝트 최종발표 - 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되서 사진이 작아지더라도 사진의 비율이 맞게끔 조정함
💐소감발표
🌼이소민 : 생소한 기술에 대해 배우고 경험할 수 있어서 유익한 시간이었습니다. 혼자라면 시도하지 못했을 프로젝트와 실습들을 교수님과 친구들과 함께 할 수 있어서 좋았습니다! 그동안 저희 조가 진행한 프로젝트와 스터디에 도움을 주신 교수님 정말 감사합니다🙂
🌳박상훈 : opencv까진 신기하면서했지만 tensorflow로 넘어오니까 가상환경 설정도 잘안되고 라이브러리 파일오류도 나고 메소드의 인자값도 오류가 나고 그래서 잘되지는 않았다, 하지만 어떻게든 숫자인식만은 해보자해서 mnist데이터를 이용한 숫자인식은 성공하였다 관심도 없던 새로운 분야를 경험해볼수 있어서 뜻깊었고 다음에 다시 접하게된다면 그때는 두려움,거부감 없이 잘할수 있을것 같다.
🎶정진이 : 방학 때 교수님과 조원들의 도움을 얻어 영상처리 기술에 관해 배우게 되어 매우 뜻 깊었습니다. 생각보다 쉽지 않은 선택이라 목표했던 것 보다 덜 진행하게되어 아쉬웠지만 최대한 열심히 이끌어준 친구들 덕분에 얻어가는 것이 많아서 좋았습니다. 모두 수고하셨습니다!
⛄️강예성: opencv를 공부하면서 컴퓨터가 이미지를 인식하는 과정을 알게되어 재미있었고, 어려운 부분도 많았지만 팀원들과 같이 공부하니까 많은 도움이 되었습니다. 비록 손글씨 인식 프로그램은 아쉽게 끝났지만 많은것을 배울 수 있었습니다.