Git Product home page Git Product logo

embedded_gcnn's Introduction

Embedded Graph Convolutional Neural Networks

Build Status Code Coverage Requirements Status Code Climate Code Climate Issues

Neural Network Approach

This is a TensorFlow implementation of my mastersthesis on Graph-based Image Classification (german).

Embedded graph convolutional neural networks (EGCNN) aim to make significant improvements to learning on graphs where nodes are positioned on a twodimensional euclidean plane and thus possess an orientation (like up, down, right and left). As proof, we implemented an image classification on embedded graphs by first segmenting the image into superpixels with the use of SLIC or Quickshift, converting this representation into a graph and inputting these to the neural network.

SlIC and Quickshift Segmentation

Graphs are trained on three different datasets and are automatically downloaded by running the corresponding train scripts:

  • MNIST (run python mnist_graph.py and python mnist_spatial.py)
  • Cifar-10 (run python cifar_graph.py and python cifar_conv2d.py)
  • PascalVOC (run python pascal_graph.py and python pascal_conv2d.py)

This repository also includes layer implementations of alternative approaches such as SGCNN and GCN for graphs and the Fire module of SqueezeNet for images to validate the results.

Results

Dataset SLIC Quickshift
MNIST 97.405 98.025
Cifar-10 74.218 75.230
Pascal VOC 54.473 54.516

Requirements

To install the required python packages, run:

pip install -r requirements.txt

Running tests

Install the test requirements

pip install -r requirements_test.txt

and run the test suite:

nosetests --nologcapture

Cite

Please cite my master thesis if you use this code in your own work:

@mastersthesis{Fey2017,
  title={{Convolutional Neural Networks auf Graphrepr{\"a}sentationen von Bildern}},
  author={Matthias Fey},
  school={Technische Universit{\"a}t Dortmund},
  year={2017},
}

embedded_gcnn's People

Contributors

rusty1s avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

embedded_gcnn's Issues

Replace EGCNN with GCNN

Thanks a lot for your work, It is helping everyone a lot. I was wondering, if I want to replace EGCNN with GCN, then what changes do I need to do?

pytorch

Thank you very much for your work, I am not very familiar with the tensorflow version, do you have this code for pytorch?

question asking

can i use this to cluster the pixels in an image in order to accomplish instance segmentation

How to run the program

hello,thanks to your work,How can I run the program? Will it work on Windows system?

how to deal with 3d image

hello! thanks to your work.
I want to input a 3d(h×w×z) image. In order to process 3d_segmentation(after using SLIC algorithm), how do I modify the FormFeatureExtraction class、SLIC_FEATURES to get features?
Thank you very much!

SLIC

Hi! Amazing work!
When using a algorithm such as SLIC to obtain a super pixel block, it seems that the super pixel block of each picture is different. And the number of obtained super pixel blocks is not equal to the value set by the parameter "num_segments".
I can not understand it!

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.