• Stars
    star
    169
  • Rank 224,453 (Top 5 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created about 7 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Single Shot MultiBox Detector in TensorFlow

SSD-TensorFlow

Overview

The programs in this repository train and use a Single Shot MultiBox Detector to take an image and draw bounding boxes around objects of certain classes contained in this image. The network is based on the VGG-16 model and uses the approach described in this paper by Wei Liu et al. The software is generic and easily extendable to any dataset, although I only tried it with Pascal VOC so far. All you need to do to introduce a new dataset is to create a new source_xxxxxx.py file defining it.

Go here for more info.

Pascal VOC Results

Images and numbers speak louder than a thousand words, so here they are:

Example #1 Example #2

Model Training data mAP Train mAP VOC12 test Reference
vgg300 VOC07+12 trainval and VOC07 Test 79.5% 72.3% 72.4%
vgg512 VOC07+12 trainval and VOC07 Test 82.3% 75.0% 74.9%

Usage

To train the model on the Pascal VOC data, go to the pascal-voc directory and download the dataset:

cd pascal-voc
./download-data.sh
cd ..

You then need to preprocess the dataset before you can train the model on it. It's OK to use the default settings, but if you want something more, it's always good to try the --help parameter.

./process_dataset.py

You can then train the whole thing. It will take around 150 to 200 epochs to get good results. Again, you can try --help if you want to do something custom.

./train.py

You can annotate images, dump raw predictions, print the AP stats, or export the results in the Pascal VOC compatible format using the inference script.

./infer.py --help

To export the model to an inference optimize graph run (use result/result as the name of the output tensor):

./export_model.py

If you want to make detection basing on the inference model, check out:

./detect.py

Have Fun!

More Repositories

1

ghostscad

GhostSCAD enables you to programatically build complex 3D models in Go and render them in OpenSCAD
Go
169
star
2

image-segmentation-fcn

Semantic Image Segmentation using a Fully Convolutional Neural Network in TensorFlow
Python
87
star
3

scrapy-do

A daemon for scheduling Scrapy spiders
Python
65
star
4

carddav-util

A CardDAV import/export utility
Python
58
star
5

peroxide

A third-party ProtonMail bridge serving SMTP and IMAP
Go
58
star
6

traffic-lights-detector

A traffic lights detector using the TensorFlow object detection API
Python
31
star
7

pipilot

A software aircraft controller for RaspberryPi
JavaScript
9
star
8

calibre-hacks

Calibre hacks I use to generate ebooks from online content
Shell
8
star
9

tiva-cmake-template

CMake template for the Tiva microcontroller
C
4
star
10

threading-from-scratch

Implementing a threading system on top of Linux syscalls
C
4
star
11

deep-learning

My musings related to deep learning
Python
4
star
12

tv-table-rack

A 3D-printed computer rack for tiny electronics
Go
4
star
13

scrapy-rss-exporter

An RSS exporter for Scrapy
Python
3
star
14

jail

A sandbox container for GUI applications
Shell
2
star
15

silly-invaders

An Alien Invaders game on Tiva MCU
C
2
star
16

xrdclient

XRootD Client - Merged with the main project at https://github.com/xrootd/xrootd
C++
2
star
17

pico-enc28j60

A RaspberryPi Pico driver for the ENC28J60 controller
C
1
star
18

ray-tracer

My take at the Ray Tracer Challenge in Rust
Rust
1
star
19

gmailmigr

Tools for moving emails out of GMail
Python
1
star
20

monkey

A programming language written in go
Go
1
star
21

reef

JavaScript
1
star
22

gosh

A library of scripting helpers
Go
1
star
23

udacity-kalman-filters

Udacity Self-Driving Car ND Project - Kalman Filters
C++
1
star
24

udacity-path-planning

Udacity Self-Driving Car ND Project - Path Planning
C++
1
star