GPU + Python 利用の深層学習OCRと比較して2倍-10倍超高速実行。デスクトップで7000文字超/秒が可能。2倍高速実行の深層学習対応OCRプロセスをPC上で20プロセス同時実行することが可能(ノートPCでは4~8プロセス程度)

従来型OCRライブラリ、深層学習対応OCRライブラリ共通の改良

  1. 罫線接触文字の認識
  2. 罫線に接触した文字の認識を行いました。
    以下の表では、罫線の上下左右に文字が100ヶ所以上接触しています。
    罫線に文字が接触している表
    一部を拡大します。
    罫線に文字が接触している表(拡大)
    さらに一部を拡大します。
    罫線に文字が接触している表(さらに拡大)
    今回、罫線と文字を自動的に分離して認識することが簡単にできるようになりました。緑色部分が文字です。
    罫線と文字の分離
    認識結果を一部拡大します
    罫線と文字の分離 認識結果
  3. 自動イタリック体判定、自動縦書き横書き判定、自動天地判定
  4. 以前からイタリック体認識はありましたが、イタリック体の角度をアプリケーション側から指定する必要がありました。自動イタリック体判定では、正体と何種類かのイタリック体における認識結果の確信度を比較して、最も確信度が高くなる結果を自動的に採用します。
    同様に、縦書き横書き判定、天地判定も以前からアプリケーション側から指定することはできました。自動判定では、縦書き、横書き、天地(90度、180度、270度回転)の必要な組み合わの認識結果の確信度を比較することによって、自動的に判定することができるようになりました。
    ただし、自動イタリック体判定では、正体による認識結果の確信度が低い場合に、複数角度のイタリック体で認識するため、通常の1~3倍程度の認識時間が必要になります。正体の一部だけがイタリック体であるようなケースでは認識時間は、ほとんど変わりません。
    縦書き、横書き判定でも同様の処理を行います。横書き/横書きで認識して、確信度が低い場合に縦書き/横書きで認識して確信度を比較します。
    自動天地判定でも、通常は画像の下側(縦書きでは左側)が文字列の下(左)として認識して、確信度が低い場合に90度単位で回転して認識して確信度を比較します。
    自動イタリック体判定+自動縦書き横書き判定+自動天地判定の全てを組み合わせると、最悪3(正体、イタリック体1、イタリック体2)×2(横書き、縦書き)×4(0度、90度、180度、270度回転)で24倍の認識時間が必要となるので注意が必要です。

前に戻る