Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cyyeh/dog-breed-classifier-project
Udacity Machine Learning Engineer Nanodegree Capstone Project
https://github.com/cyyeh/dog-breed-classifier-project
computer-vision deep-learning fastapi gcp-cloud-run mobilenetv2 python3 pytorch webapp
Last synced: about 2 months ago
JSON representation
Udacity Machine Learning Engineer Nanodegree Capstone Project
- Host: GitHub
- URL: https://github.com/cyyeh/dog-breed-classifier-project
- Owner: cyyeh
- License: mit
- Created: 2020-06-07T04:02:38.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-01-06T08:41:34.000Z (about 2 years ago)
- Last Synced: 2024-10-27T21:37:07.454Z (3 months ago)
- Topics: computer-vision, deep-learning, fastapi, gcp-cloud-run, mobilenetv2, python3, pytorch, webapp
- Language: JavaScript
- Homepage: https://dog-breed-classifier.netlify.app/
- Size: 59.4 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Dog Breed Classification Project
![Visualization of the codebase](./diagram.svg)
## Project Functionalities
- Users can know more about dog breeds and their information through taking photos or uploading photos.
- Users can also directly use photos provided by the project to quickly play around.
- Users can get top 3 dog breed prediction results with wikipedia links.
- Users can learn English and Chinese at the same time.## System Architecture
![](system-diagram.png)
- dog detection
- model: MobileNet V2 pretrained model without finetuning
- input: an image having RGB channels with Base64 encoding
- output: boolean
- dog classification
- model: MobileNet V2 pretrained model with finetuning
- input: an image having RGB channels with Base64 encoding
- output: top-3 prediction results(dog breed names and prediction probabilities)## Project Structure
- api: backend
- web: frontend## Used Tools/Technologies
- frontend
- HTML/CSS/JavaScript
- Materialize
- Babel
- Webpack
- backend
- Python
- FastAPI
- Docker
- GCP
- Cloud Run
- deep learning
- PyTorch## Deep Learning Under the Hood in This Project
You can check [this repo](https://github.com/cyyeh/ml-engineering-ndegree/tree/master/projects/capstone-project) for further details, and this project is orginally from my Udacity Machine Learning Engineer Nanodegree capstone project. However, I have changed some model details for this dog breed classifier, you can check [here](https://github.com/cyyeh/ml-engineering-ndegree/tree/master/projects/capstone-project/deployment) for more details.
## Setup
### Frontend
> please see the web folder
- `npm install` (download dependencies first)
- local development
- `npm run start`
- deployment
- `npm run build`You can checkout other commands in `package.json` in the web folder
### Backend
> please see the api folder
- local development without docker:
- `pip install pipenv` (If you don't have `pipenv` installed)
- `pipenv install`
- `pipenv run uvicorn main:app --reload`Below commands are already written in `Makefile`, please checkout and change any setting you need first.
- local development using docker:
- `make dev`
- build a docker image:
- `make build`
- submit a docker image to Google Container Registry:
- `make submit`
- deploy a docker image in Google Container Registry to Google Cloud Run:
- `make deploy`## Todos
- [x] support English
- [ ] support PWA
- [ ] Android
- [ ] iOS
- [ ] export the trained PyTorch models to edge devices for better inference performance