Introdução geral
Ollama OCR é um kit de ferramentas avançado de reconhecimento óptico de caracteres (OCR) que extrai texto de imagens usando modelos de linguagem visual de última geração fornecidos pela plataforma Ollama. O projeto está disponível como um pacote Python e como uma interface de aplicativo da Web Streamlit fácil de usar. Ele oferece suporte a uma ampla variedade de modelos de visão, incluindo o LLaVA 7B para processamento em tempo real e o modelo de visão Llama 3.2 de alta precisão para documentos complexos. O Ollama OCR se destaca por seu suporte a uma ampla variedade de formatos de saída, incluindo Markdown, texto simples, JSON etc., e por seus recursos de processamento em lote. A ferramenta é especialmente adequada para desenvolvedores e pesquisadores que precisam extrair e estruturar dados de texto de imagens.
Lista de funções
- Suporte a vários modelos avançados de linguagem visual (LLaVA 7B e Llama 3.2 Vision)
- Fornecer diversos formatos de saída (Markdown, texto simples, JSON, dados estruturados, pares de valores-chave)
- Suporta a função de processamento de imagens em lote, podendo processar várias imagens em paralelo
- Pré-processamento de imagens incorporado (redimensionamento, normalização, etc.)
- Fornecer estatísticas de processamento e controle de progresso
- Suporta a interface da Web Streamlit de fácil utilização
- Suporte a upload de imagens por arrastar e soltar e processamento em tempo real
- Fornecer função de download para o texto extraído
- Visualização integrada de imagens e exibição de informações detalhadas
Usando a Ajuda
1. etapas de instalação
- A plataforma Ollama precisa ser instalada primeiro:
- Visite o site oficial da Ollama para fazer o download do pacote de instalação para seu sistema.
- Concluir a instalação básica do Ollama
- Instale o modelo visual necessário:
ollama pull llama3.2-vision:11b
- Instale o pacote Ollama OCR:
pip install ollama-ocr
2. uso do pacote Python
2.1 Processamento de uma única imagem
from ollama_ocr import OCRProcessor
# Inicialize o processador de OCR
ocr = OCRProcessor(nome_do_modelo='ollama3.2-vision:11b')
# Processar uma única imagem
result = ocr.process_image(
image_path="Caminho da imagem.png",
format_type="markdown" # Formatos opcionais: markdown, text, json, structured, key_value
)
print(result)
2.2 Processamento de imagens em lote
# Inicialize o processador de OCR e defina o número de processamento paralelo
ocr = OCRProcessor(model_name='llama3.2-vision:11b', max_workers=4)
# processa imagens em lote
batch_results = ocr.process_batch(
input_path="Caminho da pasta de imagens",
format_type="markdown",
recursive=True, # search subdirectories
preprocess=True # Habilitar pré-processamento de imagens
)
# Exibir resultados do processamento
for file_path, text in batch_results['results'].items()::
print(f"\n file: {file_path}")
print(f "Extracted text: {text}")
# Exibição de estatísticas de processamento
print(f "Total de imagens: {batch_results['statistics']['total']}")
print(f "Processamento bem-sucedido: {batch_results['statistics']['successful']}")
print(f "Falha no processamento: {batch_results['statistics']['failed']}")
3. como usar o aplicativo da Web Streamlit
- Clonar o repositório de código:
git clone https://github.com/imanoop7/Ollama-OCR.git
cd Ollama-OCR
- Instale a dependência:
pip install -r requirements.txt
- Inicie o aplicativo da Web:
cd src/ollama_ocr
streamlit run app.py
4. descrição dos formatos de saída
- Formatação Markdown: preserva a formatação do texto, incluindo cabeçalhos e listas
- Formatação de texto simples: fornece extração de texto limpa e simples
- Formato JSON: saída de formato de dados estruturados
- Formatos estruturados: tabelas e dados organizados
- Formato de par de valores-chave: extração de informações rotuladas
5 Cuidados
- O modelo LLaVA pode ocasionalmente produzir resultados incorretos, e recomenda-se que o modelo Llama 3.2 Vision seja usado em cenários importantes
- O pré-processamento de imagens pode melhorar a precisão do reconhecimento
- No processamento em lote, preste atenção à configuração razoável do número de paralelismo, para evitar o consumo excessivo de memória
- Recomenda-se que o controle de progresso seja ativado ao processar um grande número de imagens