In this project, I have bult a pipeline to process real-world, user supplied images. A pipeline that can be used within a web or mobile app. Given an image of a dog, our algorithm will idenity an estimate of the canine's breed. If supplied an image of a human, the code will identify the resembling dog breed.
-
The datasets that we are using is of dogs and humans to distinguish between them.
-
We used OpenCV's implementation of Haar feature-based cascade classifiers to detect human faces in images. OpenCV provides many pre-trained face detectors, stored as XML files on github. We have downloaded one of these detectors and stored it in the haarcascades directory.
-
We used a pre-trained model to detect dogs in images. Specifically VGG-16 model, along with weights that have been trained on ImageNet, a very large, very popular dataset used for image classification and other vision tasks. ImageNet contains over 10 million URLs, each linking to an image containing an object from one of 1000 categories.
-
We also used our own custom CNN. Sample CNN...
The following links may be of great interest for learning:
- Convolutional Neural Network With PyTorch
- How To Improve Deep Learning Performance
- A Beginner’s Guide to Recurrent Networks and LSTMs
- Introduction to Recurrent Neural Networks in Pytorch
- Understanding LSTM Networks
- If you have time, I highly suggest you check out this article about Dog breed classification that utilizes CNN. It is an in-depth study that would help you understand how CNN works in classifying dog breeds. It is quite similar to the project so you might have an easier time understanding this due to your acquired knowledge.
- Here is a study that utilized Data Augmentation using GAN in classifying breeds.
- A good strategy to improve on the accuracy of the network could be to add dropout layers in the model in order to reduce overfitting.
- A Gentle Introduction to Dropout for Regularizing Deep Neural Networks
- Dropout Regularization in Deep Learning Models With pytorch
- Loss functions and optimization algorithms for deep learning models may help you understand further the uses of these functions and algorithms. This is a nice article that would help expand your knowledge about them.
- I would like to share this article with you wherein the discussion is improving the accuracy using CNN.
- ResNet50 is also a popular choice and here is a nice article which discusses it further. You may opt to use it someday since it is one of the most popular pre-trained models.
- Also, try using the other bottleneck features and compare the results obtained. Xception, for example, outperforms the others.
- 1n Convolutional Neural Networks for Visual Recognition
- When you should use Transfer Learning
- Transfer Learning Introduction
- How does one choose optimal number of epochs?
- How to train your Deep Neural Network
- Number of epochs to train on