Skip to main content

Real-Time Object detection API using Tensorflow and OpenCV

The amount of visual data in the world today has grown exponentially in the last couple of years and this is largely due to lots of sensors everywhere. Building machine learning models that are capable of localizing and identifying obejcts in a single image remains a core challenge in computer vision. Working to solve this problem has ignited my interest into the field.

As a path to my quest, I discovered Google just released an object detection API. The API has been trained on Microsoft COCO dataset { A dataset of about 300,000 images of 90 commonly found objects} with different trainable detection models .
different trainable detection models
The higher the mAp (minimum average precision), the better the model

Project Description

I started by cloning the Tensorflow object detection repository on github. The API is an open source framework built on tensorflow making it easy to construct, train and deploy object detection models.
For this project [am on windows 10, Anaconda 3, Python 3.6], I was concerned with only the installation part and following the example which included
  • Installing required libraries e.g pillow, lxml etc that comes with installing the latest version of tensorflow using pip(latest version)
  • Downloading the latest version of protobuf compatible with my system for compilation on google protobuf releases
  • Cloning the tensorflow/models folder as a zip file
  • On my Anaconda prompt, ran this command for protobuf compilation without which the example wont work.
# From tensorflow/models/research/
protoc object_detection/protos/*.proto --python_out=.
  • I preferred using Spyder as my editor so i made a copy of the notebook in the example and converted it to a python file

Testing the model

Using the pre-trained ssd_mobilenet_v1_coco model (which was fast, though had the least accuracy), I decided to test it out on my own images and the results were amazing !


Comments

Post a Comment

Popular posts from this blog

Integrating Tensor flow API into ASP.net Web applications for Image detection

Introduction Tensor flow provides advanced Machine Learning API. For the example here we will provide a solution for the Image recognition. The same can be applied to other use cases such as Text recognition or any other data set that needs to solve the problems of AI and Machine Learning such as: Predictive Analytics Cognitive Processes and its Automation e.g. NLP Virtual Agents (Bot’s) Camera Image detection and processing e.g. Industrial Robotics and Drones Text Knowledge Analytics Application Development Steps In the first step we create an ASP.NET application for connecting the camera feed or input data. In the next step Install Tensor flow as per instructions on the website –>  Click here To begin using Tensor flow we need to decide on the model to use for processing input data – There is an option to use either ready-made models or develop on own depending on the problem at hand. For simplicity we will use ready-made model called a deep  convolut...

Machine Learning with ML.NET 1.0

As a person coming from .NET world, it was quite hard to get into  machine learning  right away. One of the main reasons was the fact that I couldn’t start Visual Studio and  try out  these new things in the technologies I am proficient with. I had to solve another obstacle and learn other  programming languages  more fitting for the job like Python and R. You can imagine my happiness when more than a year ago,  Microsoft  announced that as a part of  .NET Core 3 , a new feature will be available –  ML.NET . In fact it made me so happy that this is the third time I write similar  guide . Basically, I wrote one when ML.NET was a  version 0.2  and one when it was  version 0.10 . Both times, guys from Microsoft decided to modify the  API  and make my articles obsolete. That is why I have to do it once again. But hey, third time is the charm, so hopefully I will not have to do this again until ML.N...

Using Tensorflow Object Detection API to build a Toy detector

Here I extend the API to train on a new object that is not part of the COCO dataset. In this case I chose a toy that was lying around. See gif below. So far, I have been impressed by the performance of the API. The steps highlighted here can be extended to any single or multiple object detector that you want to build. Tensorflow Toy Detector~ You can find the code on my  Github  repo Collecting data The first step is collecting images for your project. You could download them from google ensuring you have a wide variation in angles, brightness, scale etc. In my case I created a video of the little aeroplane toy and used  Opencv  to extract images from the video. This saved me a lot of time. I ensured that images were taken from multiple angles. You can also randomly change brightness for some of the images so that the detector can work under different conditions of lightning. Overall 100–150 pics will suffice. See some sample images below: ...