UFO ET IT

tesseract가 찾는 문자 제한

ufoet 2020. 12. 7. 21:17
반응형

tesseract가 찾는 문자 제한


tesseract 가 찾는 문자 세트를 제한 할 수 있습니까 (예 : az 문자 만 검색)? 그것은 내 결과를 크게 향상시킬 것입니다.


tessdata / configs 디렉토리에 구성 파일 (예 : "letters")을 만듭니다. 일반적으로 /usr/share/tesseract/tessdata/configs
또는
/usr/share/tesseract-ocr/tessdata/configs

그리고 다음 줄을 구성 파일에 추가하십시오.

tessedit_char_whitelist abcdefghijklmnopqrstuvwxyz  

... 또는 [az] 작동합니다 .. dunno :-)
그런 다음 다음과 같이 tesseract를 호출합니다.

tesseract input.tif output nobatch letters  

원하는 문자 만 인식하도록 tesseract를 제한합니다.


구성 파일에서 또는 -c tessedit_char_whitelist=...명령 줄 스위치 를 사용하여 화이트리스트를 사용하려면 최신 4.0 버전에서 OCR 엔진 모드를 "Original Tesseract only"로 설정해야합니다. 이는 새로운 "Neural nets LSTM"모드가 화이트리스트 설정을 따르지 않기 때문입니다. 4.0 버전에 대한 적절한 명령 줄의 예 :

tesseract input_file output_file --oem 0 -c tessedit_char_whitelist = abc123

업데이트 : 최신 버전 (4.0)에서는 eng.traineddataWindows 및 일부 Linux 설치 프로그램에서 기본적으로 설치된 손상된 파일이 있습니다. 임시 해결책은 tessdata\eng.traineddata파일을 이전 버전의 파일 로 바꾸는 것 입니다. 이 파일은 약 30MB입니다. 그렇지 않으면 "Tesseract에서 어떤 언어도로드 할 수 없습니다!"라는 오류 메시지가 표시됩니다. 또는 유사합니다.


구성 파일 외에도 다음 -c플래그가 있습니다.

tesseract stdin stdout -c tessedit_char_whitelist=abcdefghijklmnopqrstuvwxyz -psm 6

Android에서 tesseract를 사용하는 모든 사람을 위해 이것을 추가하십시오. 언어 등을 설정하는 readOCR 함수에서 다음 행을 추가하십시오.

tesseract.setVariable("tessedit_char_whitelist","ABCDEFGHIJKLMNOPQRSTUVWXYZ");

제외 할 문자에 대해 블랙리스트를 수행 할 수도 있습니다.


Tesseract 버전 4.00에서는이 작업을 수행 할 수 없습니다. 모델을 미세 조정하거나 정규식을 사용하여 예측에서 추가 문자를 제거 할 수만 있습니다.

참고 URL : https://stackoverflow.com/questions/2363490/limit-characters-tesseract-is-looking-for

반응형