Mastering 3D Computer Vision & Point Cloud Processing-Mod 15 — How to download and use 3D Datasets from Open3D with Code

Rajavel PM (RPM)
4 min readJun 6, 2024

--

Introduction:

Welcome to the ✍️“3D Computer Vision & Point Cloud Processing Blog Series”. This series of blogs is your “Hands-on guide to mastering 3D point cloud processing with Python.”

In this post, we’ll delve into “How to download data set from Open3D for 3D data processing and analysis.”.

Topics to Be Discussed in this Blog

  1. Open3D Introduction
  2. Built-in Dataset in Open3D
  3. Download Point Cloud Dataset
  4. Download Mesh Dataset
  5. Summary

Open3D Introduction

Open3D (https://www.open3d.org/) is an open-source library designed to support rapid development and processing of 3D data. Open3D provides a comprehensive set of tools for handling various types of 3D data, such as point clouds, meshes, and voxel grids.

Key features of Open3D include:

  • Extensive 3D Data Handling: Open3D supports reading, writing, and processing a wide range of 3D data formats, such as PLY, PCD, and OBJ.
  • Visualization: The library offers powerful visualization tools, allowing users to render 3D data interactively.
  • Point Cloud Processing: Open3D includes algorithms for point cloud registration, filtering, clustering, and segmentation.
  • Mesh Processing: It provides tools for mesh reconstruction, simplification, and conversion.
  • Voxel Grid Operations: Open3D supports operations on voxel grids, such as voxelization and point cloud to voxel grid conversion.
  • Built-in Datasets: One of its key features is the inclusion of built-in datasets, which serve as valuable resources for learning, experimentation, and benchmarking algorithms.

Built-in Dataset in Open3D

Open3D provides built-in datasets (https://www.open3d.org/docs/latest/tutorial/data/) to assist computer vision engineers in developing and deploying applications.

Key Features of Built-in Datasets in Open3D:

  1. Ease of Access:
    Open3D’s built-in datasets are readily accessible to accelerates the learning process for users to test and validate 3D processing techniques.
  2. Diverse Data Types:
    The built-in datasets cover various types of 3D data, including:
    Point Clouds, Meshes and Voxel Grids.
  3. Standardized Formats:
    These datasets are provided in widely-used 3D file formats such as PLY, PCD, and OBJ, ensuring compatibility with other software tools and libraries.
  4. Example Datasets:
    Open3D includes several example datasets to help users get started. Few of tham are “Bunny”, “Armadillo” and “Indoor Scene Point Clouds”

You can run the below scrip to download different 3D dataset in PLY, OBJ and other formats from Open3D. After you run the script, it will download the dataset in your local drive. In my Windows PC, it is downloaded to C:\Users\username\open3d_data\download and similarly for Mac and Linux.

Download Point Cloud Dataset

  • Colored PointCloud of a living room from the Redwood dataset in PCD format:
dataset = o3d.data.PCDPointCloud()
pcd = o3d.io.read_point_cloud(dataset.path)
o3d.visualization.draw_geometries([pcd])
LivingRoom Redwood Dataset PCD
  • Colored PointCloud of a living room from the Redwood RGB-D dataset in PLY format:
dataset = o3d.data.PLYPointCloud()
pcd = o3d.io.read_point_cloud(dataset.path)
o3d.visualization.draw_geometries([pcd])
LivingRoom Redwood Dataset PLY
  • LivingRoomPointCloud from the Redwood RGB-D dataset (57 different dataset):
dataset = o3d.data.LivingRoomPointClouds()
pcds = []
for pcd_path in dataset.paths:
pcds.append(o3d.io.read_point_cloud(pcd_path))
o3d.visualization.draw_geometries([o3d.io.read_point_cloud(pcd_path)])
LivingRoomPointCloud Dataset
  • OfficePointClouds from the Redwood RGB-D dataset (53 different dataset):
dataset = o3d.data. OfficePointClouds()
pcds = []
for pcd_path in dataset.paths:
pcds.append(o3d.io.read_point_cloud(pcd_path))
OfficePointClouds Dataset
  • Eagle PointCloud:
dataset = o3d.data. EaglePointCloud()
pcd = o3d.io.read_point_cloud(dataset.path)
EaglePointCloud Dataset

Download Mesh Dataset

  • · BunnyMesh data in PLY format:
dataset = o3d.data.BunnyMesh()
mesh = o3d.io.read_triangle_mesh(dataset.path)
o3d.visualization.draw_geometries([mesh])
BunnyMesh Dataset
  • ArmadilloMesh data in PLY format:
dataset = o3d.data. ArmadilloMesh()
mesh = o3d.io.read_triangle_mesh(dataset.path)
o3d.visualization.draw_geometries([mesh])
ArmadilloMesh Dataset
  • KnotMesh data in PLY format:
dataset = o3d.data. KnotMesh()
mesh = o3d.io.read_triangle_mesh(dataset.path)
o3d.visualization.draw_geometries([mesh])
KnotMesh Dataset

Summary

In this blog post, we’ve discussed how to download different types of 3D datasets for processing, development, and deployment.

✨Happy exploring! Happy learning!✨

📝Next Blog Preview:

In the upcoming post, 🚀“Mastering 3D Computer Vision & Point Cloud Processing- Mod 16 — Summary of 3D Data Types, Formats, Visualization…

Topics to Be Discussed in the Next Blog

  1. So far we have discussed?
  2. Each Blog Details
  3. Summary

Topics to Be Discussed in the Upcoming Blogs — Immediate Focus

  • Different Point Cloud Basic operations
  • Different Mesh Basic operations

--

--

Rajavel PM (RPM)
Rajavel PM (RPM)

Written by Rajavel PM (RPM)

Computer Vision Engineer. Working on 3D computer vision, 3D machine learning & 3D Deep Learning, AI, and Generative AI. Let's learn together. Join Me!

No responses yet