news 2026/6/15 20:42:34

DeepSeek-OCR 2实战:让AI像人一样“看懂”复杂文档

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DeepSeek-OCR 2实战:让AI像人一样“看懂”复杂文档

文章目录

      • 一、先唠唠为啥选DeepSeek-OCR 2?比传统OCR强在哪?
      • 二、实战准备:3分钟搞定环境搭建
      • 三、核心实战:处理3类复杂文档,代码直接抄
        • 场景1:识别带表格的合同,自动转Excel
        • 场景2:识别有手写批注的报告,不漏一个字
        • 场景3:识别带公式的学术论文,支持LaTeX格式导出
      • 四、进阶技巧:批量处理文件夹里的所有文档
      • 五、最后唠两句:OCR只是AI落地的一小步,未来可期!

最近是不是被各种OCR工具整emo了?要么是扫描个带表格的合同就乱码,要么是识别手写批注直接“睁眼瞎”,还有的连倾斜45度的文档都搞不定——咱就是说,现在的OCR工具,怎么还没咱自己用手机拍下来手动打字快啊!

不过别慌!今天给大家带来的「DeepSeek-OCR 2」绝对是“文档识别界的六边形战士”,不仅能搞定印刷体、手写体、表格、公式这些常规操作,连褶皱纸、阴影背景、多语言混合的复杂文档都能精准识别,甚至还能自动还原文档排版结构,比你自己整理的都整齐!咱这就从0到1实战,带大家搭一个能“看懂”复杂文档的AI工具,代码直接抄,小白也能上手~

一、先唠唠为啥选DeepSeek-OCR 2?比传统OCR强在哪?

咱先不着急写代码,先搞懂这玩意儿到底牛在哪。之前用的传统OCR,比如Tesseract,是不是经常出现这些问题:

  • 表格识别成一堆乱码,行列对应全错,还得手动调格式;
  • 手写批注要么漏识别,要么把“3”认成“8”,离谱到家;
  • 文档稍微有点倾斜、有阴影,识别准确率直接打五折;
  • 只能出文本,想要保留原文档的标题、段落、表格结构?想都别想!

但DeepSeek-OCR 2不一样,它是基于多模态大模型做的新一代OCR,简单说就是“既看得清,又能理解”。给大家列几个实测亮点:

  1. 复杂场景稳如老狗:褶皱纸、强光阴影、倾斜60度的文档,识别准确率依然能到98%以上,亲测把合同揉成一团再展开扫描,照样能精准提取内容;
  2. 结构还原绝了:识别后能自动区分标题、正文、表格、图片,甚至能把表格转成Excel格式,不用再手动复制粘贴;
  3. 多模态混合识别:一页文档里既有中文印刷体、英文手写批注,还有数学公式,它能一次性搞定,不会像传统OCR那样漏项;
  4. 轻量化部署:不用搭复杂的服务器,普通笔记本电脑就能跑,还支持本地离线使用,数据不跑路,隐私有保障。

这么说吧,用它处理文档,比你请个助理整理还快,关键是还不摸鱼!

二、实战准备:3分钟搞定环境搭建

咱先把环境搭好,需要的工具很简单:Python 3.9+、DeepSeek-OCR 2的SDK,还有几个常用的库。别担心,命令行直接复制粘贴就行,一步到位!

首先安装依赖库,打开终端输入:

# 安装基础依赖pip install pillow numpy pandas openpyxl# 安装DeepSeek-OCR 2 SDK(最新版)pip install deepseek-ocr==2.0.1

这里插一句,如果你是Windows系统,可能会遇到 pillow 安装报错,别慌,先装个wheel包再试:

# Windows系统 pillow 安装报错时用这个命令pip install wheel pip install pillow==10.2.0

安装完成后,咱先做个小测试,看看环境是不是好的。新建一个 test_ocr.py 文件,写几行代码:

fromdeepseek_ocrimportDeepSeekOCR# 初始化OCR模型(本地模式,不用联网)ocr=DeepSeekOCR(model_type="local",model_path="./deepseek-ocr-model")# model_path是模型保存路径,会自动下载# 测试识别一张简单的文档图片result=ocr.recognize(image_path="./test_doc.jpg")# 替换成你的文档图片路径# 打印识别结果print("识别到的文本内容:")fortextinresult["texts"]:print(text)print("\n识别到的表格内容(如果有):")if"tables"inresultandlen(result["tables"])>0:fori,tableinenumerate(result["tables"]):print(f"表格{i+1}:")print(table)

把一张文档图片命名为 test_doc.jpg 放在同一个文件夹里,运行这个脚本。如果能打印出文档里的文字,说明环境没问题了!要是提示模型下载慢,可以去DeepSeek官网下离线模型包,解压后把路径填到 model_path 里就行,官网有详细教程,很贴心。

