ocr-super-surya by aktsmm/agent-skills
npx skills add https://github.com/aktsmm/agent-skills --skill ocr-super-surya使用 Surya 进行 GPU 优化的 OCR。
| 功能 | 描述 |
|---|---|
| 准确度 | 比 Tesseract 好 2 倍(0.97 对比 0.88) |
| GPU | 基于 PyTorch,CUDA 优化 |
| 语言 | 90 多种,包括中日韩语言 |
| 布局 | 文档布局、表格识别 |
# 1. 检查 GPU
python -c "import torch; print(f'CUDA: {torch.cuda.is_available()}')"
# 2. 安装(如果 GPU 可用,则使用 CUDA)
pip install surya-ocr
# 如果 CUDA=False 但你有 GPU,重新安装 PyTorch:
pip uninstall torch torchvision torchaudio -y
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
在 OneDrive 目录下,uv 的硬链接会失败,请使用以下步骤:
# 将缓存目录设置在 OneDrive 之外
$env:UV_CACHE_DIR = "C:\Temp\uv_cache"
# 在 OneDrive 之外创建虚拟环境
uv venv C:\Users\<USERNAME>\ocr_env --python 3.12
# 安装 surya-ocr(使用 link-mode=copy 避免硬链接)
uv pip install surya-ocr --python C:\Users\<USERNAME>\ocr_env\Scripts\python.exe --link-mode=copy
# transformers 5.x 不兼容 -> 强制使用 4.x
uv pip install "transformers<5.0" --python C:\Users\<USERNAME>\ocr_env\Scripts\python.exe --link-mode=copy
# CLI
python scripts/ocr_helper.py image.png
python scripts/ocr_helper.py document.pdf -l ja en -o result.txt
# 或者直接使用 surya
surya_ocr image.png --output_dir ./results
import sys, io
# Windows CP932 编码错误对策
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
from PIL import Image
from surya.recognition import RecognitionPredictor
from surya.detection import DetectionPredictor
from surya.foundation import FoundationPredictor
image = Image.open("document.png").convert("RGB")
found_pred = FoundationPredictor()
rec_pred = RecognitionPredictor(found_pred) # v0.13+ : FoundationPredictor 必需
det_pred = DetectionPredictor()
# v0.17.x 及以后: langs 参数已废弃 -> 不要传递
for page in rec_pred([image], det_predictor=det_pred):
for line in page.text_lines:
if line.text.strip():
print(line.text)
API 变更历史 (v0.17.x) :
RecognitionPredictor(foundation_predictor)-FoundationPredictor变为必需参数__call__()中的langs参数被移除(改为自动检测)
| 变量 | 默认值 | 描述 |
|---|---|---|
RECOGNITION_BATCH_SIZE | 512 | 减少此值以降低 VRAM 使用 |
DETECTOR_BATCH_SIZE | 36 | 如果内存不足 (OOM) 则减少此值 |
export RECOGNITION_BATCH_SIZE=256
surya_ocr image.png
| 脚本 | 描述 |
|---|---|
scripts/ocr_helper.py | 辅助脚本,支持 OOM 自动重试、批处理 |
| 错误 | 原因 | 解决方法 |
|---|---|---|
RecognitionPredictor.__init__() missing 1 required positional argument: 'foundation_predictor' | v0.13+ 中 API 变更 | 创建 found_pred = FoundationPredictor() 并作为参数传入 |
TypeError: __call__() got an unexpected keyword argument 'langs' | v0.17.x 中 langs 参数废弃 | 移除 langs 参数 |
AttributeError: 'SuryaDecoderConfig' object has no attribute 'pad_token_id' | 与 transformers 5.x 不兼容 | 使用 pip install "transformers<5.0" 降级 |
failed to hardlink file ... OneDrive (uv, os error 396) | OneDrive 的硬链接限制 | 安装时添加 --link-mode=copy 并将 UV_CACHE_DIR 设置在 OneDrive 之外 |
UnicodeEncodeError: 'cp932' codec can't encode character | Windows 默认的 CP932 编码 | 在代码开头添加 sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') |
每周安装量
195
代码仓库
GitHub Stars
9
首次出现
Jan 24, 2026
安全审计
安装于
opencode158
gemini-cli147
codex145
openclaw141
cursor140
github-copilot133
GPU-optimized OCR using Surya.
| Feature | Description |
|---|---|
| Accuracy | 2x better than Tesseract (0.97 vs 0.88) |
| GPU | PyTorch-based, CUDA optimized |
| Languages | 90+ including CJK |
| Layout | Document layout, table recognition |
# 1. Check GPU
python -c "import torch; print(f'CUDA: {torch.cuda.is_available()}')"
# 2. Install (with CUDA if GPU available)
pip install surya-ocr
# If CUDA=False but you have GPU, reinstall PyTorch:
pip uninstall torch torchvision torchaudio -y
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
OneDrive 配下のフォルダでは uv のハードリンクが失敗するため、以下の手順を使う:
# キャッシュをOneDrive外に設定
$env:UV_CACHE_DIR = "C:\Temp\uv_cache"
# 仮想環境をOneDrive外に作成
uv venv C:\Users\<USERNAME>\ocr_env --python 3.12
# surya-ocrをインストール(link-mode=copy でハードリンクを回避)
uv pip install surya-ocr --python C:\Users\<USERNAME>\ocr_env\Scripts\python.exe --link-mode=copy
# transformers 5.x は非互換 → 4.x を強制
uv pip install "transformers<5.0" --python C:\Users\<USERNAME>\ocr_env\Scripts\python.exe --link-mode=copy
# CLI
python scripts/ocr_helper.py image.png
python scripts/ocr_helper.py document.pdf -l ja en -o result.txt
# Or use surya directly
surya_ocr image.png --output_dir ./results
import sys, io
# Windows CP932エンコードエラー対策
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
from PIL import Image
from surya.recognition import RecognitionPredictor
from surya.detection import DetectionPredictor
from surya.foundation import FoundationPredictor
image = Image.open("document.png").convert("RGB")
found_pred = FoundationPredictor()
rec_pred = RecognitionPredictor(found_pred) # v0.13+ : FoundationPredictor必須
det_pred = DetectionPredictor()
# v0.17.x以降: langs引数は廃止 → 渡さないこと
for page in rec_pred([image], det_predictor=det_pred):
for line in page.text_lines:
if line.text.strip():
print(line.text)
API変更履歴 (v0.17.x) :
RecognitionPredictor(foundation_predictor)-FoundationPredictorが必須引数に変更__call__()からlangs引数が削除(自動検出に変更)
| Variable | Default | Description |
|---|---|---|
RECOGNITION_BATCH_SIZE | 512 | Reduce for lower VRAM |
DETECTOR_BATCH_SIZE | 36 | Reduce if OOM |
export RECOGNITION_BATCH_SIZE=256
surya_ocr image.png
| Script | Description |
|---|---|
scripts/ocr_helper.py | Helper with OOM auto-retry, batch support |
| エラー | 原因 | 対処 |
|---|---|---|
RecognitionPredictor.__init__() missing 1 required positional argument: 'foundation_predictor' | v0.13+ でAPIが変更 | found_pred = FoundationPredictor() を作成して引数に渡す |
TypeError: __call__() got an unexpected keyword argument 'langs' | v0.17.x で langs 引数廃止 | langs 引数を削除する |
AttributeError: 'SuryaDecoderConfig' object has no attribute 'pad_token_id' |
Weekly Installs
195
Repository
GitHub Stars
9
First Seen
Jan 24, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode158
gemini-cli147
codex145
openclaw141
cursor140
github-copilot133
AI Elements:基于shadcn/ui的AI原生应用组件库,快速构建对话界面
56,200 周安装
transformers 5.x との非互換 |
pip install "transformers<5.0" でダウングレード |
failed to hardlink file ... OneDrive (uv, os error 396) | OneDrive のハードリンク制限 | --link-mode=copy を付けてインストール+UV_CACHE_DIR をOneDrive外に設定 |
UnicodeEncodeError: 'cp932' codec can't encode character | Windows のCP932デフォルトエンコード | sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') を先頭に追加 |