Skip to content

sunyeongan/Mnist_Convolution_filter_recognition

Repository files navigation

Mnist_Convolution_filter_recognition

어떤 필터를 적용해야 손글씨 인식률이 높아질까?

그림판에 직접 쓴 손글씨를 여러가지 필터(블러링 ,샤프닝, 저주파 필터 등등)를 적용해서 어떤 것이 손글씨 인식률이 높은지 비교한다. Tesorflow mnist dataset으로 학습시킨 후 필터를 적용한 손글씨 사진을 test 한다.


그림판 프로그램

  1. 그림판 프로그램에서 내가 직접 0~9까지의 숫자를 1개 그린다.
  2. 그린 숫자를 my_save_1.png파일로 저장한다.(사진을 저장할 때 마다 파일명 뒤의 인덱스를 증가시켜준다.)
  3. 원본을 복사해서 필터 적용 후 png파일로 따로 저장한다.

손글씨 숫자를 예측하는 프로그램

  1. mnist dateset을 가져와 0~9사이의 손글씨 데이터를 학습시킨다.
  2. 그림판에서 그린 숫자 손글씨의 원본, 필터가 적용된 png파일을 불러온다.
  3. 불러온 이미지의 사이즈를 테스트에 적합하게 수정한다.
  4. 변경된 이미지를 사용하여 예측값을 출력한다.

손글씨를 test 하는 프로그램 : mnist_start2.ipynb실행

  1. 데이터셋 생성
  2. 모델 구성하기
  3. 모델 학습과정 설정하기
  4. 모델 학습
  5. 모델 평가
  6. 원본이미지, 필터를 적용한 이미지들을 불러온다
  7. Mnist dataset은 배경이 검정이고 글씨부분은 흰색이다. Cv2.threshold(src,190,255,cv2.THRESH_BINARAY_INV) 픽셀값이 190 이상이면 검은색, 이하이면 흰색으로 이진화한다.(그림판에서 그린 이미지는 배경이 흰색 글씨가 검은색으로 학습을 하려면 반대로 바꾸어 주어야 한다.)

스크린샷 2021-08-01 오후 11 49 31

스크린샷 2021-08-01 오후 11 49 37


결과


1.크키가 큰 원본 이미지에서 mnist dataset과 같은 사이즈인 28*28 사이즈로 바꾸다 보니 픽셀이 많이 깨지는 것을 해결하지 못했다.

2.이진화 타입에 따라서 학습된 모델이 예측하는 값이 달라질 수 있을 것 같다

3.mnist 데이터셋 처럼 손글씨가 꽉차게 들어가야 인식률이 높아질 것이다.(그림판에서 그린 손글씨는 여백이 많이 남아있다)

About

2020-1 영상처리프로그래밍 프로젝트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published