-
Tesseract OCR GUI for 한글컴퓨터 언어 공부/Python 2017. 8. 4. 07:23
이걸 만들게 된 계기를 좀 설명하자면...
원래 논문을 찾고 있었다. 논문 여러개를 찾고 있었고 논문 내용을 복사해야할 일이 있었는데 이게 문제는 PDF라 그냥 복사해도 지맘대로 레이아웃이 되있는거였다. 그래서 이걸 캡처하고 OCR로 인식해서 내보내면 정말 편하겠다 싶었다
안드로이드에는 걸출한 한글 OCR 앱이 있지만 컴퓨터용은 없는 것 같았다. 그래서 찾아보다가 발견하게 된 것이 Google의 Tesseract OCR이었다
그런데 이걸 GUI로 구현한것은 없는 것 같았다. 마침 pytesseract라고 python 라이브러리 구현도 있기에 간단하게 PyQT로 구현해보고 싶었다
(근데 지금 글쓰면서 생각해보니 그냥 파이썬으로 문자열 검사해서 스페이스 반복되면 하나로 줄여버리는 코드가 더 효율적일거 같다는 생각이 드네)
어쨌든 한글하고 영어 옵션을 선택할 수 있는 간단한 PyQT 프로그램을 만드는데에는 성공했다.
사실 코드도 정말 쉽다. 그냥 옵션 받아서 변수에다 저장하고 이미지 파일 경로를 pytesseract에다가 넘겨주고 결과값을 받아오기만 하면 된다
간단히 기능을 설명하자면
- Tesseract 경로 수동 설정 (기본값은 Program Files (x86)
- 이미지 파일 불러오기 기능
- KOR모드와 ENG모드 설정 가능
- GUI 자체에서 인식 결과 출력
- 인식 결과는 프로그램 폴더 내 result.txt에도 저장
써놓고보니 별거 없군...
그런데 이 프로그램의 치명적인 단점이 하나 있는데 그건 바로 Tesseract OCR 자체의 한글 인식 능력이 형편없다는 것이다(...)
애초에 알고리즘 자체가 영어 인식에 맞추어져 있기도 하고 트레이닝 데이터가 충분하지 않은 것도 원인인것 같다. 수동으로 트레이닝을 시도해보았는데 기본 데이터에 비해 결과물이 안나오더라. KOR 모드로 사용하긴 사실상 힘들고 영어 논문이나 찾을 때 유용할 것으로 보인다 (근데 영어 논문을 찾을 일이 있을까 싶다)
쓸 사람은 써도 된다
안에 소스코드도 넣어놨으니 뜯어봐도 되고
'컴퓨터 언어 공부 > Python' 카테고리의 다른 글
[도서추천] 미래를 바꾼 아홉가지 알고리즘 (0) 2017.11.05 [Python] 서대전고등학교 이벤트 알리미 (0) 2017.09.17 [PyQT 기본코드] (0) 2017.08.03 [프로그램]글자수카운터forNEIS (0) 2017.08.03 사이언스올 온라인 독서 클럽 '사이언스리더스리더' 1기 신청 (0) 2017.05.24