news 2026/8/21 4:35:52

使用Ollama部署DeepSeek-OCR模型:从零开始的完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用Ollama部署DeepSeek-OCR模型:从零开始的完整指南

目录

一、什么是Ollama和DeepSeek-OCR

1.1 Ollama简介

1.2 DeepSeek-OCR简介

二、环境准备

2.1 安装Ollama

2.2 安装Python依赖

三、部署DeepSeek-OCR模型

3.1 拉取DeepSeek-OCR模型

3.2 验证模型安装

3.3 启动Ollama服务

四、Python代码实现

4.1 完整代码

4.2 代码详解

4.2.1 encode_image函数

4.2.2 ocr_image函数

4.2.3 构建请求payload

4.2.4 发送请求并处理响应

五、实战演示

5.1 准备测试图片

5.2 运行代码

5.3 查看结果

5.3.1 文字图片

5.3.2 纯图片

六、应用场景

七、总结


一、什么是Ollama和DeepSeek-OCR

1.1 Ollama简介

Ollama是一个开源的大模型运行工具,它支持在本地运行多种大语言模型和视觉模型。Ollama具有以下特点:

  • 轻量级:安装简单,资源占用少

  • 跨平台:支持Windows、macOS和Linux系统

  • API友好:提供REST API接口,方便集成到各种应用中

  • 模型丰富:支持多种开源模型,包括DeepSeek系列

如何安装相关说明:通过Ollama本地部署DeepSeek R1以及简单使用的教程(超详细) - 知乎

1.2 DeepSeek-OCR简介

DeepSeek-OCR是DeepSeek团队推出的OCR模型,具有以下优势:

  • 识别准确率高:对多种字体和语言都有良好的识别效果

  • 支持多语言:包括中文、英文等多种语言

  • 易于部署:可以方便地通过Ollama进行本地部署


二、环境准备

2.1 安装Ollama

Windows系统安装

  1. 访问Ollama官网:https://ollama.com/download

  2. 点击"Download for Windows"按钮下载安装包

  3. 运行安装程序,按照提示完成安装

  4. 安装完成后,打开命令行终端,输入以下命令验证安装:ollama --version

如果显示版本号,说明安装成功。

2.2 安装Python依赖

我们需要安装Python的requests库来调用Ollama API:pip install requests


三、部署DeepSeek-OCR模型

3.1 拉取DeepSeek-OCR模型

在命令行终端中执行以下命令来下载DeepSeek-OCR模型:ollama pull deepseek-ocr:latest

这个过程可能需要一些时间,具体取决于你的网络速度。模型下载完成后,Ollama会自动将模型存储在本地。

3.2 验证模型安装

可以使用以下命令查看已安装的模型列表:ollama list

就能看到deepseek-ocr:latest出现在列表中。

3.3 启动Ollama服务

Ollama安装后会自动启动服务,默认监听在http://localhost:11434。如果服务没有自动启动,可以手动启动:

Windows系统: 在开始菜单中找到Ollama并启动,或者在命令行中输入:ollama serve

运行代码测试之后会显示请求成功,代表我们启动成功了。如果命令行启动不成功的话,我们也可以双击运行对应桌面端应用


四、Python代码实现

下面我们通过完整的Python代码来实现OCR功能。代码分为几个部分:图片编码、API调用、结果展示。

4.1 完整代码

import requests import base64 import json import os def encode_image(image_path): """ 将图片文件编码为base64格式 Args: image_path: 图片文件路径 Returns: base64编码的字符串 """ with open(image_path, "rb") as image_file: return base64.b64encode(image_file.read()).decode('utf-8') def ocr_image(image_path, model="deepseek-ocr:latest"): """ 使用DeepSeek-OCR模型识别图片中的文字 Args: image_path: 图片文件路径 model: 使用的模型名称,默认为deepseek-ocr:latest """ url = "http://localhost:11434/api/generate" # 检查文件是否存在 if not os.path.exists(image_path): print(f"Error: File {image_path} not found.") return try: # 将图片编码为base64 base64_image = encode_image(image_path) # 构建请求payload payload = { "model": model, "prompt": "Please transcribe the text in this image.", "images": [base64_image], "stream": False } print(f"Sending request to Ollama (model: {model})...") # 发送POST请求 response = requests.post(url, json=payload) # 处理响应 if response.status_code == 200: result = response.json() print("\n--- OCR Result ---\n") print(result.get("response", "No response text found.")) print("\n------------------") else: print(f"Error: {response.status_code} - {response.text}") except Exception as e: print(f"An error occurred: {e}") if __name__ == "__main__": # 设置图片路径(请根据实际情况修改) image_path = r"C:\Users\salute\...." ocr_image(image_path)

4.2 代码详解

4.2.1 encode_image函数
def encode_image(image_path): with open(image_path, "rb") as image_file: return base64.b64encode(image_file.read()).decode('utf-8')

这个函数的作用是将图片文件转换为base64编码字符串。Ollama API要求图片数据以base64格式传输,因此我们需要先进行编码。

  • open(image_path, "rb"):以二进制读取模式打开图片文件

  • base64.b64encode():将二进制数据编码为base64

  • .decode('utf-8'):将字节串解码为UTF-8字符串

4.2.2 ocr_image函数
def ocr_image(image_path, model="deepseek-ocr:latest"): url = "http://localhost:11434/api/generate" if not os.path.exists(image_path): print(f"Error: File {image_path} not found.") return

