
Tesseract OCR 엔진을 사용하여 Linux 명령 줄의 이미지에서 텍스트를 추출 할 수 있습니다. 빠르고 정확하며 약 100 개 언어로 작동합니다. 사용 방법은 다음과 같습니다.
광학 문자 인식
광학 문자 인식 (OCR)은 이미지에서 단어를보고 찾은 다음 편집 가능한 텍스트로 추출하는 기능입니다. 인간을위한이 간단한 작업은 컴퓨터가하기 매우 어렵습니다. 초기의 노력은 아무리 어색했다. 서체 나 크기가 OCR 소프트웨어의 취향에 맞지 않으면 컴퓨터는 종종 혼란 스러웠습니다.
그럼에도 불구하고이 분야의 개척자들은 여전히 높은 평가를 받았습니다. 문서의 전자 사본을 분실했지만 여전히 인쇄 된 버전이있는 경우 OCR은 편집 가능한 전자 버전을 다시 만들 수 있습니다. 결과가 100 % 정확하지는 않더라도 시간을 크게 절약 할 수있었습니다.
수동으로 정리하면 문서를 되돌릴 수 있습니다. 사람들은 OCR 패키지가 직면 한 작업의 복잡성을 이해했기 때문에 실수를 용서했습니다. 또한 전체 문서를 다시 입력하는 것보다 낫습니다.
그 이후로 상황이 크게 개선되었습니다. Hewlett Packard가 작성한 Tesseract OCR 응용 프로그램은 1980 년대에 상용 응용 프로그램으로 시작되었습니다. 2005 년에 오픈 소스였으며 이제 Google에서 지원합니다. 그것은 다국어 기능을 가지고 있으며 사용 가능한 가장 정확한 OCR 시스템 중 하나로 간주되며 무료로 사용할 수 있습니다.
Tesseract OCR 설치
Ubuntu에 Tesseract OCR을 설치하려면 다음 명령을 사용하십시오.
sudo apt-get install tesseract-ocr

Fedora에서 명령은 다음과 같습니다.
sudo dnf install tesseract

Manjaro에서는 다음을 입력해야합니다.
sudo pacman -Syu tesseract

Tesseract OCR 사용
우리는 Tesseract OCR에 일련의 도전을 제기 할 것입니다. 텍스트가 포함 된 첫 번째 이미지는 일반 데이터 보호 규정의 Recital 63에서 발췌 한 것입니다. OCR이 이것을 읽을 수 있는지 확인하고 깨어 있습니다.

각 문장은 입법 문서에서 일반적으로 사용되는 희미한 위첨자로 시작하기 때문에 까다로운 이미지입니다.
우리는 줄 필요가 있습니다 tesseract 다음을 포함한 몇 가지 정보를 명령합니다.
- 처리 할 이미지 파일의 이름입니다.
- 추출 된 텍스트를 보관하기 위해 생성 할 텍스트 파일의 이름입니다. 파일 확장자를 제공 할 필요가 없습니다 (항상 .txt 임). 같은 이름의 파일이 이미 있으면 덮어 씁니다.
-
우리는
--dpi말할 수있는 옵션tesseract이미지의 dpi (인치당 도트 수) 해상도는 얼마입니까? dpi 값을 제공하지 않으면tesseract알아 내려고 노력할 것입니다.
이미지 파일 이름은 “recital-63.png”이고 해상도는 150dpi입니다. “recital.txt”라는 텍스트 파일을 만들 것입니다.
우리의 명령은 다음과 같습니다.
tesseract recital-63.png recital --dpi 150

결과는 매우 좋습니다. 유일한 문제는 위첨자입니다. 너무 희미해서 올바르게 읽을 수 없습니다. 좋은 결과를 얻으려면 좋은 품질의 이미지가 중요합니다.

tesseract 위 첨자 번호를 인용 부호 (“)와도 기호 (°)로 해석했지만 실제 텍스트는 완벽하게 추출되었습니다 (이미지의 오른쪽이 여기에 맞게 잘 려야 함).
마지막 문자는 캐리지 리턴 인 0x0C의 16 진수 값을 가진 바이트입니다.
아래는 크기가 다른 텍스트와 굵은 체와 이탤릭체가있는 또 다른 이미지입니다.

이 파일의 이름은 “bold-italic.png”입니다. “bold.txt”라는 텍스트 파일을 만들려고하므로 명령은 다음과 같습니다.
tesseract bold-italic.png bold --dpi 150

이것은 문제가되지 않았고 텍스트가 완벽하게 추출되었습니다.

