C#을 이용한 Tesseract 5 사용자 정의 글꼴 교육

Windows 개발자를 위한 Tesseract 5 기반 C# 사용자 지정 글꼴 교육

This article was translated from English: Does it need improvement?
Translated
View the article in English

Tesseract 5의 사용자 지정 글꼴 학습 기능은 특정 글꼴에 대한 OCR 정확도를 향상시킵니다. 이 과정은 엔진에 글꼴 특성을 학습시키는 훈련 데이터를 생성합니다. 결과 .traineddata 파일은 IronOCR과 함께 작동하여 장식적인 글꼴이나 특별한 글꼴을 정확하게 인식합니다.

빠른 시작: C#에서 .traineddata 글꼴 파일 사용하기

사용자 지정으로 학습시킨 Tesseract 글꼴 파일을 IronOCR에서 단 몇 줄의 코드로 사용하세요. 특수 글꼴이나 장식 글꼴에 대한 정확한 OCR에 적합합니다.

  1. NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/IronOcr 설치하기

    PM > Install-Package IronOcr
  2. 다음 코드 조각을 복사하여 실행하세요.

    var ocr = new IronOcr.IronTesseract();
    ocr.UseCustomTesseractLanguageFile("path/to/YourCustomFont.traineddata");
    string text = ocr.Read(new IronOcr.OcrInput("image-with-special-font.png")).Text;
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronOCR 사용 시작하기

    arrow pointer

IronOCR 최신 버전을 어떻게 다운로드하나요?

어떤 설치 방법을 사용해야 할까요?

IronOcr DLL 파일 을 컴퓨터에 직접 다운로드하십시오.

NuGet을 사용하는 이유는 무엇일까요?

또는 다음 명령어를 사용하여 NuGet을 통해 설치할 수도 있습니다.

Install-Package IronOcr

IronOCR은 Tesseract 5의 다양한 기능사용자 정의 언어 구현을 완벽하게 지원하므로 특수 OCR 요구 사항에 이상적입니다.


WSL2와 Ubuntu를 설치하고 설정하는 방법은 무엇인가요?

WSL2 및 Ubuntu 설정 방법 에 대한 튜토리얼을 참조하십시오.

참고해 주세요사용자 지정 글꼴 학습에는 Linux가 필요합니다.

교육은 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
SHELL

이 패키지들은 학습에 필요한 핵심 Tesseract OCR 엔진과 개발 라이브러리를 제공합니다. 고급 Tesseract 구성 옵션에 대한 자세한 내용은 구성 가이드를 참조하십시오.

학습을 위해 어떤 글꼴을 다운로드해야 할까요?

이 튜토리얼에서는 AMGDT 글꼴을 사용합니다. 글꼴 파일 형식은 .ttf 또는 .otf일 수 있습니다. Windows 파일 탐색기가 다운로드된 AMGDT Regular.ttf 글꼴 파일을 빨간 상자로 강조 표시하여 교육을 위해 보여줌

학습용 글꼴을 선택할 때:

  • 표준 테서랙트 모델과 크게 다른 글꼴을 선택하세요
  • 폰트에 대한 적절한 라이선스를 확보하십시오
  • 장식용, 손글씨용 또는 특정 산업 분야에 특화된 글꼴을 고려해 보세요.
  • 실제 운영 환경에서 애플리케이션이 접하게 되는 글꼴로 테스트하세요

사용자 지정 글꼴 학습을 위해 디스크 드라이브를 어떻게 마운트하나요?

이 명령을 사용하여 드라이브 D:를 작업 공간으로 마운트하십시오:

cd /
cd /mnt/d
cd /
cd /mnt/d
SHELL

이를 통해 Ubuntu WSL2 환경에서 Windows 드라이브에 저장된 파일을 직접 사용할 수 있습니다.

우분투 글꼴 폴더에 글꼴 파일을 복사하려면 어떻게 해야 하나요?

글꼴 파일을 이 Ubuntu 디렉토리로 복사하십시오: /usr/share/fonts/usr/local/share/fonts.

파일 탐색기의 주소 창에 \\wsl$를 입력하여 Ubuntu의 파일에 액세스하십시오.

Windows File Explorer showing \\wsl$ network path for accessing Ubuntu filesystem from Windows

대상 폴더에 대한 액세스가 거부되면 어떻게 해야 하나요?

접근 거부 오류가 발생하는 경우 명령줄을 사용하여 파일을 복사하세요.

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
SHELL

글꼴 설치는 학습 과정에 매우 중요합니다. 시스템은 학습 이미지를 생성할 때 글꼴을 렌더링하기 위한 접근 권한이 필요합니다.

GitHub에서 tesseract_tutorial을 어떻게 클론합니까?

다음 명령을 사용하여 tesseract_tutorial 저장소를 클론하십시오:

git clone https://github.com/astutejoe/tesseract_tutorial.git
git clone https://github.com/astutejoe/tesseract_tutorial.git
SHELL

