All Projects → tnikolla → Robot Grasp Detection

tnikolla / Robot Grasp Detection

Licence: apache-2.0
Detecting robot grasping positions with deep neural networks. The model is trained on Cornell Grasping Dataset. This is an implementation mainly based on the paper 'Real-Time Grasp Detection Using Convolutional Neural Networks' from Redmon and Angelova.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Robot Grasp Detection

Quickdraw
Implementation of Quickdraw - an online game developed by Google
Stars: ✭ 805 (+500.75%)
Mutual labels:  deep-neural-networks, image-classification
Albumentations
Fast image augmentation library and an easy-to-use wrapper around other libraries. Documentation: https://albumentations.ai/docs/ Paper about the library: https://www.mdpi.com/2078-2489/11/2/125
Stars: ✭ 9,353 (+6879.85%)
Mutual labels:  image-classification, detection
Image classification cifar 10
Image Classification on CIFAR-10 Dataset using Multi Layer Perceptrons in Python from Scratch.
Stars: ✭ 18 (-86.57%)
Mutual labels:  deep-neural-networks, image-classification
Rectlabel Support
RectLabel - An image annotation tool to label images for bounding box object detection and segmentation.
Stars: ✭ 338 (+152.24%)
Mutual labels:  image-classification, detection
Tensorflow2.0 Examples
🙄 Difficult algorithm, Simple code.
Stars: ✭ 1,397 (+942.54%)
Mutual labels:  deep-neural-networks, image-classification
Rmdl
RMDL: Random Multimodel Deep Learning for Classification
Stars: ✭ 375 (+179.85%)
Mutual labels:  deep-neural-networks, image-classification
Concise Ipython Notebooks For Deep Learning
Ipython Notebooks for solving problems like classification, segmentation, generation using latest Deep learning algorithms on different publicly available text and image data-sets.
Stars: ✭ 23 (-82.84%)
Mutual labels:  deep-neural-networks, image-classification
etiketai
Etiketai is an online tool designed to label images, useful for training AI models
Stars: ✭ 63 (-52.99%)
Mutual labels:  detection, image-classification
Cnn Paper2
🎨 🎨 深度学习 卷积神经网络教程 :图像识别,目标检测,语义分割,实例分割,人脸识别,神经风格转换,GAN等🎨🎨 https://dataxujing.github.io/CNN-paper2/
Stars: ✭ 77 (-42.54%)
Mutual labels:  deep-neural-networks, detection
Deep Ranking
Learning Fine-grained Image Similarity with Deep Ranking is a novel application of neural networks, where the authors use a new multi scale architecture combined with a triplet loss to create a neural network that is able to perform image search. This repository is a simplified implementation of the same
Stars: ✭ 64 (-52.24%)
Mutual labels:  deep-neural-networks, image-classification
Labeld
LabelD is a quick and easy-to-use image annotation tool, built for academics, data scientists, and software engineers to enable single track or distributed image tagging. LabelD supports both localized, in-image (multi-)tagging, as well as image categorization.
Stars: ✭ 129 (-3.73%)
Mutual labels:  deep-neural-networks, image-classification
Labelbox
Labelbox is the fastest way to annotate data to build and ship computer vision applications.
Stars: ✭ 1,588 (+1085.07%)
Mutual labels:  image-classification, detection
thermography
Automatic detection of defected solar panel modules
Stars: ✭ 59 (-55.97%)
Mutual labels:  detection, image-classification
Vehicle counting tensorflow
🚘 "MORE THAN VEHICLE COUNTING!" This project provides prediction for speed, color and size of the vehicles with TensorFlow Object Counting API.
Stars: ✭ 582 (+334.33%)
Mutual labels:  deep-neural-networks, detection
PlayerDetection
Player detection and ball detection in football matches using image processing(opencv).
Stars: ✭ 50 (-62.69%)
Mutual labels:  detection, image-classification
Medicaldetectiontoolkit
The Medical Detection Toolkit contains 2D + 3D implementations of prevalent object detectors such as Mask R-CNN, Retina Net, Retina U-Net, as well as a training and inference framework focused on dealing with medical images.
Stars: ✭ 917 (+584.33%)
Mutual labels:  deep-neural-networks, detection
Iresnet
Improved Residual Networks (https://arxiv.org/pdf/2004.04989.pdf)
Stars: ✭ 163 (+21.64%)
Mutual labels:  deep-neural-networks, image-classification
Computer Vision Guide
📖 This guide is to help you understand the basics of the computerized image and develop computer vision projects with OpenCV. Includes Python, Java, JavaScript, C# and C++ examples.
Stars: ✭ 244 (+82.09%)
Mutual labels:  deep-neural-networks, image-classification
Channel Pruning
Channel Pruning for Accelerating Very Deep Neural Networks (ICCV'17)
Stars: ✭ 979 (+630.6%)
Mutual labels:  deep-neural-networks, image-classification
Ssd Pytorch
SSD: Single Shot MultiBox Detector pytorch implementation focusing on simplicity
Stars: ✭ 107 (-20.15%)
Mutual labels:  deep-neural-networks, detection

Detecting grasping positions with deep neural networks using RGB images

(The model is uploaded but you can train better yourself if you have the time and the machine or if you are learning Tensorflow/ML. Please bear in mind that you need to read and adapt to your needs some parts of the code. Feel free to open an issue if you need help. I will try to update README and comment the code.)

This implementation is mainly based on the algorithm from Redmon and Angelova described in arXiv:1412.3128v2.

The method uses an RGB image to find a single grasp. A deep convolutional neural network is applied to an image of an ohject and as a result one gets the coordinates, dimensions, and orientation of one possible grasp.

The images used to train the network are from Cornell Grasping Dataset.

Problem description

Having in mind a parallel plate griper before it closes, a simple and natural way of picturing the grasping position in an image would be a rectangle (see figure 1).

One way representing it uniquely is as

g = {x, y, \theta, h, w}

where (x,y) is the center of the rectangle, \theta is the orientation of the rectangle to the horizontal axis of the image, h and w are the dimensions (height and width) of the rectangle.

alt text

The sole purpose of this small library is to train a network that given a RGB image is able (with some accuracy) to predict a possible grasp g.

How to train from scratch

The procedure follows these steps:

  • convert ImageNet in TFRecord format
  • train the model on ImageNet
  • convert the grasping dataset in TFRecords
  • train on the grasping dataset using the pretrained weights

Prepering Imagenet

Before running the script you will need to download and convert the ImageNet data to native TFRecord format. Check this link from the Inception model from Google. I found the whole Inception model in Github very useful.

Training on Imagenet

Running imagenet_classifier.py will do the trick. But first change the default dataset directory (mine lies in /root/imagenet-data)

Check also in the end of the file the options that you can use, for example:

./imagenet_classifier.py --batch_size=128 --model_path=./models/imagenet/m1/m1.ckpt --train_or_validation=train

Running on a GTX 980 and a very^2 good Xeon it needs around two days (I didn't time it). Check in the begining if the model is saving/restoring the weights.

Prepering Cornell grasping dataset

After downloading and decompressing run build_cgd_dataset.py. Make sure to adapt to your needs the python file, for example

  • point dataset in the right place
  • in filename[:49] adapt the number 49 (you can contribute, or I will program it better someday)

Train on grasping dataset

Just run grasp_det.py for the training, or give some arguments as in training Imagenet. These are just around 1000 examples (images with grasps) and can be trained very fast. Careful not to overfit.

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