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

Kaggle NFL3コンペ振り返り

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for monnu monnu
May 30, 2023
530

Kaggle NFL3コンペ振り返り

社内の技術共有会での発表資料です。
Kaggleの"1st and Future PlayerContactDetection"コンペティションにて、参加したチームが5位でした。
コンペ概要や上位陣の解法、我々の解法などご紹介します。

Avatar for monnu

monnu

May 30, 2023
Tweet

Transcript

  1. AI 3 3 3 自己紹介 • 氏名 ◦ 立松 郁也

    • 経歴 ◦ 2017年3月 大学院入学 ▪ ナーススケジューリング問題の研究 ◦ 2019年4月 電機メーカー入社 ▪ 需要予測モデル開発 ▪ 最適在庫の分析 ◦ 2021年3月 GO株式会社入社(旧:株式会社Mobility Technologies) ▪ 次世代AIドラレコサービス『DRIVE CHART』の分析業務 • SNS ◦ twitter : https://twitter.com/monnu0621 ◦ Kaggle : https://www.kaggle.com/fuumin621
  2. AI 7 7 7 コンペ概要| コンペの目的 NFLのプレイ動画やセンサーデータから、プレイヤー間の接触を検知することが目的 • NFLのプレイ動画やトラッキングデータ等が提供される •

    参加者は2人のプレイヤー同士またはプレイヤーとグランドの接触有無を予測 https://www.kaggle.com/code/robikscube/nfl-player-contact-detection-getting-started
  3. AI 8 8 8 コンペ概要| 提供データ プレイ動画、トラッキングデータ、ヘルメットBBOX等がデータとして提供 • プレイ動画 ◦

    各プレイ毎に3種類の動画が存在(sideline,endzone,all_view) ◦ 解像度 720x1280 ,59.94fps • プレイヤー毎のトラッキングデータ ◦ player毎の位置座標、速度、加速度等 • ヘルメットのBBOX (sidelineとendzoneのみ) ◦ 前回コンペ(NFL2)の課題がヘルメットBBOXの検出だった ◦ 今回のデータに対する、前回の上位モデルによる推論結果のBBOXが提供された • 正解ラベル ◦ 2player間 または player対grounndの接触有無
  4. AI 9 9 9 コンペ概要| 公開notebookの解法 大きく分けてテーブルのみのGBDTと動画を使った2.5DCNNの2種類の解法が公開された • テーブルデータのみのGBDT (LB

    :0.650) ◦ プレイヤー間の距離、速度等による特徴量 ◦ ヘルメットのBBOXを使った特徴量 ◦ 動画データは未使用 • 動画による2.5DCNN (LB : 0.667) ◦ 各プレイヤーのヘルメットBBOX付近の画像をcrop ◦ 前後13フレームの画像をgray scale化して2.5DCNNへ入力 ◦ プレイヤー間の距離が2以下のデータのみを対象とすることでデータ削減 ◦ 一部テーブル特徴も使い、MLP通した後2.5DCNNとconcat
  5. AI 11 11 11 自チームの解法 | サマリ ニューラルネットワークとGBDTによる2 stage pipelineを採用

    2 stage pipeline • Stage 1 : ニューラルネットワーク (CNN, RNN, MLP) • Stage 2 : GBDT (LightGBM, XGBoost) Stage 1 • CNN Backbone (resnet, efficientnet and resnext系) • CNN+RNN によるend to endのモデル • 複数のフレームをまとめて予測 Stage 2 • CNNの予測値やトラッキングデータ等を特徴量としたGBDT
  6. AI 13 13 13 自チームの解法 | 1st stage入力データ • 入力画像(右図参照)

    ◦ gray scale化し、対象playerのBBOX付近をcrop ◦ 前後のフレーム2枚 + BBOXの合計3ch • テーブル特徴 ◦ distance,speed等の10個の特徴量を選定 • augment ◦ 一般的なaugment(flip,shift scale rotate等) ◦ ランダムな画像のドロップ ▪ ランダムに画像を黒画像に変更 ▪ 過学習抑制 + BBOXの欠損対策 ◦ ランダムな特徴量のドロップ ▪ ランダムにfeatureの値 を0にする ▪ 過学習抑制 https://www.kaggle.com/competitions/nfl-player-contact-detection/discussion/392290
  7. AI 14 14 14 自チームの解法 | 2nd stage概要 CNNの予測値やトラッキングデータ等から特徴量を作成しGBDTに入力 公開notebookと同じく、distance<=2に限定することで学習、推論を高速化

    • モデル ◦ Light GBMとXgboostの2つを採用 • データ ◦ distance <= 2のみ対象 ◦ player 1と2を交換することで学習データを多様化 • 特徴量 ◦ 1st stageのCNN予測値 ◦ tracking特徴(distance,speed) ◦ ヘルメットBBOXに関する特徴 ◦ 上記特徴の集約 or shift系の特徴など
  8. AI 16 16 16 自チームの解法 | その他 アンサンブル • foward

    selection ◦ cv最高のモデルからはじめて、他のモデルをブレンドしていき、cv改善しなく なるまで繰り返すという手法 ◦ 様々なbackbone、シーケンス長で学習した後、この手法で選定 Tips • PyTurboJPEGによる読み込み ◦ フレーム分割したjpegの読み込みはPyTurboJPEGを使用 ◦ opencvより1.5倍ほど高速 • lru_cacheによる推論の高速化 ◦ このコンペでは同じフレーム画像を複数回読み込む必要がある ◦ lru_cacheを使い、一度読み込んだ画像はcacheしておくことで効率化
  9. AI 18 18 18 上位陣の解法 | 1st place solution •

    3rd stage pipelineを採用 ◦ xgbで簡単なnegative sampleをフィルタ ◦ 3d CNNでcontactを予測 ◦ xgbで後処理 • CNNパート ◦ モデルは3D CNN(resnet50-irCSN)を採用 ◦ player同士 とplayer対groundを別々でモデル学習 ◦ 動画(endzone + sideline)とトラッキングデータを入力 3rd stage pipelineを採用。解法のメインは3d -cnn
  10. AI 19 19 19 上位陣の解法 | 1st place solution •

    対象playerの頭を黒 or 白の円でマスク ◦ 白 or 黒でチームを色分け • trackingデータは鳥瞰図で画像化 ◦ 対象の2playerを大きい円、その他playerを小さい円で描画し画像化 ◦ 鳥瞰図の形で画像化し、動画のフレームと合わせてchannel方向にstack 3rd stage pipelineを採用。解法のメインは3d -cnn https://www.kaggle.com/competitions/nfl-player-contact-detection/discussion/391635
  11. AI 20 20 20 上位陣の解法 | 2nd Place Solution 2nd

    stage pipelineを採用。2.5D + 3DCNNで予測した後、LightGBMで後処理 • 2nd stage pipelineを採用 ◦ 2.5D + 3DのCNN ◦ LightGBMによる後処理 • CNN ◦ モデルは2.5D+3DCNNを採用 ◦ sidelineとendzoneのフレームを連結 ◦ BBOX領域のmaskをchunnel方向に stack,対象player以外も濃さ変えて入力 ◦ distanceの生値を0-255に正規化して 1chunnel分使って画像のように入力 https://www.kaggle.com/competitions/nfl-player-contact-detection/discussion/391740
  12. AI 21 上位陣の解法 | まとめ • 上位陣でもチームによってアプローチが異なっていたが、推論時間をいかに削るかは共通したポ イントのようだった。 ◦ xgbで候補削って3dCNN(1st)

    ◦ 2.5D CNN + 3DCNNの組み合わせ(2nd) ◦ 2DCNN + LSTMで複数フレームを一括予測(5th) • 1位,2位の解法をみると、テーブル特徴と画像を併用する際、テーブル特徴を何かしら工夫して 画像化するというテクニックが共通していた • 今回効いた手法(TSM,前後フレームのstack等)は、実務でも応用できそうなので、ぜひ試してみ たい