다른 언어 사용
Tesseract OCR은 약 100 개 언어를 지원합니다. 언어를 사용하려면 먼저 설치해야합니다. 목록에서 사용하려는 언어를 찾으면 해당 약어에 유의하십시오. Welsh에 대한 지원을 설치할 것입니다. 약어는 “cym”으로 웨일스 어를 의미하는 “Cymru”의 줄임말입니다.
설치 패키지는 “tesseract-ocr-“라고하며 끝에는 언어 약어가 표시됩니다. Ubuntu에 웨일스 어 언어 파일을 설치하려면 다음을 사용합니다.
sudo apt-get install tesseract-ocr-cym

텍스트가있는 이미지는 아래와 같습니다. 웨일스 국가의 첫 번째 구절입니다.

Tesseract OCR이 문제를 해결할 수 있는지 살펴 보겠습니다. 우리는 -l (언어) 옵션 tesseract 우리가 일하고 싶은 언어를 아십시오 :
tesseract hen-wlad-fy-nhadau.png anthem -l cym --dpi 150

tesseract 아래 추출 된 텍스트와 같이 완벽하게 대처합니다. Da iawn, Tesseract OCR.

문서에 두 개 이상의 언어 (예 : 웨일스 어-영어 사전)가 포함되어있는 경우 더하기 기호 (+) 말하다 tesseract 다음과 같이 다른 언어를 추가합니다.
tesseract image.png textfile -l eng+cym+fra
PDF와 함께 Tesseract OCR 사용
그만큼 tesseract 명령은 이미지 파일과 함께 작동하도록 설계되었지만 PDF를 읽을 수 없습니다. 그러나 PDF에서 텍스트를 추출해야하는 경우 먼저 다른 유틸리티를 사용하여 이미지 세트를 생성 할 수 있습니다. 단일 이미지는 PDF의 단일 페이지를 나타냅니다.
그만큼 pdftppm 필요한 유틸리티는 Linux 컴퓨터에 이미 설치되어 있어야합니다. 예제에 사용할 PDF는 인공 지능에 대한 Alan Turing의 주요 논문 인“Computing Machinery and Intelligence”의 사본입니다.

우리는 -png PNG 파일을 만들도록 지정하는 옵션입니다. PDF 파일 이름은“turing.pdf”입니다. 이미지 파일 이름은“turing-01.png”,“turing-02.png”등입니다.
pdftoppm -png turing.pdf turing

달리다 tesseract 단일 명령을 사용하는 각 이미지 파일에서 for 루프를 사용해야합니다. 각각의 “튜링-nn.png “파일을 실행합니다. tesseract, “text-“와 “turing-“이라는 텍스트 파일을 만듭니다.nn”를 이미지 파일 이름의 일부로 :
for i in turing-??.png; do tesseract "$i" "text-$i" -l eng; done;

모든 텍스트 파일을 하나로 결합하려면 cat:
cat text-turing* > complete.txt

수직 워터 마크는 페이지 하단에 횡설수설 줄로 표기되었습니다. 텍스트가 너무 작아서 읽을 수 없습니다. tesseract 정확하지만 쉽게 찾아서 삭제할 수 있습니다. 최악의 결과는 각 줄 끝에있는 문자가 길어질 수 있습니다.
흥미롭게도 2 페이지의 질문과 답변 목록의 시작 부분에있는 단일 문자는 무시되었습니다. PDF의 섹션은 다음과 같습니다.

아래에서 볼 수 있듯이 질문은 남아 있지만 각 줄의 시작 부분에있는 “Q”와 “A”가 손실되었습니다.

다이어그램도 올바르게 기록되지 않습니다. Turing PDF에서 아래 표시된 파일을 추출하려고하면 어떤 일이 발생하는지 살펴 보겠습니다.

아래 결과에서 볼 수 있듯이 문자를 읽었지만 다이어그램의 형식이 손실되었습니다.

다시, tesseract 작은 크기의 아래 첨자 때문에 어려움을 겪었으며 잘못 렌더링되었습니다.
그러나 공정하게도 여전히 좋은 결과였습니다. 우리는 간단한 텍스트를 추출 할 수 없었지만,이 예제는 도전을 제시했기 때문에 의도적으로 선택되었습니다.
필요할 때 좋은 솔루션
OCR은 매일 사용해야하는 것이 아닙니다. 그러나 필요가 발생하면 최고의 OCR 엔진 중 하나를 사용할 수 있다는 것을 아는 것이 좋습니다.








