Cluster Filter

API:C++C#Python

Cluster Filter는 포인트 클라우드에서 Floating 포인트들과 작은 Cluster를 제거합니다.

팁

이 필터는 물체를 집는 동안 충돌 방지를 사용하는 경우에 특히 유용합니다. 물체 위에 포인트들의 Cluster가 있지만 해당 Cluster가 실제로는 존재하지 않는다고 가정해 보겠습니다. 로봇은 이러한 Floating Cluster를 물리적으로 충돌할 수 있는 대상이 아니라 실제 장애물로 해석할 수 있습니다. 이로 인해 물체에 대해 바람직하지 않은 픽 포즈가 발생하거나 아예 픽을 수행하지 못할 수도 있습니다.

How to control the Cluster Filter

Enabled

필터 켜기/끄기

MaxNeighborDistance

여전히 동일한 Cluster에 속하는 것으로 분류되는 인접 지점 간의 최대 정규화 거리입니다. 필터는 이웃 지점이 MaxNeighborDistance보다 멀리 떨어져 있는 Cluster(이 임계값보다 밀도가 낮은 Cluster)를 제거합니다. 값이 낮을수록 더 공격적으로 필터링됩니다.

MinArea

Cluster의 면적(단위: 제곱 밀리미터)을 나타냅니다. 필터는 이 임계값 미만의 영역이 있는 Cluster를 제거합니다. 이 매개변수를 늘리면 더 큰 Cluster가 제거됩니다.

포인트를 제거하려면 MaxNeighborDistance 및 MinArea 요구 사항을 충족하는 Cluster에 속해야 합니다.

Parameter

Value

Condition

Enabled

no

Floating 포인트들과 작은 Cluster가 없거나 추가 처리 시간을 감당할 수 없는 경우

yes

Floating 포인트들과 작은 Cluster를 제거하려는 경우

MaxNeighborDistance

10 - 8.5

희소 Cluster, 대부분의 장면에서 작동

8.5 - 5.5

밀집된 Cluster

5.5 - 2

일반적으로 반사에 의해 발생하는 매우 조밀한 Cluster

MinArea

< 50

Outlier Filter가 제거하지 못한 Cluster의 경우

50 - 400

일반적인 크기의 Cluster의 경우

> 400

일반적으로 반사로 인해 발생하는 고스트 평면 제거용

Removing floating clusters

Noise Filter 및 Outlier Filter 거의 항상 사용되는 기본 제거 필터입니다. 이러한 필터는 Reflection Filter (특히 local 모드)와 함께 너무 많이 제거하지 않고는 모든 Floating 포인트들과 Cluster를 제거하지 못할 수 있습니다. 좋은 점. 이것은 일반적으로 도전적인 장면의 경우입니다. Cluster Filter는 장면의 나머지 부분에서 양호한 데이터를 제거하지 않고 남아 있는 잘못된 포인트들을 제거할 수 있습니다.

Complementing the Outlier Filter

다음 이미지에서 Cluster Filter가 꺼져 있고 크기와 밀도가 다른 Floating 포인트들 모음을 볼 수 있습니다.

이러한 아티팩트를 보여주기 위해 제거 필터 없이 캡처한 Floating 포인트들 및 Cluster가 있는 포인트 클라우드의 예입니다.

왼쪽 아래 이미지에서 Outlier Filter가 가장 엄격할 때 좋은 점을 제거하는 동안 일부 Floating 포인트들을 유지하면서 동작하는 방식을 볼 수 있습니다. 오른쪽 하단 이미지에서 Cluster Filter(이 경우 기본값 사용)가 좋은 포인트들을 그대로 유지하면서 이러한 Floating 포인트들을 제거하는 방법을 볼 수 있습니다.

Strict Outlier Filter 설정 (1mm로 설정된 임계값) Cluster Filter 꺼짐 - Cluster가 제거되지 않음 Strict Outlier Filter 설정 (1mm로 설정된 임계값) Cluster Filter 꺼짐 - Cluster가 제거되지 않음
Cluster Filter(기본값 포함) - Cluster가 제거됨 Cluster Filter(기본값 포함) - Cluster가 제거됨

