综合介绍
Ollama OCR是一个强大的光学字符识别(OCR)工具包,它利用Ollama平台提供的最先进视觉语言模型来从图像中提取文本。该项目既可作为Python包使用,也提供了用户友好的Streamlit网页应用程序界面。它支持多种视觉模型,包括用于实时处理的LLaVA 7B和用于复杂文档的高精度Llama 3.2 Vision模型。Ollama OCR的突出特点是支持多种输出格式,包括Markdown、纯文本、JSON等,并且具备批量处理能力。该工具特别适合需要从图像中提取和结构化文本数据的开发者和研究人员使用。
功能列表
- 支持多种先进视觉语言模型(LLaVA 7B和Llama 3.2 Vision)
- 提供多样化的输出格式(Markdown、纯文本、JSON、结构化数据、键值对)
- 支持批量图像处理功能,可并行处理多个图像
- 内置图像预处理功能(调整大小、标准化等)
- 提供进度跟踪和处理统计功能
- 支持用户友好的Streamlit网页界面
- 支持拖放式图像上传和实时处理
- 提供提取文本的下载功能
- 集成图像预览和详细信息显示
使用帮助
1. 安装步骤
- 首先需要安装Ollama平台:
- 访问Ollama官方网站下载对应系统的安装包
- 完成Ollama的基础安装
- 安装所需的视觉模型:
ollama pull llama3.2-vision:11b
- 安装Ollama OCR包:
pip install ollama-ocr
2. Python包使用方法
2.1 单图像处理
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 批量处理图像
# 初始化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. Streamlit网页应用使用方法
- 克隆代码仓库:
git clone https://github.com/imanoop7/Ollama-OCR.git
cd Ollama-OCR
- 安装依赖:
pip install -r requirements.txt
- 启动网页应用:
cd src/ollama_ocr
streamlit run app.py
4. 输出格式说明
- Markdown格式:保留文本格式,包括标题和列表
- 纯文本格式:提供干净简洁的文本提取
- JSON格式:结构化的数据格式输出
- 结构化格式:表格和组织化数据
- 键值对格式:提取带标签的信息
5. 注意事项
- LLaVA模型可能偶尔会产生错误输出,建议重要场景使用Llama 3.2 Vision模型
- 图像预处理可以提高识别准确率
- 批量处理时注意合理设置并行数,避免内存占用过高
- 处理大量图像时建议开启进度跟踪功能