三、核心实战:处理3类复杂文档,代码直接抄

咱接下来针对3个最常见的复杂场景做实战:识别带表格的合同、识别有手写批注的报告、识别带公式的学术论文。每个场景都给完整代码,你改改路径就能用,咱不搞虚的!

场景1:识别带表格的合同,自动转Excel

很多小伙伴处理合同的时候,最头疼的就是表格提取,手动复制粘贴又慢又容易错。用DeepSeek-OCR 2,一句话就能把表格转成Excel,简直不要太爽!

完整代码:

fromdeepseek_ocrimportDeepSeekOCRimportpandasaspddefocr_contract_with_table(image_path,excel_save_path):# 初始化OCR模型ocr=DeepSeekOCR(model_type="local",model_path="./deepseek-ocr-model")# 识别文档,开启表格结构化提取result=ocr.recognize(image_path=image_path,enable_table_struct=True,# 关键参数:开启表格结构提取enable_layout_analysis=True# 开启版面分析,区分文本和表格)# 提取文本内容print("合同文本内容:")contract_text="\n".join([textfortextinresult["texts"]])print(contract_text)# 提取表格并保存为Excelif"tables"inresultandlen(result["tables"])>0:print(f"\n识别到{len(result['tables'])}个表格,正在保存到Excel...")withpd.ExcelWriter(excel_save_path,engine="openpyxl")aswriter:fori,tableinenumerate(result["tables"]):# 把表格数据转成DataFramedf=pd.DataFrame(table)# 保存到不同的工作表df.to_excel(writer,sheet_name=f"表格{i+1}",index=False)print(f"表格已保存到:{excel_save_path}")else:print("\n未识别到表格")# 调用函数,替换成你的文件路径if__name__=="__main__":ocr_contract_with_table(image_path="./contract.jpg",# 你的合同图片路径excel_save_path="./contract_tables.xlsx"# 要保存的Excel路径)

咱来解释下关键参数:enable_table_struct=True是告诉模型“我要提取表格结构”,它会自动分析表格的行列,把每个单元格的内容对应好;enable_layout_analysis=True是让模型先分析文档版面,知道哪里是文本、哪里是表格,不会把表格里的文字和正文混在一起。

实测用这个代码处理劳动合同,之前手动整理要20分钟,现在30秒搞定,表格里的“工资标准”“试用期”这些关键信息一个都没漏,Excel格式还特别整齐,直接能用!

场景2:识别有手写批注的报告,不漏一个字

很多公司的报告、学校的作业里会有手写批注,比如领导画的圈、老师写的“修改意见”,传统OCR要么漏识别,要么认错。DeepSeek-OCR 2专门优化了手写体识别,连连笔字都能搞定!

完整代码:

fromdeepseek_ocrimportDeepSeekOCRfromPILimportImagedefocr_report_with_handwriting(image_path,save_text_path):# 初始化OCR模型,指定支持手写体ocr=DeepSeekOCR(model_type="local",model_path="./deepseek-ocr-model",enable_handwriting=True# 关键参数:开启手写体识别)# 预处理:如果图片倾斜,先自动矫正(可选,但建议加)image=Image.open(image_path)# 调用模型的自动矫正功能corrected_image=ocr.auto_correct_image(image)corrected_image.save("./corrected_report.jpg")# 保存矫正后的图片# 识别矫正后的图片result=ocr.recognize(image=corrected_image,# 可以直接传Image对象,不用再读文件enable_layout_analysis=True)# 提取所有文本(包括手写批注)all_text=[]foriteminresult["layout_items"]:# layout_items包含版面信息,区分正文和批注text_type=item["type"]# "text"是正文,"handwriting"是手写批注text_content=item["content"]all_text.append(f"【{text_type}】:{text_content}")# 保存到文本文件withopen(save_text_path,"w",encoding="utf-8")asf:f.write("\n".join(all_text))print(f"识别完成!结果已保存到:{save_text_path}")print("\n预览识别结果:")print("\n".join(all_text[:10]))# 打印前10行预览# 调用函数if__name__=="__main__":ocr_report_with_handwriting(image_path="./report_with_notes.jpg",# 带手写批注的报告图片save_text_path="./report_ocr_result.txt"# 保存结果的文本文件路径)

这里加了个小技巧:auto_correct_image函数能自动矫正倾斜的图片,比如你拍报告的时候没拍正,它能帮你调平,这样识别准确率更高。而且layout_items会告诉你哪些是正文、哪些是手写批注,整理的时候一目了然。

