OCR PDF 엔진은 왼쪽에서 오른쪽으로의 텍스트 흐름을 중심으로 구축되었습니다. 아랍어, 히브리어, 페르시아어 또는 우르두어와 같이 오른쪽에서 왼쪽으로 쓰는 스크립트로 작성된 문서를 제공하면 엔진은 스크립트 방향을 감지하고 올바른 시각적 및 논리적 순서로 문자를 인식하고 대상 언어로 자연스럽게 읽는 텍스트를 출력해야 합니다. 이러한 단계 중 하나를 잘못 수행하면 기술적으로는 인식되지만 기능적으로는 사용할 수 없는 텍스트가 생성됩니다. 즉, 철자가 거꾸로 쓰여진 단어, 끝에서 시작하는 문장, 주변 텍스트의 잘못된 면에 나타나는 숫자 등입니다.
오른쪽에서 왼쪽으로 쓰는 언어에 대한 올바른 OCR을 위해서는 대상 스크립트를 명시적으로 지원하는 OCR 엔진을 선택하고, 올바른 언어 매개변수로 구성하고, 양방향 텍스트 인식 도구를 통해 출력을 확인해야 합니다. 이 프로세스는 왼쪽에서 오른쪽으로 쓰는 언어의 경우 OCR보다 실질적으로 어렵지 않지만 많은 사용자가 엔진에 예상되는 언어를 알려주기 위해 건너뛰는 구성 단계는 오른쪽에서 왼쪽으로 쓰는 스크립트의 경우 선택 사항이 아닙니다. 기본 설정(보통 영어)으로 남겨진 엔진은 아랍어나 히브리어 문서에서 의미 없는 출력을 생성합니다.
WukongPDF의 스캔 PDF OCR 도구는 오른쪽에서 왼쪽으로 쓰는 스크립트를 포함한 여러 언어를 지원합니다. OCR을 실행하기 전에 올바른 언어를 선택하는 것은 사용 가능한 텍스트를 추출하는 것과 문자 노이즈를 생성하는 것의 차이입니다.

