Como personalizar a fonte do Tesseract 5 em C#

Treinamento em fontes personalizadas em C# no Tesseract 5 para desenvolvedores Windows

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

O treinamento de fontes personalizadas no Tesseract 5 melhora a precisão do OCR para fontes específicas. O processo cria dados de treinamento que ensinam ao mecanismo as características da fonte. O arquivo .traineddata resultante funciona com IronOCR para reconhecer fontes decorativas ou especiais com precisão.

Início rápido: Use seu arquivo de fonte .traineddata em C#

Utilize seu arquivo de fonte Tesseract personalizado no IronOCR com apenas algumas linhas de código. Ideal para OCR preciso em fontes especiais ou decorativas.

  1. Instale IronOCR com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronOcr
  2. Copie e execute este trecho de código.

    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. Implante para testar em seu ambiente de produção.

    Comece a usar IronOCR em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Como faço para baixar a versão mais recente do IronOCR?

Qual método de instalação devo usar?

Baixe o arquivo DLL do IronOcr diretamente para o seu computador.

Por que usar o NuGet em vez disso?

Alternativamente, instale através do NuGet com este comando:

Install-Package IronOcr

O IronOCR oferece suporte abrangente aos recursos do Tesseract 5 e implementações de idiomas personalizados , tornando-o ideal para requisitos de OCR especializados.


Como faço para instalar e configurar o WSL2 e o Ubuntu?

Consulte o tutorial sobre como configurar o WSL2 e o Ubuntu .

ObserveO treinamento de fontes personalizadas requer Linux.

O treinamento requer Linux, mas os arquivos .traineddata resultantes funcionam perfeitamente em todas as plataformas. Para obter instruções detalhadas de configuração do Linux, consulte nosso guia de implantação do Linux .

Como faço para instalar o Tesseract 5 no Ubuntu?

Utilize estes comandos para instalar o Tesseract 5:

sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
SHELL

Esses pacotes fornecem o mecanismo principal de OCR Tesseract e as bibliotecas de desenvolvimento necessárias para o treinamento. Para opções avançadas de configuração do Tesseract, consulte nosso guia de configuração detalhado .

Qual fonte devo baixar para treinamento?

Este tutorial utiliza a fonte AMGDT. O arquivo de fonte pode ser .ttf ou .otf. Explorador de Arquivos do Windows mostrando o arquivo de fonte AMGDT Regular.ttf baixado, destacado em uma caixa vermelha para treinamento

Ao selecionar fontes para treinamento:

  • Escolha fontes que sejam significativamente diferentes dos modelos padrão do Tesseract.
  • Garantir o licenciamento adequado da fonte
  • Considere fontes decorativas, manuscritas ou especializadas para o setor.
  • Teste com as fontes que seu aplicativo encontra em produção.

Como faço para montar a unidade de disco para treinamento de fontes personalizadas?

Use estes comandos para montar o Drive D: como seu espaço de trabalho:

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

Isso permite que você trabalhe com arquivos armazenados em unidades Windows diretamente do ambiente Ubuntu WSL2.

Como faço para copiar o arquivo de fonte para a pasta de fontes do Ubuntu?

Copie o arquivo de fonte para estes diretórios do Ubuntu: /usr/share/fonts e /usr/local/share/fonts.

Acesse arquivos no Ubuntu digitando \\wsl$ na barra de endereços do explorador de arquivos.

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

E se eu receber a mensagem "Acesso à pasta de destino negado"?

Se você encontrar erros de acesso negado, use a linha de comando para copiar os arquivos:

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

A instalação de fontes é crucial para o processo de treinamento. O sistema precisa de acesso para renderizar a fonte ao gerar imagens de treinamento.

Como faço para clonar tesseract_tutorial do GitHub?

Clone o repositório tesseract_tutorial usando este comando:

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

Este repositório contém scripts Python essenciais e arquivos de configuração para o processo de treinamento. Os scripts automatizam muitas etapas manuais no treinamento de fontes.

Como faço para clonar tesstrain e tesseract do GitHub?

Navegue até o diretório tesseract_tutorial, então clone os repositórios tesstrain e 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
SHELL
  • tesstrain contém o Makefile usado para criar o arquivo .traineddata
  • tesseract contém a pasta tessdata com arquivos originais .traineddata usados como referências durante o treinamento de fontes personalizadas

Para obter mais informações sobre como trabalhar com vários pacotes de idiomas e dados de treinamento personalizados, consulte nosso guia de idiomas internacionais .

Como faço para criar uma pasta "dados" para armazenar os resultados?

Crie uma pasta de dados dentro de tesseract_tutorial/tesstrain:

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

Esta pasta armazena todos os arquivos de treinamento gerados, incluindo arquivos .box, .tif e artefatos de treinamento intermediários.

Como eu executo split_training_text.py?

Retorne à pasta tesseract_tutorial e execute este comando:

python split_training_text.py
python split_training_text.py
SHELL

Após executar split_training_text.py, ele cria arquivos .box e .tif na pasta de dados.

Como faço para corrigir o aviso do Fontconfig?

Terminal mostrando avisos do fontconfig sobre fonte Apex ausente e erros de diretório de fontes vazio Se você vir o aviso Fontconfig warning: "/tmp/fonts.conf, line 4: empty font directory name ignored", isso indica diretórios de fontes ausentes. Corrija isso editando o arquivo tesseract_tutorial/fonts.conf e adicionando:

<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

Copie-o para /etc/fonts com:

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

Além disso, atualize split_training_text.py:

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

Quantos arquivos de treinamento devo gerar?

A configuração atual gera 100 arquivos de treinamento. Você pode modificar isso em split_training_text.py.

