yingfengli

Ocr Benchmark

开发编程v2.0.0
作者:yingfengli更新于 2026-05-11共 2 个版本 · 最新版本发布于 2026-03-15ocr-benchmark@clawhub_yingfengli/ocr-benchmark
测试生成脚本工具#OCR

据 AlphaMoat 统计,截至 2026-09,Ocr Benchmark 累计下载 1,614 次、获 1 个星标,在全部 5,078 个 AI 技能中排名第 4,695 位,在「开发编程」分类(577 个)中排名第 554 位。

累计安装
337
累计下载
1,614
星标
1
全站排名
#4,695
全站前 93% · 「开发编程」前 97%
平台累计安装累计下载星标评论
ClawHub ↗20847--
SkillHub ↗3371,6141—

各平台的计数口径不同,统计时间不一致。

这个技能是做什么的

对本地图片路径运行选定 Bedrock、Gemini 及可选 PaddleOCR,保存逐图 JSON、评分行匹配并可生成演示报告。需供应商凭据和获准的图片分享。必须使用人工核验的真值;示例排名与文档评分版本不代表普遍准确率保证。

资料发布于 2026-10-27

可以用来做什么

  • 评估限定图片集的 OCR

什么时候用

  • 需要对照已核验文字比较模型输出时

示例提示词

以下是根据技能文档生成的示例,不代表实际运行结果。

用人工核验真值比较这组获准图片,报告漏行和多出行。

月度数据趋势

累计下载1,614
4751,0871,6982026-03 · 累计下载 5592026-05 · 累计下载 8722026-06 · 累计下载 9732026-07 · 累计下载 6912026-08 · 累计下载 1,2412026-09 · 累计下载 1,61426-0326-09
星标1
0112026-03 · 星标 -2026-05 · 星标 12026-06 · 星标 12026-07 · 星标 -2026-08 · 星标 12026-09 · 星标 126-0326-09

2026-09 起统计方法调整:同名技能按作者分别统计,并覆盖全部技能。图中虚线为调整前的月份,与之后的数据不直接比较,也不计算跨越调整的增长。

月份累计下载环比星标
2026-091,614—1
2026-081,241+79.6%1
2026-07691-29.0%-
2026-06973+11.6%1
2026-05872—1
2026-03559—-

SKILL.md 原文

以下是作者发布的原始文件,按纯文本显示,本站未做修改或审核;其中的链接不可点击,命令请核实后再运行。抓取于 2026-10-23。

7.3 KB · ClawHub v2.0.0
---
name: ocr-benchmark
version: 2.0.0
description: Multi-model OCR benchmark and comparison tool. Run OCR on images using Claude (Opus/Sonnet/Haiku via Bedrock), Gemini (Pro/Flash via Google AI Studio), and PaddleOCR (optional). Compare accuracy against human-verified ground truth with fuzzy line-level scoring, generate ranked terminal reports and PPT exports. Use when user wants to (1) benchmark OCR across models, (2) compare OCR accuracy/cost/speed, (3) test a new model on existing images, (4) generate OCR comparison reports, (5) evaluate OCR quality for Chinese/English product packaging or documents.
---

# OCR Benchmark v2.0.0

Multi-model OCR accuracy comparison with **fuzzy line-level scoring**, cost tracking, and PPT report generation.
展开全部(共 209 行)
## Setup

### 1. Install dependencies
```bash
cd ~/.openclaw/workspace/skills/ocr-benchmark/ocr-benchmark
pip install -r requirements.txt
```

### 2. Configure environment variables

Set the variables for the providers you want to use:

```bash
# Bedrock (Claude models) — uses your existing AWS credentials
export AWS_REGION=us-west-2          # or your preferred region

# Gemini (Google AI Studio)
export GOOGLE_API_KEY=your_key_here

# PaddleOCR — OPTIONAL, skip if not available
export PADDLEOCR_ENDPOINT=https://your-paddle-endpoint
export PADDLEOCR_TOKEN=your_token    # optional auth token
```

> **Note on PaddleOCR:** This provider requires an external API endpoint.
> If `PADDLEOCR_ENDPOINT` is not set, it is **automatically skipped** — no error.
> If you don't have a PaddleOCR endpoint, simply don't set the env var.

### 3. Prepare images

Place your images locally (`.jpg`, `.png`, `.webp`). There is no automatic image download — provide local file paths on the command line.

---

## Quick Start

### Run benchmark on images
```bash
python3 scripts/run_benchmark.py \
  --images img1.jpg img2.jpg img3.jpg \
  --output-dir ./results \
  --ground-truth ground_truth.json
```

### Skip models with missing credentials (no error, just skips)
```bash
python3 scripts/run_benchmark.py \
  --images img1.jpg \
  --auto-skip \
  --output-dir ./results
```

### Run only specific models
```bash
python3 scripts/run_benchmark.py \
  --images img1.jpg \
  --models opus sonnet gemini3pro \
  --output-dir ./results \
  --ground-truth ground_truth.json
```

### Score-only mode (re-score without re-running OCR)
```bash
python3 scripts/run_benchmark.py \
  --score-only \
  --output-dir ./results \
  --ground-truth ground_truth.json
```

