ocr-super-surya

aktsmm/agent-skills · updated Apr 8, 2026

$npx skills add https://github.com/aktsmm/agent-skills --skill ocr-super-surya
0 commentsdiscussion
summary

GPU-optimized OCR using Surya.

skill.md

OCR Super Surya

GPU-optimized OCR using Surya.

When to Use

  • OCR, extract text from image, text recognition, 画像から文字
  • Extracting text from screenshots, photos, or scanned images
  • Processing PDFs with embedded images
  • Multi-language document OCR (90+ languages including Japanese)

Features

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

Quick Start

Installation

# 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

Windows + uv 環境(OneDrive配下でのインストール)

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

Usage

# 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

Python API

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 引数が削除(自動検出に変更)

GPU Configuration

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

Scripts

Script Description
scripts/ocr_helper.py Helper with OOM auto-retry, batch support

Troubleshooting

エラー 原因 対処
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') を先頭に追加

License Note

  • Surya: GPL-3.0 (code), commercial license required for >$2M revenue

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.769 reviews
  • Noor Abebe· Dec 28, 2024

    ocr-super-surya fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Michael Desai· Dec 16, 2024

    We added ocr-super-surya from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Chen Choi· Dec 4, 2024

    ocr-super-surya has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Liam Kim· Nov 27, 2024

    ocr-super-surya reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Rahul Santra· Nov 23, 2024

    Registry listing for ocr-super-surya matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Sofia Reddy· Nov 23, 2024

    ocr-super-surya fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Valentina Torres· Nov 19, 2024

    ocr-super-surya has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Ishan Harris· Nov 7, 2024

    ocr-super-surya reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Ama Malhotra· Nov 7, 2024

    Solid pick for teams standardizing on skills: ocr-super-surya is focused, and the summary matches what you get after install.

  • Arya Bhatia· Nov 3, 2024

    Registry listing for ocr-super-surya matched our evaluation — installs cleanly and behaves as described in the markdown.

showing 1-10 of 69

1 / 7