All Projects → MIT-SPARK → Kimera Semantics

MIT-SPARK / Kimera Semantics

Licence: bsd-2-clause
Real-Time 3D Semantic Reconstruction from 2D data

Projects that are alternatives of or similar to Kimera Semantics

Kimera Vio
Visual Inertial Odometry with SLAM capabilities and 3D Mesh generation.
Stars: ✭ 741 (+101.36%)
Mutual labels:  robotics, cpu, reconstruction, mapping, real-time
Kimera Vio Ros
ROS wrapper for Kimera-VIO
Stars: ✭ 182 (-50.54%)
Mutual labels:  cpu, reconstruction, real-time
StrayVisualizer
Visualize Data From Stray Scanner https://keke.dev/blog/2021/03/10/Stray-Scanner.html
Stars: ✭ 30 (-91.85%)
Mutual labels:  mapping, reconstruction, 3d-reconstruction
Monoport
Volumetric Human Teleportation (SIGGRAPH 2020 Real-Time Live) Monocular Real-Time Volumetric Performance Capture(ECCV 2020)
Stars: ✭ 296 (-19.57%)
Mutual labels:  3d-reconstruction, reconstruction, real-time
hyperseg
HyperSeg - Official PyTorch Implementation
Stars: ✭ 174 (-52.72%)
Mutual labels:  real-time, semantic-segmentation
ESANet
ESANet: Efficient RGB-D Semantic Segmentation for Indoor Scene Analysis
Stars: ✭ 154 (-58.15%)
Mutual labels:  real-time, semantic-segmentation
BMW-IntelOpenVINO-Segmentation-Inference-API
This is a repository for a semantic segmentation inference API using the OpenVINO toolkit
Stars: ✭ 31 (-91.58%)
Mutual labels:  cpu, semantic-segmentation
XBotControl
XBotControl framework: XBotCore + OpenSoT + CartesI/O
Stars: ✭ 23 (-93.75%)
Mutual labels:  real-time, robotics
Flame
FLaME: Fast Lightweight Mesh Estimation
Stars: ✭ 164 (-55.43%)
Mutual labels:  robotics, 3d-reconstruction
direct lidar odometry
Direct LiDAR Odometry: Fast Localization with Dense Point Clouds
Stars: ✭ 202 (-45.11%)
Mutual labels:  robotics, mapping
J3DReconstruction
Windows下基于openMVG+openMVS的三维重建解决方案以及基于Qt的可视化桌面平台
Stars: ✭ 59 (-83.97%)
Mutual labels:  reconstruction, 3d-reconstruction
semantic-tsdf
Semantic-TSDF for Self-driving Static Scene Reconstruction
Stars: ✭ 14 (-96.2%)
Mutual labels:  semantic-segmentation, 3d-reconstruction
Iris lama
LaMa - A Localization and Mapping library
Stars: ✭ 217 (-41.03%)
Mutual labels:  robotics, mapping
AttaNet
AttaNet for real-time semantic segmentation.
Stars: ✭ 37 (-89.95%)
Mutual labels:  real-time, semantic-segmentation
Fiesta
Fast Incremental Euclidean Distance Fields for Online Motion Planning of Aerial Robots
Stars: ✭ 182 (-50.54%)
Mutual labels:  robotics, mapping
wymlp
tiny fast portable real-time deep neural network for regression and classification within 50 LOC.
Stars: ✭ 36 (-90.22%)
Mutual labels:  real-time, cpu
Lightweight Segmentation
Lightweight models for real-time semantic segmentation(include mobilenetv1-v3, shufflenetv1-v2, igcv3, efficientnet).
Stars: ✭ 261 (-29.08%)
Mutual labels:  semantic-segmentation, real-time
instant-ngp
Instant neural graphics primitives: lightning fast NeRF and more
Stars: ✭ 1,863 (+406.25%)
Mutual labels:  real-time, 3d-reconstruction
Bonnet
Bonnet: An Open-Source Training and Deployment Framework for Semantic Segmentation in Robotics.
Stars: ✭ 274 (-25.54%)
Mutual labels:  robotics, semantic-segmentation
Optical Flow Filter
A real time optical flow algorithm implemented on GPU
Stars: ✭ 146 (-60.33%)
Mutual labels:  robotics, real-time

Kimera-Semantics