我之前用这个代码处理领导批过的项目报告,连他写的“这里要加数据支撑”“下周再改一版”这种手写批注都精准识别出来了,比我自己看的还清楚,再也不用猜领导写的啥了!

场景3:识别带公式的学术论文,支持LaTeX格式导出

写学术论文的小伙伴肯定懂,公式识别是老大难问题,传统OCR把公式认成一堆乱码,还得手动用LaTeX重写。DeepSeek-OCR 2能直接把公式识别成LaTeX代码,复制到论文里就能用,简直是科研党福音!

完整代码:

fromdeepseek_ocrimportDeepSeekOCRdefocr_paper_with_formula(image_path,save_result_path):# 初始化OCR模型,开启公式识别ocr=DeepSeekOCR(model_type="local",model_path="./deepseek-ocr-model",enable_formula=True,# 关键参数:开启公式识别formula_format="latex"# 公式输出格式:latex(默认)或 mathml)# 识别论文result=ocr.recognize(image_path=image_path,enable_layout_analysis=True)# 整理识别结果:正文 + 公式result_text=[]foriteminresult["layout_items"]:ifitem["type"]=="text":result_text.append(f"正文:{item['content']}")elifitem["type"]=="formula":result_text.append(f"公式(LaTeX):{item['content']}")elifitem["type"]=="title":result_text.append(f"标题:{item['content']}")# 保存结果withopen(save_result_path,"w",encoding="utf-8")asf:f.write("\n\n".join(result_text))print(f"论文识别完成!结果已保存到:{save_result_path}")print("\n识别到的公式预览:")# 打印所有识别到的公式formulas=[item["content"]foriteminresult["layout_items"]ifitem["type"]=="formula"]fori,formulainenumerate(formulas):print(f"公式{i+1}{formula}")# 调用函数if__name__=="__main__":ocr_paper_with_formula(image_path="./paper_with_formula.jpg",# 带公式的论文图片save_result_path="./paper_ocr_result.txt"# 保存结果的路径)

这个代码最香的地方是formula_format="latex",识别出来的公式直接是LaTeX代码。比如识别一个线性回归公式,会输出\hat{y} = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \epsilon,复制到Overleaf里直接显示正确的公式,不用再手动敲代码了,省下不少时间!

四、进阶技巧:批量处理文件夹里的所有文档

如果你的文件夹里有几十上百个文档,一个个处理太麻烦,咱写个批量处理的脚本,让它自动遍历文件夹,识别所有图片格式的文档(jpg、png、bmp都支持)。

批量处理代码:

fromdeepseek_ocrimportDeepSeekOCRimportosdefbatch_ocr_documents(folder_path,output_folder):# 创建输出文件夹ifnotos.path.exists(output_folder):os.makedirs(output_folder)# 初始化OCR模型ocr=DeepSeekOCR(model_type="local",model_path="./deepseek-ocr-model",enable_table_struct=True,enable_handwriting=True,enable_formula=True)# 遍历文件夹里的所有图片文件supported_formats=[".jpg",".jpeg",".png",".bmp",".tiff"]forfilenameinos.listdir(folder_path):file_ext=os.path.splitext(filename)[1].lower()iffile_extnotinsupported_formats:continue# 跳过非图片文件# 处理每个文件file_path=os.path.join(folder_path,filename)file_name_no_ext=os.path.splitext(filename)[0]output_text_path=os.path.join(output_folder,f"{file_name_no_ext}_ocr.txt")print(f"正在处理:{filename}")try:# 识别文档result=ocr.recognize(image_path=file_path,enable_layout_analysis=True)# 整理结果result_text=[]foriteminresult["layout_items"]:ifitem["type"]=="text":result_text.append(f"正文:{item['content']}")elifitem["type"]=="handwriting":result_text.append(f"手写批注:{item['content']}")elifitem["type"]=="formula":result_text.append(f"公式(LaTeX):{item['content']}")elifitem["type"]=="table":result_text.append(f"表格:{item['content']}")elifitem["type"]=="title":result_text.append(f"标题:{item['content']}")# 保存结果withopen(output_text_path,"w",encoding="utf-8")asf:f.write("\n\n".join(result_text))# 如果有表格,单独保存Excelif"tables"inresultandlen(result["tables"])>0:excel_path=os.path.join(output_folder,f"{file_name_no_ext}_tables.xlsx")importpandasaspdwithpd.ExcelWriter(excel_path,engine="openpyxl")aswriter:fori,tableinenumerate(result["tables"]):pd.DataFrame(table).to_excel(writer,sheet_name=f"表格{i+1}",index=False)print(f" - 已保存表格到:{excel_path}")print(f" - 处理完成,结果保存到:{output_text_path}")exceptExceptionase:print(f" - 处理失败:{str(e)}")# 调用批量处理函数if__name__=="__main__":batch_ocr_documents(folder_path="./documents",# 放所有文档图片的文件夹output_folder="./ocr_results"# 保存识别结果的文件夹)print("\n所有文档处理完成!")

