Nanonets-OCR2 1.5B:文档智能转换的终极解决方案

Nanonets-OCR2 1.5B:文档智能转换的终极解决方案

【免费下载链接】Nanonets-OCR2-1.5B-exp 【免费下载链接】Nanonets-OCR2-1.5B-exp 项目地址: https://ai.gitcode.com/hf_mirrors/nanonets/Nanonets-OCR2-1.5B-exp

Nanonets-OCR2 1.5B-exp 是一个革命性的图像转文本OCR模型,能够将复杂文档转换为结构化Markdown格式,具备智能内容识别和语义标记能力。该模型基于Qwen2-VL-2B-Instruct构建,专为下游大型语言模型处理而设计,支持多语言文档识别和智能内容提取。

核心功能详解

数学公式智能识别

模型能够自动识别文档中的数学公式,并将其转换为标准LaTeX语法格式。它能准确区分行内公式($...$)和显示公式($$...$$),为学术论文和技术文档处理提供专业支持。

图像内容结构化描述

对于文档中的图像内容,模型会生成详细的描述信息并封装在<img>标签中。无论是标识、图表还是示意图,模型都能准确捕捉其内容、样式和上下文信息。

签名与水印提取

在商业和法律文档处理方面表现卓越:

  • 签名检测:自动识别并隔离签名,使用<signature>标签封装
  • 水印提取:检测文档中的水印文字,使用<watermark>标签标记
  • 页码识别:准确提取页码信息,支持多种页码格式

表单元素智能处理

模型能够识别并标准化处理表单中的交互元素:

  • 复选框转换为等Unicode符号
  • 支持单选按钮和复杂表单结构

复杂表格精准提取

在处理数据密集型文档时,模型能够:

  • 准确提取复杂表格结构
  • 同时生成Markdown和HTML两种格式
  • 保持表格的原始布局和层次关系

流程图与组织结构图转换

模型能够将流程图和组织结构图转换为Mermaid代码,为技术文档的版本控制和协作提供便利。

快速上手指南

使用Transformers库

from PIL import Image
from transformers import AutoTokenizer, AutoProcessor, AutoModelForImageTextToText

model_path = "nanonets/Nanonets-OCR2-1.5B-exp"

model = AutoModelForImageTextToText.from_pretrained(
    model_path,
    torch_dtype="auto",
    device_map="auto"
)
model.eval()

tokenizer = AutoTokenizer.from_pretrained(model_path)
processor = AutoProcessor.from_pretrained(model_path)

def ocr_page_with_nanonets_s(image_path, model, processor, max_new_tokens=4096):
    prompt = """提取文档中的文本内容,保持自然阅读顺序。表格以HTML格式返回,公式以LaTeX表示。如果文档中有图片且没有标题,在<img></img>标签内添加图片描述;如果有标题,将标题放入<img></img>标签内。水印用<watermark>标签包裹,页码用<page_number>标签标记。复选框使用☐和☑符号。"""
    image = Image.open(image_path)
    messages = [
        {"role": "system", "content": "你是一个有用的助手。"},
        {"role": "user", "content": [
            {"type": "image", "image": f"file://{image_path}"},
            {"type": "text", "text": prompt},
        ]},
    ]
    text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
    inputs = processor(text=[text], images=[image], padding=True, return_tensors="pt")
    inputs = inputs.to(model.device)

    output_ids = model.generate(**inputs, max_new_tokens=max_new_tokens, do_sample=False)
    generated_ids = [output_ids[len(input_ids):] for input_ids, output_ids in zip(inputs.input_ids, output_ids)]
    
    output_text = processor.batch_decode(generated_ids, skip_special_tokens=True, clean_up_tokenization_spaces=True)
    return output_text[0]

image_path = "your_document.jpg"
result = ocr_page_with_nanonets_s(image_path, model, processor)
print(result)

使用vLLM加速推理

  1. 启动vLLM服务器:
vllm serve nanonets/Nanonets-OCR2-1.5B-exp
  1. 调用模型进行预测:
from openai import OpenAI
import base64

client = OpenAI(api_key="123", base_url="http://localhost:8000/v1")

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

def ocr_page_with_nanonets_s(img_base64):
    response = client.chat.completions.create(
        model="nanonets/Nanonets-OCR2-1.5B-exp",
        messages=[
            {
                "role": "user",
                "content": [
                    {
                        "type": "image_url",
                        "image_url": {"url": f"data:image/png;base64,{img_base64}"},
                    },
                    {
                        "type": "text",
                        "text": "提取文档中的文本内容...",
                    },
                ],
            }
        ],
        temperature=0.0,
        max_tokens=15000
    )
    return response.choices[0].message.content

test_img_path = "your_document.jpg"
img_base64 = encode_image(test_img_path)
print(ocr_page_with_nanonets_s(img_base64))

性能表现对比

Markdown转换准确率

模型胜率 (%)负率 (%)双方正确 (%)
Nanonets OCR2 1.5B exp13.0081.205.79
Gemini 2.5 flash34.3557.608.06
Nanonets OCR2 3B29.3754.5816.04

视觉问答性能

数据集Nanonets OCR2 1.5BNanonets OCR2 3BQwen2.5-VL-72B
ChartQA78.5679.2076.20
DocVQA89.4385.1585.51

实用技巧提升准确率

图像质量优化

  • 提高分辨率:使用300dpi以上的高质量图像
  • 增强对比度:确保文本与背景的对比度不低于5:1
  • 去模糊处理:对扫描件进行图像增强

金融文档处理

对于表格密集的金融文档,建议使用以下提示词:

user_prompt = """以自然阅读顺序提取文档文本。表格以HTML格式返回,公式以LaTeX表示。图片描述放入<img>标签,水印用<watermark>标记,页码用<page_number>标注。复选框使用☐和☑符号。"""

多语言支持能力

模型支持以下语言文档处理:

  • 主要语言:英语、中文、法语、西班牙语
  • 扩展语言:葡萄牙语、德语、意大利语、俄语
  • 亚洲语言:日语、韩语、阿拉伯语

应用场景覆盖

技术文档处理

  • 将设计稿转换为可编辑图表
  • 技术规范文档结构化
  • API文档自动格式化

商业文档分析

  • 财务报表表格提取
  • 合同文档签名识别
  • 商业计划书内容结构化

教育资料转换

  • 教材图表数字化
  • 学术论文公式识别
  • 课件内容结构化处理

该模型的开源特性使其成为开发者和研究人员的理想选择,能够轻松集成到现有的文档处理流程中,大幅提升工作效率。

【免费下载链接】Nanonets-OCR2-1.5B-exp 【免费下载链接】Nanonets-OCR2-1.5B-exp 项目地址: https://ai.gitcode.com/hf_mirrors/nanonets/Nanonets-OCR2-1.5B-exp

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值