An open API service indexing awesome lists of open source software.

https://github.com/rbhatia46/objectdetectionimageai

Object Detection Example using ImageAI library.
https://github.com/rbhatia46/objectdetectionimageai

Last synced: 7 months ago
JSON representation

Object Detection Example using ImageAI library.

Awesome Lists containing this project

README

          

## How to use this

Clone the repository.
Download the ResNet50 Model [here](https://github.com/OlafenwaMoses/ImageAI/releases/download/1.0/resnet50_coco_best_v2.0.1.h5) and place it in the same directory as the repository.

Run the Python script from terminal :
```
python detection.py
```

A demo sample file **image.jpg** has been included in this repository which can be replaced by any custom file of your choice.

After running the script, you will find a **newimage.jpg** in the same directory.

## Dependencies needed :
* Tensorflow
* Numpy
* Scipy
* OpenCV (pip install opencv-python)
* Pillow
* Matplotlib
* h5py
* Keras
* ImageAI (pip install https://github.com/OlafenwaMoses/ImageAI/releases/download/2.0.1/imageai-2.0.1-py3-none-any.whl)

## More on ResNet50 :

ResNet is a short name for Residual Network. As the name of the network indicates, the new terminology that this network introduces is residual learning.

What is the need for Residual Learning?

Deep convolutional neural networks have led to a series of breakthroughs for image classification. Many other visual recognition tasks have also greatly benefited from very deep models. So, over the years there is a trend to go more deeper, to solve more complex tasks and to also increase /improve the classification/recognition accuracy. But, as we go deeper; the training of neural network becomes difficult and also the accuracy starts saturating and then degrades also. Residual Learning tries to solve both these problems.

What is Residual Learning?

In general, in a deep convolutional neural network, several layers are stacked and are trained to the task at hand. The network learns several low/mid/high level features at the end of its layers. In residual learning, instead of trying to learn some features, we try to learn some residual. Residual can be simply understood as subtraction of feature learned from input of that layer. ResNet does this using shortcut connections (directly connecting input of nth layer to some (n+x)th layer. It has proved that training this form of networks is easier than training simple deep convolutional neural networks and also the problem of degrading accuracy is resolved.

This is the fundamental concept of ResNet.

[Source](https://www.quora.com/What-is-the-deep-neural-network-known-as-%E2%80%9CResNet-50%E2%80%9D)