Code Monkey home page Code Monkey logo

andrebrasuc / object_recognition_from_rgbd_data Goto Github PK

View Code? Open in Web Editor NEW
11.0 2.0 0.0 10.59 MB

In recent years, object recognition has attracted increasing attention of researchers due to its numerous applications. For instance, object recognition enables collaborative robots to carry out tasks like searching for an object in an unstructured environment or retrieving a tool for a human coworker. In this study, we present a new technique for unsupervised feature extraction from red, green, blue, plus depth (RGB-D) data, which is then combined with several classifiers to perform object recognition. Specifically, our architecture first segments all objects in a table top scene through an unsupervised clustering technique. Then, it focuses separately on each object to extract both shape and visual features. We conduct experiments on a subset of 20 objects selected from the YCB object and model set and evaluate the performance of several classifiers.

MATLAB 90.42% Python 9.58%
object-detection rgbd collaborative-robot matlab

object_recognition_from_rgbd_data's Introduction

Hello everybody! My name is André Brás and I'm a researcher in the University of Coimbra, Portugal, in the field of collaborative robotics, computer vision, and pattern recognition. Here, I'll give you a few details about this project so that you can easily use it. This project introduces an unsupervised approach for feature extraction from RGB-D data. The features can be then used to train several classifiers, which are able to perform object recognition. Experiments are conduct on a subset of 20 objects selected from the YCB object and model set.

You can start by opening the script named "MAIN_YCB". This script uses RGB-D images available in the dataset to build the corresponding point cloud. Then, such point cloud is used to perform feature extraction. The features will later be used to train an Artificial Neural Network (ANN), which may be able to accurately recognize different object classes. You are only able to run this script if you have downloaded the data and stored it on "YCB_Object_Model_Set" folder. You will also need to install Python 2 to run the code that generates the point cloud, which is provided with the dataset. If you are unable to run this script, you can find the output at "YCB_Features". In this data file, the last column of the variable 'Features' is the ground truth of the corresponding sample. The easiest way of using this output is to open the Wizard provided by Matlab (type "nnstart" in the command window) and follow the steps. I already provide 3 ANNs trained with visual features, shape features and both visual and shape features; find them in the files named "YCB_Network_Visual_Features", "YCB_Network_Shape_Features" and "YCB_Network_All_Features", respectively.

Afterwards, you should install a Microsoft Kinect to detect and recognize real objects. However, you have to acquire new images, as the color images provided with the YCB Object and Model Set are very different from those made available by the Kinect. Use the script named "MAIN_Kinect" for such purpose. Once you collect images for all objects in the subset that you want to use, run the script named "From_Images_To_Features". This script uses the images to build the corresponding point clouds and make the feature extraction. I already collected some examples and you can find 300 samples of each object in the file named "Kinect_Features". Then, you can use these features and the script "Kinect_Network_Train" to train ANNs. Find some ANNs trained with visual features and both visual and shape features in the folder "Kinect_Networks".

Finally, the script "ONLINE_PICKING" allows to use a KUKA LBR iiwa to pick objects above a table. This script needs the KUKA Sunrise Toolbox and the file "ONLINE_PICKING_DATA". This file contains data to build the transformation matrix between the X and Y axes of KUKA robot and Kinect. Furthermore, it also contains some important positions. You should adapt this data to your apparatus.

object_recognition_from_rgbd_data's People

Contributors

andrebrasuc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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