Skip to content

Object Detection Pipeline Example

SUMMARY

Object Detection Pipeline Example demonstrates a complete 3D object detection workflow using the Vitreous SDK. It includes loading, preprocessing, segmenting, clustering, and calculating bounding boxes for objects in point cloud data.

This example is useful in industrial, mobile, and humanoid robotics pipelines for detecting and localizing objects in 3D space. For example, it can detect parts on a conveyor belt in manufacturing, identify obstacles for mobile robots, or locate items for humanoid robot manipulation. The pipeline ensures objects are properly segmented and represented for downstream tasks like pose estimation, pick-and-place, or navigation.

Use these Skills when you want to build a robust 3D object detection workflow using point cloud data.

The Pipeline

This pipeline focuses on discovering and localizing objects in a scene without requiring prior knowledge of object models.

text
Input Point Cloud

Segment Plane

Filter by Plane

Subtract Plane Points

Cluster Objects

Estimate Bounding Boxes

The output of this pipeline is a set of geometrically segmented objects, each represented by a bounding box suitable for downstream tasks such as grasp planning, collision checking, or navigation.

The Skills

The pipeline is composed of the following Vitreous Skills, listed in the order they are applied:

  1. segment_point_cloud_using_plane
    Detects the dominant planar surface (e.g., table or ground).

  2. filter_point_cloud_using_plane_splitting
    Splits the point cloud relative to the detected plane.

  3. filter_point_cloud_using_plane_proximity
    Filters points near the plane to remove surface-adjacent noise.

  4. subtract_point_clouds
    Removes remaining near-plane points to clean the scene.

  5. cluster_point_cloud_using_dbscan
    Groups remaining points into distinct object candidates.

  6. calculate_oriented_bounding_box
    Computes oriented bounding boxes for each detected object.

Examples

This pipeline can be applied to a range of object detection scenarios. The following examples illustrate how the same sequence of Skills behaves on different types of objects and scenes.

Example 1: Detecting Screws on a Surface

Pipeline Parameters
Plane Segmentation
distance_threshold=1.5

Plane Splitting
keep_positive_side=False

Plane Proximity Filter
distance_threshold=1

Subtract Point Clouds
distance_threshold=1
DBSCAN Clustering
max_distance=3.5
min_points=600
print_progress=True

Input Point Cloud

Output: Detected Objects with Bounding Boxes


Example 2: Detecting Consumer Goods

Pipeline Parameters
Voxel Downsampling
voxel_size=3

Plane Segmentation
distance_threshold=1

Plane Splitting
keep_positive_side=False

Plane Proximity Filter
distance_threshold=3

Subtract Point Clouds
distance_threshold=11
DBSCAN Clustering
max_distance=20
min_points=100
print_progress=True

Input Point Cloud

Output: Detected Objects with Bounding Boxes

The Code

INFO

The runnable implementation will be available soon to you.

Meanwhile, you’re encouraged to explore the individual Skills to better understand each step of the pipeline.

Alternate Pipeline

While the Object Detection Pipeline Example focuses on geometric segmentation and localization using clustering and bounding boxes, some applications require precise alignment and pose estimation between point clouds.

In such cases, an ICP Registration Pipeline Example can be used as an alternative or follow-up step. You can experiment and explore using ICP Registration Pipeline Example.