All Projects → kekeblom → StrayVisualizer

kekeblom / StrayVisualizer

Licence: MIT License
Visualize Data From Stray Scanner https://keke.dev/blog/2021/03/10/Stray-Scanner.html

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to StrayVisualizer

Kimera Vio
Visual Inertial Odometry with SLAM capabilities and 3D Mesh generation.
Stars: ✭ 741 (+2370%)
Mutual labels:  mapping, reconstruction, slam
Kimera Semantics
Real-Time 3D Semantic Reconstruction from 2D data
Stars: ✭ 368 (+1126.67%)
Mutual labels:  mapping, reconstruction, 3d-reconstruction
UrbanLoco
UrbanLoco: A Full Sensor Suite Dataset for Mapping and Localization in Urban Scenes
Stars: ✭ 147 (+390%)
Mutual labels:  camera, mapping, slam
Comma2k19
A driving dataset for the development and validation of fused pose estimators and mapping algorithms
Stars: ✭ 391 (+1203.33%)
Mutual labels:  mapping, dataset, slam
G2LTex
Code for CVPR 2018 paper --- Texture Mapping for 3D Reconstruction with RGB-D Sensor
Stars: ✭ 104 (+246.67%)
Mutual labels:  slam, 3d-reconstruction, rgb-d
Urbannavdataset
UrbanNav: an Open-Sourcing Localization Data Collected in Asian Urban Canyons, Including Tokyo and Hong Kong
Stars: ✭ 79 (+163.33%)
Mutual labels:  camera, dataset, slam
slam-python
SLAM - Simultaneous localization and mapping using OpenCV and NumPy.
Stars: ✭ 80 (+166.67%)
Mutual labels:  slam, 3d-reconstruction, open3d
cv-arxiv-daily
🎓Automatically Update CV Papers Daily using Github Actions (Update Every 12th hours)
Stars: ✭ 216 (+620%)
Mutual labels:  slam, 3d-reconstruction
python-graphslam
Graph SLAM solver in Python
Stars: ✭ 118 (+293.33%)
Mutual labels:  mapping, slam
GA SLAM
🚀 SLAM for autonomous planetary rovers with global localization
Stars: ✭ 40 (+33.33%)
Mutual labels:  mapping, slam
slamkit
SLAM Kit
Stars: ✭ 28 (-6.67%)
Mutual labels:  mapping, slam
puma
Poisson Surface Reconstruction for LiDAR Odometry and Mapping
Stars: ✭ 302 (+906.67%)
Mutual labels:  mapping, slam
slam gmapping
Slam Gmapping for ROS2
Stars: ✭ 56 (+86.67%)
Mutual labels:  mapping, slam
ros-vrep-slam
ROS and V-REP for Robot Mapping and Localization
Stars: ✭ 39 (+30%)
Mutual labels:  mapping, slam
Point2Mesh
Meshing Point Clouds with Predicted Intrinsic-Extrinsic Ratio Guidance (ECCV2020)
Stars: ✭ 61 (+103.33%)
Mutual labels:  3d-reconstruction, pointclouds
pyRANSAC-3D
A python tool for fitting primitives 3D shapes in point clouds using RANSAC algorithm
Stars: ✭ 253 (+743.33%)
Mutual labels:  3d-reconstruction, open3d
lt-mapper
A Modular Framework for LiDAR-based Lifelong Mapping
Stars: ✭ 301 (+903.33%)
Mutual labels:  mapping, slam
LVIO-SAM
A Multi-sensor Fusion Odometry via Smoothing and Mapping.
Stars: ✭ 143 (+376.67%)
Mutual labels:  mapping, slam
dynamic plane convolutional onet
[WACV 2021] Dynamic Plane Convolutional Occupancy Networks
Stars: ✭ 25 (-16.67%)
Mutual labels:  3d-reconstruction, pointclouds
direct lidar odometry
Direct LiDAR Odometry: Fast Localization with Dense Point Clouds
Stars: ✭ 202 (+573.33%)
Mutual labels:  mapping, slam

StrayVisualizer

A set of scripts to work with data collected using Stray Scanner.

Staircase pointcloud

Usage

To access the data from your device, see this wiki entry.

Installing Dependencies

Install dependencies with pip -r requirements.txt.

Example Datasets

If you don't have your own dataset, download one of these example datasets:

  • wget https://stray-data.nyc3.digitaloceanspaces.com/datasets/ZB1.tar.gz
  • wget https://stray-data.nyc3.digitaloceanspaces.com/datasets/ZB2.tar.gz
  • wget https://stray-data.nyc3.digitaloceanspaces.com/datasets/ZB3.tar.gz

Assuming you selected ZB1.tar.gz, you can extract the dataset using the command tar -xvf ZB1.tar.gz.

Visualizing the data

Run python stray_visualize.py <path-to-dataset>.

Available command line options are:

  • --point-clouds shows pointclouds.
  • --confidence=<value> there are three levels of confidence for the depth outputs: 0, 1 and 2. Higher is more confident. Only points having confidence higher or equal to the given value are shown.
  • --frames shows the camera pose coordinate frames.
  • --every=<n> determines how often the coordinate frame is drawn. Default is to draw every 60th frame.
  • --trajectory shows a black line for the trajectory of the camera.
  • --integrate will run the data through the Open3D RGB-D integration pipeline and visualize the resulting mesh.
  • --voxel-size=<size> sets the voxel size in meters for RGB-D integration.
  • --mesh-filename save the mesh from RGB-D integration into the given file. Defaults to no mesh saved.

Creating a Video From the Depth Maps

python make_video.py <dataset-path> will combine depth maps into a video. It will create a file depth_video.mp4 inside the dataset folder.

Running 3D Reconstruction on Collected Data

For convenience, the convert_to_open3d.py script is provided to convert the Stray Scanner format to the Open3D reconstruction system format.

Usage: python convert_to_open3d.py --dataset <path-to-dataset> --out <where-to-save-converted-dataset>.

You can run their reconstruction pipeline using python <path-to-open3d-repo>/examples/python/reconstruction_system/run_system.py <config.json> --make --register --refine --integrate as described here. <config.json> is a configuration file created for convenience by convert_to_open3d.py into the newly created dataset folder. It contains absolute paths, so if you move your dataset, be sure to update the configuration.

Beware that the Open3D reconstruction system takes up quite a lot of memory and compute. On Mac, you might need to add "python_multi_threading": false into the config file to avoid crashing.

Reporting Issues

If you find any issues with this project or bugs in the Stray Scanner app, you can open an issue on this repository.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].