Type something to search...
如何使用 Streamlit 和 Llama 3.2-Vision 构建自己的 OCR 助手

如何使用 Streamlit 和 Llama 3.2-Vision 构建自己的 OCR 助手

通过示例学习

OCR(光学字符识别)是一种帮助自动化将图像转换为文本的工具。你一定在手机上使用过它,因为现在它非常普遍。从数字化文档到自动化业务工作流程,OCR 是许多现代解决方案的核心。在本指南中,我们将引导您使用 Streamlit、Llama 3.2-Vision 和 Ollama 创建一个简单但强大的 OCR 助手,因为为什么不参与机器学习模型的竞争呢。有趣的是,不仅可以从图像中获取文本,还可以对其进行总结或修改提示,以从模型中获取您想要的内容。

到最后,您将拥有一个功能齐全的 OCR 工具,可以用来分析图像中的可见文本——此外,您还将了解正在重塑机器学习的前沿技术。

什么是OCR,以及为什么使用Llama 3.2-Vision?

什么是OCR?

OCR是一种将不同类型的文档——扫描的纸质文档、文档照片或包含文本的图像——转换为可编辑和可搜索数据的技术。以下是其重要性:

  • 自动化数据录入:从扫描的表单或发票中提取文本。
  • 数字化记录:将旧书籍或文件转换为数字文件。
  • 可搜索文档:使基于图像的PDF可搜索且易于导航。

为什么选择 Llama 3.2-Vision 进行 OCR?

Llama 3.2-Vision 是一个复杂的视觉模型,提供:

  • 高准确性:特别是在处理复杂图像或文档时。
  • 高级格式化:它能够比传统的 OCR 模型更好地保持文本结构和格式。
  • 适应性:与本地服务器设置无缝集成,以实现高效的图像处理。

构建您的 OCR 助手的逐步指南

首先,确保您克隆该仓库:https://github.com/MinimalDevops/llama-ocr.git

git clone https://github.com/MinimalDevops/llama-ocr.git
cd llama-ocr

1. 安装 Ollama 和 Llama 3.2-Vision

要使用 Llama 3.2-Vision,我们需要 Ollama,这是一个用于运行机器学习模型的本地服务。

安装 Ollama

curl -sSfL https://ollama.com/download | sh

安装 Llama 3.2-Vision

ollama pull llama3.2-vision

此命令拉取 Llama 3.2-Vision 模型,使其可供您的服务器访问。

注意:所有这些模型都需要良好的内存和 CPU。如果有 GPU,那就更好了。

2. 设置您的开发环境

使用虚拟环境可以避免 Python 包之间的冲突。

创建虚拟环境

python -m venv venv
source venv/bin/activate 

激活环境

  • Windows: venv\Scripts\activate
  • macOS/Linux: source venv/bin/activate

3. 安装依赖

为了简单起见,使用 requirements.txt 文件来安装所有必要的包:

安装依赖

pip install -r requirements.txt

依赖包括:

  • streamlit 用于网页界面
  • requests 用于发送 HTTP 请求
  • Pillow 用于图像处理

4. 运行 Ollama 服务器

要使用 Llama 3.2-Vision 进行 OCR,您需要启动 Ollama 服务器:

ollama serve

检查模型是否正在运行:

ollama ps

如果没有,则运行它:

ollama run llama3.2-vision

这将在本地启动服务器,使其可用于处理请求,地址为 http://localhost:11434.

5. 运行 Streamlit OCR 应用程序

现在一切都已设置完毕,是时候运行作为 OCR 界面的 Streamlit 应用程序了:

启动应用程序

streamlit run ocr_app.py

使用界面

  • 上传一张图像(JPG、JPEG 或 PNG)。

  • 点击“运行 OCR”按钮以提取文本。

注意*:我正在运行 11B 参数模型。*

现实世界的应用

  • 数字化旧记录:扫描手写笔记或书籍。
  • 自动化数据收集:从收据或文件中提取数据以优化工作流程。

故障排除常见问题

1. 服务器连接问题

  • 404 错误:在尝试使用 OCR 功能之前,请确保 Ollama 服务器正在运行。
  • 无法连接:检查端点 http://localhost:11434 是否可访问。确保没有防火墙或网络问题。

2. 依赖问题

  • 缺失的包:始终激活您的虚拟环境,并使用 pip install -r requirements.txt 安装依赖项。
  • 版本冲突:确保 Python 版本为 3.8 或更高,以避免兼容性问题。

