扫描国际象棋记谱:手写内容如何变成 SAN

    了解 ScanChess 如何读取手写国际象棋记谱,包括 dc 等简写、容易混淆的字母、描述式记谱法,以及为何每一步都要根据局面验证。

    扫描国际象棋记谱:手写内容如何变成 SAN的 ScanChess 工作流

    通用 OCR 只读取形状,但国际象棋记谱需要更多信息:字母容易混淆、书写速度很快,而且最关键的是,国际象棋规则能够判断哪些解释根本不可能。这一页介绍照片和文件之间的识别过程。

    为什么国际象棋手写内容是一个独立问题

    涉及的字符很少,却非常容易混淆:b6Q90Oft。通用文本模型没有理由偏向其中任何一个,而着法列表中只错一个字符,就可能悄悄产生另一盘看似合理的棋。

    真实记谱单还包含各种实际写法:用 dc 表示兵吃子的简写、涂改、表示“同上”的箭头、写在空白处的 ep=Q,甚至偶尔把着法写错列。

    棋盘局面负责消除歧义

    让问题变得可处理的关键,是不把记谱单只当成文字。每识别一步,系统都会在棋盘上执行;当前局面会限制下一个记号可能代表什么。

    • Nbd2Nfd2 之间可能只有一个合法;如果两个都合法,记谱单确实存在歧义,系统就会标记。
    • dc 不能原样保留:根据局面,通常只有 d 线上的一个兵可以吃子,因此可以扩展为 dxc5
    • 写成 0-0 的“王车易位”会转换为 O-O,因为两个数字零不是标准着法。
    • 完全不可能发生的着法——例如马无法到达目标格,或吃掉一个不存在的棋子——会被高亮,而不是写入你的对局。

    最后一点最重要:产生非法着法的误读会主动暴露自己。 你只需检查少量高亮项,不必对照一张自己也未必能看懂的纸逐步校对四十回合。

    哪些情况仍然需要你判断

    规则无法解决两类问题:

    合法的误读。 如果 Nbd2Nfd2 都合法,仅靠验证无法知道当时真正走了哪一个。这类内容会被标为有歧义。

    原始记谱本身错误。 如果记录者漏写一步,从那里开始整盘棋都会偏离。验证能标出偏离,却无法知道最初原因;修正时需要回到当时局面,或查看对手的记谱单。

    点击每步旁的铅笔按钮即可编辑,而且不消耗积分:只有识别本身使用积分。

    支持的记谱方式

    系统主要支持 FIDE 要求的标准代数记谱法(SAN):棋子字母 KQRBN、兵不写字母、x 表示吃子、O-OO-O-O+#=Q 表示升变,以及用纵线或横线消除歧义。需要复习时,请看国际象棋记谱法详解7 个常见记谱错误

    相关内容

    常见问题

    系统能理解简写吗?
    可以。系统会根据棋盘局面,把代表兵吃子的 dc 等形式扩展为 dxc5 这样的标准 SAN。
    旧式描述记谱法怎么办?
    P-K4 这类记谱法不是主要支持目标,但合法性检查仍能发现多数误读,因此可以处理旧记谱单,只是需要更多人工检查。
    系统怎样发现误读?
    每一步在识别时都会在棋盘上实际执行。当前局面中不可能发生的着法会被标记,而不会直接接受。
    扫描记谱单

    注册即送 10 个免费积分。大量使用见 定价

    ScanChess 的其他用法