認識アルゴリズムの改善とアノテーションコストの削減を実現する合成データの活用方法

2020-09-12

安全性に重視した認識システムを開発するためには、現実世界で遭遇するエッジケースの範囲をカバーする膨大な量のデータが必要となります。現実世界の走行データからデータセットをラベリングしてキュレーションすることは、自動運転車のアルゴリズムをトレーニングするために実践されてきた一般的なアプローチです。テスラの Andrej Karpathy 氏が CVPR 2020 で議論したように、テスラはこのアプローチを、自動運転車両群(フリート)を活用して広範囲に適用しています。この「バリエーションとコントロール」という考え方はとても重要です。なぜならば、対処を要する新たな運転シナリオに自動運転車が遭遇するたびに、エンジニアは常にオントロジーとラベリングの手順を適用しているからです。

しかし、このドライブデータ駆動型のアプローチには、スケーラビリティの制限、データ収集のコスト、情報を正確にラベリングするために必要な労力など、さまざまな制限があります。このブログでは、当社チームが人工的に作成したデータとラベル付けされたデータを用いた補完的なアプローチを行うことで、安全性を重視しながら自動運転アルゴリズムのトレーニングと開発をより迅速かつ高い費用対効果で実施できることを説明します。

図1: グラウンドトゥルースアノテーション付きカメラ画像の合成データの例。オリジナルの RGB 画像(左上)、2D バウンディングボックス(右上)、セマンティックインスタンス(左下)、3D キューボイド(右下)

データラベリングの現状と課題

ラベル付きデータを作成するための典型的なアプローチを図 2 に示しています。これは、テストドライバーが手動モードまたは自動モードでセンサーを搭載した車両を運転するという、労働集約的なプロセスです。車両上で実行されているソフトウェアが生のセンサーデータを記録し、認識、計画、および制御にまたがるソフトウェアの出力を行います。多くのテスト車両には、このデータをキャプチャするのに十分な精度のセンサーが搭載されていないため、特定の開発車両が必要になる場合があります。データが取り込まれた後、ラベル付けや分析を行うべきデータを選択するのも手間のかかる作業です。関心のあるアノテーションを抽出するために、興味のある特定のイベントを慎重に抽出してラベリング会社に送る必要があります(ラベル付けのコストを抑えるために、データセット内のデータ量を最小限に抑えます)。これには、ドライブログから特定のエッジケース(例:高速道路でビニール袋が飛散してるところ)を見つけることも含まれます。また、車両のセンサー構成を更新するたびに、大量のデータを再収集してラベリングする必要がある場合もあります。

図2: 自動運転システムの開発におけるドライブデータのラベリングの典型的なワークフロー

自動運転アルゴリズムのトレーニングに必要なきれいなデータを準備するには、ラベリングが唯一の確実な方法かもしれませんが、このアプローチの最大の欠点は、十分なスケールのために必要な投資です。テストドライバーは、エッジケースに遭遇するまでに何百、何千マイルも運転する必要があるかもしれません。テスラのような企業では、世界中に 100 万台以上のオートパイロット生産車があります。これらの車両群を用いることで言語、配置、車両毎の適用ルールなどが異なるストップサインのロングテールデータセットを収集しています。ほとんどの OEM は、このようなデータセットを提供できる生産車を十分に製造していません。仮に大量のドライブデータが用意されていたとしても、データセットに必要なデータが用意されているという保証はありません。この場合、このデータを収集するために特定のドライブキャンペーンが必要となり、コストと時間の遅延が追加されます。

もう一つの考慮点は、特定条件下におけるデータの入手可能性です。このブログを書いている時点では、米国西部では、空がオレンジ色に染まったり、特定のケースでは赤になったりと、極端な気象条件を見ています(図3)。この地域に車がない場合は、これらの条件が再び起こるまでに何年もかかる可能性があり、この種のデータが十分に表現されていないことによるバイアスの問題が発生する可能性があります。

