Windows 개발자를 위한 Tesseract 5 기반 C# OCR 프로그램 사용자 지정 글꼴 교육
Tesseract 5의 사용자 지정 글꼴 학습 기능은 특정 글꼴에 대한 문자 인식 정확도를 향상시킵니다. 이 과정은 엔진에 글꼴 특성을 학습시키는 훈련 데이터를 생성합니다. 결과 .traineddata 파일은 IronOCR OCR 프로그램과 함께 작동하여 장식적인 글꼴이나 특별한 글꼴을 정확하게 인식합니다.
빠른 시작: C#에서 .traineddata 글꼴 파일 사용하기
사용자 지정으로 학습시킨 Tesseract 글꼴 파일을 IronOCR에서 단 몇 줄의 코드로 사용하세요. 특수 글꼴이나 장식 글꼴에 대한 정확한 OCR에 적합합니다.
-
NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/IronOcr 설치하기
PM > Install-Package IronOcr -
다음 코드 조각을 복사하여 실행하세요.
var ocr = new IronOcr.IronTesseract(); ocr.UseCustomTesseractLanguageFile("path/to/YourCustomFont.traineddata"); string text = ocr.Read(new IronOcr.OcrInput("image-with-special-font.png")).Text; -
실제 운영 환경에서 테스트할 수 있도록 배포하세요.
무료 체험판으로 오늘 프로젝트에서 IronOCR 사용 시작하기
- 사용자 지정 글꼴을 학습시키는 C# 라이브러리를 다운로드하세요.
- 학습을 위한 대상 글꼴 파일을 준비합니다.
- 이 글에 나와 있는 단계를 따르세요.
- 일반적인 오류에 대한 해결책을 적용하세요
- 학습된 데이터 파일을 내보냅니다.
IronOCR 최신 버전을 어떻게 다운로드하나요?
어떤 설치 방법을 사용해야 할까요?
IronOcr DLL 파일 을 컴퓨터에 직접 다운로드하십시오.
NuGet을 사용하는 이유는 무엇일까요?
또는 다음 명령어를 사용하여 NuGet을 통해 설치할 수도 있습니다.
Install-Package IronOcr
IronOCR은 Tesseract 5의 다양한 기능 과 사용자 정의 언어 구현을 완벽하게 지원하므로 특수 OCR 요구 사항에 이상적입니다.
WSL2와 Ubuntu를 설치하고 설정하는 방법은 무엇인가요?
WSL2 및 Ubuntu 설정 방법 에 대한 튜토리얼을 참조하십시오.
교육은 Linux를 필요로 하지만, 결과 .traineddata 파일은 모든 플랫폼에서 원활하게 작동합니다. 자세한 Linux 설정 방법은 Linux 배포 가이드를 참조하십시오.
우분투에 Tesseract 5를 설치하는 방법은 무엇인가요?
Tesseract 5를 설치하려면 다음 명령어를 사용하십시오.
sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
이 패키지들은 학습에 필요한 핵심 Tesseract OCR 엔진과 개발 라이브러리를 제공합니다. 고급 Tesseract 구성 옵션에 대한 자세한 내용은 구성 가이드를 참조하십시오.
학습을 위해 어떤 글꼴을 다운로드해야 할까요?
이 튜토리얼에서는 AMGDT 글꼴을 사용합니다. 글꼴 파일 형식은 .ttf 또는 .otf일 수 있습니다. 
학습용 글꼴을 선택할 때:
- 표준 테서랙트 모델과 크게 다른 글꼴을 선택하세요
- 폰트에 대한 적절한 라이선스를 확보하십시오
- 장식용, 손글씨용 또는 특정 산업 분야에 특화된 글꼴을 고려해 보세요.
- 실제 운영 환경에서 애플리케이션이 접하게 되는 글꼴로 테스트하세요
사용자 지정 글꼴 학습을 위해 디스크 드라이브를 어떻게 마운트하나요?
이 명령을 사용하여 드라이브 D:를 작업 공간으로 마운트하십시오:
cd /
cd /mnt/d
cd /
cd /mnt/d
이를 통해 Ubuntu WSL2 환경에서 Windows 드라이브에 저장된 파일을 직접 사용할 수 있습니다.
우분투 글꼴 폴더에 글꼴 파일을 복사하려면 어떻게 해야 하나요?
글꼴 파일을 이 Ubuntu 디렉토리로 복사하십시오: /usr/share/fonts 및 /usr/local/share/fonts.
파일 탐색기의 주소 창에 \\wsl$를 입력하여 Ubuntu의 파일에 액세스하십시오.

