• Stars
    star
    113
  • Rank 310,115 (Top 7 %)
  • Language
    C++
  • License
    Other
  • Created over 5 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

orb-slam2 with semantic labelling

orb-slam2_with_semantic_labelling

Authors: Xuxiang Qi([email protected]),Shaowu Yang([email protected]),Yuejin Yan([email protected])

Current version: 1.0.0

  • Note: This repository is mainly built upon ORB_SLAM2 and YOLO. Many thanks for their great work.

0.introduction

orb-slam2_with_semantic_labelling is a visual SLAM system based on ORB_SLAM2[1-2]. The ORB-SLAM2 is a great visual SLAM method that has been popularly applied in robot applications. However, this method cannot provide semantic information in environmental mapping.In this work,we present a method to build a 3D dense semantic map,which utilize both 2D image labels from YOLOv3[3] and 3D geometric information.

image

Deep Learning Based Semantic Labelling of 3D Point Cloud in Visual SLAM

2. Prerequisites

2.1 requirements

  • Ubuntu 14.04/Ubuntu 16.04/Ubuntu 18.04
  • ORB-SLAM2
  • CUDA 8(must, CUDA9/10 will cause segmentation fault)
  • C++11(must)
  • GCC >= 5.0
  • cmake
  • OpenCV2 or OpenCV3, may not work with OpenCV4
  • PCL1.7 or PCL1.8, may not work with PCL1.9

2.2 Installation

Refer to the corresponding original repositories (ORB_SLAM2 and YOLO for installation tutorial).

2.3 Build

git clone https://github.com/qixuxiang/orb-slam2_with_semantic_labelling.git

sh build.sh

3. Run the code

  1. Download ORBvoc.txt.tar.gz from ORB_SLAM2 and uncompress it it to Vocabulary folder.

  2. Download yolov3.weights, yolov3.cfg and coco.names from darknet and put them in bin folder. Also, these files can be found in YOLO V3.Then, you should make a dir named img in bin folder, that is, you should execute command sudo mkdir img in bin folder.

  3. Download a sequence from http://vision.in.tum.de/data/datasets/rgbd-dataset/download and uncompress it to data folder.

  4. Associate RGB images and depth images using the python script associate.py. We already provide associations for some of the sequences in Examples/RGB-D/associations/. You can generate your own associations file executing:

python associate.py PATH_TO_SEQUENCE/rgb.txt PATH_TO_SEQUENCE/depth.txt > associations.txt
  1. Change TUMX.yaml to TUM1.yaml,TUM2.yaml or TUM3.yaml for freiburg1, freiburg2 and freiburg3 sequences respectively. Change PATH_TO_SEQUENCE_FOLDERto the uncompressed sequence folder.You can run the project by:
cd bin
./rgbd_tum ../Vocabulary/ORBvoc.txt ../Examples/RGB-D/TUM2.yaml ../data/rgbd-data ../data/rgbd-data/associations.txt

image

Reference

[1] Mur-Artal R, Montiel J M M, Tardos J D. ORB-SLAM: a versatile and accurate monocular SLAM system[J]. IEEE Transactions on Robotics, 2015, 31(5): 1147-1163.

[2] Mur-Artal R, Tardos J D. ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras[J]. arXiv preprint arXiv:1610.06475, 2016.

[3] Redmon, Joseph, and A. Farhadi. "YOLOv3: An Incremental Improvement." (2018).

License

Our system is released under a GPLv3 license.

If you want to use code for commercial purposes, please contact the authors.

Other issue

  • We do not test the code there on ROS bridge/node.The system relies on an extremely fast and tight coupling between the mapping and tracking on the GPU, which I don't believe ROS supports natively in terms of message passing.

  • I only test the code on OpenCV2 + CDUA8 + CUDNN7 + PCL1.8, and CUDA9/10 will cause segmentation fault.

  • Welcome to submit any issue if you have problems, and add your software and computer system information details, such as Ubuntu 16/14,OpenCV 2/3, CUDA 9.0, GCC5.4,etc..

  • We provide a video here.

More Repositories

1

orb-slam2_with_semantic_label

orb-slam2 with semantic label
C++
259
star
2

Pytorch_Lightweight_Network

Lightweight Networks such as MobileNet, ShuffleNet and ThunderNet implemented in Pytorch
Python
72
star
3

mask_rcnn_ros

The ROS Package of Mask R-CNN for Object Detection and Segmentation
Python
67
star
4

deeplabv3plus

deeplabv3plus2018:Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation
Python
54
star
5

mmdetection_with_SENet154

see details in configs/retinanet_se154_fpn_1x.py
Python
38
star
6

dfsign

DataFountain-基于虚拟仿真环境下的自动驾驶交通标志识别 4th
Python
29
star
7

simpledet_and_mmdet_notes

simpledet和mmdetection源码阅读笔记
27
star
8

Baidu_Lane_Segmentation

4th place solution in Baidu Autonomous Driving Lane Segmentation
Python
21
star
9

Hybrid_Task_Cascade

Hybrid_Task_Cascade in mmdetection
Python
19
star
10

ZeroFusion

Real-time 3D Reconstruction with Semantic Segmentation
CMake
11
star
11

real_time_object_detect

ssd/mobile ssd/yolo v2/yolo v3 implement in opencv3
C++
10
star
12

cuda_zero_to_one

learning cuda with blog https://blog.csdn.net/xiangxianghehe/column/info/38591
Cuda
5
star
13

bazel_tf_op

add custom op to tensorflow
Python
4
star
14

jittor-models

model collections of Jittor
Python
4
star
15

cuda_img_process

use cuda to do some simple image process, such as grayscale, blurring and convolution
Cuda
2
star
16

Tianchi_power_predict

Jupyter Notebook
2
star
17

YOLO3D

YOLO 3D Object Detection for Autonomous Driving Vehicle
Python
2
star
18

maskrcnn_tianchi_stage1

天池津南数字制造算法挑战赛【赛场二】初赛
Python
2
star
19

JD_Autopilot

6th solution in JD Autopilot Sensor Fusion Competition
C++
2
star
20

txt2pcd

convert txt to pcd file
Makefile
1
star
21

simple-fft-openmp

Simple implementation of FFT algorithm using openMP.
C
1
star
22

CudaSoftmax

https://zhuanlan.zhihu.com/p/341059988
C++
1
star
23

yoloall

Python
1
star
24

channel

A C++ implementation of MPSC (multi-producer single-consumer) channel.
C++
1
star
25

Ali_Tianchi

Ali_Tianchi O2O predict
Python
1
star