0. 들어가기전...
머신 러닝을 배우며 프로젝트를 진행하게 되었고 팀원 3명으로 팀을 이뤄 프로젝트를 진행하게 되었습니다.
- 주제 선정
- 설계
- 구현
- 실제 결과물
- 한계점 및 추후목표
1. 주제 선정.
https://www.kaggle.com/shanks0465/braille-character-dataset
주제 선정을 위해 여러가지 데이터들을 살펴 보던중 다음과 같은 점자(Braille) 데이터를 보게 되었습니다.
더불어 작년 학교에서 수강했던 특수교육학의 내용이 머릿속을 스쳐지나 갔습니다..
시각 장애인들은 점자를 이용하여 정보를 읽어냅니다.
하지만 그 점자를 설치하는 사람들은 대부분 비시각 장애인들이며 그렇기에 위의 사진과 같이 점자가 뒤집히는 상황이 발생하여도 문제를 발견하기 어렵습니다.
엘리베이터 버튼의 경우 단순히 화살표의 방향만 보고 설치한것이며 비교적 한단어, 한 자음등 간략하게 정보를 주어 틀려도 쉽게 찾을 수 있지만 문장이 길어질 경우 그 오류를 찾기는 어려워집니다.
그렇기에 점자를 읽어 번역할 수 있다면, 설치 다시 확인하기 용이 할 것이고, 잘못된 점이 있다면 발견하기 좋을것이라 생각했습니다.
2. 설계
설계에 있어서 다음과 같은 사항을 중점적으로 생각하였습니다..
- 외부의 점자이미지를 받아올 것
- GUI를 구현해 번역 결과를 다시 출력해 줄것.
- 점자>영어 전환, 영어>점자 전환이 가능할 것.
- 띄어쓰기(공백)도 러닝하여 문장구조로 구현이 가능할것.
2-1. 점자의 특징.
https://ko.wikipedia.org/wiki/%EC%98%81%EC%96%B4_%EC%A0%90%EC%9E%90
점자는 기본적으로 6개의 점이 동일한 간격으로 배치 되어 있어야 한다.
그러므로 점자는 지나친 회전(90º이상) 반전되어선 안된다.
또한 공백 역시 일정한 간격을 두고 쓰여져야 한다.
2-2 자료 확인
위 kaggle에서 제공한 이미지셋을 열어보면 위와 같이 약간씩 문제가 있는 이미지들이 보입니다.
이에 따라 점자 데이터 셋을 처음부터 만드는 것이 적합하다 결정 내렸습니다.
2-3. 기능 설계
이미지를 넣을때 기본적으로 문장 단위로 입력 받을 수 있도록 하였습니다.
위와 같이 이미지를 입력 받았을때 한글자씩 잘라 어떤 알파벳인지 맞추고 그 결과를 리스트에 담아 결과로 반환한다는 계획을 세웠습니다.
- 문장 이미지를 입력 받는다.
- 문장을 한 알파벳 단위로 잘라낸다.
- 잘라낸 알파벳을 모델에 넣어 확인한다.
- 확인된 결과를 리스트에 추가한다.
- 리스트의 결과를 문자열로 묶어 반환한다.
2-4. 그러므로 다음과 같은 기능들을 구현하고자 합니다.
전처리)
- 모델학습에 사용될 이미지를 부풀리기
- CNN 모델
점자>영문)
- 이미지의 경로를 입력받아 전달
- 문장을 입력받아 자르기
- 예측 및 문자열 생성
- UI로 전달
영문>점자)
- 문자열 입력시 하나씩 읽기
- 읽어온 알파벳에 해당되는 점자 이미지 불러오기
- 하나씩 붙여서 완성 점자 이미지 출력
'Back > Deep Learning' 카테고리의 다른 글
[Python] [CNN]점자번역 프로그램(4) (0) | 2020.09.02 |
---|---|
[Python] [CNN]점자번역 프로그램(3) (0) | 2020.09.02 |
[Python] [CNN]점자번역 프로그램(2) (5) | 2020.09.02 |
[Python] [CNN]점자번역 프로그램(1) (0) | 2020.09.02 |
[Python] [Keras] Keras scratch graph (0) | 2020.09.01 |