DeepSeek-OCR实现精确字符识别
DeepSeek-OCR实现精确字符识别目录:一、字符识别任务二、技术细节三、字符识别实战一、字符识别任务OCR (Optical Character Recognition, 光学字符识别)一种将印刷体或手写文字转换为可编辑文本的技术即将图像中的文字进行识别并以文本的形式返回。OCR识别技术主要依赖于图像处理和模式识别算法通过捕捉文档中的字符特征如笔画、形状、大小、间距等与预设的字符库进行比对从而识别相应的文字信息。二、技术细节2025年10月20日DeepSeek正式开源DeepSeek-OCR模型并同步发布相关运行脚本、测试代码、DeepEncoder源码以及技术报告等全套资料。在技术实践层面它是目前开源社区少数具备端到端文档解析、语义理解与结构化生成能力的轻量级多模态模型参数仅约3B,却能在A100单卡上实现高达2500 tokens/s的推理速度极大降低了企业和研究者在多模态RAG系统中的部署门槛。 DeepSeek-OCR的框架图如下图所示DeepSeek-OCR采用统一的端到端视觉语言模型VLM架构由编码器和解码器组成。编码器DeepEncoder负责提取图像特征、进行分词处理以及压缩视觉表示。解码器则基于图像分词结果和提示词生成所需输出。DeepEncoder参数规模约 3.8 亿主要由8000万参数的SAM-base与3亿参参数的CLIP-large串联组成。解码器采用3B MOE架构拥有5.7亿激活参数。具体而言DeepSeek-OCR模型可实现以下几大核心功能1️⃣OCR 纯文字提取 支持对任意图像进行自由式文字识别加速提取图片中的全部文本信息。2️⃣保留版面格式的OCR提取模型可自动识别并重建文档中的排版结构包括段落、标题、页眉页脚、列表与多栏布局实现“结构化文字输出”。3️⃣图表表格解析DeepSeek-OCR不仅识别文本还能解析图像中的结构化信息如表格、流程图、建筑平面图等自动识别单元格边界、字段对齐关系及数据对应结构支持生成可机读的表格或文本描述。4️⃣图片信息描述借助其多模态理解能力模型能够对整张图片进行语义级分析与详细描述生成自然语言总结。5️⃣指定元素位置锁定 支持通过“视觉定位”功能在图像中准确定位特定目标元素。例如输入Locate signature in the image模型即可返回签名区域的坐标实现基于语义的图像检索与目标检测。6️⃣Markdown文档转化可将完整的文档图像直接转换为结构化Markdown文本自动识别标题层级、段落结构、表格与列表格式可实现文档数字化、知识库构建和多模态RAG场景的重要基础模块。三、字符识别实战在NVIDIA GPU上使用Huggingface的Transformers库进行推理。使用本地部署后进行推理亲测使用虚拟环境为Python 3.12.9 CUDA 11.8torch 2.6.0transformers 4.46.3tokenizers 0.20.3einops 张量操作工具addict 字典操作模块easydict 简化字典操作pip install flash-attn2.7.3 --no-build-isolation flash-attn是一个高性能的GPU注意力加速库常用于加速大模型中的Transformer注意力计算–no-build-isolation 创建一个临时的隔离虚拟环境模型下载fromhuggingface_hubimportsnapshot_downloadimportos os.environ[HTTP_PROXY]http://127.0.0.1:7890#使用代理。只有在本地确实有代理程序如clash等在运行时才能生效os.environ[HTTPS_PROXY]http://127.0.0.1:7890snapshot_download(repo_iddeepseek-ai/DeepSeek-OCR,local_dir../../Pretrained-LLM/models/DeepSeek-OCR,#指定下载路径local_dir_use_symlinksFalse,resume_downloadTrue,revisionmain)推理代码fromtransformersimportAutoModel,AutoTokenizerimporttorchimportos os.environ[CUDA_VISIBLE_DEVICES]0model_path../../Pretrained-LLM/models/DeepSeek-OCRtokenizerAutoTokenizer.from_pretrained(model_path,trust_remote_codeTrue)modelAutoModel.from_pretrained(model_path,trust_remote_codeTrue,use_safetensorsTrue)modelmodel.eval().cuda().to(torch.bfloat16)# prompt image\nFree OCR. promptimage\n|grounding|Convert the document to markdown. image_filenews.pngoutput_path./ouput# infer(self, tokenizer, prompt, image_file, output_path , base_size 1024, image_size 640, crop_mode True, test_compress False, save_results False):# Tiny: base_size 512, image_size 512, crop_mode False# Small: base_size 640, image_size 640, crop_mode False# Base: base_size 1024, image_size 1024, crop_mode False# Large: base_size 1280, image_size 1280, crop_mode False# Gundam: base_size 1024, image_size 640, crop_mode Trueresmodel.infer(tokenizer,promptprompt,image_fileimage_file,output_pathoutput_path,base_size1024,image_size640,crop_modeTrue,save_resultsTrue,test_compressTrue)运行代码后终端会打印下面的信息 BASE: torch.Size([1, 256, 1280]) PATCHES: torch.Size([6, 100, 1280]) The attention layers in this model are transitioning from computing the RoPE embeddings internally through position_ids (2D tensor with the indexes of the tokens), to using externally computed position_embeddings (Tuple of tensors, containing cos and sin). In v4.46 position_ids will be removed and position_embeddings will be mandatory. |ref|sub_title|/ref||det|[[5, 12, 152, 60]]|/det| ## 观点·深度》》 |ref|image|/ref||det|[[5, 95, 528, 560]]|/det| |ref|sub_title|/ref||det|[[5, 608, 352, 656]]|/det| ## 用精品标注时代文艺创作的高度 |ref|text|/ref||det|[[5, 707, 525, 920]]|/det| 近日揭晓的第十八届文华奖作为文化和旅游部设立的专业舞台艺术领域政府最高奖项通过优化奖项设置、放宽首演时间、扩大申报渠道等改革进一步完善评奖机制强化“十年磨一戏”的精品意识捧出了舞台艺术繁荣发展的累累硕果。 |ref|sub_title|/ref||det|[[570, 99, 812, 140]]|/det| ## 年轻干部不妨多些“自找苦吃” |ref|text|/ref||det|[[570, 162, 952, 247]]|/det| 干部成长成熟成才的路上从没有坦途捷径可走只能是一步一个脚印爬坡过坎。 |ref|sub_title|/ref||det|[[570, 303, 965, 344]]|/det| ## 财评“两新”精准彰显宏观调控前瞻性有效性 |ref|text|/ref||det|[[570, 366, 947, 450]]|/det| 当前“两新”政策的实施正在推动经济发展质量、结构、效益同步提升。 |ref|sub_title|/ref||det|[[570, 506, 789, 547]]|/det| ## 银行网点增减应以便民为本 |ref|text|/ref||det|[[570, 569, 965, 650]]|/det| 网点增减是银行出于经营管理考量的自主选择但其底层逻辑应遵循便民惠民、降本增效。 |ref|sub_title|/ref||det|[[570, 708, 789, 748]]|/det| ## 算好“过紧日子”的两本账 |ref|text|/ref||det|[[570, 770, 946, 855]]|/det| “过紧日子”不是捂紧钱包不花钱而是该省的省、该花的花。 |ref|text|/ref||det|[[592, 920, 720, 954]]|/det| 查看更多深度评论 image size: (902, 565) valid image tokens: 760 output texts tokens (valid): 471 compression ratio: 0.62 save results: image: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:0000:00, 22429.43it/s] other: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 12/12 [00:0000:00, 310689.19it/s]同时会生成output文件里面包含文档中的images图像识别后的markdown文本文件以及如下的目标检测图像result_with_boxes.jpg图像。