ケーススタディ: 合成データ活用による物体検出性能の向上

2021-12-13
1 min read

自動運転車(AV)のパーセプションシステムの物体検出モデルを学習する際には、実世界のデータが不可欠です。しかし、現実の世界では、トレーニングに必要なすべてのデータを簡単に提供できないことがあります。例えば、自転車やオートバイといったクラスは、歩行者や自動車に比べて発生頻度が低いため、実世界のデータで学習したパーセプションモデルでは正しく検出することが難しい場合があります(図1)。同様に、事故のような最も危険な状況は、テストドライブの最後の数パーセントに隠されているかもしれません。

図1:実世界のデータセットでは、自転車の存在感が薄いことが多い。このため、実世界のデータのみで学習したパーセプションモデルでは、自転車を検出することは困難である。

現実の世界では、存在しないクラスやロングテールイベントの発生頻度が低いにもかかわらず、物体検出モデルは、一般的なクラスや状況と同様に、それらを処理できるように訓練する必要があります。ここ数年、いくつかのパーセプションチームでは合成データを利用して、実世界のデータセットの限界に対処しようとしています。実世界のデータと合成データの間には、まだドメインギャップがあることを認識しておく必要がありますが、最近の手法では、合成データの改良と新しい機械学習の学習戦略を組み合わせることで、このギャップを克服しつつあります。

この使用例を示すために、Applied Intuition のパーセプションチームは、実世界のデータセットで見つかったクラスの偏りに対処するための補助的なトレーニングリソースとして合成データを使用するケーススタディを実施しました。この研究では、合成データがクラスの偏りを緩和し、実世界のデータが限られている領域への対処に役立つ可能性があることを示しています。

目標と範囲

このケーススタディでは、Motional が提供しているデータセットである nuImages をベースラインのトレーニングデータセットとして使用しています。このデータセットでは、自転車というクラスの出現頻度は、自動車や歩行者などの著名なクラスに比べて 170 倍も低くなっています(図2)。

図2:今回のケーススタディで使用したnuImagesトレーニングセットのクラス分布。人と車の出現頻度が高い(今回使用した5つのクラスのうち、合計で約90%)。自転車 (Cyclist クラス) は0.3%しか出現しません。

このケーススタディでは、合成データセットを生成して使用し、パーセプションアルゴリズムの自転車に対する物体検出性能を向上させるとともに、他のクラスに対する物体検出性能を維持または向上させます。また、合成データを用いることで、モデルの物体検出性能を向上させるために必要な実世界のデータ量を減らせるかどうかについても検討します。

実施内容

このケーススタディでは以下のステップで構成されています。

  1. nuImagesデータセットの実世界のデータのみで学習したベースラインモデルを分析する。
  2. 実世界のデータセットに含まれる Cyclistクラスの出現頻度が不足していることに着目し、ラベル付きの合成データを生成する。合成データセットでは、より多くのCyclistクラスの例を作成する。
  3. 上記の合成データを、nuImagesデータに加えて、補助的な学習リソースとして使用する。

1. ベースラインモデルの分析

まず、実世界のnuImagesデータにおいて、クラスの偏りに対してパーセプションモデルがどのように反応するかを測定します。Cascade Mask R-CNNのパーセプションモデルを、このデータセットで収束するまで学習しました。その結果、 Cyclist クラスでの物体検出性能は、他のすべてのクラスに比べて低くなりました(図3)。

図3:ベースラインパーセプションアルゴリズムを nuImagesデータで学習させた場合の物体検出性能。クラスを分類せずに計測した性能(バウンディングボックスやセグメンテーション結果)については平均再現率(mAP)スコア(すなわち、オブジェクト検出の精度指標)を測定結果として、クラス毎 (車両やトラック、自転車、オートバイ、歩行者など) の性能は 0:5:0.95 で測定した IoU 値(予測された領域がどれだけグランドトゥルースの領域と重なっているかを表す指標)の平均値を表示しています。

2. 合成データの生成 

次に、合成データを生成して、割合の少ない Cyclist クラスをアップサンプルします(図4)。ここでは、手続き型の3D環境生成、シナリオの自動作成、合成データ生成パイプラインを用いて、このプロセスを実現しています。