대상 폴더에 대한 액세스가 거부되면 어떻게 해야 하나요?
접근 거부 오류가 발생하는 경우 명령줄을 사용하여 파일을 복사하세요.
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
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_tutorial을 어떻게 클론합니까?
다음 명령을 사용하여 tesseract_tutorial 저장소를 클론하십시오:
git clone https://github.com/astutejoe/tesseract_tutorial.git
git clone https://github.com/astutejoe/tesseract_tutorial.git
이 저장소에는 학습 과정에 필요한 필수 Python 스크립트와 설정 파일이 포함되어 있습니다. 이 스크립트는 글꼴 학습에서 많은 수동 단계를 자동화합니다.
GitHub에서 tesstrain과 tesseract을 어떻게 클론합니까?
다음 명령을 사용하여 tesseract_tutorial 디렉토리로 이동한 후 tesstrain 및 tesseract 저장소를 클론하십시오:
git clone https://github.com/tesseract-ocr/tesstrain
git clone https://github.com/tesseract-ocr/tesseract
git clone https://github.com/tesseract-ocr/tesstrain
git clone https://github.com/tesseract-ocr/tesseract
tesstrain에 Makefile이 있으며.traineddata파일을 만듭니다tesseract에 원본.traineddata파일이 있는 tessdata 폴더가 있어 사용자 지정 글꼴 교육 시 참조로 사용됩니다
여러 언어 팩 및 사용자 지정 학습 데이터 사용에 대한 자세한 내용은 국제 언어 가이드를 참조하세요.
출력물을 저장할 "데이터" 폴더를 어떻게 만드나요?
tesseract_tutorial/tesstrain 내에 데이터 폴더를 만드십시오:
mkdir tesseract_tutorial/tesstrain/data
mkdir tesseract_tutorial/tesstrain/data
이 폴더에는 .box, .tif 파일 및 중간 학습 결과물을 포함하여 생성된 모든 학습 파일이 저장됩니다.
split_training_text.py을 어떻게 실행합니까?
tesseract_tutorial 폴더로 돌아가서 다음 명령을 실행하십시오:
python split_training_text.py
python split_training_text.py
split_training_text.py을 실행한 후 데이터 폴더에 .box 및 .tif 파일을 생성합니다.
Fontconfig 경고를 어떻게 해결하나요?
경고 Fontconfig warning: "/tmp/fonts.conf, line 4: empty font directory name ignored"을(를) 보면 누락된 글꼴 디렉토리를 나타냅니다. tesseract_tutorial/fonts.conf 파일을 편집하고 다음을 추가하여 이를 수정하십시오:
<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
<dir>~/.fonts</dir>
<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
<dir>~/.fonts</dir>
이것을 /etc/fonts에 복사하십시오:
cp fonts.conf /etc/fonts
cp fonts.conf /etc/fonts
또한 split_training_text.py을 업데이트하십시오:
fontconf_dir = '/etc/fonts'
fontconf_dir = '/etc/fonts'
학습 파일을 몇 개 생성해야 할까요?
현재 설정에서는 100개의 학습 파일이 생성됩니다. 이것을 split_training_text.py에서 수정할 수 있습니다.

