LiDARポイントクラウドからのオブジェクトのクラスタリングは、自動運転などの多くのアプリケーションでの重要な研究問題です。リアルタイムの要件を満たすために、既存の研究では、ヒューリスティック条件を使用してLiDAR球面範囲画像に連結成分ラベリング(CCL)手法を適用し、2つの隣接点が接続されているかどうかを確認することを提案しました。ただし、LiDAR範囲画像は、2つのピクセルが同じコンポーネントに属しているかどうかを判断する決定論的条件を持つバイナリ画像とは異なります。 LiDAR範囲画像で使用されるヒューリスティック条件は経験的にのみ機能します。これは、LiDARクラスタリングアルゴリズムが経験的ヒューリスティック条件の潜在的な障害に対して堅牢である必要があることを示唆しています。この課題を克服するために、このペーパーでは、分割とマージのLiDARクラスタリングアルゴリズムを提案します。このアルゴリズムは、最初に均等に分割された各ローカル領域でクラスタリングを実行し、次にエッジポイントペアに投票することによってローカルのクラスター化された小さなコンポーネントをマージします。 m個の分割されたローカル領域を持つオブジェクトの合計N個のLiDARポイントがあると仮定すると、提案されたアルゴリズムの時間計算量はO(N)+ O(m ^ 2)です。 mが小さいほど、投票には隣接するポイントが多く含まれますが、時間計算量は大きくなります。したがって、mは、時間計算量とクラスタリング精度の間のトレードオフを制御します。適切なmは、提案されたアルゴリズムがリアルタイムで機能し、良好なパフォーマンスを維持するのに役立ちます。 SemanticKITTIパノラマセグメンテーションベンチマークで、最先端のセマンティックセグメンテーションモデルとカスケードすることにより、分割とマージのクラスタリングアルゴリズムを評価します。リーダーボードを通じて評価された最終的なパフォーマンスは、公開されているすべての方法の中で最高のものを達成します。提案されたアルゴリズムはC ++で実装され、Python関数としてラップされます。 Pythonの最新のディープラーニングフレームワークで簡単に使用できます。
Clustering objects from the LiDAR point cloud is an important research problem with many applications such as autonomous driving. To meet the real-time requirement, existing research proposed to apply the connected-component-labeling (CCL) technique on LiDAR spherical range image with a heuristic condition to check if two neighbor points are connected. However, LiDAR range image is different from a binary image which has a deterministic condition to tell if two pixels belong to the same component. The heuristic condition used on the LiDAR range image only works empirically, which suggests the LiDAR clustering algorithm should be robust to potential failures of the empirical heuristic condition. To overcome this challenge, this paper proposes a divide-and-merge LiDAR clustering algorithm. This algorithm firstly conducts clustering in each evenly divided local region, then merges the local clustered small components by voting on edge point pairs. Assuming there are N LiDAR points of objects in total with m divided local regions, the time complexity of the proposed algorithm is O(N)+O(m^2). A smaller m means the voting will involve more neighbor points, but the time complexity will become larger. So the m controls the trade-off between the time complexity and the clustering accuracy. A proper m helps the proposed algorithm work in real-time as well as maintain good performance. We evaluate the divide-and-merge clustering algorithm on the SemanticKITTI panoptic segmentation benchmark by cascading it with a state-of-the-art semantic segmentation model. The final performance evaluated through the leaderboard achieves the best among all published methods. The proposed algorithm is implemented with C++ and wrapped as a python function. It can be easily used with the modern deep learning framework in python.