BEV Perception
BEV Perception は、camera や LiDAR の sensor data を、上から見下ろした Bird's-Eye-View representation に変換して scene を理解する方法です。Autonomous driving で特に重要です。
なぜ BEV なのか
自動運転では、planning は車両周辺の地面平面に近い coordinate で行われます。Front camera image のままでは、距離や位置関係が perspective によって歪みます。BEV では、object、lane、road boundary、occupancy を同じ top-down coordinate で扱えます。
Camera-to-BEV
Camera から BEV を作るには、image feature を 3D / BEV 空間へ lift する必要があります。Depth distribution を推定して feature を lift する方法や、transformer attention で BEV query が image feature を参照する方法があります。
LiDAR-camera fusion
BEVFusion のような method は、LiDAR と camera の feature を BEV 空間で fuse します。LiDAR は正確な geometry、camera は texture / semantics に強いため、相補的です。
数式で見る image-to-BEV の lift と pooling
BEV perception の中心は、camera image の feature を ego 座標系の BEV grid に持ち上げることです。Camera の pixel を camera coordinate に戻し、depth を仮定すると 3D 点が得られます。
Camera から ego 座標への変換 を使って、ego 座標へ移します。
BEV grid 上の cell への projection を とすると、BEV feature は次のように pooling されます。
各項の意味は次の通りです。
- は camera の pixel feature です。
- は depth 分布や visibility に応じた重みです。LSS のように depth distribution を予測する場合、 はこの確率を含みます。
- 多 view の feature を同じ cell に重ねて足すことで、obstacle が複数 view から強く支持されている領域ほど BEV feature が強くなります。
この式の気持ちは、「camera image を平面に貼り付けるのではなく、各 pixel が ego 周りのどの位置を見ているかを幾何で計算し、地面座標の grid に積み上げる」というものです。Depth が不確実だと BEV feature がぼけるため、depth 分布を予測する LSS 型や、attention で BEV を直接 query する BEVFormer 型などの設計が使われます。
関連ページ
主なソース
- BEVFormer: https://arxiv.org/abs/2203.17270
- BEVFusion: https://arxiv.org/abs/2205.13542
- Lift-Splat-Shoot: https://arxiv.org/abs/2008.05711