JTC — Just-in-Time Technology Consulting

Nem sempre IA é a alternativa em Visão Computacional

Jéfferson Tales Canalli · 09 de maio de 2026

Essa semana precisei implementar OCR (Reconhecimento Ótico de Caracteres) em um projeto para reconhecimento de documentações. A primeira ideia foi usar as abordagens modernas com inteligência artificial e deep learning. Afinal, é o que todo mundo comenta, o famoso "hype da IA".

Mas logo percebi que, na prática, o custo computacional era alto demais. A memória ia lá "pras alturas", o processamento ficava pesado e eu não queria entrar no caminho de treinar modelos, que poderia resolver parte disso, mas traria uma complexidade que não fazia sentido para o escopo. Eu precisava de algo direto, simples e eficiente.

A alternativa foi utilizar o bom e velho OCR clássico.

Um pouco de contexto histórico

A Visão Computacional começou a se desenvolver entre as décadas de 1960 e 1990, quando pesquisadores buscavam formas de permitir que computadores interpretassem imagens usando matemática, geometria e estatística. Um dos marcos dessa evolução foi justamente o OCR (Optical Character Recognition), que existe há mais de um século. Em 1914 já havia o Optophone, e nos anos 70 Ray Kurzweil criou um sistema capaz de reconhecer praticamente qualquer fonte.

Como funciona o OCR clássico

O processo basicamente envolve três grandes etapas:

  • Pré-processamento: preparar a imagem (corrigir inclinação, remover ruído, converter para preto e branco)
  • Segmentação: separar linhas, palavras e caracteres
  • Reconhecimento: comparar cada símbolo com padrões conhecidos e converter em texto digital

Essa abordagem usa heurísticas geométricas: o "O" é reconhecido pela forma circular fechada, o "E" pela combinação de uma linha vertical com três horizontais, etc. Ferramentas como o Tesseract OCR, criado pela HP e mantido pelo Google, se popularizaram justamente por serem leves, gratuitas e eficientes.

O moderno e suas limitações

Com o tempo, surgiram as abordagens modernas, baseadas em Redes Neurais e Deep Learning. Elas não dependem apenas de regras geométricas: aprendem padrões diretamente a partir de grandes volumes de dados, tornando o OCR mais flexível e preciso. O próprio Tesseract incorporou modelos LSTM (Long Short-Term Memory), capazes de interpretar sequências de texto de forma contextualizada.

Mas essa evolução trouxe novos desafios: maior demanda computacional, consumo elevado de memória e necessidade de infraestrutura especializada. É poderoso, mas nem sempre prático.

Minha escolha no projeto em C#

No meu caso, ajustei bem o pré-processamento e refinei a heurística de combinação e pontuação. O que resultou em algo: leve, previsível e suficiente para os percentuais que eu precisava. Não foi necessário GPU, nem treinamento complexo. Apenas uma solução clássica, bem configurada.

Nesse projeto utilizei algumas bibliotecas open source dentro do ecossistema C#:

  • Tesseract OCR – responsável pelo reconhecimento de caracteres. É open source, robusto e funciona muito bem em cenários clássicos.
  • OpenCV em C# – para o pré-processamento, uma das bibliotecas mais conhecidas de visão computacional no mundo. Essencial para aplicar filtros, corrigir inclinação e remover ruído antes de passar os dados para o OCR.
  • Outras bibliotecas para manipulação de PDFs.

A ideia foi simples: uso de biblioteca de PDF para extrair páginas, o OpenCV para preparar as imagens e o Tesseract para reconhecer os caracteres.

Conclusão

A escolha da abordagem depende muito do contexto. Há cenários em que a IA moderna é indispensável, mas também existem situações em que o clássico entrega exatamente o que é preciso — com menos custo e mais simplicidade.

Este artigo foi originalmente publicado no LinkedIn. Ver publicação original