くずし字OCR(AIくずし字認識)

くずし字OCR(AIくずし字認識)

OCRとは?

古典籍や古文書などに記されたくずし字を機械が読み取り、現代日本語の文字コード(=Unicode)に自動変換するソフトウェアを「くずし字OCR」と呼びます。OCRとはOptical Character Recognitionの略であり、日本語では光学的文字認識と訳されることもあります。Optical(光学的)という用語が使われているのには歴史的な経緯がありますが、現代ではむしろ「AIくずし字認識」と呼ぶ方がわかりやすいかもしれません。この処理は、くずし字翻刻の一部を機械で自動化することに相当します。

ただしより正確に言えば、OCRは文字認識だけを実行するソフトウェアではなく、一般的に以下のような処理を行います。

(1) 前処理:OCRに適した状態となるように、画像の階調や回転、ノイズなどを調整する。

(2) レイアウト解析:文書の中でどこにどのように文字が並んでいるかを分析し、個々の文字が存在する領域を特定する。

(3) 文字認識:領域に含まれる文字を認識し、現代の文字コードを割り当てる。

(4) 後処理:言語モデルなどを用いて文字認識結果を修正する。

これらの処理は言語ごとに異なる部分もありますが、言語に依存する部分を切り替え可能な多言語対応OCRもあります。例えばオープンソースのOCRとして著名なTesseractは100以上の言語に対応しています。

ただし上記のアプローチが、くずし字OCRにもベストな方法かはわかりません。その他にも様々な方法があり得ますし、CODHでもこれとは異なるアプローチで研究を進めているところです。

くずし字OCR

OCRの研究には長い歴史があり、現代日本語の印刷文書であれば、すでに十分に実用的な精度でOCRを活用できます。また最近はRPA (Robotic Process Automation)などのブームもあり、現代日本語の手書き文字OCRへの関心が再燃しています。手書き文字は印刷文字より文字の変化が大きく、文字の並びにも揺れがあるため、印刷文字ほど簡単ではありませんが、近年の画像認識(コンピュータビジョン)分野におけるディープラーニング(深層学習)の飛躍的進展を取り入れた精度の向上が進みつつあります。

その先にあるのがくずし字OCRです。くずし字はもちろん手書き文字の一つですが、現代の手書き文字と比べた場合に、以下の点で難易度が増しています。

(1) 前後の文字が続けて書かれる連綿体のため、文字の切れ目がわかりづらい。

(2) 変体仮名では「音」と「文字」が1対多に対応し、漢字でも複数の字形が存在するなど、文字の形状がより複雑である。

(3) 木版印刷や手書き写本では文書のレイアウトの自由度が高く、文字を読む順序も複雑な場合がある。

(4) くずし字は1000年にわたって使用されたため、時代による変化を考慮する必要がある。

こうした問題が存在するため、くずし字OCRは未だ実用的なレベルに達していないのが現状です。ただし現代の機械学習(AI)の発達を考えると、こうした問題点は以前よりも取り組みやすくなっているのも確かで、画期的なくずし字OCRアルゴリズムの研究開発への期待が高まっています。

くずし字OCRの研究開発に不可欠なのがくずし字のデータセットです。現代の機械学習(AI)は、学習データから学ぶことで精度を向上させていく仕組みのため、一般的にデータセットは大きければ大きいに越したことはありません。その意味で、CODHが国文研と協力して公開するくずし字データセットKMINSTデータセットは、くずし字OCRの研究開発に決定的な役割を果たします。これほどの大規模なくずし字データセットがオープンデータとして公開されたことで、これをダウンロードして学習すれば誰でもくずし字OCRを作れるようになりました。

つまり、今になって再びくずし字OCRアルゴリズムの研究開発への機運が高まっているのは、ディープラーニングというアルゴリズムの進展と、くずし字データセットというデータの進展が重なっていることが大きな理由と言えます。

くずし字チャレンジ!

「一文字認識」と「一ページ認識」

くずし字OCRは、「一文字認識」と「一ページ認識」に大別することができます。

まず「一ページ認識」とは、多数の文字が書いてあるページ画像を入力すると、その中にある文字を自動的にすべて抽出してくれるようなOCRです。現代語に対するOCRはこのように動作しますので、ユーザもこのような動作を期待するでしょう。ただしくずし字の場合、これを実現するのは技術的にもまだ難しいのが現状です。

より簡単なのは「一文字認識」あるいは「単文字認識」です。ユーザが「ここに文字があるよ」と領域を指定すると、機械がその中に含まれる文字を答えるというものです。これはOCRのプロセスにおいて「レイアウト解析」を省略することに相当するため、「一ページ認識」よりも簡単な問題になります。

CODHではすでに一文字認識機能を提供しています。

AIくずし字認識(一文字)

また、将来的にくずし字認識サービスとしてリリースする予定のKuroNetは、一ページ認識機能を備えています。

くずし字アプリ・サービス(検索/認識/解読)

その他のアプローチ

くずし字OCRに関連する技術として、ワードスポッティングという技術があります。これは文字認識より文字検索を想定した技術であり、ある文字が書かれているページを、文字認識を経由せずに直接検索するという技術です。文字認識の精度が低い場合、あるいは文字をそもそも検索ボックスに入力すること自体が難しいという場合、ワードスポッティングのような技術が有効に使えます。

参考文献

  1. 北本 朝展, カラーヌワット タリン, 宮崎 智, 山本 和明, "文字データの分析――機械学習によるくずし字認識の可能性とそのインパクト――", 電子情報通信学会誌, Vol. 102, No. 6, pp. 563-568, doi:10.20676/00000349, 2019年6月
  2. Tarin CLANUWAT, Alex LAMB, Asanobu KITAMOTO, "End-to-End Pre-Modern Japanese Character (Kuzushiji) Spotting with Deep Learning", 人文科学とコンピュータシンポジウム じんもんこん2018論文集, pp. 15-20, 2018年12月 (in English) [ Paper ]
  3. Tarin CLANUWAT, Mikel BOBER-IRIZAR, Asanobu KITAMOTO, Alex LAMB, Kazuaki YAMAMOTO, David HA, "Deep Learning for Classical Japanese Literature", NeurIPS 2018 Workshop on Machine Learning for Creativity and Design, 2018年12月 [ Paper ]
  4. Anh Duc Le, Tarin CLANUWAT, Asanobu KITAMOTO, "A human-inspired recognition system for pre-modern Japanese historical documents", IEEE Access, pp. 1-7, doi:10.1109/ACCESS.2019.2924449, 2019年6月
  5. Tarin CLANUWAT, Alex LAMB, Asanobu KITAMOTO, "KuroNet: Pre-Modern Japanese Kuzushiji Character Recognition with Deep Learning", 15th International Conference on Document Analysis and Recognition (ICDAR2019), pp. (in press), 2019年9月
  6. 北本 朝展, 山本 和明, "人文学データのオープン化を開拓する超学際的データプラットフォームの構築", 人文科学とコンピュータシンポジウム じんもんこん2016論文集, pp. 117-124, 2016年12月 [ Paper ]
  7. 第2回CODHセミナー くずし字チャレンジ 〜機械の認識と人間の翻刻の未来〜