shape-detection icon indicating copy to clipboard operation
shape-detection copied to clipboard

🟣 Object detection of abstract shapes with neural networks

shape-detection

Read my Medium post on this project

Note: Some people reached out and told me that they can't replicate some of the results in this repo. I couldn't find the reason, potentially one of the dependencies changed since I did this project a few years ago. Unfortunately I don't have any notes on which exact setup I used back then. If you find anything, please reach out to me :)

This is an example of object detection with neural networks (implemented with keras). The training images contain abstract geometric shapes and can be easily bootstraped.

The code is split up into several Jupyter notebooks. They increase in complexity:

  • Detection of rectangles in numpy arrays: single-rectangle, two-rectangles, multiple-rectangles
  • Additional classification between rectangles and triangles: two-rectangles-or-triangles, multiple-rectangles-or-triangles
  • Application to more complex images (using convnets): color-multiple-shapes

Requirements: Python 2.7, keras (v1.0.5), theano or tensorflow, numpy, matplotlib, jupyter, pycairo (only for color-multiple-shapes.ipynb)