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:
```bash
pip install -r requirements.txt
````
**requirements.txt**
```txt
tensorflow
numpy
pillow
cx-Freeze
```
---
## πŸ–₯️ Running the App
```bash
python app.py
```
---
## πŸ“¦ Creating Executable (.exe or .msi)
### βœ… Using cx\_Freeze
1. Create `setup.py`
2. Build:
```bash
python setup.py build
```
3. For MSI Installer:
```bash
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](screenshots/ui1.png)
![Prediction Result](screenshots/ui2.png)
---
## πŸ“œ 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.