Tesseract retreinado lê texto mansi: erros de caracteres caem de 18,5% para 0,85%
O Instituto de Pesquisa de Tecnologias da Informação de Ugra retreinou o Tesseract 5 no idioma mansi. O modelo russo base confundia letras com mácron e errava 18,5% dos caracteres. Em vez de anotar digitalizações manualmente, a equipe gerou 1,3 milhão de linhas sinteticamente, e os erros caíram para 0,85%. O modelo está aberto no Hugging Face.
Processado por IA de Habr AI; editado por Hamidun News
Imagine que você precisa digitalizar milhares de páginas em um idioma sem OCR pronto nem digitalizações anotadas. Foi exatamente isso que os pesquisadores do Instituto de Pesquisa de Tecnologias da Informação de Ugra enfrentaram ao montar um corpus do idioma mansi. A solução deles se mostrou surpreendentemente simples e, ao mesmo tempo, muito eficaz: a proporção de caracteres errados caiu de 18,5% para 0,85%, ou seja, cerca de 20 vezes.
Qual era o problema
A escrita mansi baseia-se no cirílico, mas contém vogais longas com mácron (а̄, о̄, ӯ, э̄, ы̄) e a letra ӈ. O modelo russo padrão do Tesseract não conhece esses símbolos. Ele perde o traço sobre a letra ou o transforma em lixo. E a duração da vogal em mansi muda o significado da palavra, então perder o mácron é perder informação.
Na linha «Хӯл тэ̄нутыг ва̄рнэ ма̄гыс», o modelo russo produziu «Хул тэнутыг варнэ магьгсь»: os mácrons sumiram e o «ы» virou «ьг». O modelo retreinado leu a linha inteira sem nenhum erro.
Há ainda um segundo problema, menos evidente. A mesma letra em Unicode pode ser escrita de maneiras diferentes: como um único caractere pré-composto ou como «у» mais um mácron combinante. Para uma pessoa são idênticas; para o modelo e para a comparação de strings, são sequências diferentes. Basta abrir o console do Python: o comprimento de dois «ӯ» visualmente iguais será 1 e 2, e a comparação retornará False.
Como os dados foram reunidos sem digitalizações
Não existem digitalizações mansi prontas no volume necessário, e anotá-las manualmente levaria anos. Por isso a equipe gerou os dados por conta própria: pega texto mansi real, desenha-o em uma imagem com diferentes fontes, e a resposta correta é conhecida de antemão.
O pipeline tem quatro etapas:
- Todos os textos são normalizados para a forma Unicode NFC, de modo que cada letra tenha exatamente uma representação.
- As linhas são renderizadas com várias dezenas de fontes, incluindo FreeSerif, DejaVu Sans, Arial e Times New Roman, nos tamanhos 12, 14, 24 e 26 pt e em três estilos.
- Cada caractere é marcado com uma caixa delimitadora. O cálculo automático a partir das métricas da fonte erra nos diacríticos, por isso os autores introduziram três dicionários de correções: para caracteres individuais, para o tamanho da fonte e para uma fonte específica. Os valores foram ajustados experimentalmente.
- O texto longo é cortado pela função split_by_width para que nenhum caractere ultrapasse a borda da imagem.
O resultado foram 1,3 milhão de pares «imagem .tif + arquivo .gt.txt com a resposta correta».
Como o Tesseract foi retreinado
A terceira parte da receita é o aprendizado por transferência. Dentro do Tesseract 5 funciona uma CRNN: a parte convolucional encontra traços e linhas, a LSTM lê as características da esquerda para a direita, e a função de perda CTC dispensa a anotação manual dos limites das letras. Como ponto de partida foi usado rus.traineddata do tessdata_best. O alfabeto mansi quase coincide com o russo, então o modelo precisa aprender principalmente as letras novas.
A ferramenta tesstrain extrai sozinha a parte LSTM com os pesos, reúne a lista completa de caracteres dos dados de treinamento e expande a camada de saída para o alfabeto combinado. O parâmetro-chave foi o número de iterações: poucas e as letras novas não são aprendidas; muitas e o modelo sofre sobreajuste aos dados sintéticos. A parada antecipada pelo conjunto de validação ajudou.
Resultado nas métricas: o CER caiu de 18,5% para 0,85%, e o WER de 42,1% para 1%. À pessoa resta revisar o resultado, e não digitar o texto de novo.
Limitações e conclusão prática
O modelo lê com segurança texto tipográfico limpo em corpo de 12–26 pt. Tem desempenho pior com letra muito pequena ou muito grande, com alfabeto latino e com edições antigas de impressão desgastada. Os autores planejam incluir digitalizações reais de arquivo no treinamento. Vale notar também que a avaliação foi feita nas mesmas condições sintéticas, portanto em livros reais os números provavelmente serão piores.
Para o profissional, o útil é a própria receita. Se você trabalha com um idioma ou domínio com poucos dados anotados:
- Primeiro normalize o Unicode; é uma medida barata e muitas vezes subestimada.
- Gere dados sintéticos a partir de textos reais com variedade de fontes.
- Retreine um modelo existente em vez de treinar do zero.
Os autores acreditam que a mesma abordagem servirá para o khanty, o nenets e outros idiomas cirílicos com diacríticos. O modelo mns.traineddata está no Hugging Face (URIIT/mns-tesseract): basta colocar o arquivo na pasta tessdata e indicar o idioma mns. Também é possível testar no navegador no Etnoportal.
- 2 de mai. de 2026IA no tratamento de reclamações: o caso da Epotos
- 9 de nov. de 2026Tesseract permite que agentes de IA editem cenas 3D preservando objetos e camadas
- 23 de jul. de 2026Google Quantum AI: aprendizado por reforço triplica a estabilidade do chip quântico Willow
- 9 de nov. de 2026Mirage dá ao Claude ferramentas para criar e editar cenas 3D em um único projeto
Perguntas frequentes sobre a notícia
O que se sabe sobre Qual era o problema?
A escrita mansi baseia-se no cirílico, mas contém vogais longas com mácron (а̄, о̄, ӯ, э̄, ы̄) e a letra ӈ. O modelo russo padrão do Tesseract não conhece esses símbolos. Ele perde o traço sobre a letra ou o transforma em lixo. E a duração da vogal em mansi muda o significado da palavra, então perder o mácron é perder informação. Na linha «Хӯл тэ̄нутыг ва̄рнэ ма̄гыс», o modelo russo produziu «Хул тэнутыг варнэ магьгсь»: os mácrons sumiram e o «ы» virou «ьг». O modelo retreinado leu a linha inteira sem nenhum erro.
Como os dados foram reunidos sem digitalizações?
Não existem digitalizações mansi prontas no volume necessário, e anotá-las manualmente levaria anos. Por isso a equipe gerou os dados por conta própria: pega texto mansi real, desenha-o em uma imagem com diferentes fontes, e a resposta correta é conhecida de antemão. O pipeline tem quatro etapas: Todos os textos são normalizados para a forma Unicode NFC, de modo que cada letra tenha exatamente uma representação.
Como o Tesseract foi retreinado?
A terceira parte da receita é o aprendizado por transferência. Dentro do Tesseract 5 funciona uma CRNN: a parte convolucional encontra traços e linhas, a LSTM lê as características da esquerda para a direita, e a função de perda CTC dispensa a anotação manual dos limites das letras. Como ponto de partida foi usado rus.traineddata do tessdata_best. O alfabeto mansi quase coincide com o russo, então o modelo precisa aprender principalmente as letras novas.
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
O essencial da IA — uma vez por semana
Sete histórias que realmente importaram, escolhidas a dedo. Sem ruído nem releases.
Pronto! Verifique seu e-mail para a confirmação.