07.実装の方法(2回目)

Created: 2022/03/05
Last Update: 2022/03/05

今回のアプローチは、CenterNetを使って、文字の場所と特徴量を同時に取得しようというものです。

処理の流れ

  1. 画像から、文字の場所を特定すると同時に文字の特徴量を特定する
  2. 文字の配置から、文の方向を決定する
  3. 文の方向に、文字の特徴量を並べて、変換器に入れる

実装方法

詳しくは次章以降で述べますが、簡単には次の方針でいくことにします。

  1. 画像から、文字の場所を特定すると同時に文字の特徴量を特定する

    このタスクは、CenterNetという手法で解決できます。詳しくは次章で記述しますが、 簡単に言うと、文字の場所のありそうな中心位置をヒートマップで取得し、そのピークの場所に、 文字があると認識します。同時にもしその場所に文字があった場合、特徴量も同時に出力されます。 ピークの位置の特徴量を用いて、文字の特定を行うということです。

  2. 文字の配置から、文の方向を決定する

    日本語の場合、縦書きと横書きがあり、文字の配置の順番が異なります。 文字の場所の詰まり具合や空きの状況、配置の角度等から縦横を判定し、 基線がどこにあるかを決定します。 このタスクは、前段のCenterNetの出力に、文字の連結の可能性ラインを出力させることで、 線分の認識問題に変えることができます。

  3. 文の方向に、文字の特徴量を並べて、変換器に入れる

    文字の画像から、text表現にします。 今の時代はUnicodeで何でも表現できるので、この文字コードで表すこととします。 1文字ずつ処理するのですが、前後の文脈を読んでカタカナとひらがな等を 切り替えようと、Transformerベースの変換器を使用します。

    ここで、文の方向に沿って、各文字の特徴量ベクトルを並べたものを、Transformerで 文字コードに直接変換してやります。その際、ふりがなを同時に符号化することを考えます。

もくじへ戻る