図4:Cyclist クラスに影響を与えるクラス偏りを対象にした合成データセットの例。このデータセットでは、Cyclist クラスが27.4%の確率で出現しています。

3. 合成データと実世界データを用いたパーセプションモデルの学習

そして、上記の合成データセットを用いて、以下の実験でモデルの性能を向上させます。

i)混合学習実験

合成データと実世界のデータを1つの大きな学習データセットにまとめます。実世界のデータと合成データの両方を含むバッチを、訓練中にこのデータセットからランダムに抽出します。合成データと実世界データの比率を調整し、合成データを多く、実世界データを少なくすることが、モデルの物体検出性能に影響を与えるかどうかを調べるために、2つの実験を行いました。

  • 合成データと実世界データの比率を0.5:1にした場合
  • 合成データと実世界データの比率を1:1にした場合

ii) ファインチューン実験

検証のために少量の合成セットを使用して、合成データセットのみで収束するようにモデルを学習します。その後、以下の量の実世界データを用いてモデルの微調整を行うため,3回の実験を行います

  • データアブレーションなしでの微調整: nuImagesトレーニングセットの 100% を使用
  • データアブレーションありでの微調整: nuImagesトレーニングセットの 70% を使用 
  • データアブレーションありでの微調整: nuImagesトレーニングセットの 50% を使用

実験結果

1. 定量的な結果

実世界のデータを100%使用したベースラインモデルと比較して,合成データと実世界のデータを混合して学習すること(混合学習)は,Cyclistクラスの改善につながる(図5).合成データでモデルを事前学習した後に,100%の実世界データでモデルを微調整する方法(データアブレーションなしの微調整)が最も高い性能向上を示し,すべてのクラスでベースラインモデルを一貫して上回った(図5)。

図5:クラス別のmAPスコア。混合学習と微調整の実験により,実世界データを100%使用したベースラインと比較して,CyclistのmAPスコアが向上しているが,他のクラスでは向上が限定的である。

合成データでモデルを事前学習した後、実世界データの70%でモデルを微調整する(データアブレーションによる微調整)ことで、Cyclistクラス(図5)と全体(図6)の両方で性能が向上しました。

図6:ファインチューニング実験の平均平均精度(mAP)スコア。実世界のデータの70%を使って微調整を行った場合(緑)のmAPスコアは,実世界のデータの100%を使った場合(青)のベースラインを上回っている。

2. 定性的な洞察

このケーススタディでは、合成データが、困難なケースでの物体検出性能の向上に役立つことが示唆されています。以下の画像は、合成データで事前学習したモデルが成功する一方で、ベースラインモデルが Cyclist を適切に検出できなかったケースを示しています(図7 a)~7 c))。

図7 a)。実世界のデータのみで学習したベースラインモデルでは,自車から近い距離にいる Cyclist を検出できなかった(左).合成データで事前に学習したモデルでは、その Cyclist を検出することができた(右)。

図7 b)。実世界のデータのみで学習したベースラインモデルでは、自車両の近くにいる Cyclistを検出できない(左)。合成データで事前学習したモデルでは、その Cyclist を検出することができた(右)。

図7 c)。実世界のデータのみで学習したベースラインモデルは,日陰にいる Cyclist を検出できなかった(左).合成データで事前に学習させたモデルは,その Cyclist をうまく検出した(右)。

商用アプリケーション

このケーススタディでは、自動運転車のパーセプションモデルをノミナルケースとエッジケースの両方でトレーニングする際に、合成データが実世界のデータセットを補完する有用なツールであることを早くから示しています。落下物、高速道路上の歩行者や生きている動物、濃霧による視界不良などの状況は稀であるにもかかわらず、AVは安全にナビゲートするための準備をしなければなりません。合成データは、Cyclistなどの少数派クラスに対するパーセプションモデルの物体検出性能を向上させることで、クラスの偏りに対処するのに役立ちます。また、合成データは、トレーニングデータセットを生成し、実世界のデータを収集するには頻度が低すぎたり、危険であったりする場合に、稀なケースや困難なケースを対象とするための、迅速で費用対効果の高い、倫理的な方法を提供します。

Applied Intuition の合成データセットの詳細については、パーセプションエンジニアのチームにお問い合わせください。