这是核心的OCR识别函数,参数包括:

  • image_path:要识别的图片路径

  • model:使用的模型名称,默认为deepseek-ocr:latest

首先检查图片文件是否存在,如果不存在则直接返回。

4.2.3 构建请求payload
base64_image = encode_image(image_path) payload = { "model": model, "prompt": "Please transcribe the text in this image.", "images": [base64_image], "stream": False }

构建发送给Ollama API的请求参数:

  • model:指定使用的模型

  • prompt:提示词,告诉模型要做什么任务

  • images:base64编码的图片数据数组

  • stream:是否使用流式输出,这里设置为False

4.2.4 发送请求并处理响应
response = requests.post(url, json=payload) if response.status_code == 200: result = response.json() print("\n--- OCR Result ---\n") print(result.get("response", "No response text found.")) print("\n------------------") else: print(f"Error: {response.status_code} - {response.text}")

使用requests库发送POST请求到Ollama API,然后处理响应结果。如果请求成功(状态码200),则解析JSON响应并提取识别结果。


五、实战演示

5.1 准备测试图片

首先准备一张包含文字的图片,保存为img.png或其他格式。图片可以是:

  • 扫描的文档

  • 截图

  • 包含文字的照片

5.2 运行代码

将代码保存为test_ocr.py,然后在编译器中运行该代码

5.3 查看结果

5.3.1 文字图片

图片:

对应输出内容:

5.3.2 纯图片

图片:

对应输出内容:


六、应用场景

DeepSeek-OCR结合Ollama可以在以下场景中发挥作用:

  1. 文档数字化:将纸质文档转换为可编辑的电子文档

  2. 票据处理:自动识别发票、收据等票据信息

  3. 图片文字提取:从截图、照片中提取文字内容

  4. 多语言翻译:识别文字后进行翻译

  5. 数据录入自动化:自动将图片中的数据录入系统

  6. 无障碍辅助:为视障用户提供图片文字朗读服务


七、总结

本文详细介绍了如何使用Ollama部署DeepSeek-OCR模型,并通过Python代码实现了图像文字识别功能。主要内容包括:

  1. Ollama和DeepSeek-OCR的介绍

  2. 环境准备和模型部署

  3. 完整的Python代码实现

  4. 代码详解和实战演示

通过本文的学习,你应该能够在本地快速搭建OCR识别系统,并将其应用到实际项目中。DeepSeek-OCR和Ollama的组合为我们提供了一个强大而易用的本地OCR解决方案,既保护了数据隐私,又提供了高效的识别能力。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/19 17:52:51

Qwen3-VL显存不足怎么办?低成本GPU优化部署案例详解

Qwen3-VL显存不足怎么办?低成本GPU优化部署案例详解 1. 背景与挑战:Qwen3-VL-2B-Instruct的部署瓶颈 随着多模态大模型在视觉理解、图文生成和代理交互等场景中的广泛应用,阿里推出的 Qwen3-VL-2B-Instruct 成为当前极具竞争力的开源视觉语…

作者头像 李华
网站建设 2026/8/19 17:52:39

FSMN-VAD儿童友好:设计卡通风格的亲子互动界面

FSMN-VAD儿童友好:设计卡通风格的亲子互动界面 1. 引言:打造儿童友好的语音交互体验 随着智能语音技术在家庭场景中的广泛应用,越来越多的儿童开始接触语音助手、语音故事机和教育类语音应用。然而,传统的语音端点检测&#xff…

作者头像 李华
网站建设 2026/8/19 17:58:34

如何高效解析复杂PDF?试试PaddleOCR-VL-WEB大模型镜像,一键部署超省心

如何高效解析复杂PDF?试试PaddleOCR-VL-WEB大模型镜像,一键部署超省心 在金融、法律、医疗和教育等行业中,处理大量结构复杂、版式多样甚至图像质量较差的PDF文档已成为日常挑战。传统OCR工具虽然能完成基础文字识别,但在面对表格…

作者头像 李华
网站建设 2026/8/19 17:52:51

基于HY-MT1.5-7B的智能翻译系统:架构设计与实现

基于HY-MT1.5-7B的智能翻译系统:架构设计与实现 随着全球化进程加速,跨语言沟通需求日益增长,高质量、低延迟的机器翻译系统成为企业出海、内容本地化和多语言服务的核心基础设施。在此背景下,混元团队推出了新一代翻译模型系列—…

作者头像 李华
网站建设 2026/8/19 17:43:09

通义千问2.5-0.5B部署卡顿?苹果A17上60 tokens/s优化方案

通义千问2.5-0.5B部署卡顿?苹果A17上60 tokens/s优化方案 1. 背景与问题定位 1.1 边缘设备上的大模型推理挑战 随着大语言模型(LLM)能力的快速演进,如何在资源受限的边缘设备上实现高效推理成为关键课题。Qwen2.5-0.5B-Instruc…

作者头像 李华
网站建设 2026/8/19 19:01:35

解决 huggingface-cli: command not found问题

文章目录解决 huggingface-cli: command not found问题1. 问题描述2. 解决方案2.1 安装或更新 huggingface-hub2.2 使用 hf 命令下载模型2.3 总结解决 huggingface-cli: command not found问题 本文主要介绍在使用 huggingface-cli 命令下载大模型(如 Qwen3-8B&…

作者头像 李华