IQ Botに向いている使い方／向いていない使い方


りんごの皮をむくときに、ピーラーを使うととても便利ですが、みかんの皮は手でむいた方が圧倒的に早いです。

AutomationAnywhereの[IQ Bot](https://qiita.com/IQBotter/items/fab5f59230ff38a98bbd)は、紙業務の自動化をサクサク進めるのに適したツールですが、やはりピーラーと同じように、適した使いどころとそうでもない使いどころがあります。

この記事では紙をデータ化する目的や対象帳票の種類・条件などに応じて、IQ Botに向いている使い道／向いていない使い道をまとめてみます。

#帳票の種類別の向き／不向き

過去にPoCをしてきた中で、IQ Bot向きだった帳票と「正直これはIQ Botに向いてない！」という帳票を並べてみます。

##◎：請求書、見積書、製造業の部品表、医療費の領収書

これらの帳票は、IQ Botが処理する前提となるラベルと値の対応が比較的明確で、フォーマットも多岐にわたる場合が多いです。
なのでIQ Bot向き。

##◎：英字のInvoice、Purchase Order、Shipping Instruction

IQ Botは多言語対応で、しかもAutomation Anywhereがもともと英語圏のプラットフォームということもあって英語帳票に関してはかなり強いという印象。

特にInvoiceやPurchase Orderはプリセットのドメインにも入っていて、最初に取得項目を入力するところも選択肢から選ぶだけでOKなので設定がかなり楽です。

英字以外にも、アルファベット系の文字の言語は日本語より精度が出やすいです。
（正解の数が少ないので当たり前ですが）

##◎／△：注文書　（高画質で印字ONLYなら◎、低画質・手書きで数量などが書いてあるものは△）

[こちらの記事](https://qiita.com/IQ_Bocchi/items/8ad6ec8f5a6afd3c98a1)で紹介しているとおり、IQ Botでは使用するエンジンをインスタンスごとに切り替えられます。

で、注文書を処理するときにどんなOCRを使うかということなのですが……

- ABBYYは低画質に弱い・手書きに対応していない（でも注文書はFAXなどが多く低画質になりがち＋手書きも多い）
- Google Vision/Tegakiは単体の文字の検出に課題あり（注文書の数量は単体の文字がよく出現する＋かなり重要な意味を持つ）

ということでいずれも一長一短です。

単体の文字の検出という点では、ABBYYは非常に安定しています。
なので、画質が高くて印字ONLYの注文書であれば、ABBYYを使ってうまく処理することができるかと思います。

##○：申込書などの完全な固定帳票

フォーマットが完全に固定の帳票は、OCRにとっては最も処理しやすい領域なので、IQ Botでももちろん処理できます。
なぜ◎ではなく○と書いたのかというと、固定帳票の場合は座標指定型のアプローチでも対応可能な（むしろ座標指定型に馴染む）帳票なので、すでに座標指定型のOCRで自動化しているよというケースが多く、あまりIQ Botに相談が来ないというのが正直なところです。

座標指定型／自動検出の違いについては、以下の動画の40:54～43:33あたりの解説をご覧ください。
[【外部リンク】RPA Community 「AIで文書を処理！IQBotを学ぶ！」](https://www.youtube.com/watch?v=wFghPwZL18o)

##△：契約書

契約書は書式が本当に多岐に渡っていて、IQ Botが対象とする「準定型」の範囲に収まるのか、「完全な非定型」になるのかがまず利用可否の分かれ目です。

「準定型」と「完全な非定型」の違いについては、以下の動画の45:20～47:35あたりの解説をご覧ください。
[【外部リンク】RPA Community 「AIで文書を処理！IQBotを学ぶ！」](https://www.youtube.com/watch?v=wFghPwZL18o)

上記の動画でも言っていますが、フォーマットがどれほどバラけるのかも利用可否の判断ポイントのひとつです。

１万枚の帳票を処理すると想定した場合、以下のイメージです。

- １万枚の帳票が何十／何百くらいのフォーマットに集約できる　→　IQ Bot向き
- １万枚の帳票が数千～１万のフォーマットに分かれてしまう　→　IQ Botではなく、専用のモデルを作り込むようなAI-OCR（もしくはその種類の帳票に特化したAI-OCR）でないと対応できない


##×：レシート、名刺

これらはそもそもIQ Botの守備範囲外です。
レシートや名刺に関しては、専用のアプリを使うのが一番という気がします。

##×：住民票　※ Tegakiで変わるかもしれないので要確認

住民票はどこの市町村でもたいてい地紋つきです。ABBYYとGoogleは、地紋ありの帳票には強くないです。
（Tegakiではまだ試していないので、要確認）

構造的にはIQ Botが扱うのに比較的適した形なんですが。

##×：アンケート

手書きのアンケートなどをIQ Botで処理できませんかという話も時折もらいますが、正直アンケートをIQ Bot（というかOCR）で処理するメリットはあまりないように思います。

理由は以下です。

- IQ Botはフォーマットごとにマッピングを学習する必要があるため、質問項目が変わるたびにマッピングをし直す必要がある
- IQ Botはチェックボックスの抽出もできるが、精度は100％ではない
- 選択肢を○で囲むタイプの記入欄をIQ Botで処理する場合、ワークアラウンドがなくはないが、こちらも精度100％ではない
- アンケートの場合、自由記述欄をはみ出して書いたり、裏にも文字が書いてあったりするケースがあり、IQ Botはそういったケースには対応していない（請求書の合計欄のように、欄自体の位置が浮動する場合には対応しているが、欄をはみ出して書いてあるケースには対応していない

個人的には、アンケートを集めるならGoogle フォームなど、無料で手軽にアンケートを集めて集計までできるツールが充実しているので、OCRよりはそちらに投資した方が賢明ではと思っています。

「紙じゃないと回答率が下がる」という意見もありますが、OCRに投資をするお金があるなら、「紙以外の手段でも紙なみの回答率を得られる手段」の方に投資をしてみてはと思う次第です。

もともとIQ Botを使っている企業が、利用範囲を広げる目的でアンケートの読み取りを試してみたいというのであれば止めませんが、新規にIQ Bot（というかOCR）を利用する目的がアンケートとなると、ちょっと考え直した方がいいのではというお話ですが。

##△／×：写真の中の文字の検出

IQ Botは**スキャナでスキャンした帳票の処理**が前提なので、スマホやタブレットで撮影した伝票などから文字を読み取る処理には弱いです。

スマホで撮影した紙をスキャナでスキャンしたようなキレイな形に補正するアプリとして、Automation Anywhereが公式に推奨しているものはないのですが、以下のYoutube（32:34あたり）では「Microsoft Office Lens」がおすすめという話もあります。

[【外部リンク】RPA Community 「AIで文書を処理！IQBotを学ぶ！」](https://www.youtube.com/watch?v=wFghPwZL18o)

写真で撮ったガスや水道のメーターの文字や、カーナンバーなどの文字を読み取るような処理は、完全にIQ Botの守備範囲外です。
こちらは「帳票」ではないので「IQ Botの」守備範囲外ではありますが、AutomationAnywhereのRPA側にカスタムのパッケージ（オブジェクト検知などのAIソリューション）を組み込んで処理した例はあるようです。

#IQ Botが扱える帳票の条件

上記に記載した向き・不向き以外に、IQ Botで扱える帳票の条件は以下のとおりです。

###拡張子はPDF,JPG,Tiff,PNGのいずれか

上記のファイル形式であれば、混在していても大丈夫です。
スキャンの解像度は精度に影響しますが、PDFを高圧縮モードでスキャンしても精度は落ちません。

PDFは、テキストが埋め込まれた形式でも、画像のみの形式でも処理できます。

###背景はできれば真っ白（ABBYY,Googleの場合。Tegakiは要検証）

携帯の請求書やクレジットカードの明細のように、白と薄い色が混ざっているレベルならどうにかなりますが、「Copy Copy Copy Copy……」といったような背景や地紋がついている帳票だと、精度が著しく下がります。

RPA側で前処理かけて地紋の除去なども可能といえば可能ですが、もともとまっさらな背景のものと比べると、前処理が必要な帳票の精度は当然下がります。

スキャン後の画質を上げる処理だけに特化したソフトもあるので、そういったソフトと組み合わせて使う前提であれば利用可能かもしれません。

#紙帳票をデータ化する目的に応じた向き／不向き

##〇：業務の自動化の手段として紙帳票のデータ化をしたいならIQ Bot

IQ Bot はRPAベンダーである Automation Anywhere の製品に、プラットフォームの一部として組み込まれているので、**紙データをデータ化した上で、その後に続く入力・突合などの業務を自動化したい！ という場合であれば、IQ Botが適しています。**

##×：紙のデータ化自体が目的の場合は、IQ Botじゃなくてもいい

業務の自動化を目的とせず、紙の帳票をデータ化できれば目的達成！　という場合は、別に IQ Bot じゃなくてもいい。

アーカイブされた紙帳票などを電子保管したい、それもPDFとかじゃなくテキストのデータで保管したいんだっ！！　みたいな場合ですね。

ただ、アーカイブされた文書の電子化も海外では IQ Bot でやった実績があるそうです。
（Automation Anywhereのお兄さんに聞きました）

アーカイブされた文書をただ電子化するといっても、結局そこにはスキャンして、入力して、入力データを人間が検証して、適切なファイル名をつけて、フォルダに保管して……というフローがからんできてしまうので、そこも含めて自動化したいという場合はやはり IQ Bot ということなのかもしれません。

#扱う帳票・項目の数に応じた向き／不向き

##○：データ化したい帳票の種類が多岐に渡る場合はIQ Bot

IQ Botは帳票の事前設定がとても簡単なので、自動化処理対象の帳票の種類を簡単に増やせます。
請求書や見積書などフォーマットの種類が多岐にわたる場合はとても適しています。

##○：取得したい項目数が多いほどIQ Bot

他のOCRのベンダーの場合、１項目いくらという料金体系がほとんどですが、IQ Botの場合はページ課金です。
１ページの中で扱いたい項目が多いほど、IQ Botがお得です。

##○：明細をフレキシブルにとりたい場合はIQ Bot

以下のような明細を含む帳票も、IQ Botなら普通に扱えます。この点はかなりおすすめ。

- 明細の１データの行数が可変になる（あるデータは１行だが、あるデータは複数行にわたっているなど）
- 表が段組みになっているなど、変則的な表がある
- 罫線のない明細

上記に該当する中でも、条件によっては扱えなかったり、設定が難しくなる場合もありますが、他のOCRでは扱えなかった明細がIQ Botならとれたというケースが多々あります。

##○：読み取った値をフレキシブルに加工・成型したい場合はIQ Bot一択

IQ Botでは[カスタムロジック](https://qiita.com/IQBotter/items/1d8e7c77ad47e838476c)を使って値を自由に加工したり、成型したりできます。

帳票上は「平成YY年MM月DD日」と書いてある項目をどんなに正確にとれたとしても、そのままの形で後続処理を自動化できるとは限りませんよね。

その帳票を入力しているシステムが「HYY年MM月DD日」や「YYYY/MM/DD」形式の入力しか許容していなければ、その形に加工・成型する必要があります。

IQ Botは業務の自動化を前提にしたツールということもあり、そのあたりがかなりサクッとできて便利です。

##○：誤り検知の条件をフレキシブルに設定したい場合はIQ Bot一択

他のOCRツールだと、たとえばOCRの確信度をベースに、何％以下なら人間の検証に回す、みたいな機能があります。

IQ Botにはその機能はないんですが、そのかわりに、どういう条件にヒットしたら検証に回すかをかなりフレキシブルに設定することができます。

金額欄に数値以外が入ってきたら検知、とか、
数量×単価が小計に合致していなかったら検知、など。

詳しくはまた別途記事を書こうと思いますが、こういうフレキシブルな誤り検知ができるのはIQ Botのユニークなポイントかなーと。

OCRの確信度ベースの機能がIQ Botにあったらいいのに、って言ってる人は周りにたまにいますが、個人的にはその意見にはあまり同意していません。

たとえば「由」という字の上の飛び出している棒が印刷のかすれで消えていたら、OCRは自信満々に「田」という結果を返してくるので、「OCRが自信ある＝検証しなくていい」という根拠にはならないと思うので。

##×：データ化するのが単一の帳票でいい場合は、IQ Botじゃなくてもいい

IQ Botは「さくっと作ってさくっと使う」というのが製品のコンセプトらしく、ひとつの帳票に特化して徹底的にモデルを作り込んでどうこう……という作りにはなっていません。

なので、「この帳票さえデータ化できれば、業務のボトルネックが一気に解決する！」みたいなターゲット帳票がひとつに決まっている場合は、徹底的に工数をかけてでも、その帳票に特化したモデルを作り込んだ方がいい結果が出る場合もあります。

##△：１枚あたりの取りたい項目が少ない場合は、コストメリットが出しにくい

IQ Botの料金体系は、「取得した項目単位」ではなく「ページ単位」になっています。
１ページから100項目取得しようと、１項目取得しようと同じ値段です。

１ページから取得したい項目が３～４項目しかない場合は、IQ Botを使ってもあまりお得感がないかもしれません。

また、レシートや名刺については先述のとおり、IQ Botの守備範囲外です。

#まとめ

いかがでしたか？　まとめると・・・

今後もわかったことあれば随時追記していきます！