クラスターフィルター

API:C++C#Python

クラスターフィルターは、点群から浮動小数点と孤立したクラスターを削除します。

Tip

This filter is especially useful if you use collision avoidance while picking objects. Let's say there is a cluster of points above an object, but that cluster doesn't exist in reality. The robot can interpret such floating clusters as real obstacles instead of something it can physically collide with. That can lead to undesirable picking poses of the object or even the inability to pick it.

クラスターフィルターの制御方法

Enabled

フィルターのオン/オフを切り替えます

MaxNeighborDistance

同じクラスターに属すると分類される隣接ポイント間の最大正規化距離。このフィルターは、隣接ポイントが MaxNeighborDistance よりも遠くにあるクラスター(このしきい値よりも密度が低いクラスター)を削除します。値が低いほど、フィルタリングはより積極的に行われます。

MinArea

クラスターの面積(平方ミリメートル単位)。フィルターは、このしきい値を下回る面積を持つクラスターを削除します。このパラメータを増やすと、より大きなクラスターが削除されます。

ポイントを削除するには、 MaxNeighborDistanceMinArea の要件を満たすクラスターに属している必要があります。

パラメータ

条件

Enabled

no

浮動小数点や孤立したクラスターがない場合、または追加の処理時間を確保できない場合

yes

浮動小数点や孤立したクラスターを削除したい場合

MaxNeighborDistance

10 - 8.5

疎なクラスター。ほとんどのシーンで機能します

8.5 - 5.5

密集したクラスター

5.5 - 2

非常に高密度のクラスター。通常は反射によって発生します

MinArea

< 50

Outlier Filter が削除できなかったクラスターの場合

50 - 400

一般的なサイズのクラスターの場合

> 400

通常は反射によって引き起こされるゴーストプレーンを除去するため

浮遊クラスターの削除

Noise FilterOutlier Filter は、ほぼ常に使用される基本的な除去フィルターです。これらのフィルターに Reflection Filter (特にローカルモード)を組み合わせても、良好なポイントを過剰に削除せずに、浮遊ポイントやクラスターをすべて除去できない場合があります。これは通常、困難なシーンで発生します。クラスターフィルターを使うと、シーンの残りの良好なデータを削除せずに、残っている誤ったポイントを除去できます。

Outlier Filter の補完

次の画像では、クラスターフィルターがオフになっており、さまざまなサイズと密度の浮動小数点のコレクションが表示されます。

これらのアーティファクトを示すために除去フィルターなしでキャプチャされた、浮動小数点とクラスターを含む点群の例。

左下の画像では、可能な限り最も厳格な場合に Outlier filter がどのように動作するかを示しており、良好なポイントを削除しながら一部の浮動小数点を保持しています。右下の画像では、クラスターフィルター(この場合はデフォルト値)が、良好なポイントをそのまま維持しながらこれらの浮動小数点をどのように削除するかを示しています。

厳格な Outlier Filter 設定(しきい値は 1 mm に設定);クラスターフィルターがオフ - クラスターは削除されません 厳格な Outlier Filter 設定(しきい値は 1 mm に設定);クラスターフィルターがオフ - クラスターは削除されません
クラスターフィルター(デフォルト値)- クラスターが削除されました クラスターフィルター(デフォルト値)- クラスターが削除されました

Reflection Filter の補完 - ローカルモード

Reflection Filter は、特にローカルモードを使用すると、より多くのポイントグループを浮遊したままにすることがあります。左下の画像をご覧ください。右下の画像では、これらの浮動小数点がクラスターフィルター(この場合はデフォルト値)を使用して削除されていることがわかります。

厳格な Outlier Filter 設定(しきい値は 1 mm に設定);クラスターフィルターがオフ - クラスターは削除されません 厳格な Outlier Filter 設定(しきい値は 1 mm に設定);クラスターフィルターがオフ - クラスターは削除されません
ローカルモードとクラスターフィルターがオンの Reflection Filter(デフォルト値)- クラスターが削除されています ローカルモードとクラスターフィルターがオンの Reflection Filter(デフォルト値)- クラスターが削除されています

ゴーストプレーンの削除

ゴーストプレーンは、現実には存在しない偽の点群データであり、通常はオブジェクト間の相互反射またはビンの壁との相互反射によって生じます。これらの浮動小数点のクラスターの一端は、通常、良好なデータで構成される点群表面に接続されます。クラスターフィルターを微調整することで、ゴーストプレーンを削除できる場合があります。これらのアーティファクトは通常、密度が高く、広い面積を持っています。したがって、フィルターを積極的に調整する必要があり、その結果、オブジェクトの一部またはオブジェクト全体を含む一部の良好なデータが削除される可能性があります。

警告

クラスターフィルターを使用してゴーストプレーンを削除する場合は、重要なデータが削除されていないかどうかを注意深く観察してください。

次のシーン例では、円柱の上部とビンの壁の間の反射により、円柱の上にゴーストプレーンが表示されます。カラー画像では、ビンの上部の壁に円柱の反射が見られることに注目してください。

ゴーストプレーンのアーティファクトを示すシーン。

このゴーストプレーン(左下の画像)は、ロボットがオブジェクトをピッキングするための障害物として解釈される可能性があります。このような障害物があると、望ましくないピッキングポーズが取られたり、ピッキングポーズがまったく取れなくなったりする可能性があります。右下の画像では、クラスターフィルターを積極的に調整することによってゴーストプレーンが除去されていることがわかります。この例では、 MaxNeighborDistance は 5.00 に設定され、 MinArea は 1400.00 に設定されています。トレードオフとして、円柱の下部も除去されます。

クラスターフィルターオフ - ゴーストプレーン クラスターフィルターオフ - ゴーストプレーン
クラスターフィルターオン - ゴーストプレーンなし クラスターフィルターオン - ゴーストプレーンなし

ビンに単一タイプのオブジェクトが含まれている場合、クラスターフィルターを調整してゴーストプレーンを除去するのが容易になります。これは、保持する必要がある点群内の最小のオブジェクトフィーチャの面積を決定できるためです。その後、それに応じて MinArea を設定できます。

処理時間

警告

Intel GPU を使用する場合、クラスターフィルターにより処理時間が大幅に増加する可能性があります。

クラスターフィルターは、3D キャプチャごとに次の処理時間を追加します。

バージョン履歴

SDK

変更点

2.10.1

クラスターフィルターの MaxNeighborDistance の最小値が 4 から 2 に引き下げられました

2.9.0

クラスターフィルターが追加されました