Viewercloud

Viewercloud is a library and also a cli to read and display Pointcloud. It was initially used to display KITTI pointcloud. However it was also tested on the Lyft Level 5 Dataset pointcloud.

It will also be able to display the 3D annotations and the 3D BoundingBox computed by your favorite algorithm.

Viewercloud will open a openGL window to display the pointcloud. Press qto close.

kitti-centroid

It can also take a screen shot of the current view to save as png. Press s take screenshot.

kitti-centroid

Python Usage

You can install pyviewercloud the python bindings to viewercloud thanks to Pyo3 and Pyo3-numpy

bash poetry add pyviewercloud

bash pip install pyviewercloud

```python import numpy as np import pyviewercloud as pyviewer

Create a new viewer with a window size 1200x1800.

viewer = pyviewer.PointcloudViewer(1200, 1800, 15000)

Load some pointcloud from the lyft perception dataset

Currently only support pointcloud as numpy.ndarray Nx3 in np.float32

lyftpointcloud1 = np.fromfile("tests/data/lyft/host-a101lidar01241893239502712366.bin", dtype=np.float32).reshape((-1, 5))[:,:3] lyftpointcloud2= np.fromfile("tests/data/lyft/host-a101lidar11241893239502712366.bin", dtype=np.float32).reshape((-1, 5))[:,:3] lyftpointcloud3= np.fromfile("tests/data/lyft/host-a101lidar2_1241893239502712366.bin", dtype=np.float32).reshape((-1, 5))[:,:3]

Add them one by one to the viewer to have different color

viewer.addpointcloud(lyftpointcloud1, [255, 0, 0]) viewer.addpointcloud(lyftpointcloud2, [0, 0, 255]) viewer.addpointcloud(lyftpointcloud3, [0, 255, 0])

You can now display the window

viewer.show() ```

```python import numpy as np import pyviewercloud as pyviewer

Create a new viewer with a window size 1200x1800.

viewer = pyviewer.PointcloudViewer(1200, 1800, 15000)

Load some pointcloud from the kitti dataset

kittipointcloud = np.fromfile("tests/data/kitti/velodyne/000001.bin", dtype=np.float32).reshape((-1, 4))[:,:3] viewer.addpointcloud(kittipoint_cloud, [255, 255, 255])

Add some centroids to have the same color.

Currently only support centroids as numpy.ndarray Nx3 in np.float32

centroids = np.array([[-11.5,0,-0.8]]).astype(np.float32) viewer.add_centroid(centroids, [255, 0, 0]) viewer.show() ```

CLI Usage

```sh

viewercloud --help viewercloud 0.2.0 Thomaub github.thomaub@gmail.com Display KITTI 3D Pointcloud with annotations and your model inferences

USAGE: viewercloud [ARGS]

ARGS: Path to the kitti Pointcloud .bin or .txt file Path to the kitti 3D annotation .txt file Path to your model inferences .json file

FLAGS: -h, --help Prints help information -V, --version Prints version information ```

Build

sh cargo build --release

It will be possible to download from github release and brew.