今度はAI画像認識でOCRに挑戦してみる

AIチャットボット導入の実現が難しくなったのは、前回書いた通りです。
ただ、これでAI関連の取り組みが終了すると、経営層からは非難を浴びそうな気がしたので、代わりのネタを用意しておきました。

それが、今回のタイトルでもある、「AI画像認識を活用した、手書き文字のテキストデータ化」です。

つまり、文書のOCR読み取りをAIでやるってことです。

ご存知の方も多いと思いますが、この分野は今やRPAに並ぶ勢いで市場が伸びています。

特に、日本の役所や銀行、それに民間企業では、とにかく紙で書かせる文書が多い。。
ハンコも押させないといけないからっていうのもあるんでしょうけど、これが長年の間、日本の生産性向上の足枷になってきたのです。

で、当社においても例外ではなく、やはり毎月数百枚に及び手書き文書を回収し、それを見ながら担当者がシステムに手入力していくっていう業務があちらこちらにあるのです。

が、1年ほど前から、このどうしようもないと思われた業務の改善に、クモの糸が垂らされました。

AI画像認識の技術で、画像中の文字だけを抽出することができるようになったのです。
で、これを皮切りに、OCRとして活用しようという動きが盛んになってきています。

一応、市販製品としては、ベンチャー企業のコージェントラボが開発した「tegaki」がかなり評判が良く、導入企業も増えているらしいです。

が、月20万円~かぁ。。。
これを高いと見るか安いと見るかは、対象の手書き文書の枚数によるでしょうねぇ。

これも一応視野には入れつつ、やはりここはチャットボットやRPAと同様に、まず自作で安く仕上げる方法を模索してみましょう。(笑)

スポンサーリンク


現在では、Watsonをはじめ、AzureやGoogle Cloudなんかでも、OCR用のAPIが公開されています。

識字率を調べてみたところでは、Google>Azure>Watsonらしく、Watsonは日本語非対応なので、実質GoogleかAzureになると。
で、Googleは無料枠が月1000トランザクションしかなく、超過後は1000トランザクションごとに300円ぐらいかかります。
で、Azureだと、無料枠は月5000トランザクションで、超過後は1トランザクションごとに0.15円ぐらいずつかかると。

そう考えると、当社の規模ならAzureだとずっと無料で使い続けられそうな気がするので、まずはAzureで試してみることにしました。

早速、Freeプランでアカウントを作り、画像認識サービスであるComputer Vision APIのリソースを作成。
ここで、エンドポイントURLとAPIキーを控えておきます。
ちなみに、ここまでで約5分ぐらい。
(色々説明書きを読みながら進めたので、それがなければ1分ぐらいで終わってしまう・・・)

その後、認識を試してみるために、Postmanをインストールして、ちょこちょこ設定した後、いざ画像を送信。

で、で、できとる・・・(驚)

JSON形式のレスポンスを確認すると、ちゃんと座標位置と抽出された文字が返ってきてました。
しかも、今まで使っていたOCRソフトでは手書き文字が誤認識されることが多かったんですが、かなりの精度で正しく認識されています。

Googleの方がさらに認識率は高いらしいですが、Azureでも十分すぎる結果でした。
ちなみに、ここまでで約20分ほど。

チャットボットのときも思いましたが、ホントもうベンダー要らずの時代が来そうだな、コレ。

最大の懸念点だった認識精度ですが、今回Computer Vision APIを試してみて、あっさりとこの点がクリアされていたところに、時代の流れを感じました。

ちなみに、Computer Vision APIの日本語認識では、1文字ずつしか認識されません。
つまり、「日本語」という文字が書かれた画像を読み取ると、「日」「本」「語」という感じで、1つの文言にならずに分割されてきます。
これは仕様なので、これを自力で連結する仕組みを開発しなければなりません。

考え方としては、認識された文字の座標がセットで返ってくるので、「この座標範囲にある文字群は1つの文言と見なし、連結する」というプログラムを作る感じです。
まさしく、OCRの考え方ですね。

ネットを見ると、結構Pythonで連携プログラムを作っているケースが多いようですが、VBAからでもAPI連携してJSONを解析することが割と簡単に実現可能です。
なので、ユーザーの利便性も考慮し、Excelマクロで諸々のプログラムを開発してみようと思います。

還元率の高いポイントサイトで、ハイペースでポイントが貯まります ポイントサイトのポイントインカム

獲得ポイントの高いアンケートサイトで、効率的にポイントが貯められます infoQ新規会員登録

Computer Vision APIによる文字認識(OCR)の実験結果①

前回、AIによるOCRの手始めとして、Azureの「Computer Vision API」を試してみました。

テスト用のサンプル画像を読み込ませた感じでは、結構正しく識別できてそうでしたが、果たして業務で使用する文書はどうか。。。

ということで、今回は実際に当社で使われている手書き文書のうち、勤務表を読み込ませてみることにしました。

当社の場合、社員はWEB勤怠を使って打刻をするのですが、パートやアルバイトの方々については、手書きの勤務表が使われています。
理由は、所属長の承認印が必要なためです。

まぁ、ここでも日本のハンコ文化という悪しき風習がムダな業務を生んでいるわけですが、一旦それは置いておきます。

実務で使っている文書の中から、勤務表を最初の実験台に選んだのには、理由があります。

それは、勤務表から読み取ればよい文字は、基本的に数字・記号だけでOKなため、識別の難易度が低いと考えたからです。
逆に言うと、このレベルの文書が上手く読み取れないとなれば、他の文書には適用できないということになります。

さて、では早速勤務表を読み込ませてみよう・・・の前に、事前準備が必要。

