---
license: cc-by-sa-4.0
language:
- zh
tags:
- image-classification
- chinese-calligraphy
- ocr
- character-recognition
- onnx
pipeline_tag: image-classification
---

# 看帖识字 Kantie Shizi v1

**看帖识字**是一个书法单字识别模型：给它一张切好的单字图，它说出这是哪个字。认得 **4,167 个字种**，楷、行楷、行、草、隶都能认。模型从零训练，只有 **496 万参数、20 MB**，网页和手机上都能跑。

训练材料全部是国立故宫博物院（台北）以 CC BY 4.0 开放的书法真迹，1,731 件作品、26.7 万个字；其中 1,385 件、21.4 万字用于训练，346 件留出不训练、专门测评。没有用任何字体，没有用任何第三方预训练模型，也没有用任何大模型的输出。我们称之为「开放文化授权模型·全程」：从数据到权重，每一步都可查、都有授权依据。

*Kantie Shizi* ("read the model sheet, know the character") recognises a single cropped calligraphy character among **4,167 character types** across regular, semi-cursive, running, cursive and clerical scripts. It is a **4.96 M-parameter CNN trained from scratch (20 MB)** on 213,753 character images from 1,385 authentic works released by the National Palace Museum, Taipei under CC BY 4.0; a further 346 works (53,349 characters) were held out for evaluation. No fonts, no pretrained backbone and no output of any other model were used.

## 成绩 Results

### 没见过的书家 Unseen calligraphers

500 个单字，出自 **61 位训练集里从未出现的书家**（82 件作品），按书体分层抽取（种子 20261104）。各家都只看单字图、只答一个字，答案按繁简归一后比对。题目见 `eval_unseen_authors_500.json`，各家逐题成绩汇总见 `eval_results.json`。

| 模型 Model | 全部 All | 楷 | 行楷 | 行 | 草 | 隶 |
|---|---|---|---|---|---|---|
| **看帖识字 v1** | **94.0** | 96.7 | 98.8 | 95.8 | 82.0 | 98.0 |
| PaddleOCR PP-OCRv5（专门 OCR） | 86.4 | 93.3 | 88.8 | 92.5 | 62.0 | 96.0 |
| Qwen3.8-Max-Prime | 85.8 | 94.7 | 88.8 | 85.8 | 64.0 | 98.0 |
| Qwen3.6-35B-A3B（本地 4 位量化） | 84.8 | 94.7 | 86.2 | 86.7 | 63.0 | 92.0 |
| Kimi K3.1 Pro | 84.0 | 92.0 | 90.0 | 87.5 | 55.0 | 100 |
| Gemini 4 Argon | 82.8 | 96.0 | 85.0 | 76.7 | 63.0 | 94.0 |
| Claude Fable 5.1 | 80.0 | 92.7 | 88.8 | 75.0 | 53.0 | 94.0 |
| GPT-6 Astra | 76.4 | 90.0 | 80.0 | 73.3 | 49.0 | 92.0 |
| DeepSeek-OCR-2（专门 OCR） | 15.4 | 22.0 | 13.8 | 8.3 | 7.0 | 32.0 |

题数：楷 150、行楷 80、行 120、草 100、隶 50。测于 2026-11-04；大模型思考档位均设为低。DeepSeek-OCR-2 是整页文档模型，单字图会被它当成公式或表格，表中是把字放在 1024 像素白纸正中后的成绩（直接给单字图只有 1%）。只比我们模型认得的字种，超出 4,167 字种的字它答不出，这是本测法对我们有利的地方。

### 留出作品 Held-out works

按作品留出 20%（346 件作品、52,882 字）：首选对 95.9%，前五有 98.5%（楷 96.2、行楷 96.4、行 96.3、草 93.1）。这些字和训练字一样经过同一套对齐流程筛选，偏易认，数字偏乐观。

### 人工抽查 Human spot check

从模型重新对齐后判为可信的 33 万字里，按书体分层随机抽 210 字，由人逐张核对：**认字 0 错**（95% 置信上限约 1.8%）。字框有 13 处毛病（框进邻字笔画 9、切掉笔画 4），这是切字流程的问题，与认字无关。

## 怎么用 Usage

```python
from kantie import Kantie          # kantie.py 与 classes.json、kantie_v1.onnx 放在同一目录
k = Kantie()                         # 默认用 ONNX（onnxruntime）；Kantie(backend='torch') 用 safetensors 权重
print(k.predict('一个字.png', topk=5))
# [('書', 0.93), ('晝', 0.02), ...]
```

