通用 OCR 只读取形状,但国际象棋记谱需要更多信息:字母容易混淆、书写速度很快,而且最关键的是,国际象棋规则能够判断哪些解释根本不可能。这一页介绍照片和文件之间的识别过程。
为什么国际象棋手写内容是一个独立问题
涉及的字符很少,却非常容易混淆:b 和 6、Q 和 9、0 和 O、f 和 t。通用文本模型没有理由偏向其中任何一个,而着法列表中只错一个字符,就可能悄悄产生另一盘看似合理的棋。
真实记谱单还包含各种实际写法:用 dc 表示兵吃子的简写、涂改、表示“同上”的箭头、写在空白处的 ep 和 =Q,甚至偶尔把着法写错列。
棋盘局面负责消除歧义
让问题变得可处理的关键,是不把记谱单只当成文字。每识别一步,系统都会在棋盘上执行;当前局面会限制下一个记号可能代表什么。
Nbd2与Nfd2之间可能只有一个合法;如果两个都合法,记谱单确实存在歧义,系统就会标记。dc不能原样保留:根据局面,通常只有 d 线上的一个兵可以吃子,因此可以扩展为dxc5。- 写成
0-0的“王车易位”会转换为O-O,因为两个数字零不是标准着法。 - 完全不可能发生的着法——例如马无法到达目标格,或吃掉一个不存在的棋子——会被高亮,而不是写入你的对局。
最后一点最重要:产生非法着法的误读会主动暴露自己。 你只需检查少量高亮项,不必对照一张自己也未必能看懂的纸逐步校对四十回合。
哪些情况仍然需要你判断
规则无法解决两类问题:
合法的误读。 如果 Nbd2 和 Nfd2 都合法,仅靠验证无法知道当时真正走了哪一个。这类内容会被标为有歧义。
原始记谱本身错误。 如果记录者漏写一步,从那里开始整盘棋都会偏离。验证能标出偏离,却无法知道最初原因;修正时需要回到当时局面,或查看对手的记谱单。
点击每步旁的铅笔按钮即可编辑,而且不消耗积分:只有识别本身使用积分。
支持的记谱方式
系统主要支持 FIDE 要求的标准代数记谱法(SAN):棋子字母 KQRBN、兵不写字母、x 表示吃子、O-O 与 O-O-O、+ 与 #、=Q 表示升变,以及用纵线或横线消除歧义。需要复习时,请看国际象棋记谱法详解和7 个常见记谱错误。
相关内容
- 照片转 PGN——为这一步提供输入的拍摄方法
- 国际象棋 PGN 转换器——识别完成后输出什么
- 把国际象棋记谱单转换为 PGN——完整流程

