Skip to content

시각장애인을 위해 개발한 점자변환기

License

Notifications You must be signed in to change notification settings

Jin-YB/Sibaljum

Repository files navigation

Sibaljum

개발환경 : Pycharm, Visual Studio Code, Fritzing

라이브러리 : Pytorch, PySerial

개발언어 : Python, Arduino

개발 배경

시각장애인은 다음과 같은 어려움들을 일상생활에서 직면한다.

첫번 째로 시각장애인이 물건을 구매할 때 대부분의 제품에 점자 표기가 되어 있지 않아서 어려움을 겪는다. 그나마 점자가 표기된 제품이 캔음료인데 점자로 표기할 수 있는 글자수의 제한이 있어서 상품명을 알려주지 못하고 '탄산', '음료' 등의 분류명만 겨우 알려주고 있는 상황이다.

두번 째로 소음으로 인해 중요한 음성을 듣지 못하는 어려움이다. 시각장애인이 지하철, 버스 등의 대중교통을 이용할 때 그 안에서 들리는 여러 소음들로 인해 목적지가 들리지 않게 되어 내릴 곳을 놓치게 되는 문제점이 발생한다.

세번 째로 키오스크(무인발급기) 사용의 어려움이다. 시각장애인이 햄버거를 키오스크를 이용해 결제하려다 60개를 결제할 뻔했고 옆에 계신 시민 분의 도움으로 1개만 결제 할 수 있었다는 기사가 있다. 이와 같이 점차 바뀌어가는 디지털화 시대에서 '점자'라는 기능은 들어있지 않기에 시각장애인들이 적응하기 힘든 상황이다.

점자변환기를 통해서 시각장애인이 일상생활에서 직면하는 문제들을 해결하고자 했다.

코드 구성

코드 진행

  • runcode

easyocr 오픈소스의 실행코드이다.

경로 설정된 이미지 파일 속 글자를 인식하여 문자열 데이터로 변환한다.

  • code_3rd

문자열로 들어온 데이터를 유니코드 범위를 이용하여 한글, 영어, 숫자, 기호로 분류한다.

특히 한글은 초성, 중성, 종성으로 나누어 분류한다.

  • dot_data , dot_data_eng

데이터 영역이다. 초성, 중성, 종성, 영어, 숫자, 기호들을 각각 대응하는 점자 규격에 맞추어서 저장해놓은 코드이다.

점자 규격

(1) (4)

(2) (5)

(3) (6)

ex)초성 ㄱ은

(0)(1)

(0)(0)

(0)(0) 이므로 {0, 0, 0, 1, 0, 0}의 형태로 저장되어 있다.

  • grm

점자는 정해진 규격보다 문법을 선행 적용한다.

각각 글자에 맞는 점자 규격에 선행하여 점자 문법을 먼저 적용시켜줄 함수가 모인 코드이다.

  • setup

최종 리스트에 문법, 규격 순서대로 글자들을 넣는 최종 실행 파일이다.

결과를 확인하기 위해 실행해야하는 코드이다.

  • circuit

회로 구현을 위해 만든 코드이다.

1이면 점자가 올라오고 0이면 내려가는 형식으로 구성했고 시간차를 delay 변수로 구현했다.

사용 방법(예시)

  1. Pytorch 환경에서 실행해야 하므로 Python을 제공하는 작업 환경에서 실행해야한다. ex) Pycharm(권장), VSC
  2. 깃허브에서 코드를 다운로드 받고 원하는 이미지를 sample.jpg라는 이름으로 Sibaljum 폴더 안에 저장한다.
  3. setup.py를 실행한 후 결과를 확인한다.

시연 영상

https://youtu.be/oyqldvXvF1I

이후 발전시킬 부분

  1. 앱 인벤터로 카메라 구현 후 점자변환 코드와 이어서 하나의 프로그램으로 완성하기
  2. 물리적인 점자변환기 완성
  3. easyocr 원하는 언어(ko, eng 등)만 학습된 모델 구성
  4. 주요 한글문법까지는 코드에 적용되어 있으나 영어문법(약어 등) 추가가 필요함

About

시각장애인을 위해 개발한 점자변환기

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages