All Projects → JenningsL → Pointrcnn

JenningsL / Pointrcnn

PointRCNN+Frustum Pointnet

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pointrcnn

sweep-3d-scanner-unity-viewer
A simple unity project to view scans created by the open source 3D scanner project
Stars: ✭ 45 (-61.54%)
Mutual labels:  pointcloud
Pointnet pointnet2 pytorch
PointNet and PointNet++ implemented by pytorch (pure python) and on ModelNet, ShapeNet and S3DIS.
Stars: ✭ 714 (+510.26%)
Mutual labels:  pointcloud
Pointcnn
PointCNN: Convolution On X-Transformed Points (NeurIPS 2018)
Stars: ✭ 1,120 (+857.26%)
Mutual labels:  pointcloud
Sc Lego Loam
LiDAR SLAM: Scan Context + LeGO-LOAM
Stars: ✭ 332 (+183.76%)
Mutual labels:  pointcloud
Itowns
A Three.js-based framework written in Javascript/WebGL for visualizing 3D geospatial data
Stars: ✭ 517 (+341.88%)
Mutual labels:  pointcloud
Semantic Segmentation Editor
Web labeling tool for bitmap images and point clouds
Stars: ✭ 894 (+664.1%)
Mutual labels:  pointcloud
CovGT-3DRegistration-matlab
A 3D Scene Registration Method via Covariance Descriptors and an Evolutionary Stable Strategy Game Theory Solver
Stars: ✭ 20 (-82.91%)
Mutual labels:  pointcloud
Polylidar
Polylidar3D - Fast polygon extraction from 3D Data
Stars: ✭ 106 (-9.4%)
Mutual labels:  pointcloud
Point2mesh
Reconstruct Watertight Meshes from Point Clouds [SIGGRAPH 2020]
Stars: ✭ 514 (+339.32%)
Mutual labels:  pointcloud
Arpointcloud
A Basic Example Of Visualising Point Clouds In ARKit
Stars: ✭ 31 (-73.5%)
Mutual labels:  pointcloud
Plasio
Drag-n-drop In-browser LAS/LAZ point cloud viewer. http://plas.io
Stars: ✭ 349 (+198.29%)
Mutual labels:  pointcloud
Loam noted
loam code noted in Chinese(loam中文注解版)
Stars: ✭ 455 (+288.89%)
Mutual labels:  pointcloud
Las Rs
Read and write ASPRS las files, Rust edition.
Stars: ✭ 27 (-76.92%)
Mutual labels:  pointcloud
Cpd
C++ implementation of the Coherent Point Drift point set registration algorithm.
Stars: ✭ 260 (+122.22%)
Mutual labels:  pointcloud
Loam velodyne
Laser Odometry and Mapping (Loam) is a realtime method for state estimation and mapping using a 3D lidar.
Stars: ✭ 1,135 (+870.09%)
Mutual labels:  pointcloud
mitsuba-visualize
Visualizes meshes, pointclouds and video flythroughs in publication quality
Stars: ✭ 67 (-42.74%)
Mutual labels:  pointcloud
Pcl
Point Cloud Library (PCL)
Stars: ✭ 6,897 (+5794.87%)
Mutual labels:  pointcloud
Metal Point Cloud
A point-cloud made from 3d data with Metal.
Stars: ✭ 116 (-0.85%)
Mutual labels:  pointcloud
Pointcloudvolumemeasure
点云测体积Demo:用Kinect+PCL点云库测量方体体积。
Stars: ✭ 81 (-30.77%)
Mutual labels:  pointcloud
Pointcloud ground detection
Stars: ✭ 28 (-76.07%)
Mutual labels:  pointcloud

PointRCNN

This is not the official implementation of PointRCNN. We add an image segmentation network to improve recall of point cloud segmentation. The 2-stage network is frustum pointNet. Any pull request is appreciated.

Introduction

A 3D object detector that takes point cloud and RGB image(optional) as input.

Results

video1 video2

Architecture

  1. Perform foreground point segmentation on the whole point cloud
  2. Output a 3D proposal box for every foreground point
  3. Crop point cloud with proposal boxes and feed into the 2nd-stage classification and box refinement network

Usage

Dependencies

Data Preparation

For trainning and validation, download KITTI 3d object detection dataset, and put the folders as

dataset/KITTI/object/
  training/
    calib/
    image_2/
    label_2/
    velodyne/

  testing/
    calib/
    image_2/
    velodyne/

For testing, download KITTI video sequence and calibration files, and put the folders as

2011_10_03/
  calib_cam_to_cam.txt
  calib_imu_to_velo.txt
  calib_velo_to_cam.txt
  image_02/
  velodyne_points/

[Optional] Scene Augmentation

Our implementation also supports using augmented scene point cloud for training RPN, please refer to the official implementation of PointRCNN. After generating the data, just put the aug_scene/ folder under dataset/KITTI/object. If you don't want to use it, just set use_aug_scene=False when using rpn_dataset.

Image segmentaion annotation

Our image segmentation network is DeelabV3+ official implementation. The senmantic segmentation annotation is obtained by the following steps:

  • Pointcloud completion using ip_basic
  • Project 3D points to image plane to get segmentation annotation Codes for finetuning can be founded at deeplab_kitti_object. Or you can just use your own image segmentation network.

Train

There are 3 sub-model to be trained.

Region Proposal Network

sh train_rpn.sh

Frustum Pointnet

Before training the 2-Stage Network, we need to save the output of RPN and Image Segmentaion Network to the disk first.

Image Segmentation Network

For now deeplabv3+ is used and finetune on KITTI 3D object dataset

Evaluate

Region Proposal Network

sh test_rpn.sh

This will save the output of RPN and Image segmentation network to ./rcnn_data_train for training the RCNN network.

Frustum Pointnet

test_frustum.sh

Test

End to end

sh test.sh

Evaluation

Point cloud segmentation

Method Coverage Recall Precision
Point Only 89.7% 93.4% 82.2%
Point+Image 93.5% 97.0% 76.6%

Coverage means the percentage of object that have at least one point being detected.

Recall of RPN

Setting: IoU >= 0.5, 100 proposal

Method 3 Classes Recall Car moderate Pedastrian Moderate Cyclist Moderate
Point+Image 89% 96% 77% 52%

AP on Val Set

Class 3D mAP(Easy, Moderate, Hard) BEV mAP(Easy, Moderate, Hard)
Car 76.56 70.20 64.00 86.32 78.42 78.07
Pedestrain 70.23 63.09 55.77 73.34 65.86 57.94
Cyclist 76.89 50.91 50.28 78.27 59.00 51.63

Pretrained Models

Model Link
RPN log_rpn.zip
Image SegNet log_rpn.zip
Frustum PointNet log_frustum.zip

Reference

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