What is a Point Cloud?
A point cloud is a collection of data points in 3D space, often representing the external surface of an object or environment. Each point contains coordinates (x, y, z) and may also include additional information such as intensity, color, or normal vectors.
Point Cloud Formats
- .PCD (Point Cloud Data):
- Native format for the Point Cloud Library.
- .PLY (Polygon File Format):
- Widely supported format with additional support for color and other attributes.
- .LAS/.LAZ:
- Common formats for Lidar point cloud data.
- .OBJ:
- Often used for 3D models that include surfaces.
- Point Cloud Library (PCL):
- A comprehensive library for working with 3D point clouds.
- Website: https://pointclouds.org/
- Features:
- Filtering, segmentation, and surface reconstruction.
- Point cloud registration and alignment.
- Point feature extraction.
- Open3D:
- A modern library for 3D data processing.
- Website: http://www.open3d.org/
- Features:
- Visualization.
- Point cloud manipulation.
- Integration with machine learning tools.
- ROS 2 Point Cloud Messages:
- ROS provides
sensor_msgs/PointCloud
andsensor_msgs/PointCloud2
messages for working with point clouds in robotic systems. - ROS documentation: PointCloud2
- ROS provides
- Pytorch3D:
- A library for deep learning with 3D data, including point clouds.
- Website: https://pytorch3d.org/
These methods utilize voxel grids for efficient 3D object detection and processing.
-
Voxel Field Fusion (VFF): Voxel Field Fusion for 3D Object Detection
- Description: Maintains cross-modality consistency by representing and fusing augmented image features as rays in the voxel field.
- Code: VFF Repository (https://github.com/dvlab-research/VFF)
-
PIXOR: Real-time 3D Object Detection from Point Clouds
-
PointPillars: Fast Encoders for Object Detection from Point Clouds
- Paper: PointPillars Paper (https://arxiv.org/pdf/1812.05784.pdf)
- Code:
- Second.pytorch (https://github.com/nutonomy/second.pytorch)
- CUDA-PointPillars (https://github.com/NVIDIA-AI-IOT/CUDA-PointPillars)
- Suitable for in-door scenes (high object density) not for out-door ( large scale point clouds).
- These methods process raw point clouds directly and are often suitable for high-density, indoor scenes.
- PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space (2017)
- Paper: PointNet++ Paper (https://arxiv.org/pdf/1706.02413.pdf)
- Code: PointNet++ Repository (https://github.com/charlesq34/pointnet2)
- PointRCNN: 3D Object Proposal Generation and Detection from Raw Point Cloud
- Paper: PointRCNN Paper (https://arxiv.org/pdf/1812.04244.pdf)
- Description: Two-stage framework: bottom-up 3D proposal generation and proposal refinement for final detection.
- Code: PointRCNN Repository (https://github.com/sshaoshuai/PointRCNN)
Additional frameworks and resources for advanced point cloud processing.
- VoxelNet: End-to-End Learning for Point Cloud-Based 3D Object Detection
- Code: VoxelNet Repository (https://github.com/qianguih/voxelnet)
- OpenPCDet: LiDAR-Based 3D Object Detection
- Description: Open-source project for LiDAR-based detection.
- Code: OpenPCDet Repository (https://github.com/open-mmlab/OpenPCDet)
- General-Purpose Point Cloud Feature Extractor (G3DNet)
- Code: G3DNet Repository (https://github.com/WDot/G3DNet)
- 3D Machine Learning 201 Guide: Point Cloud Semantic Segmentation
- Books:
- "3D Point Cloud Processing: Advances in Machine Learning and Signal Processing" by Zhiyong Yuan and Weiwei Wan.
- "Point Cloud Data Analysis" by Masatoshi Kaneko.
- Courses:
- Coursera: Computer Vision and Lidar Sensor Fusion.
- Udemy: Point Cloud Processing with Python.
- Research Papers:
- "PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation" by Qi et al.
- "PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space" by Qi et al.
- Web Tutorials:
- Open3D Documentation: http://www.open3d.org/docs/
- PCL Tutorials: https://pointclouds.org/documentation/tutorials.html