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
# 初始化OCR处理器
ocr = OCRProcessor(model_name='llama3.2-vision:11b')
# 处理单张图像
result = ocr.process_image(
image_path="图片路径.png",
format_type="markdown" # 可选格式:markdown, text, json, structured, key_value
)
print(result)
2.2 Processamento de imagens em lote
# 初始化OCR处理器,设置并行处理数
ocr = OCRProcessor(model_name='llama3.2-vision:11b', max_workers=4)
# 批量处理图像
batch_results = ocr.process_batch(
input_path="图片文件夹路径",
format_type="markdown",
recursive=True, # 搜索子目录
preprocess=True # 启用图像预处理
)
# 查看处理结果
for file_path, text in batch_results['results'].items():
print(f"\n文件: {file_path}")
print(f"提取的文本: {text}")
# 查看处理统计
print(f"总图像数: {batch_results['statistics']['total']}")
print(f"成功处理: {batch_results['statistics']['successful']}")
print(f"处理失败: {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