Computer Engineering/opencv

JTessBoxEditor로 이미지 인식하기

말하는호구마 2020. 2. 3. 22:18

tesseract은 OCR엔진이다. OCR이란 광학문자인식으로서 사람이 쓴 글씨나 기계로 인쇄한 문자를 인식하는 기술이다.

나는 영어 손글씨인식이 필요하여  tesseract를 이용하기 시작했다. 

하지만 내 예상보다 결과가 너무 별로였다. 

컴퓨터에서 작성한 파일은 정말 잘 인식을 했지만 그것을 출력한 인쇄물을 다시 사진으로 찍어 인식시키면 그것부터가 인식률이 매우 낮아지는 것을 알 수 있다. 

손글씨 인식에 적합한지는 잘 모르겠다. 

하지만 인식률이 낮아서 불만족스럽다면 학습을 시키면 된다는 글들을 보고 일단 시도해보기로 했다. 

 

tesseract를 학습시키기 위해 사용한 도구로서 jTessBoxEditor를 이용했다.

jTessBoxEidtor는 box파일의 편집을 돕는 도구이다. 비슷한 도구로서 CowBoxer이 있지만 Mac에서는 쓸 수 없다. 

 

jTessBoxEditor는 아래 링크에서 다운받을 수 있다 

https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/

 

VietOCR - Browse /jTessBoxEditor at SourceForge.net

×

sourceforge.net

나는 가장 최신버전인 2.2.1을 깔았다. 

 

 

 

 

다운받은 파일의 압축을 풀면



위와 같은 파일들을 볼 수 있는데 이중 프로그램실행을 위한 파일은 train.bat이다.

프로그램 실행을 위해서는 java가 깔려져 있어야한다.

 

 

window에서는 bat파일을 클릭만으로 열 수 있는데, 나는 열리지 않아 명령어를 통해 열었다.

Java -Xms4096m -Xmx4906m -jar jTessBoxEditor.jar

 

 

정상적으로 열리게되면 아래와 같은 화면이 뜬다.

Trainer는 tesseract에 train시켜주는 역할을 대신해준다. 

TIFF/BOX Generator는 txt파일을 tiff와 box파일로 변환해준다.

Box Editor는 box파일에 설정되어 있는 box들을 내 마음대로 조절가능하게 해준다.

 

 

내가 하고 싶은 기능은 컴퓨터에서 작성한 문서를 읽고 싶은것이 아니라 손으로 쓴 글씨의 사진을 인식하여 텍스트를 따내고 싶은 것 이기때문에 TIFF/BOX Generator기능을 쓰지 않았다.

만약 이 기능을 사용하고 싶다면 https://tctt.tistory.com/124이 블로그에 설명이 엄청 자세히 잘 나와있다!

 

 

나는 Box Editor를 쓰기위해 정말 많이 돌아왔고 정말 많은 삽질을 하였다...

이것의 기능은 앞서 언급했듯이 box파일들에 설정되어있는 box들을 사용자가 조절할 수 있도록 도와주는 것이다.

이 말은 box파일이 있어야만 이용이 가능하다는 것이었다...하지만 나는 눈치채지 못하고 계속 tif파일만 생성하고 있었다....

 

 

open버튼을 누른다고 해서 모든 이미지파일을 올릴 수 있는 것이다. 

나는 png파일을 tif로 변환하여 이미지를 불러왔다. 

내가 원하는 작업을 하려면 위의 사진처럼 파란색 박스가 떠야하고, 이것을 조절하여 박스안의 글씨가 무슨 텍스트인지 알려주어야한다. 

하지만 처음에 박스가 뜨지 않아 매우 고민했었다...

box를 수정하려면 무조건 box파일이 있어야한다!!!!!

 

png->tif->box로 변환하는 과정은 따로 올려두었다. https://hello-gg.tistory.com/6

 

 

 

이렇게 수정한 box파일을 가지고 train을 시키는 과정은 다음글에서  =͟͟͞͞٩(๑☉ᴗ☉)੭⁾⁾