こんにちは、ティアフォーでオープンソースの自動運転システム「Autoware」の開発をしている岡本直樹です。Sensing & Perceptionチームで学生エンジニアをしており、現在は以下の図のような自己教師あり学習に関する論文の調査と手法の評価に取り組んでいます。
私たちティアフォーは、多種多様なセンサや環境に適応可能な認識アルゴリズムの実現を目指しています。そのためには、センサや環境に合わせてデータを収集して機械学習モデル (以降、単にモデルと書きます) を学習するスケーラブルな自動運転開発が必要となります。しかしながら、モデルの学習はデータに加えて正解情報を表す正解ラベルが必要です。
3次元物体検出の学習を例に上げると以下の図に示すように、点群データはLiDARセンサの特性上、視野から隠れている部分については点群を取得することができない(オクルージョン)ため、隠れている部分まで含めた正解ラベル(3D Bounding Box)の作成には非常に時間がかかり、高コストになります。
また、センサの種類や走行環境の差(Domain Gap)によって既存の学習済みモデルが性能劣化を起こすことがあります。これらのドメインごとのアノテーションをすべて行うことは、自動運転の導入コストを引き上げてしまう要因となりえます。
そのため、アノテーションをせずにドメイン特有の特徴を学習する技術が期待されます。
この記事では、3次元物体検出に焦点を当てたラベルなしデータを用いた事前学習に関する最近の動向について紹介し、その中から2022年、2023年に提案された3本の研究について詳しく紹介します。
自己教師あり学習は、ラベルなしデータ(正解ラベルのないデータ)のみを使用した事前学習方法です。自己教師あり学習によりデータ内の物体の対応関係などを学習します。
自己教師あり学習したモデルは、物体検出やセグメンテーションなどの目的とするタスクへ転移学習やfine-tuningすることで活用されます。自己教師あり学習では、この転移学習やfine-tuning先のタスクを下流タスクと呼びます。
画像分野では、2019年に登場した対照学習により下流タスクの認識性能が飛躍的に向上しました。対照学習の概要を以下の図に示します。対照学習は「各サンプルについて クロップや色変換などのデータ増幅を行い、同一サンプルから作成したサンプル同士は同じ特徴量となることを促す学習 (図左)」と「異なるサンプルから作成したサンプルは異なる特徴量となることを促す学習 (図右)」を組み合わせた学習方法です。これにより「犬の頭と犬の足」、「椅子全体と椅子の足」といったオブジェクトの対応関係の学習とオブジェクトごとに異なる特徴量として表現することが期待できます。
2021年以降は自然言語分野のTransformerを画像分野へ応用したVision Transformer(ViT)の登場により、Transformerの事前学習方法の1つであるMasked Modelingを画像へ応用した研究が盛んに行われています。画像におけるMasked Modelingの概要を以下の図に示します。画像におけるMasked Modelingは、パッチ分割した画像に対してパッチ単位のマスク処理を行い、マスクされたパッチの画素や特徴量を予測する学習方法です。これにより、encoderはパッチから周囲のパッチを復元可能な特徴量を抽出することが促されるため、周囲のパッチと共通する特徴を見出すことに繋がり、オブジェクトを構成するパーツの対応関係やオブジェクトと背景の関係についての学習が期待できます。
自己教師あり学習による事前学習は、以下の表のように様々な下流タスクにおいて教師あり学習による事前学習と同程度、または上回る認識性能を発揮することが示されています。そのため、アノテーションされていないデータから教師あり学習と同等以上のオブジェクトに関する知識を身につけることができると言えます。
これらの自己教師あり学習の波は、点群分野にも到来しています。しかし多くの手法は、ShapeNetデータセットなどのオブジェクトレベルの点群に焦点を当てており、1つの点群内に複数のオブジェクトや背景が含まれる運転シーンのLiDAR点群に焦点を当てた手法は、まだまだ少ないと言えます。
2021年から2023年に提案された運転シーンの点群に焦点を当てた自己教師あり学習の手法を年表として以下に示します。運転シーンの点群における自己教師あり学習は、タスクの学習と事前学習の大きく2つの目的に大別できます。(注:事前学習を目的とした手法は、3次元物体検出における有効性が示されている手法のみを記載しています。ご注意ください。)
事前学習を目的とした各手法を簡単に紹介すると以下の通りです。
以下にGCC-3Dにおける評価実験を示します。WaymoデータセットやnuScenesデータセットのTrain dataをラベルなしデータとして扱って自己教師あり学習を行い、その後Train dataの一部のデータを使用して3次元物体検出に関する教師あり学習(fine-tuning)をした結果です。
シチュエーションとしては「大量のラベルなしデータを用いて自己教師あり学習 → ラベルなしデータの一部に対してアノテーション → アノテーションしたデータを用いてfine-tuning」といえます。
Waymoデータセットの結果に注目すると自己教師あり学習したモデルは、100%のデータにアノテーションを行ってスクラッチ(乱数により初期化した重み)から学習したモデルの認識性能を、約40%のデータをアノテーションしてfine-tuningすることで達成できることが示されています。
また、アノテーションするデータが少ないほどスクラッチとの認識性能の差が大きくなります。多くの手法で同様の傾向が報告されており、収集したラベルなしデータの活用とアノテーションコストの削減が期待できると言えます。
これらの事前学習を目的とした手法の多くは、画像分野の対照学習やMasked ModelingをどのようにLiDAR点群へ適用するのが良いのかという観点から発展してきました。そのため、LiDAR点群ならではの情報を十二分に活用できていないと言えます。
ECCV2022やCVPR2023で発表された手法の中には、LiDAR点群ならではの情報を活用した、より自動運転に特化した手法の提案がされています。以降では自動運転により特化した2本の自己教師あり学習と、自己教師あり学習とは異なるアプローチによりアノテーションコストの削減を行う新たな1本の手法について紹介します。
1本目は「3D Object Detection with a Self-supervised Lidar Scene Flow Backbone」です。この手法は、「Scene Flowを用いた自己教師あり学習」と「自己教師あり学習とfine-tuningを交互に行う学習戦略」を提案しています。Scene Flowは、時間方向のオブジェクトの動きをベクトルで表現したものです。そのため、Scene Flowを用いた自己教師あり学習によりオブジェクト特有の動きを捉えることで、3次元物体検出に寄与するような特徴量の獲得を目指しています。
「Just Go with the Flow: Self-Supervised Scene Flow Estimation」で提案されたcycle-consistency approachに基づいて自己教師あり学習を行います。cycle-consistency approachを以下の図に示します。cycle-consistency approachは、2つの損失 Nearest Neighbor LossとCycle Consistency Lossからモデルを学習します。
Nearest Neighbor Lossでは、時刻 tの点から時刻 t+1の点 (forward flow) を予測します。このとき、正解ラベルがないため、どの点が実際に対応する点なのかわかりません。そこで、予測した時刻 t+1の点に最も近い時刻 t+1の実データとの差を損失として計算します。
次にCycle Consistency Lossでは、Nearest Neighbor Lossで予測した時刻 t+1の点から時刻 tの点 (reverse flow) を予測します。このとき、時刻 t+1の点を予測するために使用した時刻 tの実データはわかっているため、その時刻 tの実データと予測した時刻 tの点の差を損失として計算します。
このように時刻 t → t+1、予測した時刻 t+1 → t と双方向にflow推定を行うことで学習が行われます。
従来の自己教師あり学習では、自己教師あり学習を行った後にfine-tuningを行い、学習を終了していました。この手法では「自己教師あり学習 → fine-tuning → 自己教師あり学習 → fine-tuning」という4ステップの学習戦略を提案し、交互に学習を行うことで認識性能が更に向上することを示しました。
2本目は「ALSO: Automotive Lidar Self-supervision by Occupancy estimation」です。ALSOは点の補完タスクを事前学習として利用した手法です。従来の教師あり補完は、より精度の高い補完を目的として、複数の点から1つの点を生成します。一方でALSOは、下流タスクに有用な特徴表現の獲得を目的として、1つの点から周囲の点を生成します。これにより、周囲の点を予測可能な情報を内包 = 幾何学的な情報や意味的な情報を獲得することを期待しています。
自己教師あり学習のため、人がGround truth surfaceを作成せずに、生成対象の点(Query point)と正解ラベル(Occupancy)のペアを用意する必要があります。この場合におけるOccupancyとは、点やボクセルが空か空ではないかに関する密度情報です。ALSOではOccupancyを点やボクセルが空ではない場合に0、空の場合に1と定義しています。
LiDARセンサで取得した点は、何かしらの物体の表面を表します。LiDARセンサと取得した点の関係を以下の図に示します。
LiDARセンサの中心位置とLiDARセンサで取得した点(Input points)を直線で結んだとき、Input pointsよりセンサ側は必ず物体がない(Segment in empty space)、センサと逆側は物体の内部であるため必ず物体がある(Segment in full space)と仮定することができます。
ALSOではこの仮定に基づいて、LiDARセンサの中心位置とInput pointsを結ぶ直線上からQuery pointとOccupancyのペアを3つ作成します。
この3つのQuery pointの作成をLiDARセンサの中心位置とInput pointsを結んだ直線ごとに行い、自己教師あり学習に使用するデータセットとします。
Input points s、Query point q、Occupancyの関係を以下の図に示します。
Input points sごとに半径 r 内にあるQuery point qのOccupancyを予測することで、学習を行います。まず、学習対象のモデルによりInput points sから特徴量 z_s を抽出します。次に特徴量 z_sと、Input points sから見たQuery point qの座標情報 q-s をデコーダ(MLP+シグモイド関数)に入力し、Query pointのOccupancyを予測します。損失関数には、Occupancyとモデルの予測結果間のバイナリクロスエントロピーが使用されます。
LiDAR Intensityを利用可能な場合は、特徴量 z_s の抽出時にInput pointsの座標情報に加えてIntensityを入力します。しかし、特徴量 z_s の抽出時にIntensityの情報を破棄してしまう可能性があり、モデルが座標情報とIntensityの両方を最大限に活用してOccupancyの予測を行うことを保証することはできません。
そこでデコーダにおいて、Query pointのOccupancy予測に加えて、Input pointsのIntensity予測も行います。Input pointsのIntensityは、入力として使用しているため、入力から出力までIntensityの情報を保持し、そのまま出力とすることで簡単に予測することができます。Input pointsのIntensityが特徴量 z_s内で保持されていることで、デコーダでのOccupancyの予測にInput pointsのIntensityを活用することが可能となります。Input pointsのIntensity予測の損失関数には、Input pointsのIntensityとモデルの予測結果間のL2距離が使用されます。
最後に3本目は「SAM3D: Zero-Shot 3D Object Detection via Segment Anything Model」です。自己教師あり学習は、ラベルなしデータを用いた事前学習とラベルありデータを用いた教師あり学習の2ステップにより、認識性能の向上とラベル作成のコスト削減の可能性を示しました。一方で新たな試みとして、事前学習のみを行い、Zero-shotで3次元物体検出を行うSAM3Dが提案されています。Zero-shotとは、新しいタスクについて一切学習することなく、そのタスクを解くことを意味します。
SAM3Dは、画像のセグメンテーションにおいて高いZero-shot認識性能を達成しているSegment Anything Model (SAM)をLiDAR点群の3次元物体検出に応用した手法です。SAM3DのZero-Shot3 次元物体検出の処理を以下の図に示します。SAM3Dは、Natural imageで学習済みのSAMを用いて、Projection、BEV Post-processing、SAMの適用、Mask Post-processing、Mask2Boxの5つのステップからZero-shot 3次元物体検出を行います。
SAMは画像を入力とした手法です。そこでSAM3Dでは、LiDAR点群をBEV(Bird’s-Eye-View)画像に変換することで、LiDAR点群に対してSAMを適用可能とします。
BEV画像を使用した点群モデルとしてPointPillarsがあります。PointPillarsの処理過程を以下の図に示します。図左はBEV画像、図右は3次元物体検出の処理過程です。PointPillarsではまずLiDAR点群をx-y平面に対して垂直な柱状(ピラー)に分割します。次にピラー内のLiDAR点群からPointNetにより特徴量を抽出します。最後にピラーの位置に基づいて抽出した特徴量をBEV画像の画素値とすることで、BEV画像が作成されます。
一方でSAM3Dでは、取得した点群のintensity r_i からBEV画像の画素値 (色情報) c_i を作成します。
SAM3DにおけるBEV画像の画素位置 (cx_i, cy_i) は以下の式により作成します。
ここで、s_xとs_yはピラーのx方向とy方向のサイズ、U_xとU_yはx軸とy軸の上限、x_iとy_iはLiDAR点群の座標情報です。
BEV画像の画素値は以下の式により作成します。
ここで、Norm(•)は[0, 1]の区間への正規化、Palette(•)は事前に定義したカラーパレットです。
BEV画像は点群ベースのため疎な点の集合として得られ、SAMの学習に使用したNatural imageとの間にドメインギャップがあります。そこで、BEV画像に対してモルフォロジー演算の膨張処理を適用することで、各点の間を補間します。
BEV画像に対してSAMを適用し、セグメンテーションを行います。SAMの処理を以下に示します。
SAMは、Image encoder(ViT)、Prompt encoder、Mask decoderから構成されます。まずはじめにImage encoderによって画像から特徴量を抽出します。次に密なプロンプト(マスク)と疎なプロンプト(点、ボックス、テキスト)を特徴量に埋め込みます。マスクは畳み込み演算によって埋め込まれます。点とボックスはPositional encodings、テキストはCLIPで学習したText encoderの出力によって表現し、Mask decoder内のCross-attentionによって埋め込まれます。最後にMask decoderによってセグメンテーションを行います。セグメンテーション結果はマスクと呼ばれ、グリッド状に配置した点プロンプト(例:32×32)の各点に対応するマスクが得られます。マスクは物体全体、部分的なパーツ、細かなパーツの3種類が出力され、最もスコアが高いマスクを使用します。
点群の疎な性質から点プロンプトが何もない空間に配置されることがあります。そこでSAM3Dでは、あらかじめ何もない空間に配置された点プロンプトを削除することで処理速度の高速化を実現します。論文内では10倍の高速化(0.2 FPS → 2 FPS)を実現したと報告されています。
BEV画像とNatural image間のドメインギャップにより、マスクには多くのノイズがあります。そこで、一般的な自動車の面積とアスペクト比によりしきい値処理を行い、ノイズなマスクを除外します。
最後にマスクから3D bounding boxを作成します。まず、マスクを囲うような形で最小の2D bounding boxを作成し、次のように定義します。ここで、N_oはオブジェクトの数、(x_i, y_i) は中心位置、(d_x_i, d_y_i)は幅と高さ、θ_iは角度を表します。
次にBEV画像の条件であるピラーのサイズ(s_x, s_y)とx軸とy軸の上限(U_x, U_y)を用いて次の式により2D bounding boxの各値を3D bounding boxへ拡張します。
最後に、BEV画像化する前の点群の垂直方向の情報を用いて次の式により3D bounding boxの垂直方向の中心と高さを決定し、最終的な3D bounding boxとなります。
以下にWaymoデータセットを使用した論文内の評価実験の結果を示します。認識性能は高いとは言えませんが、使用したモデルはLiDAR点群を用いた学習を一切行っておらず、Zero-shotで3次元物体検出が可能であるという新たな可能性を示したと言えます。
今回は、運転シーンにおける3次元物体検出に焦点を当てた自己教師あり学習に関する最近の動向について簡単に紹介し、より自動運転に特化した2本の自己教師あり学習と1本のZero-shotで3次元物体検出を行う新たなアプローチについて紹介しました。
3本の研究を簡単にまとめると以下のようになります。
Scene Flow
ALSO
SAM3D
自己教師あり学習によって、収集したラベルなしデータの活用とラベル作成のコスト削減が期待できると言えます。画像分野では、継続学習における自己教師あり学習の有効性も示されてきており、今後は自己教師あり学習によるデータ収集に合わせた逐次的なモデルのアップデートやローコストでの新規ドメインへの適用技術の発展が期待されます。
また新たなアプローチとして、SAM3DによりZero-shotでの3次元物体検出が可能となりました。今後の発展によりアノテーションが不要で高い認識精度の実現が期待されます。
Perception Teamでは、以下の経験のある方を求めています。
Perception R&D EngineerやSensing System R&D Engineerにて募集しておりますので、ご応募ください。Open Positionでの募集も行っております。
以下の経験のある学生エンジニアさんも、Sensing & Perception学生エンジニアにて募集しております。
私 (岡本) 自身は、普段は大学で画像認識に関する研究をしています。自動運転や点群に関する機械学習技術に興味があり学生エンジニアに応募し、現在は点群や自動運転の勉強をしつつ業務に取り組んでいます。点群や自動運転に興味がある方は、ぜひご応募ください。
最後までお読みいただき、ありがとうございました。
オープンソースのソフトウェアを一緒に開発していきませんか?
ティアフォーでは、「自動運転の民主化」というビジョンに共感を持ち、自らそれを実現する意欲に満ち溢れた新しい仲間を募集しています。
Media Contact
pr@tier4.jp
Share the post
LinkedIn | X | Facebook | Instagram