GithubHelp home page GithubHelp logo

kevinlisun / romans_stack Goto Github PK

View Code? Open in Web Editor NEW
11.0 5.0 5.0 77.77 MB

This is the Vision System (Object Dection & Recognition) for EU H2020 project RoMaNs

CMake 0.51% C++ 79.51% Shell 0.03% Python 15.96% Objective-C 0.20% HTML 2.72% C 0.69% Objective-C++ 0.05% XSLT 0.28% CSS 0.05%
object-detection

romans_stack's Introduction

A Brief Description

  • odr: object detection and recognition framework.
  • camera: camera simulator and configurations.
  • dcnn: Deep Convolutional Neural Network architectures and training scripts.
  • matlab_toobox: matlab scripts for data pre-processing.

Prerequsites

  • If you just want to run the demo.

    Install caffe and pycaffe: http://caffe.berkeleyvision.org/install_apt.html

  • If you also want to run our live demo.

    In this implementation, MS kinect v2 is used unde Ubuntu through iai kinect2 package, so install iai_kinect2 following their instructions : https://github.com/code-iai/iai_kinect2 .

  • If you also want to train the models from the scrach.

    Install GPy (http://sheffieldml.github.io/GPy/):

    $ sudo pip install --upgrade pip
    $ sudo pip install GPy
    
  • If you also want to do comprision experiments using R-CNN.

    Install SVM and Python interface: https://www.csie.ntu.edu.tw/~cjlin/libsvm/ .

    $ cd ~
    $ git clone https://github.com/cjlin1/libsvm.git
    $ cd libsvm & make & cd python & make
    

    Add libsvm to the python path:

    $ export PYTHONPATH=/home/kevin/libsvm/python:$PYTHONPATH
    

Dependencies:

Install romans_stack

  1. Create a catkin workspace:
$ mkdir ~/catkin_ws/src
$ cd ~/catkin_ws/src
  1. Create .rosinstall file and copy the followings:
- git: {local-name: romans_stack, uri: 'https://github.com/sunliamm/romans_stack', version: master}
- git: {local-name: iai_kinect2, uri: 'https://github.com/code-iai/iai_kinect2', version: master}
  1. Clone the repositories:
$ wstool update
$ rosdep install --from-paths src --ignore-src -r -y
$ cd ..
  1. Compile:
$ catkin_make -DCMakeType=RELEASE
  1. Add ROS workspace to the environment.

add source ~/catkin_ws/devel/setup.bash to ~/.bashrc

Run the Demo

Download the demo data (demo.rosbag file) and the trained caffe model (deploy.proto, romans_model_fast.caffemodel) from: https://drive.google.com/open?id=0B0jMesRKPfw9MGM4ekxiV2M1RWs This demo assumes you download the 'romans' folder and put it under home directory (cd ~), change the directory depending your situation.

  1. Get RGBD stream from rosbag .
$ roslaunch camera kinect2_simulator.launch
$ cd ~/romans/data & rosbag play --clock demo.bag

Or get RGBD stream from kinect2

$ roslaunch camera kinect2.launch
  1. Run detection node .
$ rosrun odr detection_server_kinect2
  1. Run recognition node .
$ rosrun odr inference_end2end.py /home/your_username/romans/models/fast
  1. Run visualization node .
$ rosrun odr visualization_server
  1. Run the client .
$ rosrun odr odr_test.py kinect2

the semi-supervised demo in Washington RGBD dataset

  1. Download the datset: http://rgbd-dataset.cs.washington.edu/dataset/rgbd-dataset_eval/

  2. create the experiment go to matlab_toolbox and

    $ run script_create_experiment.m
    

    , and then split into labelled and unlabelled set

    $ run slipt_labelled_unlabelled.m
    
  3. label propagation, it takes several hours:

    $ cd ~/catkin_ws/src/romans_stack/odr/washington
    $ sh sh all_in_one.sh
    $ cd ~/catkin_ws/src/romans_stack/odr
    $ sh ./washington/all_in_one2.sh
    
  4. train the dcnn with automatic labelled examples: go to matlab_toolbox and create the index for caffe

    $ run script_create_index_for_caffe.m
    $ cd ~/catkin_ws/src/romans_stack/dcnns/washington/semi_supervised
    $ sh train.sh
    

Programming Style

This implementation is following:

ROS C++ style: http://wiki.ros.org/CppStyleGuide

Python REP8 style: http://www.ros.org/reps/rep-0008.html

Reference

Li Sun, Cheng Zhao, Rustam Stolkin. Weakly-supervised DCNN for RGB-D Object Recognition in Real-World Applications Which Lack Large-scale Annotated Training Data. ArXiv

romans_stack's People

Contributors

kevinlisun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

romans_stack's Issues

Training on customized dataset

@sunliamm Hello, I watched your video on YouTube which is really cool, and want to have a try to train the model on some other datasets. Could you please provide a general pipeline of training? Thank you very much!

About missing some files

For the part of the training network, I saw that you used the "data_layers.model_net_layer" file in the network training prototxt file.
python_param {
module: "data_layers.model_net_layer"
layer: "ModelNetDataLayer"
I didn't find the corresponding file on GitHub code. Is it convenient for you to send me the corresponding file?Or thank you for updating your GitHub code when you are free. Looking forward to your reply!

Generation of depth dataset from ModelNet

Hi I read your paper, and the creation of depth image dataset from 3D model is really interesting. May I know have you published the processed dataset? Does this repo contain the scripts to generate a depth image from off file?

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.