실무 수준의 교육을 위해:
- 테스트를 위해 100~500개의 샘플로 시작하세요.
- 정확도를 높이려면 1000~5000개의 샘플을 사용하십시오.
- 필요한 모든 문자를 포함하는 다양한 텍스트 샘플을 제공하십시오.
- 훈련 시간과 정확도 요구 사항의 균형을 맞추세요
eng.traineddata을 어디에서 다운로드합니까?
이 저장소에서 eng.traineddata을 다운로드하고 tesseract_tutorial/tesseract/tessdata에 놓으십시오.
기본 모델은 언어적 맥락을 제공하여 인식 정확도를 향상시킵니다. 목표 언어에 맞는 기본 모델을 선택하세요. 사용자 지정 언어 팩 관련 문제 해결 방법은 사용자 지정 OCR 언어 팩 가이드를 참조하세요.
사용자 지정 글꼴 .traineddata을 어떻게 만듭니까?
tesstrain 폴더로 이동하여 WSL2에서 이 명령을 사용하십시오:
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
MODEL_NAME는 사용자 지정 글꼴 이름입니다START_MODEL는 원본.traineddata참조입니다MAX_ITERATIONS는 반복 횟수를 정의합니다 (더 많은 반복 횟수는 정확성을 향상시킵니다)
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이 올바른 출력 디렉터리 구조에서 파일을 찾도록 합니다.
"스크립트 유니카셋 로드 실패" 오류를 어떻게 해결하나요?
Latin.unicharset을(를) tesstrain/data/langdata 폴더에 삽입하십시오. 여기에서 Latin.unicharset을(를) 찾으십시오 here.
유니차셋 파일은 사용자의 언어 또는 스크립트에 대한 문자 집합을 정의합니다. 글꼴의 문자 범위와 일치하는지 확인하십시오.
생성된 .traineddata의 정확성을 어떻게 검증합니까?
1000 .box 및 .tif 파일과 3000번의 학습 반복으로 출력 AMGDT.traineddata은 약 5.77%의 최소 학습 오류율 (BCER)을 달성합니다.

IronOCR을 사용하여 학습된 모델을 테스트하려면 다음 단계를 따르세요.
using IronOcr;
// Initialize IronOCR with custom trained data
var ocr = new IronTesseract();
// Load your custom trained font
ocr.UseCustomTesseractLanguageFile(@"path\to\AMGDT.traineddata");
// Configure for optimal results
ocr.Configuration.BlackListCharacters = "";
ocr.Configuration.WhiteListCharacters = "";
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;
// Process an image with your custom font
using var input = new OcrInput();
input.LoadImage("test-image-with-amgdt-font.png");
// Optional: Apply filters if needed
input.EnhanceResolution(300);
input.DeNoise();
// Perform OCR
var result = ocr.Read(input);
Console.WriteLine($"Recognized Text: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
using IronOcr;
// Initialize IronOCR with custom trained data
var ocr = new IronTesseract();
// Load your custom trained font
ocr.UseCustomTesseractLanguageFile(@"path\to\AMGDT.traineddata");
// Configure for optimal results
ocr.Configuration.BlackListCharacters = "";
ocr.Configuration.WhiteListCharacters = "";
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;
// Process an image with your custom font
using var input = new OcrInput();
input.LoadImage("test-image-with-amgdt-font.png");
// Optional: Apply filters if needed
input.EnhanceResolution(300);
input.DeNoise();
// Perform OCR
var result = ocr.Read(input);
Console.WriteLine($"Recognized Text: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
Imports IronOcr
' Initialize IronOCR with custom trained data
Dim ocr As New IronTesseract()
' Load your custom trained font
ocr.UseCustomTesseractLanguageFile("path\to\AMGDT.traineddata")
' Configure for optimal results
ocr.Configuration.BlackListCharacters = ""
ocr.Configuration.WhiteListCharacters = ""
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd
' Process an image with your custom font
Using input As New OcrInput()
input.LoadImage("test-image-with-amgdt-font.png")
' Optional: Apply filters if needed
input.EnhanceResolution(300)
input.DeNoise()
' Perform OCR
Dim result = ocr.Read(input)
Console.WriteLine($"Recognized Text: {result.Text}")
Console.WriteLine($"Confidence: {result.Confidence}%")
End Using
실제 애플리케이션에 사용자 지정 글꼴을 구현하려면 사용자 지정 언어 파일 사용 가이드를 참조하세요.
더 자세한 내용과 참고 자료는 다음 튜토리얼 영상을 참조하세요: YouTube 영상
자주 묻는 질문
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의 다양한 기능과 사용자 정의 언어 구현을 완벽하게 지원합니다.

