민서네집

Windows OCR Utility - Vis2, Capture2Text 사용기 본문

유틸리티

Windows OCR Utility - Vis2, Capture2Text 사용기

브라이언7 2021. 2. 7. 11:39

stackoverflow.com/questions/2363490/limit-characters-tesseract-is-looking-for

 

Limit characters tesseract is looking for

Is it possible to limit the set of characters that tesseract is looking for (e.g. search only for letters a-z)? That would improve my results greatly.

stackoverflow.com

github.com/tesseract-ocr/tesseract/issues/751

 

Blacklist and whitelist unsupported with LSTM (4.0) · Issue #751 · tesseract-ocr/tesseract

Blacklist and whitelist no longer work in 4.00alpha. They used to work in 3.04. https://groups.google.com/forum/#!topic/tesseract-ocr/cpcJHTE2xMo

github.com

Tesseract version 4.00 에서는 버그가 있어서 white list 와 black list 옵션이 작동하지 않는다고 한다.

 

Vis2 를 Download 하여 bin\tesseract\tesseract.exe 의 version을 보면 4.0.0 버전이다.

 

github.com/tesseract-ocr/tessdoc/blob/master/Installation.md#windows

 

tesseract-ocr/tessdoc

Tesseract documentation. Contribute to tesseract-ocr/tessdoc development by creating an account on GitHub.

github.com

Tesseract at UB Mannheim 으로 이동해서 Windows 5.0.0 알파버전을 다운로드 받아서 설치하고, tesseract.exe 파일이 있는 폴더의 모든 파일을 Copy해서 Vis2 폴더 밑의 bin\tesseract 폴더로 덮어씀.

 

인식률을 높이기 위해서는 C:\Apps\Vis2-Tesseract\bin\tesseract\tessdata_best 폴더의 파일들을 C:\Apps\Vis2-Tesseract\bin\tesseract\tessdata_fast 폴더로 덮어쓰기.

 

스크린 Capture할 때는 tessdata_best 폴더의 파일들을 이용하도록 Autohotkey Script가 되어 있음.

( C:\Apps\Vis2-Tesseract\lib\Vis2.ahk )

 

Vis2.ahk
0.12MB

 

Vis2.ahk Script를 보면 스크린 Capture 할 때는 option이 전달 안되도록 되어 있음.

그래서 white list, black list Option 을 전달하도록 Script 수정.

그런데 black list 옵션은 이상하게 계속 안 먹어서 white list 옵션을 줘보니까 작동함.

 

Viz2 를 실행하는 demo.ahk 파일은 아래 2줄을 제외하고 모두 주석처리. 

- 스크린 캡처하는 단축키는 Shift + F2 로 변경하고, white list 옵션을 줬음.

- blacklist 옵션만 주면 작동하지 않음.

- whitelist 옵션을 주니까 blacklist 옵션은 의미없음.

#include <Vis2>
+F2:: OCR(, "eng+kor", "tessedit_char_whitelist=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.,:;-_+='<>(){}[]~`!@#$%^&*?|/\" . Chr(0x22) . " tessedit_char_blacklist=¥®")       

[참고] tessedit_char_whitelist 옵션을 줄 때 쌍따옴표(")를 넣어주기 위해 Chr(0x22) 를 붙여줬음.

 

Capture2Text 는 Whitelist, Blacklist 옵션이 있지만 둘 다 작동하지 않았다.

Capture2Text 역시 Tesseract 4.0.0 버전을 사용하기 때문이 아닐까... ( tesseract400.dll 파일명을 보고 버전을 추측함 )

 

그런데 Replace는 잘 작동한다.

 

Capture2Text 도 C:\Apps\Vis2-Tesseract\bin\tesseract\tessdata_best\eng.traineddata 파일을 C:\Apps\Capture2Text\tessdata 폴더로 복사하면 영문자의 인식률이 좀 더 올라간다.

Comments