図3: 異常気象は、自動運転のデータセットで予測することも捉えることも困難である。ソース:CBSニュース

さらに、自動運転システムの開発者は常に新しいデータを探しており、効率的にデータをクエリするための重要なインフラが必要です。このクエリの多くは、特定のタグやアノテーションがすでに利用可能であることを前提としています。しかし、アノテーションが以前に考慮されていなかった場合は、そうではないかもしれません。最後に、ラベリングのコストは相当なものであり、多くのアプローチは手作業であり、人間がループに入る必要があります。ラベリングのミスや不完全な情報(例えば、車が他の車を部分的にブロックしているなど)による不正確さの可能性も多いです。

合成データの利用とそのメリット

合成データは、よりスケーラブルで正確な代替アプローチを提供します。合成データはシミュレーションから作成されますが、グラウンドトゥルース情報(車両の意味的なラベルや交通標識のテキストなど)を正確に利用できます。また、シミュレーションは、シーン内のすべてのオブジェクトのアルベド、奥行き、反射率、粗さなどの正確な情報を提供することができます(図4)。さらに、ピクセルパーフェクトなオブジェクトマスクとセマンティックなインスタンスラベリングが存在します。その結果、これらのアノテーションのいずれかが自動的に作成され、センサーデータの手動ラベリングは必要ありません。カスタムのアノテーションは、現実世界から適切なデータを抽出するために少量のソフトウェアを必要とするかもしれないが、それは新しいラベルクラスを可能にする 1 回限りの固定コストです。

図4: シミュレーションで利用可能なさまざまなグラウンドトゥルースデータの例。上から下、左から右へ。最終シーン、ベースカラー(アルベド)、世界の表面法線、金属性、微小表面粗さ、深度

合成データのラベリングのもう一つの主な利点は、現実の世界で運転したり、運を頼りにしたりすることなく、複数のバリエーションを作成できることです。また、合成データを使用することで、興味のある特定のオブジェクトに焦点を当てることができます。適切な手順設定を行えば、数時間で何百万もの交通標識の例をシミュレーションすることができます。これらには、異なる照明条件、物体の位置、咬合、劣化(錆、油、落書き)などの条件での例を含めることができます。このようにして、合成データは実際のデータを補完する形で使用することができます。実データで特定されたロングテールのイベントは、そのイベントの周りに何千ものバリエーションを作成するための出発点として使用することができます。

バリエーションは地理的にも重要です。テスト車両が外国の道路を走行して、その国特有の道路標識に遭遇したり、スクールバスに標識が半分隠されている標識を見つけるためには何百時間も運転しなければいけないかもありませんが、合成データセットを使用して、これらの条件を即座に作成することができます(図5)。合成的に生成できるシナリオの種類が豊富なので、エッジケースに基づいてアルゴリズムをテストすることができます(図6)。この記事では、自動運転トラック運送会社の Kodiak Robotics が合成シミュレーションを利用してアルゴリズムをトレーニングし、エッジケースを総合的に扱うシステムをテストしている様子を紹介します。

Figure 5: Examples of traffic sign variations in EU (left) and US (right)


図6:合成データ上での道路状況と車線標示の修正

もう一つの重要な使用例は、センサーから得られないデータや手動で簡単に追加できないデータの根拠となるグラウンドトゥルースを取得することです。一般的な例としては、単眼カメラや立体視カメラシステムからロバストに深度を抽出することが挙げられます。実際のデータにはピクセルごとの深度は含まれておらず、正確に計算したり、手作業で注釈を付けたりすることはできません。

合成データが有用であるための要件

センサーデータ

