Giter VIP home page Giter VIP logo

robotresearchrepos / sbpl-cruz_perception Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sbpl-cruz/perception

0.0 0.0 0.0 5.04 MB

PERCH 2.0 : Fast and Accurate GPU-based Perception via Search for Object Pose Estimation

Home Page: https://sbpl-cruz.github.io/perception/

License: BSD 3-Clause "New" or "Revised" License

Shell 0.43% JavaScript 5.23% C++ 40.07% Python 39.21% C 0.07% MATLAB 1.17% CSS 0.38% Cuda 11.06% HTML 0.86% CMake 1.14% GLSL 0.12% Dockerfile 0.27%

sbpl-cruz_perception's Introduction

PERCH 2.0 : Fast and Accurate GPU-based Perception via Search for Object Pose Estimation

Image of 6-Dof

Overview

This library provides implementations for single and multi-object 3-Dof and 6-Dof pose estimation from RGB-D sensor data and 3D CAD models. It can evaluate thousands of poses in parallel on a GPU in order to find the pose that best explains the input scene using CUDA. Each pose is refined in parallel through CUDA based GICP. PERCH 2.0 works in conjunction with an instance segmentation CNN for 6-Dof pose estimation (Tested with YCB Video Dataset).

The libray is the official implementation of "PERCH 2.0 : Fast and Accurate GPU-based Perception via Search for Object Pose Estimation" accepted at IROS 2020 [PDF]

Notable Features

  • CUDA Rendering : Render thousands of RGB and depth images of multiple-objects in parallel
  • CUDA Point clouds : Convert rendered images to point clouds in parallel
  • CUDA GICP : Adjust thousands of poses of different objects accurately under occlusion and simultanesouly using parallel GICP
  • CUDA KNN : Do a parallel KNN search between an input point cloud and thousands of rendered point clouds
  • Works without a CNN for 3-Dof pose estimation
  • Python/C++ pipeline for running instance segmentation CNN (Mask-RCNN) and PERCH 2.0 for 6-Dof pose estimation
  • Python interface for running experiments on large datasets and computing pose accuracy metrics (AUC, ADD-S, ADD)
  • ROS interface for running with robotic platforms like PR2 etc.

System Requirements

  • Ubuntu (>= 16.04)
  • NVidia GPU (>= 4GB)
  • NVidia Drivers > 440.33
  • Docker
  • NVidia-Docker toolkit

Docker Setup

Follow the steps outlined in this Wiki to setup the code on your machine. The code will be built and run from the Docker image and no local installation of dependencies (apart from NVidia drivers and Docker itself) is needed.

Running with YCB Video Dataset

Follow the steps outlined in this Wiki to run the code on YCB Video Dataset. It can run using PoseCNN masks, ground truth masks or a custom MaskRCNN model trained by us. The model is trained to detect full bounding boxes and instance segmentation masks of YCB objects in the dataset.

Results :

Running with Robot

PERCH 2.0 communicates with the robot's camera using ROS. Follow the steps outlined in this Wiki to first test the code with bagfiles. You can then use the bagfile setup of your choice and modify it as per the robot requirements.

Author

Created by Aditya Agarwal at the Search Based Planning Lab, Robotics Institute, Carnegie Mellon University. Please direct any questions about the code or paper to the Issues section of this repo.

Citation

Please use the citation below for our paper accepted at IROS 2020, if you use our code :

@inproceedings{Agarwal2020PERCH2,
  title={PERCH 2.0 : Fast and Accurate GPU-based Perception via Search for Object Pose Estimation},
  author={Aditya Agarwal and Yupeng Han and Maxim Likhachev},
  year={2020},
  booktitle={IROS}
}

sbpl-cruz_perception's People

Contributors

aditya2592 avatar venkatrn avatar jessyxie avatar namanjain236 avatar yupenghan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.