📚 알파벳 필기 인식 프로젝트
📌 프로젝트 개요
수행 기간 |
2020.11 - 2020.12 |
사용 데이터 |
30*30 px 필기 이미지 데이터 제작 (125장) |
내용 |
직접 30*30 픽셀의 이미지에 필기 데이터를 제작하고, 이를 활용한 알파벳 필기 인식 프로그램을 구축하여 이미지에 작성된 알파벳을 예측 |
성과 |
전공 학부 ‘전산수학’ A+ 학점 |
처음으로 머신러닝과 딥러닝을 구현해본 프로젝트다.
개인 프로젝트였기에 데이터 생성과 정제,
학습과 성능 평가까지 데이터 분석 프로젝트에서 수행하는 모든 과정을 직접 구현했으며,
이 프로젝트를 계기로 빅데이터 분석학을 연계전공했다.
보다 간단한 프로젝트지만, 진로 결정에 큰 영향을 미쳤음에 의의를 두며 다음은 프로젝트 보고서다.
📑 프로젝트 보고서
1. Make Data File
1) 직접 알파벳 5개에 대한 필기 데이터를 만든다.
- 본인 이름에 들어가는 알파벳 5개를 중복이 없도록 선택한다. (예: EUNWOO -> E, U, N, W, O 선택)
- 그림판을 이용하여 30*30 pixel로 각 알파벳마다 25개의 이미지를 생성하고 (총 125개 파일 생성) data1.png ~ data125.png로 이름을 저장한다.
2. Coding
1) 변수 생성
- 반복문으로 각 데이터 파일을 array 변수 x로 불러오기 (즉, x의 shape은 (125, 900))
- x의 각 data에 대응하는 알파벳 값(A=1, B=2, C=3, D=4,...)을 저장한 label data(변수 t)를 생성한 뒤
x와 t를 input.npz 파일에 저장함
2) 머신러닝 프로그램을 알파벳 데이터에 맞게 수정하기
- 은닉층 변수 개수는 40개로 선정
- 출력층 변수는 모든 알파벳 갯수 26으로 선정.
- eta와 초기값, 반복횟수는 적절히 조정함.
3. Test
1) 머신러닝 프로그램을 사용하여 새 데이터로 테스트
- 머신러닝 학습 후 데이터를 learning.npz에 저장.
- 선택한 알파벳에 대하여 각각 테스트 데이터를 추가로 만듬. (test1.png~test5.png)
- 예측결과와 원본 알파벳을 비교.
4. How/Where to Use
방안 |
내용 |
문제점 |
1 |
스마트 패드의 메모 기능과 접목해, 사람의 필기를 텍스트로 바꾸어주는 기능 개발. |
사람마다 필기체가 달라서 필기 인식 오류가 많을 것으로 예상된다. 또한 다국어적용으로 세계에서 이용되기까지 오랜 시간이 소요될 것으로 예상된다. |
2 |
프로그램은 모든 사람에게 같은 글씨체를 보여주고, 사람들은 프로그램에게 개인의 글씨체를 제공하여 개인 잠금 장치로 이용. 개인 업무 보안, 은행 보안 등에서 어떤 단어를 입력하여 잠금을 해제하는 기능 개발. |
사람의 글씨체가 같을 때, 보안이 뚫리는 문제가 발생하게 된다. 한 사람이 여러 개의 글씨체를 배웠을 때도 비슷한 문제가 발생할 수 있다. 또한 프로그램 상의 에러가 발생하면 보안 해킹의 위험성도 배제할 수 없다. |
3 |
텍스트, 문장 찾기 기능으로 이용. 사용자가 직접 작성해둔 필기파일에서 찾을 텍스트나 문장을 입력하면 해당 내용이 있는 페이지로 이동하는 기능 개발. |
적용할 수 있는 언어의 개수가 많아지면 생길 수 있는 오류도 많아진다. |
5. 데이터 파일 및 코드 구현 (깃허브 링크)