Doggo
Doggo is a Flask web app application to run Dog breed detection models. Based on a photo upload by a user, Doggo runs the following steps:
- Encode uploaded photo for running dog detector, human face detector and dog breed detector models
- If the photo is classified as a dog or a human face, it predicts dog breeds
- For the top n predictions, Doggo calls Wikipedia and dog.ceo to find more information about the predicted breeds
- Return results to user
Table of Contents
- Instructions
- File Descriptions
- Web app
- Licensing, Authors, and Acknowledgements
Instructions
- Build docker image:
docker build -t doggo .
- The app has already trained models for detecting dog, human faces and dog breeds. In case of update, you need to save the new models at
models
folder
- Running the app locally:
docker run -p 5000:80 doggo
- Go to http://0.0.0.0:5000
File Descriptions
- core/: All backend code for parsing images, instantiating models, running and formatting predictions, ...
- core/models/: Required mdels such as CNN Dog Breed detector and opencv human face detector model.
- templates/: Flask html files
- doggo.py: Flask app routes
- requirements.txt: Project dependencies
Web app
For an uploaded photo, the app runs the model and displays the main dog breed and probability of top n dog breeds:
When the models cannot the detect a dog or a human face in the uploaded photo, Doggo returns the following message:
Licensing, Authors, and Acknowledgements
Must give credit to Udacity for providing the dataset and guidelines to run the models. More information about that can be found at: dog-project/
Doggo is under MIT License.