この記事は、Power Automate for DesktopでComputer Visionを使って画像分析を行う記事の続編です。前回の記事では画像から、画像にふさわしい”タグ”や”ディスクリプション(画像の説明文章)”を検出しました。
今回は、画像にブランドロゴが含まれていた場合、そのブランド名をテキストで取り出す方法について解説してみたいと思います。
「画像を分析します」アクション
画像からブランドを検出するには「画像を分析します」アクションを使用します。
画像からブランドを検出するには、「Microsoftコグニティブ」グループ>「Computer Vision」の中にある「画像を分析します」アクションを使用します。
「画像を分析します」アクションを利用する条件
Microsoftコグニティブの中にあるアクションを利用するには、下記が必要です。
- Microsoft Azureの利用登録を行う
- Microsoft AzureでComputer Visionアプリを作成してサブスクリプションキーを取得する
登録方法は下記の記事で解説していますので参考にしてください。10分ほどでできる簡単な作業となります。Azureは基本的には従量課金サービスですが無料で試用することが可能です。
「画像を分析します」アクションのテスト用フローの作成
▲「画像を分析します」アクションは、「Microsoftコグニティブ」グループ>「Computer Vision」の中にあるアクションです。
- サーバの場所:東日本を入力します。(Azure上では西日本サーバを選択できますが、PADでは2021年11月現在 西日本サーバを選択できません。)
- サブスクリプションキー:AzureでComputer Visionアプリを作成した時に発行されたサブスクリプションキーを入力します。
- 画像を提供します:ファイル/GCPのどちらかを選択します。パソコンに保存された画像を使用する場合は”ファイル”を選択します。インターネット上に公開された画像を使用する場合は”GCP”を選択します。
- 画像ファイル:画像の提供方法に”ファイル”を選んだ場合は、ファイルのフルパスを入力します。(例:C:\Users\user\Desktop\shortPants.jpg)GCPを選択した場合は画像のURLを入力します。(例:https://www.teijitaisya.com/wp-content/uploads/2021/11/shortPants.jpg)
- ビジュアル機能:ブランド名検出の場合は、Brandsと入力します。
- 詳細:今回は使用しない(空白)ため説明は省略します。
- 言語:言語コードを入力します。ブランド名検出に関しては言語設定は特に影響しないため、今回は空白のままデフォルト値のen(英語)とします。
▲「画像を分析します」アクションの結果を確認するために、「入力ダイアログを表示」アクションを追加します。「入力ダイアログを表示」アクションは、「メッセージボックス」グループの中にあるアクションです。
アクションを追加したらパラメータを下記のように入力します。
- 規定値:%JSONResponse%と入力します。これは「画像を分析します」アクションの実行結果の出力です。
- 入力の種類:複数行
▲写真のショートパンツを試してみました。
▲フローが正常に動作すると、「入力ダイアログを表示」アクションによって、ダイアログの中に画像分析結果が表示されます。
入力ダイアログに表示されたJSONを確認してみましょう。改行が入っていなくて見づらいのでOnline JSON Viewerなどを使って整形して見やすくしましょう。
{ 'brands': [ { 'name': Nike, 'confidence': 0.789, 'rectangle': { 'x': 419, 'y': 383, 'w': 54, 'h': 33 } } ], 'requestId': 261dbb22-e88c-4e94-b5f1-c4dbfbe3a340, 'metadata': { 'height': 529, 'width': 494, 'format': Jpeg } }
brandsの中のnameにブランド名(Nike)を確認することができました。成功です。
いくつかの画像でブランド検出してみました。
看板
{ 'brands': [ { 'name': Starbucks, 'confidence': 0.887, 'rectangle': { 'x': 25, 'y': 145, 'w': 114, 'h': 112 } } ], 'requestId': 376a73bb-60b4-4e4a-acb1-fbd34e1c396f, 'metadata': { 'height': 516, 'width': 344, 'format': Jpeg } }
▲スタバの看板を認識することができました。
化粧品
{ 'brands': [ { 'name': Chanel, 'confidence': 0.845, 'rectangle': { 'x': 112, 'y': 99, 'w': 35, 'h': 25 } } ], 'requestId': 0ae14128-af67-4811-bb40-53c0ba4b7b37, 'metadata': { 'height': 292, 'width': 292, 'format': Png } }
▲Chanelを認識しました。Gucciは反応しなかったのかな?もしかしたら2つ以上認識しないのかもです。
車
{ 'brands': [ { 'name': Audi, 'confidence': 0.76, 'rectangle': { 'x': 43, 'y': 88, 'w': 26, 'h': 18 } } ], 'requestId': c9dc8ef5-0151-49e6-9bb9-876b8a8cd188, 'metadata': { 'height': 245, 'width': 368, 'format': Jpeg } }
かなりパースの効いた写真でロゴが斜めになっている画像ですが見事認識してくれました。
日本のブランド
{ 'brands': [ ], 'requestId': 82033fbb-b001-4409-9136-f60c1fb5d6bf, 'metadata': { 'height': 387, 'width': 258, 'format': Jpeg } }
▲UNIQLOの看板は認識できませんでした。日本のブランドはまだまだ対応していないものも多そうです。
Power Automate for Desktopでの使い道
PADでどのような使い道があるか考えてみたのですが、例えば大量の画像ファイルをざっくりとブランド別のフォルダに分類するフローなんかはPADで作れそうかなと思いました。
そういった意味で、ブランド物の物販をやられている方や、車の販売業者さんなんかに有用な使い道があるかもしれないですね。何か思いついたら実用的なフローを作って紹介してみたいと思います。
まとめ
以上、この記事では、Power Automate for Desktopを使って画像ファイルを分析し、画像に含まれるブランドを検出する方法について解説しました。
「画像を分析します」アクションには他にも面白い機能がいっぱいあるよー。次の記事でも もう少しこのアクションで遊んでみるよー!