SSD implementation in development in TensorFlow
Python OpenEdge ABL
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.idea some changes Oct 28, 2016
images some result images Nov 1, 2016
vgg initial Oct 28, 2016 Update Nov 6, 2016 single image eval Nov 2, 2016 fix Nov 2, 2016
i2name.p _ Nov 6, 2016 input Nov 5, 2016 debugging Oct 30, 2016 val/test images Nov 1, 2016 debugging Oct 30, 2016 settings Nov 16, 2016 ip webcam Nov 2, 2016


Single Shot Multibox Detector (SSD) (paper) implementation in TensorFlow, in development.

Results of some hand-picked test images through an experimental run with MS COCO, some good and some bad:

Just looking through them, the results are okay but not good enough.

However, there are still major things needed to do that was done in the original paper for COCO but not here:

  • Train on 500x500 images (this was 300x300)
  • Use COCO trainval (this was only train)
  • Use batch size 32 (this was only 8)

Other major improvements needed:

  • Implement proper evaluation (mAP)
  • Optimize training (currently pretty slow)


  • Simple momentum optimizer stopped working (stopped converging) at some point during development, but adding batch normalization made it work again


  • TensorFlow
  • OpenCV
  • MS COCO tools

Basic Instructions

  • This project is still under development--it's especially slow, but here are some instructions anyway.
  1. You need vgg16.npy from this repository, which is what I used for the base network. Unfortunately, it's a big file, and for now it's just uploaded to Mega, so you might need an account. Direct link to npy

  2. For now, the code uses and depends on MS COCO. You need the MS COCO dataset from here. You should at least have the 2014 training images and corresponding 2014 train/val object instance annotations.

  3. Download and install COCO tools from here

  4. Change the COCO paths in

  5. Test or train with