Git Product home page Git Product logo

wuhaolang / real-time-object-detection-api-using-tensorflow Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kaushikjadhav01/real-time-object-detection-api-using-tensorflow

0.0 0.0 0.0 9.53 MB

A Transfer Learning based Object Detection API that detects all objects in an image, video or live webcam. An SSD model and a Faster R-CNN model was pretrained on Mobile net coco dataset along with a label map in Tensorflow. This model were used to detect objects captured in an image, video or real time webcam. Open CV was used for streaming objects and preprocessing.

Jupyter Notebook 100.00%

real-time-object-detection-api-using-tensorflow's Introduction

Real-Time-Object-Detection-API-using-TensorFlow

A Transfer Learning based Object Detection API that detects all objects in an image, video or live webcam. An SSD model and a Faster R-CNN model was pretrained on Mobile Net COCO dataset along with a label map in Tensorflow. These models were used to detect objects captured in an image, video or real time webcam. OpenCV was used for streaming objects and preprocessing.

Screenshots

Object Detection output for image using SSD

Object Detection output for video files using SSD

Object Detection output for webcam using SSD

Object Detection output for image using Faster R-CNN

Object Detection output for video files using Faster R-CNN

Object Detection output for webcam using Faster R-CNN

Technical Concepts

Faster RCNN is an object detection architecture presented by Ross Girshick, Shaoqing Ren, Kaiming He and Jian Sun in 2015, and is one of the famous object detection architectures that uses convolution neural networks like YOLO (You Look Only Once) and SSD ( Single Shot Detector).
More information can be found here

Single Shot Detector (SSD) like YOLO takes only one shot to detect multiple objects present in an image using multibox. It is significantly faster in speed and high-accuracy object detection algorithm.
More information can be found here

Label Maps: Cartographic labeling is the craft of placing text on a map in relation to the map symbols, together representing features and properties of the real world. Using text effectively creates maps that are clear, informative, and attractive. TensorFlow requires a label map, which namely maps each of the used labels to an integer values. This label map is used both by the training and detection processes.
More information can be found here

An Inference Graph is a propositional graph in which certain arcs and certain reverse arcs are augmented with channels through which information can flow – meaning the inference graph is both a representation of knowledge and the method for performing inference upon it. Channels come in two forms. The first type, i-channels, are added to the reverse antecedent arcs – named as such since they carry messages reporting that “I am true” or “I am negated” from the antecedent node to the rule node. Channels are also added to the consequent arcs, called u-channels, since they carry messages to the consequents which report that “you are true” or “you are negated.” Rules are connected by shared subexpressions.
More information can be found here

Protocol Buffers (Protobuf) is a method of serializing structured data. It is useful in developing programs to communicate with each other over a wire or for storing data. The method involves an interface description language that describes the structure of some data and a program that generates source code from that description for generating or parsing a stream of bytes that represents the structured data.
More information can be found here

Technologies Used

How to Install & Use

  1. Install TensorFlow API by following the instructions here
  2. Download my repo and place the jupyter notebooks of my repo in models/research/object_detection folder of the Tensorflow API
  3. To use smartphone camera in place of laptop webcam, install IPWebcam app on your smartphone from app store. Open app and click on Start Server
  4. Replace the IP address in my jupyter notebooks with IP address in app on Smartphone and run the notebooks

Authors

Kaushik Jadhav

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.