- 输入：**一个字**的图，彩色、灰度、任意尺寸都行，四周留一点空白最好。整页或一行字要先切成单字。
- 预处理（`kantie.py` 已含）：取四边纸色补成正方形 → 224 双三次缩放 → 灰度 → 64×64 → 每图减均值除标准差。
- 输出：4,167 个字种的概率，字按馆方釋文写法（繁体、异体照录）。
- ONNX 输入名 `image`，形状 `[N, 1, 64, 64]`，输出 `logits` `[N, 4167]`，浏览器里可用 onnxruntime-web 直接跑。

## 怎么训出来的 How it was built

1. **切字**：从台北故宫开放资料里有釋文的 2,265 件书法作品出发，用规则切出版面与字列（去掉馆方标签、色卡、页码），再用动态规划把釋文逐字对到字框上。
2. **v0**：先用规则对得最稳的 2.6 万字从零训一个小网络（留出作品首选对 72%）。
3. **重新对齐**：用 v0 的识字概率再做一遍动态规划，把框序和釋文字序重新对上；框上的字在模型前三名里、几何也正常，才算可信。可信字从约一成升到约三成。
4. **v1**：可信字共 1,731 件作品、267,102 字（640 位书家）。按作品留出 346 件做测评，用其余 1,385 件作品的 213,753 字训练本模型。四层卷积（64/128/256/384 通道），随机仿射增强，标签平滑 0.1，AdamW、OneCycle 学习率 3e-3，60 轮，批大小 512，单机 DGX Spark 约 5 小时。本发布件就是上面测评用的那一个模型（训练时留出 346 件作品）。

书体分布（训练材料）：楷 14.1 万、行 7.2 万、行楷 2.5 万、草 2.2 万、隶篆等约 5 千。

## 训练材料 Training material

| 项目 | 内容 |
|---|---|
| 来源 | 国立故宫博物院（台北）Open Data，600 万像素中阶图档与网站文字（含釋文）|
| 授权 | CC BY 4.0（该院「網站資料開放宣告」：中階圖檔及本網站文字均以 CC BY 4.0 姓名標示規範）|
| 规模 | 1,731 件作品，267,102 个单字图，4,510 个字种；其中训练 1,385 件、213,753 字、4,167 个字种，留出测评 346 件 |
| 标签 | 馆方釋文，经我们的切字与对齐流程逐字落到字框上；不用任何字体、合成图或大模型输出 |
| 清单 | `training_works.csv`：每件作品的编号、品名、书家、书体、所用字数、训练或留出、馆方署名与原页地址 |

每件作品的署名格式：「品名 國立故宮博物院，臺北，CC BY 4.0 @ www.npm.gov.tw」，已逐件写在清单里。本模型不代表国立故宫博物院出品或认可，不含该院商标。

## 已知局限 Limitations

- 只认**切好的单字**，不会自己在整页里找字。
- **专认毛笔书法**：不适合印刷体（尤其宋体、明体）和硬笔手写，这类请用通用 OCR。实测 500 个常见字：楷体字体 96.8%、黑体 85.8%、宋体 63.8%、明体 59.0%；CASIA-HWDB1.1 硬笔手写 600 字仅 26.7%（通用 OCR 与大模型约 80–100%）。Specialised for brush calligraphy; use a general OCR for printed text (especially Song/Ming typefaces) and pen handwriting.
- 只认训练里出现过的 4,167 个字种；生僻字、只出现一两次的字认不了。
- **草书最弱**：没见过的书家，草书首选对 82%（留出作品 93%）。书家个人写法差别大的字容易错。
- 篆书、隶书样本少（合计约 5 千字），成绩的置信区间较宽。
- 训练字是对齐流程筛过的「可信字」，偏规整；残损、模糊、极小的字会更难。
- 训练材料全部来自台北故宫，以明清书家为主，唐宋以前样本较少。

## 文件 Files

| 文件 | 说明 |
|---|---|
| `kantie_v1.onnx` | 推理模型（ONNX，fp32，20 MB）|
| `kantie_v1.safetensors` | 权重（PyTorch）|
| `classes.json` | 4,167 个字种，顺序即输出下标 |
| `kantie.py` | 预处理与推理代码 |
| `training_works.csv` | 训练材料清单与逐件署名 |
| `eval_unseen_authors_500.json` | 没见过的书家 500 字题目 |
| `eval_results.json` | 各家成绩 |
| `README.md` | 本说明 |

## 许可与署名 License & attribution

本模型（权重、代码、清单）以 **CC BY-SA 4.0** 发布：可以使用、改造、再发布、商用；须署名「看帖识字 Kantie Shizi v1 (SVOIC, CC BY-SA 4.0)」，改造后须以同一许可发布。训练材料的署名要求见上。

硅谷开放智能与文化基金会（SVOIC）· 硅谷诗韵中心 · 2026 年 11 月
