Skip to main content

A light-weight web point cloud visualizer based on Three.js

Project description

Introduction

Point-viz is a light-weight, out-of-box point cloud visualizer working in browser, it is built on Three.js and has python API. Bounding box (bbox) visualization is supported and here is an example. Point-viz does not need Internet connection to work (but the installation needs, of course), and it has been tested on Chrome and Safari with both python 2 and 3. The main motivation of this visualizer is to allow user to visualize point cloud data from remote server easily .

Tested Environment

  • python==3.7
  • numpy==1.18.5
  • Browsers: Google Chrome, Safari, Firefox

Usage

To install point-viz, simply run: pip install point-viz, and that's all.

Below is the template of its python API:

# Import package.
from point_viz import PointvizConverter

# Initialize and setup output directory.
Converter = PointvizConverter(home)
# Pass data and create html files.
Converter.compile(task_name, coors, default_rgb, intensity, bbox_params, bbox_color)

Below is a more specific (partial) example that is demonstrated on KITTI dataset.



save_viz_path = /path/to/save/visualization/

Converter = PointvizConverter(save_viz_path)

...

# note the pts_inputs are in z-up system
# which in kittidataset, it should be in 
# velodyne coordinates
pts_inputs = kitti_dataset.get_sample(1)

...

gt_bbox_params_list = []

# the labels are in z-up system
# which in kittidataset, it should be in 
# velodyne coordinates
for obj in kitti_dataset.get_labels(1):
    bbox_params_list = [obj.l, # along y axis
                        obj.h, # along z axis
                        obj.w, # along x axis
                        obj.y,
                        obj.z,
                        obj.x,
                        obj.ry] 
                        # in l, h, w, y, z, x
                        # since the coordinate system in three.js is y-up
    gt_bbox_params_list.append(bbox_params_list)

# if you want to generate visualizations for multiple samples
# you have to call this function compile in a loop
Converter.compile("sample_{}".format(1), coors=pts_input[:,:3],         intensity=pts_input[:,[1,2,0]], bbox_params=gt_bbox_params_list)

In the example above you find the following directory architectures being generated:

  • /path/to/save/visualization/
    • data
      • sample_1_bbox.csv (if bbox_params is not None during compilation)
      • sample_1_pc.bin (numpy binary files that contains x, y, z, r, g, b)
      • ... (more if you compile multiple times)
    • html
      • sample_1.html
      • ... (more if you compile multiple times)
    • src
      • containing the dependencies that html requires

In your remote server, cd /path/to/save/visualization/. Then run python3 -m http.server 8000.

To access the visualization locally, go to the url http://<ip_address_of_the_remote_server>:8000

Variables Explanation

The * means optional.

home: The directory where to put output html files, must be given.
task_name*: string, name of the output html file (can be overwritten if the name already exists; default value is "default").
coors*: 2-D float array, the x, y and z coordinates of each point in the point cloud.
default_rgb*: 2-D float/int array of the same length as coors, the R, G and B colors of each point. If not provided, the RGB will be automatically calculated based on intensity (if given) or point coordinates (when intensity is also missing).
intensity*: 1-D float array of the same length as coors, the intensity of each point. It only takes effect when default_rgb is not given.
bbox_params*: 2-D list, the geometry parameters of each bbox. Attributes of each row should be arranged as follows:

Attribute # Description
0 Length (float, dimension along x-axis)
1 Height (float, dimension along y-axis)
2 Width (float, dimension along z-axis)
3 X coordinate of bbox centroid (float)
4 Y coordinate of bbox centroid (float)
5 Z coordinate of bbox centroid (float)
6 Horizontal rotation regarding the +x-axis in radians (float)
7* Color of the bbox (string, optional; X11 color name is supported, default is "Magenta")
8* Label text of the bbox (string, optional)

bbox_color*: boolean, default is True. If the color of bbox is missing while the label text is given, then bbox_color has to be explicitly set to False.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

point-viz-1.0.2.tar.gz (714.1 kB view details)

Uploaded Source

Built Distribution

point_viz-1.0.2-py2-none-any.whl (719.4 kB view details)

Uploaded Python 2

File details

Details for the file point-viz-1.0.2.tar.gz.

File metadata

  • Download URL: point-viz-1.0.2.tar.gz
  • Upload date:
  • Size: 714.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.6.1 requests/2.25.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/2.7.16

File hashes

Hashes for point-viz-1.0.2.tar.gz
Algorithm Hash digest
SHA256 377ac0e915a8d4d54ad08f26a2afcc7960402a995852bffb6f528cb79c96730c
MD5 cace48b1ef41d1f3943826c866d019f4
BLAKE2b-256 3cb20880f9a823ef417080ab6e74be006cc16f5b95f172cc65d8db1007cd8392

See more details on using hashes here.

File details

Details for the file point_viz-1.0.2-py2-none-any.whl.

File metadata

  • Download URL: point_viz-1.0.2-py2-none-any.whl
  • Upload date:
  • Size: 719.4 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.6.1 requests/2.25.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/2.7.16

File hashes

Hashes for point_viz-1.0.2-py2-none-any.whl
Algorithm Hash digest
SHA256 defdc03f612d1a30f2d5a6555091a605c9f2655c63f8e153cd32f4f6d918e16f
MD5 07971193a327cda63fa2d9759054ef67
BLAKE2b-256 3dadd8e61167d0680f8084efcd333766030781dfd82427aae0d75ef8ce121acd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page