Surya - 多语言文档OCR工具包

Surya - 多语言文档OCR工具包

【免费下载链接】surya OCR, layout analysis, and line detection in 90+ languages 【免费下载链接】surya 项目地址: https://gitcode.com/GitHub_Trending/su/surya

功能特性

  • ✅ 90+语言OCR识别
  • ✅ 行级文本检测
  • ✅ 文档布局分析
  • ✅ 表格识别与提取
  • ✅ LaTeX数学公式OCR
  • ✅ 阅读顺序检测

快速开始

安装

pip install surya-ocr

基本使用

from surya.detection import DetectionPredictor
from surya.recognition import RecognitionPredictor

# 文本检测
det_predictor = DetectionPredictor()
predictions = det_predictor([image])

# 文本识别
rec_predictor = RecognitionPredictor()
ocr_results = rec_predictor([image])

性能基准

任务准确率速度(页/秒)
文本检测96%10.6
文本识别97%8.2
布局分析94%12.1

## 技术文档内容指南

### 1. 安装配置文档

**必备内容:**
- 系统要求(Python版本、硬件要求)
- 依赖项列表
- 安装命令(pip、conda、源码)
- 环境变量配置
- 模型权重下载说明

**示例配置表格:**

| 环境变量 | 默认值 | 描述 |
|---------|--------|------|
| TORCH_DEVICE | auto | PyTorch设备选择 |
| DETECTOR_BATCH_SIZE | 32 | 检测批处理大小 |
| RECOGNITION_BATCH_SIZE | 256 | 识别批处理大小 |
| IMAGE_DPI | 96 | 图像处理DPI |

### 2. API文档编写规范

**类和方法文档模板:**

```python
class DetectionPredictor:
    """
    文本检测预测器
    
    参数:
        checkpoint (str, optional): 模型检查点路径
        device (str, optional): 计算设备
        dtype (torch.dtype, optional): 数据类型
    
    示例:
        >>> predictor = DetectionPredictor()
        >>> results = predictor([image1, image2])
    """
    
    def __call__(self, images: List[Image.Image]) -> List[TextDetectionResult]:
        """
        执行文本检测
        
        参数:
            images: PIL图像列表
            
        返回:
            List[TextDetectionResult]: 检测结果列表
            
        异常:
            ValueError: 输入图像无效时抛出
        """

3. 示例代码文档

多语言OCR示例:

# 多语言文档处理示例
from surya.recognition import RecognitionPredictor
from surya.detection import DetectionPredictor
from PIL import Image

# 初始化预测器
detector = DetectionPredictor()
recognizer = RecognitionPredictor()

# 处理多语言文档
images = [Image.open("document.jpg")]
detections = detector(images)
ocr_results = recognizer(images, det_predictor=detector)

# 输出结果处理
for page_idx, result in enumerate(ocr_results):
    print(f"Page {page_idx + 1}:")
    for line_idx, line in enumerate(result.text_lines):
        print(f"  Line {line_idx + 1}: {line.text} (conf: {line.confidence:.2f})")

4. 性能优化文档

GPU内存优化配置:

import os
os.environ["DETECTOR_BATCH_SIZE"] = "16"    # 减少检测批大小
os.environ["RECOGNITION_BATCH_SIZE"] = "128" # 减少识别批大小
os.environ["TORCH_DEVICE"] = "cuda"         # 使用GPU

# VRAM使用估算表
| 任务 | 批大小 | 预估VRAM | 速度 |
|------|--------|----------|------|
| 检测 | 16 | 8GB | 快速 |
| 识别 | 128 | 12GB | 极快 |
| 布局 | 32 | 6GB | 快速 |

文档质量保证

1. 代码示例验证清单

  •  所有代码示例可执行
  •  导入语句完整正确
  •  变量命名符合PEP8
  •  异常处理完备
  •  性能参数标注清晰

2. 文档更新流程

flowchart TD
    A[代码变更] --> B[文档更新需求]
    B --> C{文档类型}
    C --> D[API文档]
    C --> E[示例文档]
    C --> F[配置文档]
    
    D --> G[更新方法签名]
    E --> H[更新代码示例]
    F --> I[更新配置说明]
    
    G --> J[文档验证]
    H --> J
    I --> J
    
    J --> K[发布文档]

【免费下载链接】surya OCR, layout analysis, and line detection in 90+ languages 【免费下载链接】surya 项目地址: https://gitcode.com/GitHub_Trending/su/surya

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

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

抵扣说明:

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

余额充值