はじめに
LINEが提供するCLOVA OCRをとある開発で使うことになりました。あまりドキュメントがないようだったのでざっと試したことを書いておきます。とりあえずはOCR Freeプランのセットアップからベータテストによる認識テストまでやってみました
利用できるようになるまで
CLOVA OCRは産業利用に絞って提供されているようで利用するためには 資料請求 -> LINEの担当さんと話をする -> アカウントの払い出してもらう という流れになります
利用可能となるとまずNEVER CLOUD PLATFORMアカウント登録を済ませてコンソールにサインイン -> CLOVA OCRのサービスドメインを作成 というステップでCLOVA OCRをセットアップします。CLOVA OCRはNEVER CLOUD PLATFROMの中のサービスの一つという位置づけのようです。コンソールはこんな感じです
CLOVA OCRのドメインを作成する
コンソールのサイドメニュー Products & Services からCLOVA OCRを選択し、+ 新規ドメイン
ボタンをクリックしてCLOVA OCRのドメインを作成します
登録画面はこんな感じです。ドメイン名
とドメインコード
は任意の文字列。それぞれ入力した後にチェック
をクリックして検証してください。よくわからないけどドメイン名とドメインコードは同一でも問題ないっぽい?
サポート言語
は日本語、サービスタイプ
はとりあえず無料プランがあるTemplateを選択。たぶんここでGeneral
を選択して作成するとGeneral(非定型型)の定額料金が課金されると思うので注意。認識モデル
はBasic、サービスプラン
は無料のFreeを選択します。
ドメインを作成するとコンソールのリストに追加されるので、右端のテンプレートビルダ
をクリックします。CLOVA OCRのコンソールに遷移するのでサイドメニューのテンプレートリスト
をクリックします。
テンプレートを作成する
+テンプレート作成
をクリックするとテンプレート作成に遷移します。テンプレート名
を入力して認識モデル
Basicを選択し確認
ボタンをクリックすると検証後テンプレートが作成されます。まずこのステップを踏まないと下段でサンプル画像がアップロードできないので注意してください。
サンプル画像をアップロードすると検出フィールドが設定可能になります。今回のサンプル画像リアル業務を想定して出金伝票の無料テンプレートをダウンロードして印刷したものを撮影したものを使用しました。
学習する画像自体に影があったりする業務で現実的な品質の場合もちゃんとした検出精度が出るか?を検証する意図です
まず、代表サンプルとして書類の見出しを設定する。画像の「出金伝票」を囲って枠右下✓
をクリック、代表サンプル名
を「出金伝票」と入力し確認
をクリックして設定します
次にフィールド指定
欄の+フィールド
をクリックしてプレビューで検出フィールド範囲を設定します
検出フィールド枠の右下の✓
をクリックするとフィールド指定欄に新規フィールドが追加されるのでフィールド名
を入力して保存
をクリックします
上記の操作を繰り返して検出するすべてのフィールドを設定します。今回は内訳の1行目だけを検出するようにしました。金額欄はマルチボックスにしないといけないんだろうけどBasicでは使えないためフィールドで設定してみた。金額の認識精度は悪くなるんじゃないかと思います
作成したテンプレートはテンプレートリスト
に掲載されます
テンプレートをベータリリースする
サイドメニューのリリース
をクリックします
リリース管理画面から上記でつくったテンプレートのベータリリース
をクリックする
確認
をクリックする。これで作成したテンプレートがベータリリースとして展開されテスト画面でテスト可能になります
検出テストする
サイドメニューのテスト
をクリックしてテスト画像欄のファイル選択
をクリック、テストのための記入済み伝票の画像をアップロードします
今回は印刷した伝票に手書きで記入したものを撮影しテスト画像として使用しました
アップロード後、テスト
をクリックします
確認
をクリックします
テストが正常に完了するとプレビュー右側に検出結果が表示されます。ざっと見た感じいい感じで検出されているようですね
このテストで意図しなかった検出結果は以下2点になりました
-
コード
フィールドは100100123
と書いたつもりだったが100 100123
となった。まあたしかに手書きのほうで間空けちゃってるよね -
金額1
フィールドの値が空白で区切られている
金額1のほうは予想通りPremiumで利用可能なマルチボックスを指定してないので精度は落ちました。また何度かテストしたら2 8 0 0 0 O
(最後がアルファベットのオー)になったりしました。おしい
しかしFreeプランで利用できるフィールドだけでも思ったよりしっかりと認識できてました。Premiumを利用するという手もありますが、これくらいならどちらもAPIで結果取得後に後処理すという手でも十分いけそうに思います
おわりに
CLOVA OCRをざっと体験してみました。この後も手書き出金伝票をいくつかテストしてみましたが、検出精度は期待より良くて普通に業務で利用できる品質だと感じました。
テンプレートの設定がWebベースのGUIで簡単にできるがいいです。実業務でテンプレートを量産する負担も少なくなりそう。トラフィックが少ない利用ケースだとFreeプランでも十分行けそうな気がするのでうまく使うとコスパはとても高い何かができそうな気もします。
今後は時間を見つけて踏み込んだ精度検証をやったりPremiumを使ってみたりしてそのあたりも書いていこうと思います。