はじめに

古典籍に書かれたくずし字(変体仮名・草書体の漢字)を読むのは、専門家でも容易ではありません。近年はAI-OCRによって機械的な認識が可能になってきましたが、調査した限り、スマートフォンでオフライン利用できるツールは見当たりませんでした。

KotenOCRは、国立国会図書館(NDL)が公開した軽量くずし字OCRモデル「NDL古典籍OCR-Lite」をiOS上で動作させ、写真を撮るだけでくずし字を認識できるアプリです。

App Store(無料): https://apps.apple.com/jp/app/kotenocr/id6760045646

App Storeのスクリーンショット

背景:既存ツールの状況

NDLが「NDL古典籍OCR-Lite」を公開したことで、くずし字OCRの敷居は下がりました。既存ツールを見渡すと以下のような状況でした。

ツール形態インターネット接続
NDL古典籍OCR-Liteデスクトップ / Web / CLI不要(デスクトップ版)
miwo(CODH)モバイルアプリ必要
古文書カメラ(TOPPAN)モバイルアプリ必要

モバイルアプリは存在するものの、いずれもクラウド通信が必要です。一方、NDL古典籍OCR-LiteはPC環境でしか動作しません。

そこで、NDL古典籍OCR-Liteのモデルをスマートフォンに載せて、オフラインで動くiOSアプリを作ることにしました。

KotenOCRの特徴

  • 完全オフライン — すべての処理がデバイス上で完結。通信不要
  • iPhone / iPad対応 — iOS 16.0以上
  • 無料 — App Storeから無料でダウンロード可能
  • スキャン履歴 — 認識結果を保存・管理
  • TXT / PDFエクスポート — 認識テキストをファイルとして出力
  • 範囲トリミング — 認識する領域を指定可能

使い方

  1. 古典籍の写真を撮影する(またはライブラリから選択)
  2. AIがくずし字を自動認識
  3. 認識されたテキストをコピー・エクスポート

使い方

OCRパイプライン

写真からテキストが認識されるまでの処理フローは以下の通りです。

写真 → トリミング → テキスト領域検出 → 文字認識 → 読み順決定 → 表示
  • テキスト領域検出: RTMDetモデルにより、画像内の文字領域を検出
  • 文字認識: PARSeqモデルにより、検出領域内の文字を認識(7,141文字、NDLmojiの文字集合に対応)
  • 読み順: 日本語の縦書き・右から左への読み順を考慮して並べ替え

OCR結果の表示例

技術構成

ONNX Runtimeによる推論

モデルはONNX形式で提供されており、iOSアプリではONNX Runtimeを使って直接推論を実行しています。Core MLへの変換は不要で、ONNXファイルをそのまま利用できます。

モデルの合計サイズは約80MBで、アプリにバンドルして配布しています。

現代語訳機能

認識した古文を現代日本語に翻訳する機能も備えています。

  • ローカルAI(Apple Foundation Models): iOS 26以降でオフライン利用可能
  • クラウドAPI(OpenAI互換): APIキー設定が必要。3段階の詳細レベルを選択可能

現代語訳の表示例

AI駆動の開発

本アプリの開発にはClaude CodeをはじめとするAIコーディングツールを活用しました。

App Store自動化

App Store Connect APIを用いて、審査提出プロセスを自動化しています。

今後の展望

現在、Flutter版を開発中です。これにより、Android端末でもKotenOCRが利用できるようになる予定です。

リンク