Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AI技術の実応用と実験環境の整備 (DRIVE CHARTの脇見検知)

AI技術の実応用と実験環境の整備 (DRIVE CHARTの脇見検知)

DRIVE CHARTではドラレコ映像からAIで危険行動を検知しますが、実サービスにAIを導入するには様々な課題があります。誤検知ゼロを目指す脇見運転検知での実例やその実験環境についてご紹介します。

GO Inc. AI Tech

March 03, 2021
Tweet

More Decks by GO Inc. AI Tech

Other Decks in Technology

Transcript

  1. 経歴 2019/4 DeNA 新卒入社 2020/4 Mobility Technologies へ出向 笹木 陸

    / Riku Sasaki Mobility Technologies 開発本部 AI技術開発部(DeNAより出向) DRIVE CHART データサイエンスチーム @losveria (Kaggle Expert) 4
  2. 10

  3. • 前方車両検出結果 • レーン検出結果 深層学習 モデル イベント検知 12 内カメラ映像 外カメラ映像

    加速度・角速度 GPS エッジ サーバ 地図 各種モデル • 顔ランドマーク検出結果
  4. • DRIVE CHARTの概要 • 脇見検知へのデータサイエンス応用 ◦ 脇見検知の概要 ◦ 脇見検知のモデル ◦

    モデル作成上の課題と対策 ◦ テストと運用 • 実験環境の整備 13
  5. • DRIVE CHARTの概要 • 脇見検知へのデータサイエンス応用 ◦ 脇見検知の概要 ◦ 脇見検知のモデル ◦

    モデル作成上の課題と対策 ◦ テストと運用 • 実験環境の整備 16
  6. 機械学習 モデル コンピュータビジョンを用いた 直接的なアプローチ 17 • 顔向き • 目の開き具合 •

    顔の大きさ など 動画 脇見検知 特徴量 視線方向と 関連していると 仮定
  7. 脇見検知 モデル 軽量な 深層学習 モデル 脇見候補 20 内カメラ動画 エッジ サーバ

    ランドマーク センサデータ 脇見検知 高性能な 深層学習 モデル 脇見候補動画 リクエスト ① ② ③ ④
  8. • 顔向き • 目の開き具合 • カメラとの距離 • 加速度 • 速度

    などの特徴量 誤差(損失関数) 最小化 21 残差 残差 ︙ 入力 モデル 出力 脇見確率 (0〜1) アノテーション 脇見 (1) または 脇見ではない (0)
  9. • DRIVE CHARTの概要 • 脇見検知へのデータサイエンス応用 ◦ 脇見検知の概要 ◦ 脇見検知のモデル ◦

    モデル作成上の課題と対策 ◦ テストと運用 • 実験環境の整備 22
  10. 誤差(損失関数) 最小化 23 残差 残差 ︙ 入力 モデル 出力 脇見確率

    (0〜1) アノテーション 脇見 (1) または 脇見ではない (0) • 顔向き • 目の開き具合 • カメラとの距離 • 加速度 • 速度 などの特徴量
  11. 24 車線変更や カーブ時の 左方確認 or 脇見 前傾姿勢で 前方注視 or 脇見

    脇見運転の定義が曖昧かつ、 類似事象との見分けが困難 類似事象の誤検知が発生 課題 カーブ、車線変更、前傾姿勢、目線のみ前方等
  12. 車線変更や カーブ時の 左方確認 or 脇見 脇見運転の定義が曖昧かつ、 類似事象との見分けが困難 類似事象の誤検知が発生 顔との距離・速度・加速度など 脇見と一見関係ない特徴量導入

    25 課題 前傾姿勢で 前方注視 or 脇見 顔とカメラの 距離で判定 加速度で 判定 カーブ、車線変更、前傾姿勢、目線のみ前方等
  13. 誤差(損失関数) 最小化 28 残差 残差 ︙ 入力 モデル 出力 脇見確率

    (0〜1) アノテーション 脇見 (1) または 脇見ではない (0) • 顔向き • 目の開き具合 • カメラとの距離 • 加速度 • 速度 などの特徴量
  14. 大部分は 脇見でないため サンプリング後 に予測で高速化 32 残差 ︙ 残差 • 非走行時の予測を飛ばす

    • 全フレームではなく、 サンプリングと重点的予測 −, , , −, , −, 木 木 モデル複雑化で 精度向上 課題 GBDTモデルによる2クラス分類 モデルを複雑にすると 精度向上するが、計算コスト増加 予測値とラベルとの残差を次の木で予測する
  15. 誤差(損失関数) 最小化 33 残差 残差 ︙ 入力 モデル 出力 脇見確率

    (0〜1) アノテーション 脇見 (1) または 脇見ではない (0) • 顔向き • 目の開き具合 • カメラとの距離 • 加速度 • 速度 などの特徴量
  16. • DRIVE CHARTの概要 • 脇見検知へのデータサイエンス応用 ◦ 脇見検知の概要 ◦ 脇見検知のモデル ◦

    モデル作成上の課題と対策 ◦ テストと運用 • 実験環境の整備 37
  17. 実験環境での 検証 • 実験環境での検証(後半) ◦ 精度が想定通りか • 本番環境での検証 ◦ 検知の分布と精度が想定通りか

    • 展開後のモニタリング ◦ 誤判定が発生していないか ◦ 長期的に精度が劣化していないか 展開後の モニタリング 本番環境での 検証 データ収集 アノテーション モデル作成 38
  18. 展開後の モニタリング 本番環境での 検証 実験環境での 検証 データ収集 アノテーション モデル作成 39

    • 実験環境での検証(後半) ◦ 精度が想定通りか • 本番環境での検証 ◦ 検知の分布と精度が想定通りか • 展開後のモニタリング ◦ 誤判定が発生していないか ◦ 長期的に精度が劣化していないか
  19. • 実験環境での検証(後半) ◦ 精度が想定通りか • 本番環境での検証 ◦ 検知の分布と精度が想定通りか • 展開後のモニタリング

    ◦ 誤判定が発生していないか ◦ 長期的に精度が劣化していないか 展開後の モニタリング 本番環境での 検証 実験環境での 検証 データ収集 アノテーション モデル作成 40
  20. • ユーザー体験 ◦ 誤検知ゼロ ◦ シチュエーションや利用者の 違いに対しロバストな検知 • コスト ◦

    将来的な導入台数の拡大を見据え 処理できる計算コスト 41 ほとんどゼロ 特定の人やシーンでの 検知の偏り無し 許容可能なコスト 更なる低下を目指す データの徹底的な分析により 各課題に対応したデータや モデルを作成することで、要件を 満たす脇見検知システムが完成
  21. 44 経歴 2019/7 DeNA 入社 2020/4 Mobility Technologies 入社 大西

    健太 / Kenta Onishi Mobility Technologies 開発本部 AI技術開発部 DRIVE CHART MLOpsチーム
  22. • DRIVE CHARTの概要 • 脇見検知へのデータサイエンス応用 • 実験環境の整備 ◦ 評価実験の位置づけと実験環境の要件 ◦

    採用した解決策と実験環境の全体像 ◦ Amazon EKS環境へのKubeflow Pipelinesの導入 ◦ ETL systemとFeature storeの内製 45
  23. • DRIVE CHARTの概要 • 脇見検知へのデータサイエンス応用 • 実験環境の整備 ◦ 評価実験の位置づけと実験環境の要件 ◦

    採用した解決策と実験環境の全体像 ◦ Amazon EKS環境へのKubeflow Pipelinesの導入 ◦ ETL systemとFeature storeの内製 46
  24. • 実験環境での検証(後半) ◦ 精度が想定通りか • 本番環境での検証 ◦ 検知の分布と精度が想定通りか • 展開後のモニタリング

    ◦ 誤判定が発生していないか ◦ 長期的に精度が劣化していないか 展開後の モニタリング 本番環境での 検証 データ収集 アノテーション モデル作成 47 実験環境での 検証
  25. 48 • サービスで実デバイスから収集されたデータを入力とし て検出処理を行う ◦ 検証データとサービスのデータで収集条件や分布が異なる場合がある • 大量の運転データを用いて検出処理を行う ◦ 誤検知ゼロの達成には十分なデータ数で評価実験することが重要

    ◦ 評価実験でも大量のデータを高速に処理できる必要がある • Jupyter notebookなどではなく、サーバのコードを実行 して検出処理を行う ◦ サービスと同じコードを動かし、デプロイ後も同じ挙動を保証する
  26. 深層学習 モデル イベント検知 50 内カメラ動画 外カメラ動画 加速度・角速度 GPS エッジ サーバ

    地図 各種モデル • 前方車両検出結果 • レーン検出結果 • 顔ランドマーク検出結果
  27. 深層学習 モデル イベント検知 51 内カメラ動画 外カメラ動画 加速度・角速度 GPS 地図 各種モデル

    特徴量の 変更も... ロジックの 変更も... 最終結果に影響を与える • 前方車両検出結果 • レーン検出結果 • 顔ランドマーク検出結果
  28. 誤差(損失関数) 最小化 53 残差 残差 ︙ 入力 モデル 出力 脇見確率

    (0〜1) アノテーション 脇見 (1) または 脇見ではない (0) • 顔向き • 目の開き具合 • カメラとの距離 • 加速度 • 速度 などの特徴量
  29. 誤差(損失関数) 最小化 54 残差 残差 ︙ 入力 モデル 出力 脇見確率

    (0〜1) アノテーション 脇見 (1) または 脇見ではない (0) 前処理済みの特徴量で、 モデルの開発や分布の検 証などを行いたい • 顔向き • 目の開き具合 • カメラとの距離 • 加速度 • 速度 などの特徴量
  30. 脇見検知 モデル 軽量な 深層学習 モデル 脇見候補 55 内カメラ動画 エッジ 検出サーバ

    ランドマーク センサデータ 脇見検知 高性能な 深層学習 モデル 脇見候補動画 リクエスト ① ② ③ ④ 動画推論サーバ
  31. 脇見検知 モデル 軽量な 深層学習 モデル 脇見候補 56 内カメラ動画 エッジ 検出サーバ

    ランドマーク センサデータ 脇見検知 高性能な 深層学習 モデル 脇見候補動画 リクエスト ① ② ③ ④ 動画推論サーバ Python実装 Rust実装 軽量なGBDTモ デル 多段の PyTorchモデル Python実装
  32. 57 • 複数人が異なるイベント種別 (脇見や急後退など) を同時 に実験 ◦ イベント種別ごとに開発チームや開発フェーズが異なる • 同じイベント種別でも異なるパラメータで同時に実験

    ◦ Ex. モデルのバージョン間の比較 • ある実験が他の実験に影響を与えてはいけない ◦ 実験に用いた特徴量や実験結果は、実験ごとに独立して保存 ◦ 他の実験でコンピューティングリソースが割かれて実験完了が遅れる、 なども避けたい
  33. 58 • 多様なバックボーンのスペシャリスト約30名が開発従事 ◦ コンピュータビジョン ◦ エッジAI開発 ◦ データサイエンス ◦

    サーバサイド開発 ◦ 経験してきた分野や技術スタック、開発フェーズなどが異なる • 実験は全員が平等に行えるようにしたい ◦ 自分が行った変更に対して、自分で結果まで確認できるようにする ◦ イメージビルドなどの定型作業は自動化する
  34. • DRIVE CHARTの概要 • 脇見検知へのデータサイエンス応用 • 実験環境の整備 ◦ 評価実験の位置づけと実験環境の要件 ◦

    採用した解決策と実験環境の全体像 ◦ Amazon EKS環境へのKubeflow Pipelinesの導入 ◦ ETL systemとFeature storeの内製 59
  35. • Amazon EKS + Kubeflow Pipelinesを導入 ◦ ✅ エッジとサーバの一貫試験 ◦

    ✅ 動作要件の異なるコンポーネントの連携 ◦ ✅ 複数の実験の並行 ◦ ✅ 実験手順が簡便 • ETL systemとFeature storeを内製 ◦ ✅ 実験データの収集・生成の自動化 ◦ ✅ 前処理済みの特徴量を使った開発・検証 60
  36. 61 Test Y Test X データセッ ト ETL System Feature

    store エッジ 検出サーバ 推論 前処理 出力 検出 前処理 出力 可視化 集計・可 視化 動画 ロジック開発 サービス環境 AI環境 カメラファイル デプロイ デプロイ S3 (ファイルストレージ ) Aurora (RDB) SageMaker (≒ Jupyter Notebook) ECS (コンテナ実行環境 ) Lambda (サーバレス環境 ) 推論 出力 カメラファイル センサファイル テーブル EKS 動画推論 サーバ サービスデータ の収集を集約 前処理済み特徴 量を使って開発 実験ごとに独立した実行環境を構築
  37. • DRIVE CHARTの概要 • 脇見検知へのデータサイエンス応用 • 実験環境の整備 ◦ 評価実験の位置づけと実験環境の要件 ◦

    採用した解決策と実験環境の全体像 ◦ Amazon EKS環境へのKubeflow Pipelinesの導入 ◦ ETL systemとFeature storeの内製 62
  38. 64 • は機械学習に関わるワークロードをk8s上で 実行するためのツールキット群 ◦ 開発、学習、ワークフロー、サービング等 • ワークフローを担う を採用 ◦

    実験管理に特化したパイプラインを構築できる ▪ SDK (Python) も提供されているので簡単に実装できる ◦ k8sインフラの恩恵 (スケーラビリティなど) をそのまま受けられる ◦ リッチなWebインタフェースがデフォルトで提供される ▪ Apache AirflowやAWS Step Functions等も検討したが、UIの点で 最も使い勝手が良かった
  39. • ユーザとデモを繰り返しながら開発 • 実験条件は可能な範囲でパラメータ化することで、ユー ザがコントロールできるようにする ◦ 有効にする機能のトグル (エッジ+サーバ や サーバのみ

    などのバリエー ションに対応) ◦ 実験に用いるエッジやサーバのバージョン • 定型作業はパイプライン上で自動化 ◦ データコピー、ビルド・デプロイなど • 特徴量や途中結果の可視化、AWS Cloudwatch Logsへの ログの集約、実験完了のSlack通知など
  40. • DRIVE CHARTの概要 • 脇見検知へのデータサイエンス応用 • 実験環境の整備 ◦ 評価実験の位置づけと実験環境の要件 ◦

    採用した解決策と実験環境の全体像 ◦ Amazon EKS環境へのKubeflow Pipelinesの導入 ◦ ETL systemとFeature storeの内製 67
  41. 68 • DRIVE CHARTリリース初期はAI開発者が必要なデータを 毎回収集してから実験を行っていた ◦ データソースが多岐 (センサファイル、動画ファイル、テーブルなど) に わたるため、実験ケースごとに要否を適切に判断する必要がある

    ◦ データの重複保持によるストレージコストの圧迫 ◦ データガバナンスの面でも問題 • データセット管理の仕組み (ETL system) を開発・運用 ◦ 実験データの収集自動化・永続化・共有を実現
  42. 69 API Gateway AI環境 サービス環境 ファイル テーブル コピー コピー Lambda

    (API) Lambda (Enq) SQS ECS メタデータ run run update データセット化 実験のタイミングで実 行開始 スケジュールで実行 手動実行 CLI + APIで汎用的なインタフェースを提供 サーバレスで オートスケール AWSマネージドサービスの組み合わせで実現
  43. 70 • “Feature store”は前処理された特徴量を入出力・永続化 するためのデータストア ◦ 主に実験の再現性の担保、前処理済みのデータの共有などが目的 ◦ Uber, Airbnb,

    NetflixなどのMLシステムで同様の仕組みを持っている ◦ CHARTでは前処理済みのセンサデータ (= CSVデータ) などが対象 • プロジェクト用にFeature storeを内製 ◦ OSSのFeature store (feastなど) も候補に上がったが、高機能な一方、 想定環境のミスマッチや運用ハードルの高さのため、採用を見送り
  44. 71 • センサデータを入出力・永続化に特化した最小構成 ◦ KubeflowやJupyter NotebookからPythonクライアントでアクセス ◦ gRPCサーバをRustで実装 ECS Aurora

    (メタデータ) S3 (rawデータ) SageMaker Pandas DataFrame と Apache Parquet を相互変換 (通信高速化 + ストレージ削減) 負荷に応じてオートスケール
  45. 73 • DRIVE CHARTではAIの品質の最終チェックとし て評価実験を行っている • Kubeflow Pipelines + ETL

    system + Feature storeで実験環境を構築・運用 • 実際の運転で生成された大量のデータを使った実 験が、誰でも実行できるようになった
  46. 75