合成データのラベリングが自動運転アルゴリズムのトレーニングやテストに役立つためには、合成センサーデータとアノテーションの両方が一定の基準を満たす必要があります。 以前のブログでセンサーシミュレーションについて説明したように、自動運転システムの開発に使用する大量の合成センサーデータは、安価かつ迅速に(数日単位で)作成しなければなりません。また、合成センサーは、それぞれのセンサーに固有の基本的な物理法則に従うように開発されなければなりません。モデル化される忠実度のレベルは常に重要な考慮事項です。許容されるドメイン・ギャップ(認識アルゴリズムによって合成データと実際のデータがどの程度異なるか)とデータ収集のスピードの間にはトレードオフがあります。ドメインギャップは、シミュレーションされるセンサーや、3D アセットの種類や環境条件によっても異なります。重要な考慮点は、ドメインギャップを定量化し、その情報を使って合成データをどのように使用できるかを知ることです。例として、図 7 は合成ライダーが道路の濡れた状態にどのように反応するかを示しています。地表と車両からの反射によるライダーリターンへの影響を示しています。合成データのラベリングが自動運転アルゴリズムのトレーニングやテストに役立つためには、合成センサーデータとアノテーションの両方が一定の基準を満たす必要があります。

図7: 濡れた環境で走行する車両の合成ライダー画像

環境

合成データの次の考慮点は、環境のばらつきとその中で使用されるマテリアルのばらつきです。環境は、図 8 に示すように、実際の地図やデータを用いて迅速に生成する必要があります。世界を迅速に構築できるかどうかは、プログラム的に世界を生成できるか依存しています。世界中のあらゆる地理的な地域をシミュレートできることも、合成データが実データよりも優れている点のひとつです。シミュレーションではさまざまな場所を簡単に作成することができますが、正しく設定しないと合成データは繰り返しになってしまう可能性があります。反復が認識アルゴリズムに与える影響を理解し、合成データが現実世界と同じ種類のバリエーションを持つようにすることが現在の課題です。変動は、合成路面が 1 kmにわたってどのように変化するかというマクロレベルだけでなく、環境を構築するマテリアルのマイクロレベルでも考慮しなければなりません。

物理ベースのレンダリングマテリアルの重要性については 以前のブログで説明しましたが、通常、これらのマテリアルを構成するテクスチャの多くは、実際の表面の小さなスキャンです。これらのマテリアルのブレンドやバリエーションを作成して、合成データのバリエーションを増やすことは、トレーニングとテストの両方において重要です。

図8:プログラム的に作成された高忠実度の都市環境

アノテーション

必要なデータのアノテーションは、ユースケースと認識アルゴリズムの両方に依存します。現実世界のデータ収集から利用可能なアノテーションを見てみると、一般的に利用可能なアノテーションタイプは表1のようになっています。

表1:現実世界のデータで利用可能なアノテーションタイプ

合成データの場合、実際のデータと同じアノテーションが生成されることに加えて、収集されたデータの中で伝えられる可能性があるグラウンドトゥルース情報の数が格段に多くなります。また、グラウンドトゥルースデータは、常にピクセルまたは点の完全なレベルで生成されます。最後に、センサーデータとアノテーションの両方が、どのようなリファレンスフレーム(グローバル、エゴ、センサーなど)でも伝えられる可能性があります。

シミュレーションから生成されたデータの以下の標準的なアノテーションタイプを表 2 に示します。また、多くのカスタムフォーマットやデータタイプがサポートされています。

表2:合成データで利用可能なアノテーションタイプ

このような付加的な形態のグラウンドトゥルース情報を使用することは、アルゴリズム開発のスピードを高める大きな要因となります。利用可能なデータの規模、品質、およびグラウンドトゥルースデータに保存された情報量は、工学的な選択を行うためのより速いフィードバックサイクルを生み出します。

図9:ピクセルパーフェクトな 2D ボックスを示すアノテーションされた合成データ

当社の合成データラベリングに関するアプローチ

当社チームは、高忠実度の合成データと決定論的な結果をプログラムで作成できる堅牢なシミュレーションエンジンを開発しました。当社の合成データのライブラリは、各業界に特化したユースケースをサポートするために膨大な数にのぼり、幅広いアノテーションを備えています。合成データを使用したアノテーションについてご興味のある方は、弊社の エンジニアでまでお問い合わせください。