Release News

  • Dec 1st 2019: Kimera-Semantics got a complete revamp:
    • Leaner code: no more code dedicated to meshing, we fully re-use Voxblox/OpenChisel instead.
    • New fast method: an order of magnitude faster (took approx 1s before, 0.1s now) than using merged, with minimal accuracy loss for small voxels (it leverages Voxblox' fast approach): you can play with both methods by changing the parameter semantic_tsdf_integrator_type in the launch file. High-res video here.

Publications

We kindly ask to cite our paper if you find this library useful:

@InProceedings{Rosinol20icra-Kimera,
  title = {Kimera: an Open-Source Library for Real-Time Metric-Semantic Localization and Mapping},
  author = {Rosinol, Antoni and Abate, Marcus and Chang, Yun and Carlone, Luca},
  year = {2020},
  booktitle = {IEEE Intl. Conf. on Robotics and Automation (ICRA)},
  url = {https://github.com/MIT-SPARK/Kimera},
  pdf = {https://arxiv.org/pdf/1910.02490.pdf}
}

Related publications

Our work is built using Voxblox, an amazing framework to build your own 3D voxelized world:

Which was originally inspired by OpenChisel:

A related work to ours is Voxblox++ which also uses Voxblox for geometric and instance-aware segmentation, differently from our dense scene segmentation, check it out as well!:

1. Installation

A. Prerequisities

sudo apt-get install python-wstool python-catkin-tools  protobuf-compiler autoconf
# Change `melodic` below for your own ROS distro
sudo apt-get install ros-melodic-cmake-modules

B. Kimera-Semantics Installation

Using catkin:

# Setup catkin workspace
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin init
catkin config --extend /opt/ros/melodic # Change `melodic` to your ROS distro
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin config --merge-devel

# Add workspace to bashrc.
echo 'source ~/catkin_ws/devel/setup.bash' >> ~/.bashrc

# Clone repo
cd ~/catkin_ws/src
git clone [email protected]:MIT-SPARK/Kimera-Semantics.git

# Install dependencies from rosinstall file using wstool
wstool init # Use unless wstool is already initialized

# Optionally add Kimera-Semantics to the rosinstall file
# wstool scrape

# For ssh:
wstool merge Kimera-Semantics/install/kimera_semantics_ssh.rosinstall
# For https:
#wstool merge Kimera-Semantics/install/kimera_semantics_https.rosinstall

# Download and update all dependencies
wstool update

Finally, compile:

# Compile code
catkin build kimera_semantics_ros

# Refresh workspace
source ~/catkin_ws/devel/setup.bash

2. Usage

First, install Kimera-Semantics, see instructions above.

In Simulation (with semantics)

  1. Download the demo rosbag (click here to download) and save it in: ./kimera_semantics_ros/rosbag/kimera_semantics_demo.bag.

  2. As a general good practice, open a new terminal and run: roscore

  3. In another terminal, launch Kimera-Semantics:

roslaunch kimera_semantics_ros kimera_semantics.launch play_bag:=true

This will launch the rosbag that was downloaded in step 0 and will launch Kimera-Semantics.

  1. In another terminal, launch rviz for visualization:
rviz -d $(rospack find kimera_semantics_ros)/rviz/kimera_semantics_gt.rviz

Note: you will need to source your catkin_ws for each new terminal unless you added the following line to your ~/.bashrc file: source ~/catkin_ws/devel/setup.bash # Changebashto the shell you use.

Note 2: you might need to check/uncheck once the Kimera Semantic 3D Mesh left pane topic in rviz to visualize the mesh.

In Euroc dataset (without semantics)

With Kimera-VIO

  1. Download a Euroc rosbag: for example V1_01_easy
  2. Install Kimera-VIO-ROS.
  3. Open a new terminal, run: roscore
  4. In another terminal, launch Kimera-VIO-ROS:
roslaunch kimera_vio_ros kimera_vio_ros_euroc.launch run_stereo_dense:=true

The flag run_stereo_dense:=true will do stereo dense reconstruction (using OpenCV's StereoBM algorithm).

  1. In another terminal, launch Kimera-Semantics:
roslaunch kimera_semantics_ros kimera_semantics_euroc.launch
  1. In yet another terminal, run the Euroc rosbag downloaded in step 0:
rosbag play V1_01_easy.bag --clock

Note 1: Don't forget the --clock flag!

Note 2: Kimera is so fast that you could also increase the rosbag rate by 3 --rate 3 and still see a good performance (results depend on available compute power).

  1. Finally, in another terminal, run Rviz for visualization:
rviz -d $(rospack find kimera_semantics_ros)/rviz/kimera_semantics_euroc.rviz

3. FAQ

  • Minkindr doesn't compile:

    Catkin ignore the minkindr_python catkin package: touch ~/catkin_ws/src/minkindr/minkindr_python/CATKIN_IGNORE

  • How to run Kimera-Semantics without Semantics?

    We are using Voxblox as our 3D reconstruction library, therefore, to run without semantics, simply do:

    roslaunch kimera_semantics_ros kimera_semantics.launch play_bag:=true metric_semantic_reconstruction:=false
    
  • How to enable Dense Depth Stereo estimation

This will run OpenCV's StereoBM algorithm, more info can be found here (also checkout this to choose good parameters):

roslaunch kimera_semantics_ros kimera_semantics.launch run_stereo_dense:=1

This will publish a /points2 topic, which you can visualize in Rviz as a 3D pointcloud. Alternatively, if you want to visualize the depth image, since Rviz does not provide a plugin to visualize a disparity image, we also run a disparity_image_proc nodelet that will publish the depth image to /depth_image.

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].