### Generate PPT report from scored results
```bash
python3 scripts/make_report.py \
  --results-dir ./results \
  --images img1.jpg img2.jpg img3.jpg \
  --scores ./results/scores.json \
  --output report.pptx
```

---

## Workflow

1. **Prepare images** — collect your `.jpg` / `.png` files locally
2. **Run benchmark** — `run_benchmark.py` calls each model, saves `{image}.{model}.json`
3. **Create ground truth** — see `references/ground-truth-format.md` for format
4. **Score** — run with `--ground-truth` to produce `scores.json` and a terminal table
5. **Report** — `make_report.py` generates a shareable `.pptx`

---

## Environment Variables

| Variable | Provider | Required? | Description |
|----------|----------|-----------|-------------|
| `AWS_REGION` | Bedrock | Optional | Default: `us-west-2` |
| `GOOGLE_API_KEY` | Gemini | **Yes** | Google AI Studio API key |
| `PADDLEOCR_ENDPOINT` | PaddleOCR | Optional | Endpoint URL; **auto-skipped if unset** |
| `PADDLEOCR_TOKEN` | PaddleOCR | Optional | Auth token for PaddleOCR |

**Missing variables:** If a model's required env var is missing, it is automatically skipped with a warning. Use `--auto-skip` for completely silent skipping.

---

## Available Models

See `references/models.md` for full model IDs, pricing, and provider notes.

| Key | Label | Provider |
|-----|-------|----------|
| `opus` | Claude Opus 4.6 | Bedrock |
| `sonnet` | Claude Sonnet 4.6 | Bedrock |
| `haiku` | Claude Haiku 4.5 | Bedrock |
| `gemini3pro` | Gemini 3.1 Pro | Google AI Studio |
| `gemini3flash` | Gemini 3.1 Flash-Lite | Google AI Studio |
| `paddleocr` | PaddleOCR | External endpoint |

---

## Scoring Logic (v2)

Scoring uses **fuzzy line-level matching** with Levenshtein edit distance (pure Python stdlib, no extra dependencies).

For each ground truth line, the best-matching model output line is found and classified:

| Type | Condition | Score |
|------|-----------|-------|
| **EXACT** | Identical after normalization | 1.0 |
| **CLOSE** | Edit distance < 20% of length (punctuation/apostrophe diffs) | 0.8 |
| **PARTIAL** | Edit distance < 50% of length (real errors but mostly correct) | 0.5 |
| **MISS** | No matching line found | 0.0 |

Additionally, **EXTRA** lines are detected: model output lines that don't correspond to any ground truth line.

Normalization strips: whitespace, apostrophes/quotes (`'`, `'`, `` ` ``), common punctuation (`*`, `✓`, `,`, `、`, `:`, `()`, `【】` etc.), then lowercases.

### Example terminal output
```
========================================================================
  OCR BENCHMARK RESULTS
========================================================================
  #    Model                        Score  Details
------------------------------------------------------------------------
  🥇   Gemini 3.1 Pro               98.7%  Image001: 99% | Image002: 98%
  🥈   Claude Opus 4.6              88.3%  Image001: 90% | Image002: 87%
  🥉   Claude Sonnet 4.6            85.1%  Image001: 86% | Image002: 84%
  4.   Gemini 3.1 Flash-Lite        82.0%  ...
========================================================================

  📄 Image001
  ──────────────────────────────────────────────────────────────────────
  ┌─ Claude Opus 4.6 (90.0%)
  │  ✅ EXACT   │ 小胡鸭
  │  🟡 CLOSE   │ GT: Sam's Coffee
  │             │ Got: Sams Coffee  [dist=2]
  │  🟠 PARTIAL │ GT: 浓郁香气
  │             │ Got: 浓都香气  [dist=1]
  │  ❌ MISS    │ GT: 净含量580克
  │  ⚠️  EXTRA lines (1):
  │     + "Product of China"
  └──────────────────────────────────────────────────────────────────────
```

---

## Output Files

Each OCR run produces `{image}.{model}.json`:
```json
{
  "text_extracted": ["line1", "line2", ...],
  "brand": "...",
  "product_name": "...",
  "net_weight": "...",
  "ingredients": ["..."],
  "other_fields": {},
  "model": "Claude Opus 4.6",
  "model_key": "opus",
  "latency_seconds": 23.5,
  "input_tokens": 800,
  "output_tokens": 500
}
```

Scoring produces `scores.json` with per-image, per-line, per-model results.

---

## Key Findings (2026-03, product packaging)

Human-verified ranking:
- **Gemini 3.1 Pro** (98.7%) — Best accuracy, ~$0.006/image
- **Claude Opus 4.6** (92.3%) — High accuracy; occasional missed details
- **Gemini 3.1 Flash** (89.7%) — Best speed/cost ratio, 9.7s
- **Claude Sonnet 4.6** (88.5%) — Stable structured output
- **PaddleOCR** (67.9%) — Free, character errors on packaging
- **Claude Haiku 4.5** (42.3%) — Poor Chinese OCR

**Lesson:** Never assume any model is ground truth. Human verification is essential.

「开发编程」分类下的热门技能

数据月份:2026-09 · 下载/星标/安装数聚合自公开技能注册库(ClawHub、SkillHub),按月更新。口径说明见数据方法。