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

Lyft Motion Prediction for Autonomous Vehicles 2020

Inoichan
December 15, 2020

Lyft Motion Prediction for Autonomous Vehicles 2020

2020 Lyft Motion Prediction for Autonomous Vehicles
Competition link: https://www.kaggle.com/c/lyft-motion-prediction-autonomous-vehicles

Inoichan

December 15, 2020
Tweet

More Decks by Inoichan

Other Decks in Technology

Transcript

  1. Lyft Motion Prediction for
    Autonomous Vehicles
    https://www.kaggle.com/c/lyft-motion-prediction-autonomous-vehicles
    いのうえ

    View Slide

  2. 概要
    Motion prediction用の大きいデータ
    セットを作ったのでそれでコンペしよう
    ぜ!
    https://arxiv.org/abs/2006.14480

    View Slide

  3. 概要
    Public & Private
    Train

    View Slide

  4. 概要
    l5kitという専用のLibraryを使用してデー
    タをGenerateする。
    データの作り方はいくつかある。
    Satellite Semantic

    View Slide

  5. 概要

    View Slide

  6. 概要
    Ego: 自動運転車
    Agent: 自動運転車が認識した周囲の移動物体
    予測したいのはこの Agentの5秒後(50 frames)の軌跡
    TestのSceneの10秒目の画像が評
    価対象だった。

    View Slide

  7. 評価指標
    混合ガウスの負の対数尤度





    ● 1つのAgent(AVの周囲の物体)につき50 frame先までの位置の予測をK=3種類出力

    ● 確信度cを含めて出力:混合ガウス






    ● 50 frame先までの平均L2誤差が1m以内でもスコアは100以上になる

    View Slide

  8. Baseline...
    ResNet18をベースにしたシンプルなモデル

    View Slide

  9. 14th place approach
    ・・・
    同じシーンで1フレームずらしただけの画像はほとんど同じ!
    10フレーム毎にサンプリング  1/10のデータ量になりLossの減少も高速に!

    View Slide

  10. 14th place approach
    ● 予測軌跡の移動距離が6m以下のものが約65%とかなり偏りがある
    ● 基本的に、軌跡の移動距離が小さいものほどeasy taskで大きいものほどhard
    taskになると考えられる

    View Slide

  11. 14th place approach
    ● 予測軌跡の移動距離が小さいほど大きく削るように調節
    ■ 6m以下を50%削る
    ■ 3m以下を更に50%削る
    ■ 1.5m以下を更に50%削る
    ■ 0.75m以下を更に50%削る
    ● データ数は削る前の約53%
    ● 全体として6m以下・以上の割合が1:2になる
    これでおおよそデータ数が
    5,760,000くらいになる。
      1エポック 12時間くらい!

    View Slide

  12. LSTM Decoder: Repeat feature vector

    View Slide

  13. 14th place approach

    View Slide

  14. 11th place solution
    ● ResNet18
    ● Rastesr size (150, 150)
    ● Batch size: 512
    ● 408000 iterations

    View Slide

  15. 11th place solution
    ● ResNet18
    ● Rastesr size (150, 150)
    ● Batch size: 512
    ● 408000 iterations
    僕らのチーム
    結局、学習が全然足りてなかった
    のが敗因だった。。。

    View Slide

  16. 1st place solution
    ● Rasterizerを改善、4倍の高速化に成功
    ○ CPU律速 GPU律速(V100 x 8 DDP)
    ● Custom rasterizer
    ● Low resolutionでPretrain
    ● EfficientNet x 4 のEnsemble

    View Slide

  17. 1st place solution
    ● Rasterizerを改善、4倍の高速化に成功
    ○ CPU律速 GPU律速(V100 x 8 DDP)
    ● Custom rasterizer
    ● Low resolutionでPretrain
    ● EfficientNet x 4 のEnsemble
    ● Bootstrapped validation
    1. 幾何学的変換をベクトル化して可能な限りバッチ処理できるようにした。
    2. 大きなndarrayを小さなListに分割
    3. ConcatenateをGPUで行う。(Numpy concatenateは遅いらしい)
    0.124 sec / sample 0.032 sec / sample

    View Slide

  18. 1st place solution
    - SatelliteとSemanticを融合
    - サイズを横長に。
    - いくつかのRaster sizeをEnsemble
    ● Rasterizerを改善、4倍の高速化に成功
    ○ CPU律速 GPU律速(V100 x 8 DDP)
    ● Custom rasterizer
    ● Low resolutionでPretrain
    ● EfficientNet x 4 のEnsemble
    ● Bootstrapped validation

    View Slide

  19. 1st place solution
    - Raster size(64, 112)で4エポック pretrain
    - 5エポック目を(224, 448)で学習
    - カスタマイズしたScheduler
    ● Rasterizerを改善、4倍の高速化に成功
    ○ CPU律速 GPU律速(V100 x 8 DDP)
    ● Custom rasterizer
    ● Low resolutionでPretrain
    ● EfficientNet x 4 のEnsemble
    ● Bootstrapped validation

    View Slide

  20. 1st place solution
    - Raster sizeが異なった4つのEfficientNetを
    Ensembleした。
    ● Rasterizerを改善、4倍の高速化に成功
    ○ CPU律速 GPU律速(V100 x 8 DDP)
    ● Custom rasterizer
    ● Low resolutionでPretrain
    ● EfficientNet x 4 のEnsemble
    ● Bootstrapped validation

    View Slide

  21. 1st place solution
    - Bootstrapped validationをすることで
    スコアだけじゃなくてSDも考慮
    - SDが大きかったEffnetB7, 8は除いた。
    ● Rasterizerを改善、4倍の高速化に成功
    ○ CPU律速 GPU律速(V100 x 8 DDP)
    ● Custom rasterizer
    ● Low resolutionでPretrain
    ● EfficientNet x 4 のEnsemble
    ● Bootstrapped validation

    View Slide