Coder Social home page Coder Social logo

tooth2 / ssd-object-detection Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 33.07 MB

Implemented objects(Vehicles, Traffic Lights) detection pipe line by applying MobileNets and SSD (Single Shot Detection) architecture in order to detect vehicles , traffic lights and pedestrians in the driving video

Jupyter Notebook 99.52% Python 0.48%
single-shot-detection mobilenets tensorflow object-detection

ssd-object-detection's Introduction

SSD-Object-Detection

MobileNets

MobileNets, as the name suggests, are neural networks constructed for the purpose of running very efficiently (high FPS, low memory footprint) on mobile and embedded devices. MobileNets achieve this with 3 techniques: Perform a depthwise convolution followed by a 1x1 convolution rather than a standard convolution. The 1x1 convolution is called a pointwise convolution if it's following a depthwise convolution. The combination of a depthwise convolution followed by a pointwise convolution is sometimes called a separable depthwise convolution. Use a "width multiplier" - reduces the size of the input/output channels, set to a value between 0 and 1. Use a "resolution multiplier" - reduces the size of the original input, set to a value between 0 and 1. These 3 techniques reduce the size of cummulative parameters and therefore the computation required. Of course, generally models with more paramters achieve a higher accuracy. MobileNets are no silver bullet, while they perform very well larger models will outperform them. MobileNets are designed for mobile devices, NOT cloud GPUs. The reason we're using them in this lab is automotive hardware is closer to mobile or embedded devices than beefy cloud GPUs.

MobileNet SSD

In this section you'll use a pretrained MobileNet SSD model to perform object detection. You can download the MobileNet SSD and other models from the TensorFlow detection model zoo (note: we'll provide links to specific models further below). Paper describing comparing several object detection models.

Single Shot Detection (SSD)

Many previous works in object detection involve more than one training phase. For example, the Faster-RCNN architecture first trains a Region Proposal Network (RPN) which decides which regions of the image are worth drawing a box around. RPN is then merged with a pretrained model for classification (classifies the regions). The image below is an RPN:

Faster-RCNN Visual

The SSD architecture is a single convolutional network which learns to predict bounding box locations and classify the locations in one pass. Put differently, SSD can be trained end to end while Faster-RCNN cannot. The SSD architecture consists of a base network followed by several convolutional layers:

SSD Visual

NOTE: In this lab the base network is a MobileNet (instead of VGG16.)

Result(Image)

detection result

Result(Video)

10s of driving 10sec detected result
Driving Result

Multi-Objects Detection Result

Traffic Light only MultiObjects(car, person, traffic light,all )
result-tf result-all
TrafficLight Detection HQ Video MultiObjects Detection HQ Video
TrafficLight All

Right below each bouding boxes, Classified Tag is added: (Person, Car, Traffic Light, Motorcycle , etc )

trained model Download

Reference

Related Work

ssd-object-detection's People

Contributors

tooth2 avatar

Watchers

 avatar

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.