【PowerApps Tip's】BusinessCardReader（名刺リーダー）個人的メモ

BusinessCardReader（名刺リーダー）の個人用メモ。AI Builder のプレビューが公開されて1か月ほど経とうとしておりますが、今さらとか言わないように。

# AI Bulider とは？
[@TaikiYoshidaJP ](https://twitter.com/TaikiYoshidaJP) さんの [Power Platformの新機能「AI Builder」とは](https://memo.tyoshida.me/powerapps/what-is-ai-builder/) を参照ください。
公式のDocsは [What is AI Builder?](https://docs.microsoft.com/en-us/ai-builder/overview) を参照願います。

Azure の [Cognitive Services](https://azure.microsoft.com/ja-jp/services/cognitive-services/) のように、アプリからAIを利用できるサービスを PowerApps で、もっと手軽に扱えるようにしてくれる仕組みです。記事投稿時点ではプレビューなので、今後のVerUpで変更になる可能性があります。また、利用するための条件がありますので、ご注意ください。

# AI Builder 利用可能な環境を構築するには？
 [@yugoes1021](https://qiita.com/yugoes1021) さんが [[PowerApps]AI Builder が使える環境を作る方法](https://qiita.com/yugoes1021/items/6551e7a9da1b19882229) にまとめてくれています。そちらをご確認ください。
 なお、AI Builder を利用するためにはCDS環境が必要になりますので、PowerApps P2 ライセンスが必要になります。PowerApps for Office 365(Office 365付属のPowerApps)しか保有してない方は利用できません。
また、紹介したリンク先の記事でも明記されていますが、記事投稿時点では「US と Europe の環境でのみ使用可能」となっています。ご注意ください。

# BusinessCardReader (名刺リーダー) とは？
名刺の写真を読み取って、プロパティ情報で読み取り結果の文字列情報を取得できるコントロールです。前述で紹介した AI Builder の機能に含まれています。よくある、名刺管理システムのOCR機能を簡単に作れるように提供されているイメージですかねぇ。

# BusinessCardReader（名刺リーダー）動作イメージ
下記の動画を確認ください。

### Windows 10 Edgeブラウザー
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Win10 Edgeブラウザー <a href="https://twitter.com/hashtag/PowerApps?src=hash&amp;ref_src=twsrc%5Etfw">#PowerApps</a> <a href="https://twitter.com/hashtag/AIBuilder?src=hash&amp;ref_src=twsrc%5Etfw">#AIBuilder</a> <a href="https://t.co/t32sR0Cmzz">pic.twitter.com/t32sR0Cmzz</a></p>&mdash; やま (@yamad365) <a href="https://twitter.com/yamad365/status/1147813936600735744?ref_src=twsrc%5Etfw">2019年7月7日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

### iPhone XS 
<blockquote class="twitter-tweet" data-lang="ja"><p lang="en" dir="ltr">iPhone XS <a href="https://twitter.com/hashtag/PowerApps?src=hash&amp;ref_src=twsrc%5Etfw">#PowerApps</a> <a href="https://twitter.com/hashtag/AIBuilder?src=hash&amp;ref_src=twsrc%5Etfw">#AIBuilder</a> <a href="https://t.co/dp8bj3RuLl">pic.twitter.com/dp8bj3RuLl</a></p>&mdash; やま (@yamad365) <a href="https://twitter.com/yamad365/status/1147813574791663617?ref_src=twsrc%5Etfw">2019年7月7日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


PCのブラウザーでアプリを起動した場合は、名刺として解析したいファイルのアップロードのみになります。
スマートフォンのPowerApps アプリから起動した場合は[写真の撮影]、[画像ファイルの参照]が選択可能です。スマートフォンのが、ちょっとだけ機能が強いですね。

実際の動作を確認すると、

　1. 写真を撮影する
　2. 撮影した写真をアップロードする
　3. AI で解析する
　4. 解析した結果を受け取って、プロパティでアクセスできるようにする

といった流れを、BusinessCardReader コントロール １つで全て処理してくれます。上記の処理を全て自前で準備しようと思うと・・・、PowerApps で写真を撮って → MS Flow でどこかにUploadして → その結果を Azure の Computer Vision OCR へかけて → 結果を取得して・・・、大変です(￣▽￣;)

Windows PC上で実施した結果と、iPhoneでの結果、ちょっと解析結果に差異があるのが興味深いですね。画像をAIがOCRよろしく解析しているので、解像度や撮影角度などで結果に影響が出るのでしょう。

# BusinessCardReader（名刺リーダー）主要プロパティ
公式の情報は下記です。記事投稿時点で日本語サイトはありません。
[Use the business card reader component in PowerApps](https://docs.microsoft.com/en-us/ai-builder/business-card-reader-component-in-powerapps)

プレビューの状態ですが、自分用にメモが欲しかったので日本語で各プロパティを説明したものを下記にしておきます。なお、正式な情報は上記公式サイトで確認ください。

| プロパティ         | 説明                                 |
|---------------|------------------------------------|
| CompanyName   | 会社名                                |
| Department    | 部、事業部、部門、部署                        |
| JobTitle      | 役職名                                |
| Email         | メールアドレス                            |
| FullName      | フルネーム（姓名）                          |
| FirstName     | 氏名                                 |
| LastName      | 苗字（ファミリーネーム）                       |
| FullAddress   | 住所                                 |
| Phone1        | 電話番号 認識できた1番目                      |
| Phone2        | 電話番号 認識できた2番目                      |
| Phone3        | 電話番号 認識できた3番目                      |
| Website       | WebサイトのURL（http、ないしhttpsを探していると予想） |
| CleanedImage  | 名刺だと思われる箇所のみ切り取りした結果の画像（※）         |
| OriginalImage | 撮影時のオリジナル画像（※）                     |

### （※）画像について
[CleanedImage]プロパティ、[OriginalImage]プロパティ画像については、[Data URI scheme](https://ja.wikipedia.org/wiki/Data_URI_scheme)と呼ばれる技術でBase64にエンコード（変換）された値になります。"data:image/jpeg;base64,/9j/4AAQSkZJRgA～"みたいな感じです。

# まとめ
- AI Builder は記事投稿時点（2019年7月7日）ではプレビュー
- Azure の コグニティブサービス（AI）を簡単に使えるようにする仕組みぽい
- BusinessCardReader はかなり高性能
  - ただし、日本語の認識はやっぱりチョッと甘い
  - AI なので使っていくうちに学習していくのかな？
- 今後に期待ですね！

MiddleNameは無いのね？と思ったのは当方だけでしょうか？ｗ
また、何度か名刺の読み込みを試してみたのですが、取得できたコトがないプロパティなどがあります。「まだまだプレビューの段階なのかなぁ」という気持ちになりますな。AI Builder に含まれる他のコントロールを試せてないのですが、BusinessCardReader（名刺リーダー）が非常に優秀かつ便利で感動しておる次第です。ほんと、早くGAしてほしいー。せめて、jpリージョンでもプレビュー利用させてほしいです！！