O que é ditado de imagem e como funciona na prática
O ditado de imagem é basicamente o processo de transformar uma imagem em texto, seja usando reconhecimento óptico de caracteres (OCR) para textos dentro da imagem, seja usando modelos de visão computacional para descrever o conteúdo visual. A diferença entre os dois é importante porque define tudo que vem depois. Se você tem uma foto de um documento impresso, o OCR convencional resolve. Se quer que o sistema descreva uma cena, identifique objetos ou extraia informações de uma imagem que não contém texto legível, aí entram modelos multimodais como CLIP, BLIP ou GPT-4V. A escolha errada aqui é o erro mais comum que vejo pessoas cometendo.
Aqui no Brasil, uma das ferramentas mais usadas pra isso é o Tesseract OCR, que é open source e roda localmente. Existe também o EasyOCR, que já traz suporte nativo a português e funciona decentemente sem necessidade de GPU. Quem precisa de algo mais robusto costuma migrar pro PaddleOCR ou pro SaaS do Google Vision.
Ditado de imagem: o que ninguém te conta sobre a qualidade
A maioria dos tutoriais por aí trata ditado de imagem como se fosse um botão mágico. Você sobe a foto e recebe um texto perfeito. Na prática, depende de pelo menos meia dúzia de fatores que raramente são mencionados em materiais introdutórios. A resolução da imagem original importa muito mais do que a maioria das pessoas pensa. O Tesseract, por exemplo, começa a perder qualidade significativa abaixo de 150 DPI. Eu já processei centenas de documentos escaneados em 72 DPI achando que o OCR seria suficiente. O resultado era lixo. A solução simples foi reamostrar pro mínimo de 300 DPI antes de qualquer processamento, o que geralmente dobra ou triplica o tamanho do arquivo mas resolve 90% dos problemas de accuracy.
Outro ponto cego: a pré-processamento de imagem. Binarização, correção de perspectiva, remoção de ruído de fundo. Sem isso, modelos de OCR convencionais falham feio em imagens com fundo texturizado, como fotografias de placas, outdoors ou documentos amassados. Usei OpenCV com filtro adaptativo de threshold e correção morfológica pra lidar com esse problema num projeto específico de digitalização de formulários antigos, e o ganho foi de cerca de 40 pontos percentuais na taxa de acerto por palavra. Para ditado de imagem baseado em descrição visual com modelos multimodais, a situação é diferente. A qualidade depende mais do prompt engineering do que do pré-processamento. Um modelo como o CLIP-ViT-L/14 consegue gerar descrições razoáveis com prompts curtos, mas detalhes finos exigem prompting estruturado com campos específicos para objeto principal, fundo, cores predominantes e contexto da cena.
Como fazer ditado de imagem do jeito certo
Vou dividir em dois cenários porque as abordagens são radicalmente diferentes. Cenário 1: extração de texto de imagens
Instale o EasyOCR primeiro. É uma linha no pip, suporta português sem configuração adicional e roda em CPU sem desespero. Para imagens pequenas até 2 megapixels, leva em média 2 a 5 segundos por imagem num notebook comum. A pipeline básica é carregar a imagem, aplicar correção de rotação se necessário, executar o OCR e pós-processar o resultado. A correção de rotação evita aquele problema clássico de texto inclinado que quebra completamente a leitura automática.
Se a imagem tiver texto em múltiplos idiomas misturados, o EasyOCR suporta isso nativamente passando uma lista de linguagens. Testei com documentos que tinham português, inglês e espanhol juntos e o resultado foi aceitável, embora palavras mais curtas em línguas minoritárias tenham taxa de erro maior. Cenário 2: descrição visual de imagens
👉 Clique no botão abaixo para saber mais sobre o assunto!
Para geração de descrições, o Hugging Face Transformers oferece modelos prontos como blip-image-captioning-base. Ele gera legendas em inglês por padrão. Para português, o modelo blip-caption-base-multi pode ser fine-tunado com um dataset adequadamente rotulado, mas isso exige GPU e pelo menos uns 5000 exemplos bem anotados. Uma alternativa mais prática é usar APIs como a do Google Cloud Vision, Amazon Rekognition ou Azure Computer Vision. Elas são pagas por requisição mas eliminam toda a infraestrutura de hospedagem de modelo. O custo varia entre 1 e 5 dólares por mil imagens dependendo do serviço e da complexidade da operação.
Se o volume for alto e a sensibilidade dos dados permitir, rodar localmente com ONNX Runtime exportado do modelo original reduz o custo operacional pra praticamente zero depois do setup inicial.
Problemas reais que eu encontrei
Num projeto real de ditado de imagem pra digitalizar fichas médicas antigas, me deparei com um problema específico: as fichas eram escritas à mão em tinta azul sobre papel amarelado de, com manchas de café e dobros visíveis. O OCR tradicional simplesmente descartava 70% do conteúdo como ruído. A solução que funcionou foi uma abordagem em camadas. Primeiro apliquei um algoritmo de segmentation baseado em cor pra isolar o texto azul do fundo amarelado. Depois passei por um modelo de deskewing pra corrigir a rotação. Só então executei o OCR com Tesseract configurado especificamente pra manuscrito com o layout autopage seg ajuste.
O ganho foi de 70% de conteúdo irrecuperável pra cerca de 85% de recuperação. Ainda assim, trechos com letra muito pequena ou tinta desbotada permaneceram ilegíveis. A lição foi que não existe solução única e o pipeline precisa ser ajustado por caso de uso. Outro problema recorrente é o viés de idioma nos modelos multimodais. Descrições geradas por modelos treinados predominantemente em dados em inglês tendem a ser imprecisas quando aplicadas a imagens com contexto cultural brasileiro. Identifiquei isso rapidamente quando os modelos classificavam erroneamente alimentos e objetos cotidianos brasileiros como genéricos ou errados.
Limitações honestas
O ditado de imagem tem gargalos sérios que valem a pena conhecer antes de implantar em produção. Imagens com baixa contraste ou alta compressão JPEG produzem resultados inconsistentes mesmo nos melhores modelos. Não adianta ajustar parâmetros infinitamente, às vezes a solução é simplesmente pedir uma nova captura ou escaneamento.
Modelos de descrição visual como BLIP geram textos genéricos e superficiais. Eles descrevem "uma pessoa segurando um objeto" ao invés de identificar o que realmente está acontecendo. Para aplicações que exigem profundidade analítica, isso é insuficiente. O custo de inferência com APIs sobe rapidamente em escala. Processar 100 mil imagens por mês com Google Vision custaria entre 100 e 500 dólares mensais dependendo da operação. Isso pode inviabilizar projetos com orçamento apertado.
Para quem precisa de uma alternativa offline e gratuita, recomendo combinar EasyOCR com OpenCV pra extração de texto e o modelo SigLIP do Google pra descrição visual. SigLIP é open source, roda em CPU com acceptable performance e não depende de API externa. A instalação do EasyOCR segue o padrão: pip install easyocr. Pra SigLIP, use transformers e pipeline de zero-shot classification adaptado pra geração de descrição. Ambos podem ser empacotados em containers Docker pra distribuição consistente entre ambientes.