Código Python definindo count=100 e selecionando matriz de linhas para limitar o tamanho dos dados de treinamento

Para treinamento com qualidade de produção: Comece com 100 a 500 amostras para teste.

  • Utilize de 1000 a 5000 amostras para obter maior precisão.
  • Inclua diversos exemplos de texto que abranjam todos os caracteres necessários.
  • Equilibrar o tempo de treinamento com os requisitos de precisão

Onde eu baixo eng.traineddata?

Baixe eng.traineddata deste repositório e coloque-o em tesseract_tutorial/tesseract/tessdata.

O modelo base fornece contexto linguístico que melhora a precisão do reconhecimento. Escolha um modelo base que corresponda ao seu idioma de destino. Para solucionar problemas com pacotes de idiomas personalizados, consulte nosso guia de pacotes de idiomas OCR personalizados .

Como eu crio minha fonte personalizada .traineddata?

Navegue até a pasta tesstrain e use este comando no 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 é o nome da sua fonte personalizada
  • START_MODEL é a referência original .traineddata
  • MAX_ITERATIONS define o número de iterações (mais iterações melhoram a precisão)

O que acontece se eu receber a mensagem "Falha ao ler os dados" no Makefile?

Para resolver problemas de "Falha ao ler dados", modifique o 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

Essa modificação garante que o Makefile procure arquivos na estrutura de diretórios de saída correta.

Como faço para corrigir o erro "Falha ao carregar o script Unicharset"?

Insira Latin.unicharset na pasta tesstrain/data/langdata. Encontre Latin.unicharset aqui.

O arquivo unicharset define o conjunto de caracteres para seu idioma ou alfabeto. Certifique-se de que corresponda à cobertura de caracteres da sua fonte.

Como eu verifico a precisão do .traineddata criado?

Com 1000 .box e .tif arquivos e 3000 iterações de treinamento, a saída AMGDT.traineddata atinge uma taxa de erro de treinamento mínima (BCER) de cerca de 5,77%.

Log de treinamento do Tesseract mostrando melhoria do BCER de 6.388% para 5.771% ao longo das iterações 2194-2298

Para testar seu modelo treinado com o 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

Para implementar fontes personalizadas em aplicações de produção, consulte nosso guia sobre como usar arquivos de idioma personalizados .

Para mais informações e consulta, veja o tutorial: Vídeo do YouTube

Perguntas frequentes

Como faço para usar um arquivo de fonte personalizado em C#?

Você pode usar seu arquivo de fonte Tesseract personalizado no IronOCR com apenas algumas linhas de código. Basta criar uma instância do IronTesseract, chamar o método UseCustomTesseractLanguageFile() com o caminho para o seu arquivo .traineddata e, em seguida, usar o método Read() para realizar o OCR em imagens que contenham sua fonte personalizada.

Quais são os requisitos para o treinamento de fontes personalizadas para OCR?

O treinamento de fontes personalizadas requer um ambiente Linux (WSL2 com Ubuntu é recomendado para usuários do Windows), o Tesseract 5 instalado com as bibliotecas de desenvolvimento e o arquivo da fonte que você deseja treinar (no formato .ttf ou .otf). Os arquivos .traineddata resultantes, criados no Linux, funcionam perfeitamente com o IronOCR em todas as plataformas.

Por que devo treinar fontes personalizadas em vez de usar o OCR padrão?

O treinamento de fontes personalizadas melhora a precisão do OCR para fontes específicas, especialmente fontes decorativas ou especiais que diferem significativamente dos modelos padrão do Tesseract. O IronOCR pode então usar esses arquivos de fontes treinados para reconhecer com precisão o texto em imagens que contêm essas fontes exclusivas, que seriam difíceis de ler com modelos de OCR padrão.

Posso usar fontes personalizadas em diferentes plataformas?

Sim, embora o processo de treinamento exija Linux, os arquivos .traineddata resultantes funcionam perfeitamente em todas as plataformas com o IronOCR. Isso significa que você pode treinar uma vez no Linux e usar o arquivo de dados treinado em implantações do Windows, macOS ou Linux.

Qual método de instalação é recomendado para começar?

Para uma configuração rápida, você pode baixar a DLL do IronOCR diretamente ou instalá-la através do Gerenciador de Pacotes NuGet. O NuGet é recomendado, pois gerencia as dependências automaticamente e facilita as atualizações. O IronOCR oferece suporte completo aos recursos do Tesseract 5 e implementações de idiomas personalizados.

Kannaopat Udonpant
Engenheiro de Software
Antes de se tornar Engenheiro de Software, Kannapat concluiu um doutorado em Recursos Ambientais pela Universidade de Hokkaido, no Japão. Durante o doutorado, Kannapat também integrou o Laboratório de Robótica Veicular, que faz parte do Departamento de Engenharia de Bioprodução. Em 2022, ele utilizou suas habilidades ...
Leia mais
Analisado por
Jeff Fritz
Jeffrey T. Fritz
Gerente de Programa Principal - Equipe da Comunidade .NET
Jeff também é Gerente de Programa Principal das equipes do .NET e do Visual Studio. Ele é o produtor executivo da série de conferências virtuais .NET Conf e apresenta o "Fritz and Friends", uma transmissão ao vivo para desenvolvedores que vai ao ar duas vezes por semana, onde ele conversa sobre tecnologia e escreve código junto com os espectadores. Jeff cria workshops, apresentações e planeja conteúdo para os maiores eventos de desenvolvedores da Microsoft, incluindo o Microsoft Build, o Microsoft Ignite, a .NET Conf e o Microsoft MVP Summit.
Pronto para começar?
Nuget Downloads 5,525,971 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronOcr
executar um exemplo Veja sua imagem se transformar em texto pesquisável.