
Tesseract에 관해 몇 가지 질문이 있습니다.
문맥
저는 현재 80년대에 개발된 동독(GDR)의 오래된 암호화 알고리즘을 연구하고 있습니다. C#으로 알고리즘을 구현했습니다. 이제 확인하고 싶은 테스트 케이스가 약 30페이지 정도 남았습니다. 모든 바이너리/16진수 문자열을 수동으로 입력하고 싶지 않기 때문에 Tesseract(또는 작동하는 무료 소프트웨어)를 사용하여 OCR하고 싶습니다.
문제
만족스러운 결과를 얻는 데 문제가 있습니다. 아래에서 더 자세히 설명합니다.
현재 상태
(죄송합니다. 이미지를 직접 게시할 수는 없습니다.) 문서는 다음과 같습니다. 페이지의 일부/편지를 자세히
순진한 접근 방식
기본 설정으로(관련 부분에 독일어를 사용하면 문제가 되지 않습니다) 비참한 결과를 얻습니다.
tesseract -l deu input.tiff output pdf
결과는 다음과 같습니다.이것
특히 0은 문제를 야기합니다. 단어, 글자, 낱말이 조금 더 잘 인식됩니다.
내가 시도한 것 (전처리)
- 페이지 회전
- 대비를 증가
- 이미지를 이진화
- 이미지를 침식/확대하여 문자 사이의 작은 간격을 채웁니다.
최종 결과는 다음과 같습니다.이것. 내가 OCR에 대해 아는 한 이것은 상황을 조금 더 좋게 만들 것입니다.
내가 시도한 것 (Tesseract 설정)
내 구성 파일은 다음과 같습니다.
load_system_dawg F
load_freq_dawg F
language_model_penalty_non_dict_word 0
language_model_penalty_non_freq_dict_word 0
tessedit_create_pdf T
tessedit_char_whitelist 0123456789ABCDEF
나는 기본적으로 Tesseract에게 문자에서 유용한 단어를 만들려고 하지 말고 16진수 문자열에 필요한 문자만 허용하라고 지시합니다.
보시다시피여기이렇게 하면 약간 더 나은 결과가 나오지만 모든 경우에 그런 것은 아닙니다. 마지막 줄의 일부 0은 훨씬 더 잘 감지됩니다. F 사이에서는 아무 일도 일어나지 않습니다.
Neural Network와 Classical OCR(--oem 0/1) 설정을 가지고 노는 것은 약간의 차이가 있습니다. 기존 알고리즘은 많은 0을 9로 감지하지만(0은 절대 아님) 훨씬 더 일관되게 감지합니다(그러나 좋지 않음).
질문
결과를 개선하려면 어떻게 해야 합니까? 나는 신경망을 추가로 훈련할 수 있다는 것을 알고 있지만, 내가 읽은 내용에는 피하고 싶은 약간의 노력이 필요합니다(스스로 Tesseract 구축, ML 작업 작동, 레이블이 지정된 테스트 데이터 만들기 등).
다른 건 없나요?
당신의 도움을 주셔서 감사합니다.