{"id":22342482,"url":"https://github.com/sayedgamal99/digit-recognizer-app","last_synced_at":"2025-07-11T15:44:45.008Z","repository":{"id":258696863,"uuid":"874428599","full_name":"sayedgamal99/Digit-Recognizer-APP","owner":"sayedgamal99","description":"This project implements a Convolutional Neural Network (CNN) to classify handwritten digits from the MNIST dataset. The trained model is deployed as a web application using Streamlit, allowing users to interactively upload images of handwritten digits and receive real-time predictions.","archived":false,"fork":false,"pushed_at":"2024-11-03T05:29:04.000Z","size":2352,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-26T09:45:24.007Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sayedgamal99.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-17T20:08:41.000Z","updated_at":"2024-11-03T05:29:08.000Z","dependencies_parsed_at":"2025-03-26T09:42:07.012Z","dependency_job_id":"54ab44cb-b1e5-400b-a352-b98429dc8a4c","html_url":"https://github.com/sayedgamal99/Digit-Recognizer-APP","commit_stats":null,"previous_names":["sayedgamal99/digit-recognizer-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sayedgamal99/Digit-Recognizer-APP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayedgamal99%2FDigit-Recognizer-APP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayedgamal99%2FDigit-Recognizer-APP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayedgamal99%2FDigit-Recognizer-APP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayedgamal99%2FDigit-Recognizer-APP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sayedgamal99","download_url":"https://codeload.github.com/sayedgamal99/Digit-Recognizer-APP/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayedgamal99%2FDigit-Recognizer-APP/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264843553,"owners_count":23672231,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-04T08:12:49.571Z","updated_at":"2025-07-11T15:44:44.984Z","avatar_url":"https://github.com/sayedgamal99.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MNIST Digit Classification using CNN with Streamlit\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"image.png\" alt=\"Project Cover Image\" width=\"600\"/\u003e\n\u003c/p\u003e\n\n\nThis project implements a Convolutional Neural Network (CNN) to classify handwritten digits from the MNIST dataset. The trained model is deployed as a web application using Streamlit, allowing users to interactively upload images of handwritten digits and receive real-time predictions.\n\n## Project Overview\n\nThe MNIST dataset is a widely used benchmark in the field of machine learning, containing 60,000 training images and 10,000 test images of handwritten digits (0-9). This project demonstrates the following key components:\n\n- **Data Preprocessing**: Efficient loading and normalization of the MNIST dataset, along with data augmentation techniques to improve the model's generalization ability.\n- **Model Architecture**: Construction of a CNN model incorporating convolutional layers, pooling layers, dropout for regularization, and batch normalization to enhance performance.\n- **Training and Evaluation**: Training the CNN on the MNIST dataset, evaluating its performance on unseen data, and achieving high accuracy.\n\n\n## 🌟 Key Features\n- Real-time digit classification\n- Multiple input methods:\n  - Sample image selection\n  - Image upload\n  - Webcam capture\n- Confidence score visualization\n- Interactive user interface\n- Pre-processed sample images with both black and white backgrounds\n\n## 🛠️ Technologies Used\n- Python 3.8+\n- TensorFlow 2.x\n- Streamlit\n- Pillow (PIL)\n- NumPy\n- MNIST Dataset\n\n## 📁 Project Structure\n```\nmnist-classifier/\n├── app.py                 # Main Streamlit application\n├── generate_samples.py    # Script to generate sample images\n├── requirements.txt       # Project dependencies\n├── model/\n│   └── best_model_v2.keras  # Trained MNIST model\n├── samples/              # Sample digit images\n│   ├── digit_0_sample_1.png\n│   ├── digit_0_sample_2.png\n│   └── ...\n└── README.md            # Project documentation\n```\n\n## 🚀 Getting Started\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/your-username/mnist-classifier.git\ncd mnist-classifier\n```\n\n2. Install dependencies:\n```bash\npip install -r requirements.txt\n```\n\n3. Generate sample images:\n```bash\npython generate_samples.py\n```\n\n4. Run the application:\n```bash\nstreamlit run app.py\n```\n\n\n---\n\n\n## 🎯 Future Improvements\n1. fine-tune to mobile camera dataset\n2. Add support for multiple digit recognition\n3. Implement batch processing capability\n4. Add export functionality for predictions\n5. Enhance UI with additional visualizations\n6. Add model performance metrics display\n\n## 📊 Model Performance\n- Test Accuracy: 99.3%\n\n## 💡 Key Learnings\n- Deploying machine learning models in a web application\n- Building interactive UIs with Streamlit\n- Image processing and preprocessing techniques\n- Session state management in web applications\n- Error handling and user experience design\n\n## 🔗 Links\n- [Live Demo](https://digit-recognizer-app-er4ydd5ahxeqd8mbgp9esz.streamlit.app/)\n- [GitHub Repository](https://github.com/sayedgamal99/Digit-Recognizer-APP)\n- [LinkedIn Profile](https://www.linkedin.com/in/sayed-gamal-028103217)\n\n## 📄 License\nMIT License - feel free to use this project for learning and development.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsayedgamal99%2Fdigit-recognizer-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsayedgamal99%2Fdigit-recognizer-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsayedgamal99%2Fdigit-recognizer-app/lists"}