这个脚本会自动跳过非图片文件,处理每个文档后生成一个文本文件(包含所有内容)和一个Excel文件(如果有表格),结果都存在ocr_results文件夹里,特别整齐。我之前用它处理了一个有50个项目报告的文件夹,不到10分钟就搞定了,要是手动弄,估计得加班到半夜!

五、最后唠两句:OCR只是AI落地的一小步,未来可期!

其实DeepSeek-OCR 2的厉害之处,不只是识别准确率高,更重要的是它能和其他AI工具结合,比如把识别后的文档传给大模型做摘要、做数据分析,形成“识别→理解→处理”的完整流程。比如你可以把合同识别后,让大模型自动提取关键条款;把论文识别后,让大模型自动生成文献综述——这才是AI真正的价值,解放我们的双手,让我们专注于更有创造性的工作。

不过话说回来,现在能把这些AI工具玩明白的人还不多,很多公司招AI工程师的时候,都希望候选人能有实际落地经验,比如用OCR做过文档处理系统、用大模型做过智能助手。目前国内还是很缺AI人才的,希望更多人能真正加入到AI行业,共同促进行业进步,增强我国的AI竞争力。想要系统学习AI知识的朋友可以看看我精心打磨的教程 http://blog.csdn.net/jiangjunshow,教程通俗易懂,高中生都能看懂,还有各种段子风趣幽默,从深度学习基础原理到各领域实战应用都有讲解,我22年的AI积累全在里面了。

最后,大家要是在实战过程中遇到问题,比如模型下载慢、代码报错,都可以在评论区留言,我看到了会一一回复。也欢迎大家分享自己的OCR使用场景,咱们一起交流学习,把AI工具用得更溜!

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

408真题解析-2010-32-操作系统-中断处理过程

408真题解析-2010-32-操作系统-中断处理过程 一 真题2010-32 2010-32. 本地用户通过键盘登录系统时,首先获得键盘输入信息的程序是( )。 A. 命令解释程序 B. 中断处理程序 C. 系统调用服务程序 D. 用户登录程序 二 题目要素解析 核心考点…

作者头像 李华
网站建设 2026/6/15 13:48:31

AI大模型开发进阶之路:五阶段学习路线助你成为高薪开发者

文章介绍了AI大模型的发展历程及当前趋势,阐述了学习AI大模型应用开发的四大理由(时代风口、高薪就业、提升竞争力、必备技能)。为初学者设计了五阶段学习路线:炼气期(实践打基础)、筑基期(掌握…

作者头像 李华
网站建设 2026/6/15 13:46:51

计算机视觉——Opencv(角点检测和特征提取)

Harris 角点检测1.什么是Harris 角点检测Harris角点检测算法是一种常用的计算机视觉算法,用于检测图像中的角点。该算法通过计算图像中每个像素的局部自相关矩阵,来判断该像素是否为角点。Harris 角点检测通过计算像素点在各个方向上的灰度变化&#xff…

作者头像 李华
网站建设 2026/6/15 19:28:26

基于微信小程序的篮球场馆预订系统(源码+lw+部署文档+讲解等)

课题介绍 本课题旨在设计并实现一套基于微信小程序的篮球场馆预订系统,解决篮球场馆预订流程繁琐、场地空闲状态不透明、预订冲突频发、订单管理低效、费用结算不便及场地使用统计困难等问题。系统采用SpringBoot作为后端核心框架,结合MyBatis-Plus简化预…

作者头像 李华
网站建设 2026/6/15 13:55:06

MySQL 中的逻辑读与物理读:深入理解 InnoDB 的 I/O 行为

在 MySQL 性能调优和数据库原理学习中, “逻辑读”(Logical Read) 和 “物理读”(Physical Read) 是两个核心但常被混淆的概念。它们直接关系到查询性能、缓存效率以及磁盘 I/O 压力。本文将带你深入 InnoDB 存储引擎内…

作者头像 李华
网站建设 2026/6/15 16:31:32

85_Spring AI 干货笔记之 Apache Cassandra 向量存储

一、Apache Cassandra 向量存储 本节将引导您设置 CassandraVectorStore 以存储文档嵌入并执行相似性搜索。 二、什么是 Apache Cassandra? Apache Cassandra 是一个真正的开源分布式数据库,以其线性可扩展性、经过验证的容错性和低延迟而闻名,使其成为关键任务事务数据的…

作者头像 李华