# Tesseract 5를 사용하여 C#에서 커스텀 폰트를 훈련하는 방법
기본 Tesseract 영어 모델은 병원 수기 접수 양식, 고전 책 디지털화, 게임 스튜디오의 맞춤형 장식 글꼴, 일반 OCR 엔진이 본 적 없는 산업별 기호 등의 많은 실제 입력을 오독합니다. 수정 방법은 직접 Tesseract에 폰트를 학습시키고 희망하는 장소 어디에서든 IronOCR을 실행할 수 있는 `.traineddata` 아티팩트를 만드는 것입니다.
이 가이드는 UI 설치 과정, Ubuntu 도구 체인 WSL2 설치, `.ttf` 또는 `.otf`로부터 `.box` 및 `.tif` 학습 파일 렌더링, `eng.traineddata` 기본 모델로 `.traineddata` 모델을 `tesstrain`와 함께 빌드 후, IronOCR에 결과를 로드하는 방법을 다룹니다. 훈련이 완료되면 파일은 Windows, MacOS, Linux, Docker에서 이식 가능합니다.
*as-heading:2(빠른 시작: C#에서 훈련된 폰트 파일 사용)*
`UseCustomTesseractLanguageFile`을 준비한 `.traineddata` 파일로 지정한 후, 언어 팩으로 지정한 `Read`을 호출하면 됩니다.
```cs
:title=Quickly Load Your Custom Trained Font with IronOCR
using IronOcr;
var ocr = new IronTesseract();
ocr.UseCustomTesseractLanguageFile("path/to/YourCustomFont.traineddata");
string text = ocr.Read(new OcrInput("image-with-special-font.png")).Text;
```
<div class="hsg-featured-snippet">
<h3>최소 워크플로우(5단계)</h3>
<ol>
<li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronOcr/">사용자 정의 훈련된 폰트로 읽기 위해 NuGet을 통해 IronOCR 다운로드</a></li>
<li>WSL2 Ubuntu에 Tesseract 5를 설치하고 <code>tesstrain</code> 훈련 리포지토리를 클론합니다</li>
<li>귀하의 대상 폰트에 대해 <code>split_training_text.py</code>로 교육 파일을 생성하십시오.</li>
<li><code>tesstrain</code> 및 기반 언어 모델을 사용하여 사용자 정의 <code>.traineddata</code> 파일을 빌드하십시오.</li>
<li><code>UseCustomTesseractLanguageFile</code> 및 <code>Read</code>을 호출하여 IronOCR에 훈련된 파일을 로드합니다.</li>
</ol>
</div>
## 교육 환경을 어떻게 설정합니까?
### IronOCR을 어떻게 설치하나요?
[NuGet](https://www.nuget.org/packages/IronOcr/)을 통해 IronOCR을 설치하세요:
```shell
:ProductInstall
```
[DLL 패키지](/csharp/ocr/packages/IronOcr.zip)는 NuGet을 사용할 수 없는 경우 수동 대안입니다. 기본 엔진에 대한 자세한 내용은 [Tesseract 5 기능 가이드](https://ironsoftware.com/csharp/ocr/tutorials/c-sharp-tesseract-ocr/) 및 [사용자 정의 언어 참조](https://ironsoftware.com/csharp/ocr/examples/ocr-tesseract-custom-languages/)를 참조하십시오.
### WSL2 및 Ubuntu를 어떻게 설치하고 설정합니까?
[WSL2 및 Ubuntu 설정 방법](https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10) 에 대한 튜토리얼을 참조하십시오.
[[i:(사용자 지정 글꼴 학습에는 Linux가 필요합니다.)]]
WSL2만으로 충분합니다: 학습이 완료되면 Windows, macOS, Linux 또는 Docker에서 IronOCR 앱과 함께 제공하는`.traineddata` 파일이 생성됩니다. 배포 세부 정보는 [Linux 배포 가이드](https://ironsoftware.com/csharp/ocr/get-started/linux/)를 참조하세요.
### Ubuntu에 Tesseract 5를 어떻게 설치합니까?
Tesseract 5를 설치하려면 다음 명령어를 사용하십시오.
```bash
sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
```
`tesseract-ocr` 패키지는 인식률을 제공하는 엔진입니다; `libtesseract-dev`는 모델 생성을 위해 tesstrain이 필요로 하는 헤더를 노출합니다. 훈련된 파일이 사용 중일 때, [Tesseract 구성 가이드](https://ironsoftware.com/csharp/ocr/examples/csharp-configure-setup-tesseract/)는 실행 시간 조정을 다룹니다.
## 교육을 위해 폰트를 어떻게 준비합니까?
### 어떤 폰트를 다운로드해야 하나요?
이 튜토리얼에서는 `.ttf` 또는 `.otf` 형식으로 AMGDT 폰트를 사용합니다.

교육할 폰트를 선택할 때:
- 기본 영어 모델이 이미 잘못 읽는 폰트를 선택하십시오. 이미 인식된 폰트를 훈련시키는 것은 시간 낭비입니다.
- 응용 프로그램과 함께 출하될 경우 `.traineddata`의 재배포 허용 여부를 확인하세요.
- 장식적이고 손으로 쓴 폰트 및 산업별 폰트(의료, 법률, 지도)는 교육을 통해 가장 정확성을 얻습니다.
- 교육 샘플을 실제로 볼 수 있는 환경(해상도 및 조명 포함)과 일치하게 만드십시오.
### 디스크 드라이브를 어떻게 마운트합니까?
작업 공간으로 드라이브 D:를 마운트하십시오:
```bash
cd /
cd /mnt/d
```
WSL2는 모든 Windows 드라이브를 /mnt/<letter> 아래에 마운트하므로 Windows 파일을 편집하고 같은 세션에서 교육 명령을 실행할 수 있습니다.
### 폰트 파일을 우분투 폰트 폴더에 어떻게 복사합니까?
Tesseract는 교육 이미지를 빌드하기 위해 귀하의 폰트로 샘플 텍스트를 렌더링하므로 폰트는 Windows에만 설치될 수 없습니다. Linux 쪽에도 설치되어야 합니다. 폰트 파일을 우분투 폰트 디렉토리인 /usr/share/fonts와 /usr/local/share/fonts에 복사하세요. 가장 간단한 방법은 Windows에서 Ubuntu 파일 시스템을 탐색하기 위해 파일 탐색기의 주소 표시줄에 \wsl$를 입력한 다음 `.ttf`를 드래그하는 것입니다.

폰트 복사가 우분투 폰트 디렉터리에 도착한 후 어떻게 보여야 하는지:
<img src="/static-assets/ocr/how-to/ocr-custom-font-training/amdfont.gif" alt="AMGDT 글꼴 파일이 Ubuntu 글꼴 폴더에 복사되어 시스템에서 인식되는 모습" class="img-responsive add-shadow" style="max-width: 720px; width: 100%; display: block; margin: 0 auto 30px auto;"/>
#### 목적지 폴더 액세스가 거부되면 어떻게 하나요?
파일 탐색기가 복사를 거부하면, 대신 루트 셸에서 실행하세요:
```bash
cd /
su root
cd /c/Users/Admin/Downloads/'AMGDT Regular'
cp 'AMGDT Regular.ttf' /usr/share/fonts
cp 'AMGDT Regular.ttf' /usr/local/share/fonts
exit
```
## GitHub에서 교육 저장소를 어떻게 복제합니까?
교육 파이프라인은 세 개의 저장소에 의존합니다. 먼저 튜토리얼 래퍼를 복제한 다음 그 안에 두 개의 상위 Tesseract 저장소를 복제한 다음 출력 폴더를 만드십시오:
```bash
git clone https://github.com/astutejoe/tesseract_tutorial.git
cd tesseract_tutorial
git clone https://github.com/tesseract-ocr/tesstrain
git clone https://github.com/tesseract-ocr/tesseract
mkdir tesstrain/data
```
- Tesseract_tutorial은 각 교육 단계(텍스트 생성, 이미지 렌더링, 교육 쌍 생성)를 실행하는 Python 스크립트와 구성 파일을 번들로 제공합니다.
- tesstrain은 실제 교육 실행을 추진하는 Makefile을 포함합니다.
- Tesseract는 사용자 지정 훈련의 시작 모델로 사용되는 주식 `.traineddata` 파일이 포함된 tessdata 폴더를 포함합니다.
- tesstrain/data는 생성된 `.box` 파일(문자 경계 상자), `.tif` 이미지 및 중간 LSTM 체크포인트가 모두 도착하는 곳입니다.
터미널에서 복제 시퀀스가 어떻게 보여야 하는지:
<img src="/static-assets/ocr/how-to/ocr-custom-font-training/gitlogs.gif" alt="네 개의 git clone 명령을 실행하고 tesstrain 데이터 폴더를 생성하는 터미널" class="img-responsive add-shadow" style="max-width: 720px; width: 100%; display: block; margin: 0 auto 30px auto;"/>
사용자 정의 언어와 함께 여러 언어 팩을 작업하는 방법은 [국제 언어 가이드](https://ironsoftware.com/csharp/ocr/examples/intl-languages/)를 참조하세요.
## 훈련 파일을 어떻게 생성합니까?
### split_training_text.py 스크립트를 어떻게 실행합니까?
Tesseract_tutorial 폴더에서 실행하십시오:
```shell
python split_training_text.py
```
스크립트는 훈련 샘플당 한 쌍의 `.box` / `.tif`을 생성하고 이것들을 데이터 폴더에 작성합니다.
스크립트 실행이 훈련 쌍을 생성하는 모습을 다음과 같이 보여야 합니다:
<img src="/static-assets/ocr/how-to/ocr-custom-font-training/pythontest.gif" alt="split_training_text.py를 실행하고 데이터 폴더에 .box 및 .tif 파일을 생성하는 터미널" class="img-responsive add-shadow" style="max-width: 720px; width: 100%; display: block; margin: 0 auto 30px auto;"/>
#### Fontconfig 경고를 어떻게 수정합니까?

*Fontconfig warning: "/tmp/fonts.co/nf, line 4: 빈 폰트 디렉토리 이름 무시됨"*이라는 경고가 표시되면, fontconfig는 폰트 디렉토리를 해결할 수 없습니다. `tesseract_tutorial/fonts.co/nf`를 편집하여 수정합니다:
```xml
<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
<!-- the following element will be removed in the future -->
<dir>~/.fonts</dir>
```
/etc/fonts로 복사하세요:
```bash
cp fonts.co/nf /etc/fonts
```
그러면 `split_training_text.py` 경로를 동일하게 지정합니다:
```python
fontconf_dir = '/etc/fonts'
```
#### 얼마나 많은 훈련 파일을 생성해야 하나요?
기본적으로 스크립트는 100개의 훈련 쌍을 생성합니다. `split_training_text.py` 상단의 카운트를 변경합니다:

크기 지침:
- 파이프라인이 끝에서 끝으로 작동하는지 확인하기 위해 100-500개의 샘플이 충분합니다.
- 1000-5000개의 샘플은 생산 정확성을 위한 작업 범위입니다.
- 훈련 텍스트는 귀하의 폰트가 인식해야 하는 모든 문자를 커버해야 하며, 이상적으로는 각각 여러 번 인식해야 합니다.
- 더 많은 샘플은 더 많은 교육 시간을 의미합니다; 목표 정확도를 달성하기 위해 가장 적은 개수를 선택하십시오.
### eng.traineddata 파일을 어디에서 다운로드하나요?
[tessdata_best 저장소](https://github.com/tesseract-ocr/tessdata_best)에서 `eng.traineddata`를 다운로드하여 Tesseract_tutorial/tesseract/tessdata에 놓습니다.
기본 모델은 교육자에게 언어적 문맥을 제공합니다(어떤 문자 시퀀스가 그럴듯한 단어를 형성하는지), 따라서 처음부터 학습하는 것보다 정확도가 훨씬 좋습니다. 교육 텍스트와 같은 언어의 기본 모델을 선택하십시오. 문제가 발생하면, [사용자 정의 OCR 언어 팩 문제 해결 가이드](https://ironsoftware.com/csharp/ocr/troubleshooting/custom-ocr-language-packs/)를 참조하십시오.
## 내 사용자 정의 폰트 훈련 데이터 파일을 어떻게 빌드합니까?
tesstrain 폴더에서 실행합니다:
```bash
TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
```
- MODEL_NAME은 귀하의 사용자 정의 폰트 이름입니다 (출력 파일 이름에 사용됩니다).
- START_MODEL은 위에서 다운로드한 기본 `.traineddata`입니다.
- MAX_ITERATIONS는 훈련 실행의 최대치를 제한합니다; 높은 값은 일반적으로 오류율을 줄입니다.
### Makefile에서 "데이터 읽기 실패" 오류가 발생하면 어떻게 해야 하나요?
"데이터 읽기 실패" 오류를 해결하기 위해 Makefile을 패치하십시오:
```makefile
WORDLIST_FILE := $(OUTPUT_DIR2)/$(MODEL_NAME).lstm-word-dawg
NUMBERS_FILE := $(OUTPUT_DIR2)/$(MODEL_NAME).lstm-number-dawg
PUNC_FILE := $(OUTPUT_DIR2)/$(MODEL_NAME).lstm-punc-dawg
```
패치는 Makefile을 실제 출력 디렉터리에 포인트하여 사전 파일을 찾을 수 있도록 합니다.
### "스크립트 유니카셋 로드 실패" 오류를 어떻게 해결하나요?
[langdata_lstm](https://github.com/tesseract-ocr/langdata_lstm)에서 `Latin.unicharset`를 다운로드하여 tesstrain/data/langdata 폴더에 놓습니다.
`.unicharset` 파일은 트레이너가 내보낼 수 있는 문자를 정의합니다. 예를 들어 키릴 문자 폰트에 대해 `Cyrillic.unicharset`, 데바나가리 문자에 대해 `Devanagari.unicharset` 등 폰트의 모든 문자를 포함하는 파일을 사용하세요.
성공적인 훈련 실행의 예입니다. tesstrain이 `.traineddata` 파일을 생성하는 동안 이렇게 보일 것입니다.:
<img src="/static-assets/ocr/how-to/ocr-custom-font-training/trainingdatagen.gif" alt="훈련 반복을 거쳐 AMGDT.traineddata 파일을 생성하는 tesstrain 빌드 파이프라인" class="img-responsive add-shadow" style="max-width: 720px; width: 100%; display: block; margin: 0 auto 30px auto;"/>
## 훈련된 데이터 파일의 정확성을 어떻게 확인합니까?
1000개의 `.box`와 `.tif` 파일과 3000번의 훈련 반복으로 출력 `AMGDT.traineddata`이 약 5.77%의 훈련 오류율(BCER)에 도달합니다.

훈련된 모델을 IronOCR와 함께 테스트하려면 파일을 가리킵니다 `UseCustomTesseractLanguageFile`, 샘플 이미지를 읽습니다.:
```cs
:path=/static-assets/ocr/content-code-examples/how-to/ocr-custom-font-training-13.cs
```
`Confidence` 속성은 문서별 점수입니다.; 깨끗한 입력에서도 낮은 수준으로 유지되면 가장 일반적인 원인은 훈련 샘플이 너무 적거나 스크립트와 일치하지 않는 기본 모델입니다. 나만의 `.traineddata`가 확인되면 모든 사용자 정의 언어 파일을 로드하기 위한 일반적인 워크플로를 위한 [사용자 정의 언어 가이드](https://ironsoftware.com/csharp/ocr/how-to/ocr-custom-language/)를 참조하십시오.
## 사용자 정의 폰트 훈련에 대한 주요 내용을 무엇입니까?
사용자 정의 폰트를 훈련하는 것은 일회성 설정입니다. 목표 폰트에서 `.box` / `.tif` 쌍을 생성하고, tesstrain으로 `.traineddata` 모델을 빌드한 다음 `UseCustomTesseractLanguageFile`을 통해 로드합니다. 그곳에서 IronOCR은 새 모델로 이미지를 읽으며, 주식 영어를 읽는 것과 정확히 동일합니다.
사용자 정의 Tesseract 모델과 함께 IronOCR을 사용하는 주요 장점:
- **표준 Tesseract 아티팩트 재사용**: tesstrain으로 구축할 수 있는 모든 `.traineddata` 파일은 변환 없이 IronOCR에서 작동합니다.
- **크로스 플랫폼 출력**: 교육은 Linux(또는 WSL2)가 필요하지만 훈련된 파일은 Windows, macOS, Linux 및 Docker에서 애플리케이션과 함께 발송됩니다.
- **나머지 API와 함께 드롭인**: 사용자 정의 폰트를 다중 보조 언어, 이미지 품질 보정, DPI 조정과 결합하여 인식 경로를 변경하지 않고 사용할 수 있습니다.
- **조정 가능한 정확도**: 오류율은 훈련 샘플 수와 반복 횟수의 함수입니다. 두 개의 조정자는 노출되어 있습니다(스크립트의 샘플 수와 `MAX_ITERATIONS`), 따라서 Tesseract를 떠나지 않고도 훈련 시간과 BCER 간의 절충점을 조정할 수 있습니다.
더 큰 파이프라인의 경우, 훈련된 모델을 여러 문서에 적용할 때 [진행 상황 추적](https://ironsoftware.com/csharp/ocr/how-to/progress-tracking/) 및 [비동기 처리](https://ironsoftware.com/csharp/ocr/how-to/async/)를 고려하십시오.
기본 Tesseract 영어 모델은 병원 수기 접수 양식, 고전 책 디지털화, 게임 스튜디오의 맞춤형 장식 글꼴, 일반 OCR 엔진이 본 적 없는 산업별 기호 등의 많은 실제 입력을 오독합니다. 수정 방법은 직접 Tesseract에 폰트를 학습시키고 희망하는 장소 어디에서든 IronOCR을 실행할 수 있는 .traineddata 아티팩트를 만드는 것입니다.
이 가이드는 UI 설치 과정, Ubuntu 도구 체인 WSL2 설치, .ttf 또는 .otf로부터 .box 및 .tif 학습 파일 렌더링, eng.traineddata 기본 모델로 .traineddata 모델을 tesstrain와 함께 빌드 후, IronOCR에 결과를 로드하는 방법을 다룹니다. 훈련이 완료되면 파일은 Windows, MacOS, Linux, Docker에서 이식 가능합니다.
빠른 시작: C#에서 훈련된 폰트 파일 사용
UseCustomTesseractLanguageFile을 준비한 .traineddata 파일로 지정한 후, 언어 팩으로 지정한 Read을 호출하면 됩니다.
1Install IronOCR with NuGet Package Manager
PM > Install-Package IronOcr
Install-Package IronOcr
2다음 코드 조각을 복사하여 실행하세요.
using IronOcr;var ocr = new IronTesseract();ocr.UseCustomTesseractLanguageFile("path/to/YourCustomFont.traineddata");string text = ocr.Read(new OcrInput("image-with-special-font.png")).Text;
using IronOcr;
var ocr = new IronTesseract();
ocr.UseCustomTesseractLanguageFile("path/to/YourCustomFont.traineddata");
string text = ocr.Read(new OcrInput("image-with-special-font.png")).Text;
tesseract-ocr 패키지는 인식률을 제공하는 엔진입니다; libtesseract-dev는 모델 생성을 위해 tesstrain이 필요로 하는 헤더를 노출합니다. 훈련된 파일이 사용 중일 때, Tesseract 구성 가이드는 실행 시간 조정을 다룹니다.
교육을 위해 폰트를 어떻게 준비합니까?
어떤 폰트를 다운로드해야 하나요?
이 튜토리얼에서는 .ttf 또는 .otf 형식으로 AMGDT 폰트를 사용합니다.
교육할 폰트를 선택할 때:
기본 영어 모델이 이미 잘못 읽는 폰트를 선택하십시오. 이미 인식된 폰트를 훈련시키는 것은 시간 낭비입니다.
응용 프로그램과 함께 출하될 경우 .traineddata의 재배포 허용 여부를 확인하세요.
장식적이고 손으로 쓴 폰트 및 산업별 폰트(의료, 법률, 지도)는 교육을 통해 가장 정확성을 얻습니다.
교육 샘플을 실제로 볼 수 있는 환경(해상도 및 조명 포함)과 일치하게 만드십시오.
디스크 드라이브를 어떻게 마운트합니까?
작업 공간으로 드라이브 D:를 마운트하십시오:
cd /cd /mnt/d
cd /
cd /mnt/d
SHELL
WSL2는 모든 Windows 드라이브를 /mnt/<letter> 아래에 마운트하므로 Windows 파일을 편집하고 같은 세션에서 교육 명령을 실행할 수 있습니다.
폰트 파일을 우분투 폰트 폴더에 어떻게 복사합니까?
Tesseract는 교육 이미지를 빌드하기 위해 귀하의 폰트로 샘플 텍스트를 렌더링하므로 폰트는 Windows에만 설치될 수 없습니다. Linux 쪽에도 설치되어야 합니다. 폰트 파일을 우분투 폰트 디렉토리인 /usr/share/fonts와 /usr/local/share/fonts에 복사하세요. 가장 간단한 방법은 Windows에서 Ubuntu 파일 시스템을 탐색하기 위해 파일 탐색기의 주소 표시줄에 \wsl$를 입력한 다음 .ttf를 드래그하는 것입니다.
스크립트는 훈련 샘플당 한 쌍의 .box / .tif을 생성하고 이것들을 데이터 폴더에 작성합니다.
스크립트 실행이 훈련 쌍을 생성하는 모습을 다음과 같이 보여야 합니다:
Fontconfig 경고를 어떻게 수정합니까?
*Fontconfig warning: "/tmp/fonts.co/nf, line 4: 빈 폰트 디렉토리 이름 무시됨"*이라는 경고가 표시되면, fontconfig는 폰트 디렉토리를 해결할 수 없습니다. tesseract_tutorial/fonts.co/nf를 편집하여 수정합니다:
<dir>/usr/share/fonts</dir><dir>/usr/local/share/fonts</dir><dir prefix="xdg">fonts</dir><!-- the following element will be removed in the future --><dir>~/.fonts</dir>
<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
<!-- the following element will be removed in the future -->
<dir>~/.fonts</dir>
XML
/etc/fonts로 복사하세요:
cp fonts.co/nf /etc/fonts
cp fonts.co/nf /etc/fonts
SHELL
그러면 split_training_text.py 경로를 동일하게 지정합니다:
fontconf_dir = '/etc/fonts'
fontconf_dir = '/etc/fonts'
Python
얼마나 많은 훈련 파일을 생성해야 하나요?
기본적으로 스크립트는 100개의 훈련 쌍을 생성합니다. split_training_text.py 상단의 카운트를 변경합니다:
크기 지침:
파이프라인이 끝에서 끝으로 작동하는지 확인하기 위해 100-500개의 샘플이 충분합니다.
1000-5000개의 샘플은 생산 정확성을 위한 작업 범위입니다.
훈련 텍스트는 귀하의 폰트가 인식해야 하는 모든 문자를 커버해야 하며, 이상적으로는 각각 여러 번 인식해야 합니다.
더 많은 샘플은 더 많은 교육 시간을 의미합니다; 목표 정확도를 달성하기 위해 가장 적은 개수를 선택하십시오.
기본 모델은 교육자에게 언어적 문맥을 제공합니다(어떤 문자 시퀀스가 그럴듯한 단어를 형성하는지), 따라서 처음부터 학습하는 것보다 정확도가 훨씬 좋습니다. 교육 텍스트와 같은 언어의 기본 모델을 선택하십시오. 문제가 발생하면, 사용자 정의 OCR 언어 팩 문제 해결 가이드를 참조하십시오.
내 사용자 정의 폰트 훈련 데이터 파일을 어떻게 빌드합니까?
tesstrain 폴더에서 실행합니다:
TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
SHELL
MODEL_NAME은 귀하의 사용자 정의 폰트 이름입니다 (출력 파일 이름에 사용됩니다).
START_MODEL은 위에서 다운로드한 기본 .traineddata입니다.
MAX_ITERATIONS는 훈련 실행의 최대치를 제한합니다; 높은 값은 일반적으로 오류율을 줄입니다.
.unicharset 파일은 트레이너가 내보낼 수 있는 문자를 정의합니다. 예를 들어 키릴 문자 폰트에 대해 Cyrillic.unicharset, 데바나가리 문자에 대해 Devanagari.unicharset 등 폰트의 모든 문자를 포함하는 파일을 사용하세요.
성공적인 훈련 실행의 예입니다. tesstrain이 .traineddata 파일을 생성하는 동안 이렇게 보일 것입니다.:
훈련된 데이터 파일의 정확성을 어떻게 확인합니까?
1000개의 .box와 .tif 파일과 3000번의 훈련 반복으로 출력 AMGDT.traineddata이 약 5.77%의 훈련 오류율(BCER)에 도달합니다.
훈련된 모델을 IronOCR와 함께 테스트하려면 파일을 가리킵니다 UseCustomTesseractLanguageFile, 샘플 이미지를 읽습니다.:
using IronOcr;// Load the trained model; AutoOsd handles orientationvar ocr = new IronTesseract();ocr.UseCustomTesseractLanguageFile("path/to/AMGDT.traineddata");ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;// Preprocess so the model sees clean glyphsusing var input = new OcrInput();input.LoadImage("test-image-with-amgdt-font.png");input.EnhanceResolution(300);input.DeNoise();// Confidence reflects training qualityvar result = ocr.Read(input);Console.WriteLine($"Text: {result.Text}");Console.WriteLine($"Confidence: {result.Confidence}%");
using IronOcr;
// Load the trained model; AutoOsd handles orientation
var ocr = new IronTesseract();
ocr.UseCustomTesseractLanguageFile("path/to/AMGDT.traineddata");
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;
// Preprocess so the model sees clean glyphs
using var input = new OcrInput();
input.LoadImage("test-image-with-amgdt-font.png");
input.EnhanceResolution(300);
input.DeNoise();
// Confidence reflects training quality
var result = ocr.Read(input);
Console.WriteLine($"Text: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
ImportsIronOcr' Load the trained model; AutoOsd handles orientationDim ocr As New IronTesseract()ocr.UseCustomTesseractLanguageFile("path/to/AMGDT.traineddata")ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd' Preprocess so the model sees clean glyphsUsing input As New OcrInput() input.LoadImage("test-image-with-amgdt-font.png") input.EnhanceResolution(300) input.DeNoise() ' Confidence reflects training quality Dim result = ocr.Read(input)Console.WriteLine($"Text: {result.Text}")Console.WriteLine($"Confidence: {result.Confidence}%")EndUsing
Imports IronOcr
' Load the trained model; AutoOsd handles orientation
Dim ocr As New IronTesseract()
ocr.UseCustomTesseractLanguageFile("path/to/AMGDT.traineddata")
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd
' Preprocess so the model sees clean glyphs
Using input As New OcrInput()
input.LoadImage("test-image-with-amgdt-font.png")
input.EnhanceResolution(300)
input.DeNoise()
' Confidence reflects training quality
Dim result = ocr.Read(input)
Console.WriteLine($"Text: {result.Text}")
Console.WriteLine($"Confidence: {result.Confidence}%")
End Using
Confidence 속성은 문서별 점수입니다.; 깨끗한 입력에서도 낮은 수준으로 유지되면 가장 일반적인 원인은 훈련 샘플이 너무 적거나 스크립트와 일치하지 않는 기본 모델입니다. 나만의 .traineddata가 확인되면 모든 사용자 정의 언어 파일을 로드하기 위한 일반적인 워크플로를 위한 사용자 정의 언어 가이드를 참조하십시오.
사용자 정의 폰트 훈련에 대한 주요 내용을 무엇입니까?
사용자 정의 폰트를 훈련하는 것은 일회성 설정입니다. 목표 폰트에서 .box / .tif 쌍을 생성하고, tesstrain으로 .traineddata 모델을 빌드한 다음 UseCustomTesseractLanguageFile을 통해 로드합니다. 그곳에서 IronOCR은 새 모델로 이미지를 읽으며, 주식 영어를 읽는 것과 정확히 동일합니다.
사용자 정의 Tesseract 모델과 함께 IronOCR을 사용하는 주요 장점:
표준 Tesseract 아티팩트 재사용: tesstrain으로 구축할 수 있는 모든 .traineddata 파일은 변환 없이 IronOCR에서 작동합니다.
크로스 플랫폼 출력: 교육은 Linux(또는 WSL2)가 필요하지만 훈련된 파일은 Windows, macOS, Linux 및 Docker에서 애플리케이션과 함께 발송됩니다.
나머지 API와 함께 드롭인: 사용자 정의 폰트를 다중 보조 언어, 이미지 품질 보정, DPI 조정과 결합하여 인식 경로를 변경하지 않고 사용할 수 있습니다.
조정 가능한 정확도: 오류율은 훈련 샘플 수와 반복 횟수의 함수입니다. 두 개의 조정자는 노출되어 있습니다(스크립트의 샘플 수와 MAX_ITERATIONS), 따라서 Tesseract를 떠나지 않고도 훈련 시간과 BCER 간의 절충점을 조정할 수 있습니다.
더 큰 파이프라인의 경우, 훈련된 모델을 여러 문서에 적용할 때 진행 상황 추적 및 비동기 처리를 고려하십시오.
자주 묻는 질문
C#에서 사용자 지정 학습 글꼴 파일을 사용하는 방법은 무엇인가요?
사용자 지정으로 학습시킨 Tesseract 글꼴 파일을 IronOCR에서 사용하려면 몇 줄의 코드만 있으면 됩니다. IronTesseract 인스턴스를 생성하고, .traineddata 파일의 경로를 UseCustomTesseractLanguageFile() 메서드에 전달한 다음, Read() 메서드를 사용하여 특수 글꼴이 포함된 이미지에 OCR을 수행하면 됩니다.
OCR용 사용자 지정 글꼴 학습에 필요한 요구 사항은 무엇입니까?
사용자 지정 글꼴 학습을 위해서는 Linux 환경(Windows 사용자의 경우 Ubuntu가 포함된 WSL2 권장), 개발 라이브러리가 설치된 Tesseract 5, 그리고 학습할 글꼴 파일(.ttf 또는 .otf 형식)이 필요합니다. Linux에서 생성된 .traineddata 파일은 모든 플랫폼에서 IronOCR과 원활하게 연동됩니다.
표준 OCR을 사용하는 대신 사용자 지정 글꼴을 학습시켜야 하는 이유는 무엇입니까?
사용자 지정 글꼴을 학습시키면 특정 글꼴, 특히 표준 Tesseract 모델과 크게 다른 장식용 또는 특수 글꼴에 대한 OCR 정확도가 향상됩니다. IronOCR은 이렇게 학습된 글꼴 파일을 사용하여 표준 OCR 모델로는 읽기 어려웠던 특수 글꼴이 포함된 이미지의 텍스트를 정확하게 인식할 수 있습니다.
사용자 지정으로 학습된 글꼴을 여러 플랫폼에서 사용할 수 있나요?
네, 학습 과정에는 Linux가 필요하지만, 생성된 .traineddata 파일은 IronOCR의 모든 플랫폼에서 문제없이 작동합니다. 즉, Linux에서 한 번 학습을 완료하면 Windows, macOS, Linux 등 어떤 환경에서도 학습된 데이터 파일을 사용할 수 있습니다.
처음 설치할 때 권장되는 방법은 무엇인가요?
빠른 설치를 위해 IronOCR DLL을 직접 다운로드하거나 NuGet 패키지 관리자를 통해 설치할 수 있습니다. NuGet은 종속성을 자동으로 처리하고 업데이트를 간편하게 해주므로 권장됩니다. IronOCR은 Tesseract 5의 다양한 기능과 사용자 정의 언어 구현을 완벽하게 지원합니다.
Can I deploy my custom-trained Tesseract model on multiple platforms?
Yes, once trained on a Linux environment, the `.traineddata` file is portable and can be used in applications running on Windows, macOS, Linux, and Docker.
What accuracy can I expect from a custom-trained font model in IronOCR?
The accuracy depends on training samples and iterations during the training process. More samples and iterations generally enhance accuracy, and IronOCR provides confidence scores to evaluate the model.
How can I troubleshoot 'Failed to Read Data' errors during training?
This error can often be resolved by patching the Makefile to correctly point it toward the output directory for dictionary files.
What is the role of the `eng.traineddata` file in custom font training?
`eng.traineddata` serves as the base language model providing linguistic context, which improves the accuracy of the custom-trained font over models built entirely from scratch.
What should I do if I encounter permission issues copying font files during setup?
If you receive a 'Destination Folder Access Denied' message, perform the file copy operation from a root shell in the terminal to ensure proper permissions.