Point Cloud
-
https://github.com/charlesq34/pointnet.git GitHub - charlesq34/pointnet: PointNet: Deep Learning on Point Sets for 3D Classification and SegmentationPointNet: Deep Learning on Point Sets for 3D Classification and Segmentation - charlesq34/pointnetgithub.comPoint cloud를 input으로 받는 딥러닝 모델을 설계할 때는 항상 고민에 빠지게 되는 지점은 '길이가 모두 다른 point cloud를 어떻게 정규화를 해 줄 것인가?'인 것 같습니다. 길이를 고정해놓고 패딩을 줄 수도 있고, 정규화 네트워크를..
PointNet의 input point cloud processing에 대해서https://github.com/charlesq34/pointnet.git GitHub - charlesq34/pointnet: PointNet: Deep Learning on Point Sets for 3D Classification and SegmentationPointNet: Deep Learning on Point Sets for 3D Classification and Segmentation - charlesq34/pointnetgithub.comPoint cloud를 input으로 받는 딥러닝 모델을 설계할 때는 항상 고민에 빠지게 되는 지점은 '길이가 모두 다른 point cloud를 어떻게 정규화를 해 줄 것인가?'인 것 같습니다. 길이를 고정해놓고 패딩을 줄 수도 있고, 정규화 네트워크를..
2025.02.04 -
1. 문제 상황 : Sparse Point Cloud RELLIS-3D 데이터셋의 포인트 클라우드를 다루던 도중, 일정 거리 이상으로 멀어지면 포인트 클라우드가 너무 Sparse 해 져서 문제가 자꾸 발생했습니다. 위 이미지는 포인트 클라우드를 Heightmap 이미지로 바꾼 것을 해당 위치에 재구성한 것입니다. 센서에서 멀어질 수록 포인트가 적어지는 것을 볼 수 있습니다. 따라서 이런 "Sparse Point Cloud" 문제를 해결하기 위해서 다양한 방법들이 제시되고 있습니다. 대표적으로는 다음과 같은 방법들이 있습니다. 1) interpolation : K-NN 등을 사용하여 주변의 다른 데이터 포인트를 사용하여 누락된 데이터를 채워 넣는 기술입니다. 2) Octree / KD-Tree 구조..
Point Cloud 를 동심원 모양으로 분할하기 (Python)1. 문제 상황 : Sparse Point Cloud RELLIS-3D 데이터셋의 포인트 클라우드를 다루던 도중, 일정 거리 이상으로 멀어지면 포인트 클라우드가 너무 Sparse 해 져서 문제가 자꾸 발생했습니다. 위 이미지는 포인트 클라우드를 Heightmap 이미지로 바꾼 것을 해당 위치에 재구성한 것입니다. 센서에서 멀어질 수록 포인트가 적어지는 것을 볼 수 있습니다. 따라서 이런 "Sparse Point Cloud" 문제를 해결하기 위해서 다양한 방법들이 제시되고 있습니다. 대표적으로는 다음과 같은 방법들이 있습니다. 1) interpolation : K-NN 등을 사용하여 주변의 다른 데이터 포인트를 사용하여 누락된 데이터를 채워 넣는 기술입니다. 2) Octree / KD-Tree 구조..
2023.07.31 -
FPFH (Fast Point Feature Histogram) 이전 포스팅 (https://zzziito.tistory.com/46) 에서 소개했던 PFH 에서 문제가 되는 부분이 여러 개 있었습니다. 우선 PFH 는 특정 포인트와 그 Vicinity 에 대해서 Quadreplet 을 만들기 때문에 \(O(nk^{2})\) 의 시간 복잡도를 가지게 됩니다. 즉, 프로세싱 시간이 굉장히 깁니다. 따라서 이런 높은 시간복잡도 문제를 해결하기 위해서 PFH 의 개선된 버전으로 FPFH 가 고안되었습니다. 새로 도입된 여러 장치들 덕분에 FPFH 의 시간복잡도는 \(O(nk)\) 로 한층 낮아졌습니다. 이렇게 낮아진 시간복잡도의 가장 큰 원인은, FPFH 는 fully-interconnect 되어 있지 않다는..
Point Cloud Descriptor (2) : FPFH, 3DSC, SHOT, NARFFPFH (Fast Point Feature Histogram) 이전 포스팅 (https://zzziito.tistory.com/46) 에서 소개했던 PFH 에서 문제가 되는 부분이 여러 개 있었습니다. 우선 PFH 는 특정 포인트와 그 Vicinity 에 대해서 Quadreplet 을 만들기 때문에 \(O(nk^{2})\) 의 시간 복잡도를 가지게 됩니다. 즉, 프로세싱 시간이 굉장히 깁니다. 따라서 이런 높은 시간복잡도 문제를 해결하기 위해서 PFH 의 개선된 버전으로 FPFH 가 고안되었습니다. 새로 도입된 여러 장치들 덕분에 FPFH 의 시간복잡도는 \(O(nk)\) 로 한층 낮아졌습니다. 이렇게 낮아진 시간복잡도의 가장 큰 원인은, FPFH 는 fully-interconnect 되어 있지 않다는..
2023.07.18 -
Registration (정합) 을 수행할 때 ICP (Iterative Closest Point) 를 사용하는 경우에는 "포인트들간의 매칭 정보를 알 필요가 없다" 라는 장점이 있었습니다. 하지만 이 방법은 초기 포즈가 어느 정도 정확하지 않으면 Registration 이 잘 되지 않는다는 단점이 있습니다. 이때 Point Cloud 에서 대응점을 구하기 위해서 사용하는 것이 Descriptor 입니다. 이미지도 Descriptor 가 있듯이 Point cloud 에도 Feature Point 와 Descriptor (기술자) 가 있습니다. 3D Feature Matching 을 통해서 할 수 있는 것 Classification Registration Pose Estimation 2D Feature ..
Point Cloud Descriptor (1) : PFHRegistration (정합) 을 수행할 때 ICP (Iterative Closest Point) 를 사용하는 경우에는 "포인트들간의 매칭 정보를 알 필요가 없다" 라는 장점이 있었습니다. 하지만 이 방법은 초기 포즈가 어느 정도 정확하지 않으면 Registration 이 잘 되지 않는다는 단점이 있습니다. 이때 Point Cloud 에서 대응점을 구하기 위해서 사용하는 것이 Descriptor 입니다. 이미지도 Descriptor 가 있듯이 Point cloud 에도 Feature Point 와 Descriptor (기술자) 가 있습니다. 3D Feature Matching 을 통해서 할 수 있는 것 Classification Registration Pose Estimation 2D Feature ..
2023.07.15 -
사실 Point Cloud 의 포인트들은 다 연결되어 있습니다. 모든 물체가 바닥에 붙어 있기 때문입니다. 따라서 DBSCAN 을 적용하면 모두 연결되어 있기 때문에 다음과 같이 하나의 클러스터가 나옵니다. 따라서 바닥을 찾아서 없앨 필요가 있습니다. 바닥을 찾는 것을 Plane Segmentation 이라고 합니다. 이때 많이 사용하는 방식이 RANSAC 입니다. RANSAC 은 우선 샘플을 뽑고, 해당 조건을 가장 많이 만족하는 파라미터를 찾는 것입니다. 하지만 Plane Segmentation 에서 RANSAC 을 쓰는 경우에는 "1) 바닥은 하나 뿐이고 , 2) 바닥면이 가장 크다" 라는 가정을 전제로 하고 있습니다. 예를 들어, RANSAC 을 사용할 때는 벽면이 더 클 경우 벽면을 바닥이라고 ..
바닥을 찾아보자 - Plane Segmentation사실 Point Cloud 의 포인트들은 다 연결되어 있습니다. 모든 물체가 바닥에 붙어 있기 때문입니다. 따라서 DBSCAN 을 적용하면 모두 연결되어 있기 때문에 다음과 같이 하나의 클러스터가 나옵니다. 따라서 바닥을 찾아서 없앨 필요가 있습니다. 바닥을 찾는 것을 Plane Segmentation 이라고 합니다. 이때 많이 사용하는 방식이 RANSAC 입니다. RANSAC 은 우선 샘플을 뽑고, 해당 조건을 가장 많이 만족하는 파라미터를 찾는 것입니다. 하지만 Plane Segmentation 에서 RANSAC 을 쓰는 경우에는 "1) 바닥은 하나 뿐이고 , 2) 바닥면이 가장 크다" 라는 가정을 전제로 하고 있습니다. 예를 들어, RANSAC 을 사용할 때는 벽면이 더 클 경우 벽면을 바닥이라고 ..
2023.07.07 -
Point Cloud 에서 Object 혹은 Ground 를 찾아내는 과제에서는 다음과 같은 Clustering 알고리즘이 다양하게 사용되고 있습니다. Object 는 보통 바닥과 이어져 있기 때문에 바닥면을 찾고, 해당 바닥면을 제거하면 object 가 따로 따로 떨어지게 되어서 object clustering 을 하게 될 때 장점도 있습니다. Segmentation 과 Clustering 의 차이점 Segmentation 큰 그룹을 같은 특성을 가지는 작은 그룹으로 분할하는 것. - 모든 포인트들에 대해서 Classification 을 진행하는 것. Clustering 비슷한 애들끼리 뭉치는 것. (Identify hidden patterns or structures in the data and g..
Point Cloud 를 군집화해보자 - Clustering : K-means, DBSCANPoint Cloud 에서 Object 혹은 Ground 를 찾아내는 과제에서는 다음과 같은 Clustering 알고리즘이 다양하게 사용되고 있습니다. Object 는 보통 바닥과 이어져 있기 때문에 바닥면을 찾고, 해당 바닥면을 제거하면 object 가 따로 따로 떨어지게 되어서 object clustering 을 하게 될 때 장점도 있습니다. Segmentation 과 Clustering 의 차이점 Segmentation 큰 그룹을 같은 특성을 가지는 작은 그룹으로 분할하는 것. - 모든 포인트들에 대해서 Classification 을 진행하는 것. Clustering 비슷한 애들끼리 뭉치는 것. (Identify hidden patterns or structures in the data and g..
2023.07.06