명시적 구성 없이 오른쪽에서 왼쪽 OCR이 실패하는 이유
OCR 엔진은 모양을 분석하고 이를 지정된 언어 문자 집합의 문자에 매핑합니다. 엔진이 영어를 예상하면 모양을 라틴 문자로 해석합니다. B의 아랍어 문자는 많은 글꼴에서 라틴 문자 B와 다소 유사해 보이지만 Ayn의 아랍어 문자에는 해당하는 라틴어 문자가 없습니다. Ayn을 만나는 영어 모드의 엔진은 임의의 구두점을 출력하거나 문자를 완전히 건너뜁니다. 전체 문서에서 이러한 문자별 잘못된 인식으로 인해 원본 텍스트와 관련이 없는 출력이 생성됩니다.
올바른 스크립트를 선택하더라도 텍스트 방향으로 인해 두 번째 복잡성이 발생합니다. OCR 엔진은 기본적으로 이미지를 왼쪽에서 오른쪽으로 처리하며 왼쪽 가장자리에서 오른쪽 가장자리로 각 픽셀 행을 가로질러 이동합니다. 오른쪽에서 왼쪽으로 쓰는 문서는 엔진이 쓰여진 순서대로 문자를 읽을 수 있도록 오른쪽에서 왼쪽으로 처리되어야 합니다. 엔진이 오른쪽에서 왼쪽으로 쓰는 스크립트의 처리 방향을 바꾸지 않으면 인식된 문자는 각 단어 내에서 반대 순서가 됩니다. 일부 엔진은 언어 매개변수가 설정되면 자동으로 방향 반전을 처리합니다. 다른 것들은 명시적인 텍스트 방향 플래그가 필요합니다.
PDF OCR을 사용해 보세요
설치가 필요하지 않습니다. 브라우저에서 직접 작동합니다.
오른쪽에서 왼쪽으로 OCR을 위한 Tesseract 구성
오픈 소스 OCR 엔진인 Tesseract는 언어별 데이터 파일을 통해 아랍어, 히브리어, 페르시아어, 우르두어 및 기타 오른쪽에서 왼쪽으로 쓰는 여러 스크립트를 지원합니다. 대상 스크립트에 대한 언어 데이터를 설치합니다. Linux에서 패키지 이름은 일반적으로 아랍어의 경우 tesseract-ocr-ara, 히브리어의 경우 tesseract-ocr-heb입니다. Windows에서는 Tesseract GitHub 리포지토리에서 훈련된 데이터 파일을 다운로드하여 tessdata 디렉터리에 배치합니다.
언어 플래그를 올바른 스크립트로 설정하여 Tesseract를 실행합니다. tesseract input.pdf 출력 -l ara(아랍어), -l heb(히브리어) 또는 -l ara+eng(이중 언어 아랍어-영어 문서). Tesseract는 언어 매개변수가 오른쪽에서 왼쪽으로 스크립트를 지정하면 텍스트 방향을 자동으로 처리합니다. 인식된 텍스트 출력은 올바른 읽기 순서를 유지합니다. 확인하려면 출력 텍스트 파일을 열고 단어가 예상한 방향으로 읽혀지고 문장이 오른쪽에서 왼쪽으로 흐르는지 확인합니다.
영어 기술 용어가 포함된 아랍어 연구 논문과 같이 스크립트가 혼합된 문서의 경우 두 언어를 더하기 기호로 구분하여 지정합니다(-l ara+eng). Tesseract는 아랍어 모델을 아랍어 문자 단어에 적용하고 영어 모델을 라틴어 문자 단어에 적용하여 단어별로 언어 모델을 전환합니다. 단어별 전환은 특히 두 스크립트에 속할 수 있는 짧은 단어의 경우 완벽하지는 않지만 대부분의 혼합 스크립트 문서를 적절하게 처리합니다.
자동 감지를 위해 Google Cloud Vision 사용
Google Cloud Vision의 OCR 기능에는 자동 언어 감지 기능이 포함되어 있습니다. 이는 정확한 언어가 확실하지 않거나 문서에 오른쪽에서 왼쪽으로 쓰는 언어가 여러 개 포함되어 있는 경우 오른쪽에서 왼쪽으로 쓰는 스크립트에 특히 유용합니다. API는 문서 이미지를 허용하고 각 단어에 대한 경계 상자, 각 텍스트 블록에 대해 감지된 언어 및 텍스트 방향과 함께 인식된 텍스트를 반환합니다. 오른쪽에서 왼쪽으로 쓰는 스크립트의 경우 반환된 텍스트는 이미 올바른 읽기 순서로 되어 있습니다.
Cloud Vision의 아랍어 및 히브리어 인식 품질은 기본 모델이 더 크고 다양한 데이터세트에 대해 학습되었기 때문에 일반적으로 Tesseract보다 높습니다. 단점은 처리를 위해 문서 이미지를 Google 서버에 업로드해야 한다는 것입니다. 이는 민감하거나 기밀인 문서에는 허용되지 않을 수 있습니다. 공개적으로 사용 가능한 문서 또는 클라우드 처리가 승인된 내부 문서의 경우 Cloud Vision은 전문 데스크톱 OCR 소프트웨어를 구매하지 않고도 사용할 수 있는 가장 정확한 오른쪽에서 왼쪽 OCR을 제공합니다.
| 언어 | OCR 엔진 지원 | 정확도 참고 |
|---|---|---|
| 아라비아 말 | 테서랙트, 구글 클라우드 비전, ABBYY | 발음 구별 부호가 삭제될 수 있으며 합자 처리 방법은 다양합니다. |
| 헤브라이 사람 | 테서랙트, 구글 클라우드 비전, ABBYY | OCR 중에 Nikud 모음점이 종종 손실됨 |
| 페르시아어/우르두어 | 테서랙트, 구글 클라우드 비전 | Nastaliq 스크립트 변형은 대부분의 엔진에 도전합니다. |
오른쪽에서 왼쪽으로 쓰는 텍스트에 대한 OCR 출력 확인
OCR 후에는 양방향 플러그인이 활성화된 Notepad++ 또는 RTL 언어 팩이 설치된 Visual Studio Code와 같이 양방향 텍스트 렌더링을 지원하는 텍스트 편집기에서 인식된 텍스트를 엽니다. 왼쪽에서 오른쪽으로 텍스트를 가정하는 표준 텍스트 편집기는 유니코드 양방향 알고리즘이 구현된 경우 오른쪽에서 왼쪽으로 텍스트를 올바르게 표시할 수 있지만 줄 끝의 구두점과 텍스트 내 숫자의 상대적 순서는 일반적인 오류 지점입니다. 명시적인 양방향 지원을 갖춘 텍스트 편집기는 원어민이 읽을 것으로 예상하는 대로 텍스트를 표시합니다.
세 가지 수준에서 원본 스캔 문서와 비교하여 출력물을 즉석 점검합니다. 개별 단어, 특히 발음 구별 부호나 합자가 포함된 단어; 전체 문장, 단어 순서가 대상 언어에서 자연스럽게 읽히는지 확인합니다. 숫자와 날짜가 주변 텍스트의 올바른 면에 표시되는지 확인합니다. 모든 단어는 올바르게 인식되지만 각 문장 내에서 단어 순서가 반대인 문서는 단어가 전혀 인식되지 않는 문서와 마찬가지로 번역이나 검색에 사용할 수 없습니다.
오른쪽에서 왼쪽으로 쓰는 언어에 대한 OCR은 올바른 언어 매개변수가 설정되면 기술적인 문제가 해결됩니다. 가장 중요한 단계는 엔진에 어떤 스크립트가 예상되는지 알려주는 것입니다. 인식 정확도부터 읽기 순서, 혼합 스크립트 처리에 이르기까지 해당 결정의 모든 다운스트림은 언어 구성을 올바르게 얻는 것에 달려 있습니다. 언어 매개변수가 구성되고 확인을 위해 양방향 텍스트 편집기가 열려 있으면 오른쪽에서 왼쪽으로 쓰는 언어 문서에 대한 OCR은 다른 언어에 대한 OCR보다 더 많은 시간이나 노력이 필요하지 않습니다.
오른쪽에서 왼쪽으로 쓰는 언어 텍스트의 OCR 이후 번역
텍스트가 정확하게 인식되면 오른쪽에서 왼쪽으로 언어 콘텐츠를 번역하려면 양방향 텍스트를 올바르게 처리하는 번역 엔진이 필요합니다. Google 번역과 DeepL은 모두 아랍어, 히브리어, 페르시아어를 지원합니다. 인식된 텍스트를 번역 인터페이스에 붙여넣고 소스 언어가 올바르게 식별되는지 확인하세요. 번역 엔진은 스크립트 방향을 감지하고 이를 출력에 유지합니다. 원어민이 번역을 검토할 문서의 경우 효율적인 비교를 위해 인식된 원본 텍스트와 번역된 텍스트를 2열 테이블로 나란히 내보냅니다.
오른쪽에서 왼쪽으로 쓰는 언어의 기계 번역은 일반적으로 오른쪽에서 왼쪽으로 쓰는 언어 쌍에 대한 훈련 데이터가 더 작기 때문에 왼쪽에서 오른쪽으로 쓰는 유럽 언어 간 번역보다 정확도가 떨어집니다. 중요한 문서의 경우, 내용을 처리하기 전에 원어민이 번역을 검토하도록 하세요. OCR 단계는 정확한 소스 텍스트를 생성합니다. 번역 단계에서는 해석 계층이 추가됩니다. OCR 출력을 문서 내용에 대한 근거 진실로 취급하고, 기계 번역을 검증을 거쳐 그것이 의미하는 바에 대한 가이드로 취급합니다.
오른쪽에서 왼쪽으로 쓰는 언어 PDF 일괄 처리
OCR에 대한 오른쪽에서 왼쪽 언어 PDF 폴더가 있는 경우 Tesseract의 명령줄 인터페이스는 일괄 입력을 허용합니다. 단일 쉘 명령으로 모든 PDF를 처리합니다. for f in *.pdf; tesseract $f ${f%.pdf} -l ara; 완료. 이 명령은 모든 PDF를 반복하고 아랍어 모델로 OCR을 실행하며 인식된 텍스트를 일치하는 기본 파일 이름으로 각 PDF와 함께 저장합니다.
혼합 언어 배치의 경우 OCR 전에 언어 감지 단계를 사용하십시오. langDetect 라이브러리가 포함된 Python 스크립트는 텍스트의 첫 번째 페이지를 샘플링하여 언어를 예측합니다. 예측에 따라 스크립트는 적절한 Tesseract 언어 매개변수를 선택하고 OCR을 실행합니다. 자동 언어 감지 기능을 사용하면 일괄 처리 전에 PDF를 언어별로 수동으로 정렬할 필요가 없습니다. 오른쪽에서 왼쪽으로 쓰는 언어에 대한 일괄 OCR은 지루한 문서별 프로세스를 입력 폴더에 있는 문서 수에 관계없이 몇 분 안에 완료되는 단일 명령으로 변환합니다.
오른쪽에서 왼쪽으로 쓰는 언어에 대한 OCR은 이국적인 도구가 필요한 특별한 경우가 아닙니다. 올바른 언어 매개변수로 구성된 왼쪽에서 오른쪽 OCR과 동일한 도구가 필요합니다. 많은 사용자가 OCR 기본값이 작동할 것이라고 가정하기 때문에 건너뛰는 구성 단계는 사용 가능한 추출된 텍스트와 전체 문자 노이즈 간의 전체적인 차이입니다. 언어 플래그를 설정하고, OCR을 실행하고, 양방향 텍스트 편집기에서 출력을 확인하면 프로세스가 완료됩니다. 오른쪽에서 왼쪽으로 쓰는 스크립트에 대한 OCR은 시간을 들여 언어 매개변수를 올바르게 구성하고 양방향 텍스트 편집기에서 출력을 확인하여 소스 언어를 읽지 않는 사람이 액세스할 수 없는 문서에서 정확하고 사용 가능한 텍스트를 생성하는 사용자에게 보상합니다.
PDF OCR을 사용해 보세요
설치가 필요하지 않습니다. 브라우저에서 직접 작동합니다.