恭喜您!您已使用 Streamlit 和 Llama 3.2-Vision 构建了自己的 OCR 助手。您取得了以下成就:

  • 安装并设置了 Ollama 和 Llama 3.2-Vision。
  • 创建了一个虚拟环境并安装了所有必要的包。
  • 构建了一个功能齐全的 OCR 工具来分析图像中的文本。

这只是一个开始!您可以通过以下方式进一步改进应用程序:

  • 添加更多模型:尝试其他 OCR 模型。
  • 在云端部署:使其可以通过互联网访问,以便更广泛的使用。
  • 修改提示以实现奇迹:修改提示以根据您的需求获取摘要,获取图像中文本的更多细节等等。

逐行代码解释请参见 readme.

如果您不喜欢编码和玩耍,可以使用 LM Studio。

  • 加载模型,例如“Llava Phi 3 mini”

  • 在聊天中上传图像,并使用聊天提示获取相同的信息

此外,如果您喜欢编码,我们可以在下一篇 博客 中使用 LM Studio API 从 Llava Phi 获取相同的结果!这是必读的内容!

我们很想听听您的体验以及您所做的任何自定义——请随时分享!

Related Posts

使用 ChatGPT 搜索网络功能的 10 种创意方法

使用 ChatGPT 搜索网络功能的 10 种创意方法

例如,提示和输出 你知道可以使用 ChatGPT 的“搜索网络”功能来完成许多任务,而不仅仅是基本的网络搜索吗? 对于那些不知道的人,ChatGPT 新的“搜索网络”功能提供实时信息。 截至撰写此帖时,该功能仅对使用 ChatGPT 4o 和 4o-mini 的付费会员开放。 ![](https://images.weserv.nl/?url=https://cdn-im

阅读更多
在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和科技这样一个动态的行业中,保持领先意味着不断提升你的技能。无论你是希望深入了解人工智能模型性能、掌握数据分析,还是希望通过人工智能转变传统领域如法律,这些课程都是你成功的捷径。以下是一个精心策划的高价值课程列表,可以助力你的职业发展,并让你始终处于创新的前沿。 1. 生成性人工智能简介课程: [生成性人工智能简介](https://genai.works

阅读更多
10 个强大的 Perplexity AI 提示,让您的营销任务自动化

10 个强大的 Perplexity AI 提示,让您的营销任务自动化

在当今快速变化的数字世界中,营销人员总是在寻找更智能的方法来简化他们的工作。想象一下,有一个个人助理可以为您创建受众档案,建议营销策略,甚至为您撰写广告文案。这听起来像是一个梦想? 多亏了像 Perplexity 这样的 AI 工具,这个梦想现在成为现实。通过正确的提示,您可以将 AI 转变为您的 个人营销助理。在本文中,我将分享 10 个强大的提示,帮助您自动

阅读更多
10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

人工智能技术,如机器学习、自然语言处理和数据分析,正在重新定义传统设计方法。从自动化重复任务到实现个性化用户体验,人工智能使设计师能够更加专注于战略思维和创造力。随着这一趋势的不断增长,UI/UX 设计师越来越多地采用 AI 驱动的工具来促进他们的工作。利用人工智能不仅能提供基于数据的洞察,还为满足多样化用户需求的创新设计解决方案开辟了机会。 1. 用户角色开发 目的

阅读更多
在几分钟内完成数月工作的 100 种人工智能工具

在几分钟内完成数月工作的 100 种人工智能工具

人工智能(AI)的快速发展改变了企业的运作方式,使人们能够在短短几分钟内完成曾经需要几周或几个月的任务。从内容创作到网站设计,AI工具帮助专业人士节省时间,提高生产力,专注于创造力。以下是按功能分类的100个AI工具的全面列表,以及它们在现实世界中的使用实例。 1. 研究工具 研究可能耗时,但人工智能工具使查找、分析和组织数据变得更加容易。**ChatGPT, Cop

阅读更多
你从未知道的 17 个令人惊叹的 GitHub 仓库

你从未知道的 17 个令人惊叹的 GitHub 仓库

Github 隐藏的宝石!! 立即收藏的代码库 学习编程相对简单,但掌握编写更好代码的艺术要困难得多。GitHub 是开发者的宝藏,那里“金子”是其他人分享的精心编写的代码。通过探索 GitHub,您可以发现如何编写更清晰的代码,理解高质量代码的样子,并学习成为更熟练开发者的基本步骤。 1. notwaldorf/emoji-translate *谁需

阅读更多