Ana Brainiall

Extraia texto de imagens com Vision AI

iniciante · 8 min · Por Ana Brainiall

OCR mudou completamente em 2024-2026

OCR tradicional (Tesseract, desde 1985) funciona em 2 passos:

1. Detecção: encontra regiões da imagem que contêm texto
2. Reconhecimento: classifica cada letra individualmente

Funciona bem em documentos impressos limpos, com fontes comuns, em inglês. Em qualquer outro cenário (manuscrito, placas curvas, texto em fotos, idiomas exóticos, layouts complexos) a precisão despenca para 60-70%.

Os vision-language models modernos (Claude Sonnet, GPT-5, Gemini 3 Pro) revolucionaram OCR. Em vez de classificar letra por letra, eles interpretam a imagem como um todo — reconhecem contexto, corrigem erros baseado em significado, lidam com layouts arbitrários.

comparação lado a lado — à esquerda uma receita manuscrita com Tesseract gerando

Quando usar cada ferramenta

Tesseract (open source, CPU local):
- Documentos impressos padronizados (invoices, PDFs escaneados)
- Alto volume (10k+ páginas/dia) onde latência importa
- Casos onde privacidade impede enviar a nuvem
- Custo: praticamente zero

Vision-LLM (via API):
- Texto manuscrito
- Placas, cartazes, fotos de rua
- Textos em objetos 3D (latas, etiquetas curvas)
- Documentos com layout complexo (tabelas, múltiplas colunas, notas de rodapé)
- Línguas com poucos recursos (árabe, chinês, hebraico)
- Custo: R$ 0,005 a R$ 0,05 por imagem

Whisper-OCR (modelo especializado):
- Documentos com muitas tabelas
- Equações matemáticas
- Layouts científicos (papers)

Como fazer um request bom

Para vision-LLM funcionar melhor, estruture o prompt:

Ruim:
> "OCR this"

Bom:
> "Extraia todo o texto visível nesta imagem, preservando a estrutura hierárquica (título, subtítulos, parágrafos). Se houver tabela, formate em markdown. Se o texto estiver ilegível em alguma região, indique [ilegível]. Se houver texto em múltiplos idiomas, separe."

A diferença de qualidade é dramática. O LLM usa seu "entendimento" da estrutura para organizar o output.

Ilustração do curso

🎧 Ouça a narração completa (vídeo demo em produção)

Casos de uso práticos

Armadilhas técnicas

Integrando via API

`python
import httpx, base64

with open("foto.jpg", "rb") as f:
img_b64 = base64.b64encode(f.read()).decode()

r = httpx.post(
"https://api.brainiall.com/v1/chat/completions",
json={
"model": "claude-sonnet-4-6",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "Extraia o texto desta imagem em markdown, preservando estrutura."},
{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{img_b64}"}}
]
}]
},
headers={"Authorization": "Bearer brnl-xxx"}
)
print(r.json()["choices"][0]["message"]["content"])
`

Teste agora mesmo

No chat Brainiall, clique no clip de anexar arquivo, envie uma imagem com texto e peça "extraia o texto desta imagem". Resultado em 2-5 segundos. Pro R$29 inclui 100 análises/mês; Business desbloqueia batch.

🎁 Indique amigos, ganhe mês grátis

Cada 3 indicados que assinam Pro = R$29 de crédito no seu próximo ciclo.

Ver meu código →