前回触れた通り、Computer Vision APIでは、日本語識別モードにすると結果のテキストが1文字ずつ返ってきます。
なので、勤務表の結果をそのままJSONファイルで検証しようとすると、途方もない行数を見ることになってしまい、効率的ではありません。

なので、今回はPostmanではなく、Excel VBAで連携処理と結果の文字結合処理を作りました。
文字結合処理は、前回の最後に書いた「この座標範囲にある文字群は1つの文言と見なし、連結する」というロジックになります。

構想はこの土日で固まっていたので、今日他の業務をやりながらでも、だいたい半日ぐらいでプログラミングできました。

スポンサーリンク


前置きが長くなりましたが・・・いざ実行!

そして項目ごとに結合された文字列を恐る恐る見てみる。。。

結果は、ハーフハーフってとこですかね。(苦笑)

うーん、、、
プレ印字されている数字は完璧に読み取れているんですが、肝心の手書きの認識結果があまり良くないですねぇ。

例えば、"1"の書き方にちょっとクセがあると"["として誤読されてしまうのは、まぁご愛敬。
確かに、そう見えなくもないので。

しかし、なぜか日付によっては、誤読どころか全く読み取られていない日もあったりします。
せめて、多少間違っててもいいから何か読み取ってくれれば、プログラムで補正しようもあるんですが。
全く読み取られていないと、欠勤しているのか読み取りミスなのかが判別できません。
(文字の濃さも、ちゃんと読めているところと同じぐらい)

前回、サンプル画像で試したときの結果が割と良好だっただけに、ちょっと予想外。
ほぼCompute Vision APIで行こうと決めていたのに、どうやらWatsonやGoogleも真剣に試してみた方が良さそうです。

結果は、また後日。

還元率の高いポイントサイトで、ハイペースでポイントが貯まります ポイントサイトのポイントインカム

獲得ポイントの高いアンケートサイトで、効率的にポイントが貯められます infoQ新規会員登録

Computer Vision APIによる文字認識(OCR)の実験結果②

昨日に引き続き、Computer Vision APIをもう少し深掘り。

昨日は、あるパートさんの勤務表1枚だけをAPI連携しました。
で、今日は、他のパート・アルバイトさんのやつも含め、10枚をVBAで連続して読み込ませてみました。

結果 : 全然ダメ。(汗)

昨日読み込んでみた1枚が最も精度が良く、他9枚については1文字すらも正しく返ってきませんでした。
連続してやったからこうなった?という疑念もあったので、一応Postmanで1枚ずつ連携してみても、やっぱり結果は同じ。
画像形式を変えたりしながら何度も試行してみましたが、結果は同じ。

なぜこんなことが・・・

と思いきや、返却されてきたJSONデータを見てみると、「"orientation":"Down"」とな。
尚、昨日読み込んだ1枚については、「"orientation":"Up"」でした。

もしかしてコレか?

Computer Vision APIでは、送信した画像の向きを自動検知する仕組みがあります。
今回ダメだった9枚の勤務表画像は、恐らく「向きを勝手に上下逆さにされて」読み込みやがったんだと思われます。

なんつー迷惑な・・・
いや、適用ケースによっては便利なんでしょうけど。

向きが反転しなかった画像と反転してしまった画像とで、見た感じ特に何も違いは無いんですけどね。
(画像サイズ、濃度、解像度、文字の座標位置 etc...)

スポンサーリンク


原因にアタリが付いたところで、早速解決策を試してみます。

解決法は簡単。
URLの最後に、「detectOrientation=false」を付加すれば、勝手に向きを変えられることはなくなります。

さて、結果の程は・・・

うん、ハーフハーフになったね。(苦笑)

とりあえず、昨日の1枚と同じレベルで読み取られるようにはなりましたので、一応成功。

でも、さすがにこのレベルじゃあ実用には程遠いなぁ。。。

ってことで、Azureよりも読み取り精度が良いと評判の、「Google Cloud Vision API」を試してみることにしました。

早速、アカウントを登録して、Cloud Vision APIを有効にしてっと。
他のクラウドと同様に、ここまでで5分程度。

ただ、Googleが他と違うのは、無料アカウントと言えども、請求先をこの時点で登録しろと。

・・・
・・・・・・
クレジットカード情報を登録しろってか。

ヤなんだけど、会社の仕事なのに自分のカード情報を登録すんの。
しかも、一度登録すると、そのカード情報は削除できないし。

せめて、無料利用期間中は、クレジットカード無しで使えるようにならないかなぁ。
(財務担当の人に相談して、法人名義のクレジットカードを契約してもらうしか無いか・・・)


還元率の高いポイントサイトで、ハイペースでポイントが貯まります ポイントサイトのポイントインカム

獲得ポイントの高いアンケートサイトで、効率的にポイントが貯められます infoQ新規会員登録
プロフィール

Author:たみおと
36歳にして社内SEに転職しました。
ベンダーSE・社内SEどちらの方が記事を読んでも、ご参考になる体験談をUPしていきたいと思っていますので、宜しくお願い致します。

検索フォーム
ブログランキング
よろしければ、ポチっと一押しお願いします。m(__)m

ブログランキング・にほんブログ村へ
カテゴリ
よく読まれている記事
最新記事
おすすめ書籍
[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

なぜ、システム開発は必ずモメるのか? [ 細川義洋 ]
価格:2160円(税込、送料無料) (2016/11/7時点)



[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

絵で見てわかる RPAの仕組み (絵で見てわかる) [ 西村 泰洋 ]
価格:2786円(税込、送料無料) (2018/7/30時点)



月別アーカイブ
リンク