Jaiking001's picture
upload 6 file
2987148 verified

🐢 Dog Breed Classification Desktop App

This is a standalone desktop application built using Tkinter and TensorFlow, capable of identifying dog breeds from images. The app uses a trained .h5 deep learning model and supports creating .exe and .msi installers via cx_Freeze or PyInstaller.


πŸš€ Features

  • βœ… Offline desktop app (no Python installation required)
  • πŸ–ΌοΈ Upload any dog image (JPG, PNG, JPEG)
  • πŸ” Predicts dog breed with confidence score
  • πŸ“‚ Simple folder structure and user-friendly GUI
  • πŸ› οΈ Create .exe or .msi installers with cx_Freeze
  • ⚠️ Error handling for missing models or files

🧠 Model Info

  • Trained on 31 dog breeds including:

Akita Inu, German Shepherd, Labrador Retriever, Poodle, Pug, Golden Retriever,
Siberian Husky, Bulldog, Saint Bernard, Rottweiler, and more.
  • Input Image Size: 224 x 224
  • Format: dog_breed_classifier.h5 (Keras model)

πŸ“ Folder Structure


DogBreedApp/
β”‚
β”œβ”€β”€ app.py                  # Main GUI application file
β”œβ”€β”€ dog\_breed\_classifier.h5 # Trained TensorFlow model
β”œβ”€β”€ class\_indices.json      # Label-to-classname mapping
β”œβ”€β”€ setup.py                # cx\_Freeze build script
β”œβ”€β”€ dog.ico                 # (optional) Icon file

πŸ›  Requirements

Install these Python packages:

pip install -r requirements.txt

requirements.txt

tensorflow
numpy
pillow
cx-Freeze

πŸ–₯️ Running the App

python app.py

πŸ“¦ Creating Executable (.exe or .msi)

βœ… Using cx_Freeze

  1. Create setup.py
  2. Build:
python setup.py build
  1. For MSI Installer:
python setup.py bdist_msi

This generates:

  • .exe in build/
  • .msi installer in dist/

🧊 Packaging Notes

  • Use resource_path() for model/JSON so PyInstaller or cx_Freeze can bundle files.
  • Include .h5 and .json in include_files in setup.py.
  • Works without requiring Python installation.

πŸ“Έ Screenshots

Upload and Detect Prediction Result


πŸ“œ License

This project is open-source and available for educational and personal use.


πŸ‘¨β€πŸ’» Author

Developed by Jayasimma D


---

### βœ… Bonus Tips:
- Save it as `README.md` in your root folder.
- Add screenshots to a `/screenshots` folder if you plan to upload this to GitHub or Share.
- Replace `[Your Name]` with your actual name or GitHub username.