Closed17

学習メモ:Build an Action Classifier with Create ML - WWDC 2020 - Videos - Apple Developer

  • Action Classificationとは標準的な分類タスクで、定義済みのクラスのリストからアクションのラベルを割り当てる
  • Visionのbody pose estimationを活用している
  • 人間の体の動きには対応しているが動物の動きには向いていない
  • 一枚の画像ではなく複数の連続したフレームで構成したウィンドウ(時間枠)で予測をする
  • カメラの動画やストリーミングを対象とする

How it works

  • エクササイズの動きを認識する分類器を作成するケースを考える
    • 挙手、屈伸、スクワット
  • それぞれの動きの映像を用意する
  • Create ML を使ってモデルを作成する
  • モデルを組み込んだフィットネスアプリを作る

Action Cassifier in Create ML

  • 動画を集める
  • 1つのビデに1種類のアクション、1人のみ
  • 全身を判定するので腕と足の動きがカメラに収まるように
  • アクションを格納するフォルダを作って動画を入れる
    • フォルダ名はモデルで利用される
  • 認識しない動作はその他フォルダに入れる
  • 1つの動作に複数のアクションが含まれる場合はトリミングして分割するか、json or csvでannotationを用意する

Create ML

  • Action Classification を選択
  • 動画フォルダをTraining Data Sourceに設定
  • Training Dataのフォルダにはアクションのサブフォルダを入れる
  • 陰性クラスを用意
    • その他、(アクション)なし
  • アクションごとに50本程度のビデオを用意
  • duration : 認識したいアクションの長さ
  • prediction window:予測ウィンドウ
  • オプションの水平展開で左右逆の映像を作れる
  • Testing Dataがあると自動でテストをする
  • Validation はデフォルトでは訓練データを使う
  • 特徴抽出は時間がかかる
  • Vision APIを使っている
    • 体の18箇所以上を認識、x-y座標、信頼性などを計算している
  • 訓練タブ、評価タブで結果が見れる

Trainingタブ

  • 右肩上がりの後に水平になっていれば安定している

Evaluationタブ

  • クラスごとのパフォーマンスが見れる
  • アクションが均等に成果を上げているか

Preview タブ

  • 訓練に使ってない動画でモデルを試せる
  • ファイルを丸ごと処理しているがライブも対応できる
  • 動画を再生すると分類の結果が表示される
  • 画面上にposeの骨組みが表示できる
  • ワイヤーフレームでの表示も可能
  • 作成したモデルを使ってAppを作りにはプロジェクトからモデルをエクスポートする
  • アウトプットタブにファイルサイズやモデルの概要、対応するOSバージョンが表示される
  • モデルをアプリで使う
  • カメラや動画ファイルからジャンプアクションを認識する例
  • ポーズを抽出する、VNDetectHumanBodyPoseRequestを使う
  • 動画のURLを解析する場合はVNVideoProcessorを使う、動画全体を処理する
  • カメラを処理するときは VNImageRequestHandlerを使う
  • 結果を格納するウィンドウの作成にkeypointsMultiArrayを活用する
  • 上位のアクションと信頼性スコアが含まれている
  • Xcodeでモデルの情報が確認できる
    • ラベル、入出力
  • Visionが複数人を検出した場合は対象を選ぶロジックが必要
    • 例えば大きい人選ぶ

アクション分類器に最適な動画を用意する

  • 50本以上のサンプル動画を使う
  • 様々なユーザーの動画
  • 様々な角度から撮影する、正面、側面
  • 休んでいる時の映像も用意しておく
  • 撮影字はカメラの位置を固定する
  • 体の輪郭がはっきり映るように、背景と同じ色は避ける

Create MLのパラメータ

  • prediction windows sizeはアクション全体が含まれれる長さとする
  • フレームレートを一定に、サンプル動画と実際の動画で
  • 推論で複数人が検出されたら1人だけを選ぶように
    • 1人しか検出されないようにユーザーに促すと良い
    • 選択ロジックを工夫する、ランドマークを利用
このスクラップは2020/12/04にクローズされました
ログインするとコメントできます