그림판에 직접 쓴 손글씨를 여러가지 필터(블러링 ,샤프닝, 저주파 필터 등등)를 적용해서 어떤 것이 손글씨 인식률이 높은지 비교한다. Tesorflow mnist dataset으로 학습시킨 후 필터를 적용한 손글씨 사진을 test 한다.
- 그림판 프로그램에서 내가 직접 0~9까지의 숫자를 1개 그린다.
- 그린 숫자를 my_save_1.png파일로 저장한다.(사진을 저장할 때 마다 파일명 뒤의 인덱스를 증가시켜준다.)
- 원본을 복사해서 필터 적용 후 png파일로 따로 저장한다.
- mnist dateset을 가져와 0~9사이의 손글씨 데이터를 학습시킨다.
- 그림판에서 그린 숫자 손글씨의 원본, 필터가 적용된 png파일을 불러온다.
- 불러온 이미지의 사이즈를 테스트에 적합하게 수정한다.
- 변경된 이미지를 사용하여 예측값을 출력한다.
- 데이터셋 생성
- 모델 구성하기
- 모델 학습과정 설정하기
- 모델 학습
- 모델 평가
- 원본이미지, 필터를 적용한 이미지들을 불러온다
- Mnist dataset은 배경이 검정이고 글씨부분은 흰색이다. Cv2.threshold(src,190,255,cv2.THRESH_BINARAY_INV) 픽셀값이 190 이상이면 검은색, 이하이면 흰색으로 이진화한다.(그림판에서 그린 이미지는 배경이 흰색 글씨가 검은색으로 학습을 하려면 반대로 바꾸어 주어야 한다.)
1.크키가 큰 원본 이미지에서 mnist dataset과 같은 사이즈인 28*28 사이즈로 바꾸다 보니 픽셀이 많이 깨지는 것을 해결하지 못했다.
2.이진화 타입에 따라서 학습된 모델이 예측하는 값이 달라질 수 있을 것 같다
3.mnist 데이터셋 처럼 손글씨가 꽉차게 들어가야 인식률이 높아질 것이다.(그림판에서 그린 손글씨는 여백이 많이 남아있다)