1.やったこと
iPhoneのアクティビティアプリのスクショを画像認識して、筋トレ結果を抽出、データを格納してダッシュボードで表示する…までを、Power Platformの各種サービスを駆使してノンコーディングでやってみたことのうち、AI Builderでやったことのメモです。
- Power Platformでノンコーディングで筋トレ成果を記録するアプリを作ってみた - AI Builder編 -←コレ
- [Power Platformでノンコーディングで筋トレ成果を記録するアプリを作ってみた - Power Apps編 -] (https://qiita.com/miokawa/items/0f3dc6ac6a1be01984d6)
- Power Platformでノンコーディングで筋トレ成果を記録するアプリを作ってみた - Common Data Service編 -
- Power Platformでノンコーディングで筋トレ成果を記録するアプリを作ってみた - Power Automate編 -
- Power Platformでノンコーディングで筋トレ成果を記録するアプリを作ってみた - Power BI編 -
人恋しさと運動不足解消のため、定期的にオンラインフィットネス(Teams繋ぎながらyoutubeのトレーニング動画を流してみんなでやる)を会社の人とやり始めたことがきっかけで作りました。
最終的な成果物はこんな感じ(細かいデザイン方法については触れません)。
※試行錯誤した結果、こうしたらできた!って感じなので、これが一番スマートなのかどうかは不明ですのでご注意ください。
2.本アプリでのPower Platformの各サービスの役割
- Power Apps:iPhoneのアクティビティアプリのスクショをアップロードする。Power BIで筋トレ記録見られる。
- AI Builder:アクティビティアプリのスクショに含まれる筋トレ時間、消費カロリー、日付などを画像認識する
- Power Automate:Power Appsのアップロードボタンをトリガーに、アップロードされたスクショをAI Builderに投げ、結果のデータをCommon Data Serviceに格納する
- Common Data Service:ひたすら筋トレ結果を格納する
- Power BI:Common Data Serviceに格納された筋トレ成果たちをそれっぽく表示する
図にすると以下のような感じです。
気づいたら割といろいろ使ってた。わお。
3.開発環境
今回はこちらの無料ライセンスを使いました。
Power Apps Community Plan
4.実現したいこと
iPhoneのアクティビティアプリのワークアウト画面スクショ(以下サンプル)から、以下の情報を抽出するAIを作る。
- 曜日(例:木)
- 月(例:12)
- 日(例:17)
- トレーニングカテゴリ(例:フィットネスゲーム)
- 合計時間(例:0:29:24)
- アクティブキロカロリー(例:90KCAL)
- 合計キロカロリー(例:120KCAL)
- 平均心拍数(例:116拍/分)
5.作成過程
Power Appsにログインし、AI Builderからビルド、フォーム処理を選択。
画面の指示に従って、AIモデルに名前を付けて作成します。
AIモデルを作成するにあたり、学習の元になる写真を5枚以上アップロードして、分析します。
ちょっと待機。
ここで第一の壁。必要なフィールドを満遍なく認識してくれない!
緑の枠が自動で認識されてフィールドを関連付けできる部分だよという意味らしいのですが、以下画像だと日や曜日、トレーニングカテゴリが認識されていません。
そして画像ごとに認識されている要素もバラバラで、1枚も全てのフィールドをタグ付けられた画像がなかった…。
早くもちょっとめげそうになる。
他の手法もいろいろ考えたが、結果、画像の方を英語にしたらうまくいきました。
日本語の認識はまだちょっと苦手な模様。
こんな感じで、全てのフィールドを全ての画像で関連付けしていきます。
バラバラに認識されているものを、一つのフィールドとして関連付けしたい場合は、ドラッグでエリア選択すればできます。
全てのフィールドへの関連付けが終わると、対象画像にチェックマークがつくので、次の画像の関連付けに移っていきます。
もし認識してくれないフィールドがあったら、該当フィールドの三点リーダみたいなボタンから、ドキュメントで使用不可を選ぶと、そのフィールドはスキップ可能です。
但し、全ての画像で特定のフィールドをスキップしてしまうと、該当フィールドは抽出されないことになってしまう(その旨の通知が出る)ので注意!
なお、英語にした途端、水を得た魚かのように、自動で関連付けしてくれたりする。AIは既に始まっている…!!
こんな感じで全ての画像でフィールドの関連付けをしたら、次へ進めて、モデルのトレーニングができるようになります。
ちょっと待機。
トレーニングができたら、詳細ページに移動すると、クイックテストができるのでやってみます。
テストがうまくいったら、公開→モデルの使用→Power Automate→続行と進め、Power Automateの中で作成したAIモデルを呼び出すステップに移ります。
6.次のステップ
今回作ったAIモデルを、Power Platformでノンコーディングで筋トレ成果を記録するアプリを作ってみた - Power Apps編 -で作ったPower Appsから呼び出せるようにします。