Complementing the Reflection Filter - Local mode

Reflection Filter 특히 Local 모드에서 더 많은 포인트 그룹을 부동 상태로 둘 수 있습니다. 왼쪽 하단 이미지를 살펴보십시오. 오른쪽 하단 이미지에서 이러한 떠 다니는 포인트들이 Cluster Filter(이 경우 기본값 사용)를 사용하여 제거되었음을 볼 수 있습니다.

Strict Outlier Filter 설정 (1mm로 설정된 임계값) Cluster Filter 꺼짐 - Cluster가 제거되지 않음 Strict Outlier Filter 설정 (1mm로 설정된 임계값) Cluster Filter 꺼짐 - Cluster가 제거되지 않음
Local 모드 및 Cluster Filter가 켜져 있는 Reflection Filter(기본값) - Cluster가 제거됨 Local 모드 및 Cluster Filter가 켜져 있는 Reflection Filter(기본값) - Cluster가 제거됨

Removing ghost planes

고스트 평면은 실제로 존재하지 않는 잘못된 포인트 클라우드 데이터이며 일반적으로 개체 간의 상호 반사 또는 빈 벽과의 상호 반사로 인해 발생합니다. 이러한 Floating 포인트들 및 Cluster의 한쪽 끝은 일반적으로 좋은 데이터로 구성된 포인트 클라우드 표면과 연결됩니다. 때때로 Cluster Filter를 미세 조정하여 고스트 평면을 제거할 수 있습니다. 이러한 아티팩트는 일반적으로 밀도가 높고 면적이 넓습니다. 따라서 필터를 적극적으로 조정해야 하므로 개체의 일부 또는 전체 개체를 포함하여 일부 양호한 데이터가 제거될 수 있습니다.

경고

Cluster Filter를 사용하여 고스트 플레인을 제거할 때 중요한 데이터가 제거되는지 주의 깊게 관찰하십시오.

다음 예제 장면에서는 실린더 상단과 빈 벽 사이의 반사로 인해 실린더 위의 고스트 평면이 나타납니다. 컬러 이미지에서 용기 상단 벽에 반사된 실린더을 볼 수 있습니다.

고스트 플레인 아티팩트를 보여주는 장면.

이 고스트 평면(왼쪽 아래 이미지)은 로봇이 물체를 집는 데 장애물로 해석될 수 있습니다. 이러한 장애물로 인해 바람직하지 않은 픽 포즈가 나타나거나 아예 픽 포즈가 나타나지 않을 수도 있습니다. 오른쪽 하단 이미지에서 Cluster Filter를 적극적으로 조정하여 고스트 평면이 제거된 것을 볼 수 있습니다. 이 예에서 MaxNeighborDistance 5.00으로 설정되고 MinArea 1400.00으로 설정됩니다. 절충으로 실린더의 바닥 부분도 제거됩니다.

Cluster Filter 꺼짐 - 고스트 플레인 Cluster Filter 꺼짐 - 고스트 플레인
Cluster Filter 켜기 - 고스트 플레인 없음 Cluster Filter 켜기 - 고스트 플레인 없음

빈(Bin)에 단일 유형의 개체가 포함된 경우 Cluster Filter를 조정하여 고스트 평면을 제거하는 것이 더 쉽습니다. 유지해야 하는 포인트 클라우드에서 가장 작은 개체 기능의 영역을 결정할 수 있기 때문입니다. 그런 다음 그에 따라 MinArea 설정할 수 있습니다.

Processing time

경고

Intel GPU를 사용하는 경우, Cluster Filter는 처리 시간을 크게 늘릴 수 있습니다.

Cluster Filter는 3D 캡처당 다음 Processing time을 추가합니다.

Version History

SDK

Changes

2.10.1

Cluster Filter의 MaxNeighborDistance 최소값이 4에서 2로 감소했습니다.

2.9.0

Cluster Filter가 추가되었습니다.