이 저장소에는 학습 과정에 필요한 필수 Python 스크립트와 설정 파일이 포함되어 있습니다. 이 스크립트는 글꼴 학습에서 많은 수동 단계를 자동화합니다.

GitHub에서 tesstraintesseract을 어떻게 클론합니까?

다음 명령을 사용하여 tesseract_tutorial 디렉토리로 이동한 후 tesstraintesseract 저장소를 클론하십시오:

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
SHELL
  • tesstrain에 Makefile이 있으며 .traineddata 파일을 만듭니다
  • tesseract에 원본 .traineddata 파일이 있는 tessdata 폴더가 있어 사용자 지정 글꼴 교육 시 참조로 사용됩니다

여러 언어 팩 및 사용자 지정 학습 데이터 사용에 대한 자세한 내용은 국제 언어 가이드를 참조하세요.

출력물을 저장할 "데이터" 폴더를 어떻게 만드나요?

tesseract_tutorial/tesstrain 내에 데이터 폴더를 만드십시오:

mkdir tesseract_tutorial/tesstrain/data
mkdir tesseract_tutorial/tesstrain/data
SHELL

이 폴더에는 .box, .tif 파일 및 중간 학습 결과물을 포함하여 생성된 모든 학습 파일이 저장됩니다.

split_training_text.py을 어떻게 실행합니까?

tesseract_tutorial 폴더로 돌아가서 다음 명령을 실행하십시오:

python split_training_text.py
python split_training_text.py
SHELL

split_training_text.py을 실행한 후 데이터 폴더에 .box.tif 파일을 생성합니다.

Fontconfig 경고를 어떻게 해결하나요?

터미널이 Apex 글꼴과 빈 글꼴 디렉토리 오류에 대한 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>
XML

이것을 /etc/fonts에 복사하십시오:

cp fonts.conf /etc/fonts
cp fonts.conf /etc/fonts
SHELL

또한 split_training_text.py을 업데이트하십시오:

fontconf_dir = '/etc/fonts'
fontconf_dir = '/etc/fonts'
PYTHON

학습 파일을 몇 개 생성해야 할까요?

현재 설정에서는 100개의 학습 파일이 생성됩니다. 이것을 split_training_text.py에서 수정할 수 있습니다.

Python 코드가 count=100으로 설정되고 학습 데이터 크기를 제한하기 위해 lines 배열을 자릅니다

실무 수준의 교육을 위해:

  • 테스트를 위해 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
SHELL
  • 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)을 달성합니다.

Tesseract 학습 로그에 나타난 BCER이 6.388%에서 5.771%로 개선됨을 보여줌 (반복: 2194-2298)

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}%");
$vbLabelText   $csharpLabel

실제 애플리케이션에 사용자 지정 글꼴을 구현하려면 사용자 지정 언어 파일 사용 가이드를 참조하세요.

더 자세한 내용과 참고 자료는 다음 튜토리얼 영상을 참조하세요: 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의 다양한 기능과 사용자 정의 언어 구현을 완벽하게 지원합니다.

칸나오팟 우돈판트
소프트웨어 엔지니어
카나팟은 소프트웨어 엔지니어가 되기 전 일본 홋카이도 대학교에서 환경 자원학 박사 학위를 취득했습니다. 학위 과정 중에는 생물생산공학과 소속 차량 로봇 연구실에서 활동하기도 했습니다. 2022년에는 C# 기술을 활용하여 Iron Software의 엔지니어링 팀에 합류했고, 현재 IronPDF 개발에 집중하고 있습니다. 카나팟은 IronPDF에 사용되는 대부분의 코드를 직접 작성하는 개발자로부터 배울 수 있다는 점에 만족하며, 동료들과의 소통을 통해 배우는 것 외에도 Iron Software에서 일하는 즐거움을 누리고 있습니다. 코딩이나 문서 작업을 하지 않을 때는 주로 PS5로 게임을 하거나 The Last of Us를 다시 시청하는 것을 즐깁니다.
검토자:
제프 프리츠
제프리 T. 프리츠
.NET 커뮤니티 팀의 수석 프로그램 관리자
제프는 .NET 및 Visual Studio 팀의 수석 프로그램 관리자이기도 합니다. 그는 .NET Conf 가상 컨퍼런스 시리즈의 총괄 프로듀서이며, 개발자를 위한 라이브 스트림 'Fritz and Friends'를 주 2회 진행하며 시청자들과 함께 기술에 대해 이야기하고 코드를 작성합니다. 제프는 Microsoft Build, Microsoft Ignite, .NET Conf, Microsoft MVP Summit 등 주요 Microsoft 개발자 행사를 위한 워크숍, 프레젠테이션 및 콘텐츠 기획을 담당합니다.
시작할 준비 되셨나요?
Nuget 다운로드 5,525,971 | 버전: 2026.3 방금 출시되었습니다
Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요? PM > Install-Package IronOcr
샘플을 실행하세요 이미지가 검색 가능한 텍스트로 바뀌는 것을 확인해 보세요.