AI-powered skin disease classification with interactive prediction & recommendations
TensorFlow/Keras model trained with EfficientNetB3 architecture
Direct browser integration for instant disease detection
Upload from desktop or mobile device
AI-powered clinical guidance and specialist suggestions
Search and explore all 30 disease classes with detailed info
| Section | Link |
|---|---|
| π Overview | View Details |
| π Web Interface | Features & Stack |
| π Getting Started | Installation Guide |
| π API Docs | Endpoints |
| π Project Layout | Directory Structure |
| βοΈ Disclaimer | Legal Notice |
| π€ Contact | Author Info |
This project leverages deep learning to identify and classify skin diseases from images with high accuracy.
π Prediction Output (click to expand)
The model analyzes input images and returns:
- π Top Prediction with confidence score
- π₯ Top-3 Ranked Classes with probabilities
- π Clinical Guidance - causes, symptoms, and treatment
- π¨ββοΈ Specialist Recommendations - suggested medical professionals
- π Full Reference - all 30 disease classes available
| Property | Value |
|---|---|
| Framework | TensorFlow/Keras |
| Base Model | EfficientNetB3 |
| Output Classes | 30 skin diseases |
| Input Dimensions | 300Γ300 pixels |
| Precision | High-performance GPU trained |
| Primary Path | Models/effBb3/best_phase2.keras |
Interactive Components (click to expand)
| Feature | Description | Status |
|---|---|---|
| π€ Image Upload | Drag-and-drop or file picker for desktop/mobile images | β Active |
| πΉ Camera Capture | Real-time browser camera integration for instant analysis | β Active |
| π― Prediction Panel | Doctor-focused recommendations with confidence scores | β Active |
| π Disease Explorer | Searchable database of all 30 disease classes | β Active |
| π Classification Workflow | Step-by-step explanation of model analysis | β Active |
| π₯ Author Contact | Direct links to GitHub, LinkedIn, and email | β Active |
- π± Fully Responsive - Optimized for desktop, tablet, and mobile
- π Fast Performance - GPU-accelerated predictions
- π― Intuitive UX - Doctor-friendly interface design
- π Browser Compatible - Works across modern browsers
Step-by-Step Guide (click to expand)
Step 1οΈβ£ - Install Dependencies
pip install -r requirements.txtStep 2οΈβ£ - Start Flask Server
Navigate to the Files directory and run:
python app.pyStep 3οΈβ£ - Open in Browser
Visit your local instance:
π http://127.0.0.1:5000
Environment Variables (optional)
Customize server behavior with these optional environment variables:
# Server host (default: 127.0.0.1)
export FLASK_HOST=0.0.0.0
# Server port (default: 5000)
export FLASK_PORT=5000
# Debug mode (default: 1 = enabled)
export FLASK_DEBUG=1POST /api/predict - Disease Prediction
Analyzes an image and returns top disease predictions with clinical recommendations.
Request:
POST /api/predict
Content-Type: multipart/form-data
image: <binary_image_file>Response:
{
"success": true,
"predictions": [
{
"class": "Disease Name",
"confidence": 0.92,
"rank": 1
}
],
"recommendations": "Clinical guidance here..."
}Status: β Active and Deployed
GET /api/diseases - Disease Database
Returns metadata for all 30 disease classes used by the explorer.
Response:
{
"total_classes": 30,
"diseases": [
{
"name": "Disease Name",
"clinical_info": "...",
"specialists": ["Dermatologist", "...]
}
]
}Status: β Active and Deployed
GET /health - Server Health Check
Verifies model is loaded and operational.
Response:
{
"status": "healthy",
"model_loaded": true,
"class_count": 30
}Status: β Active and Deployed
Directory Layout (click to expand)
Files/
β
βββ π Backend Services
β βββ app.py # Flask application entry point
β βββ requirements.txt # Python dependencies
β βββ LoadModel.ipynb # Model initialization notebook
β
βββ π¨ Frontend Assets
β βββ static/
β β βββ css/
β β β βββ style.css # UI styling and animations
β β βββ js/
β β βββ app.js # Client-side logic
β βββ templates/
β βββ index.html # Web interface
β
βββ π§ AI Models
β βββ Models/effBb3/
β β βββ best_phase2.keras # β PRIMARY MODEL
β β βββ best_phase1.keras # Fallback
β β βββ skin_disease_model.keras # Alternative backup
β βββ Models(67)/ # Legacy models archive
β
βββ π Training Notebooks
β βββ Pytorch_Skin_Diseases_Detection.ipynb
β βββ Skin_Diseases_Detection_30_Classes_GPU.ipynb
β βββ skin-diseases-detection-30-classes-tpu.ipynb
β βββ *.ipynb # Additional training experiments
β
βββ π Data & Configuration
β βββ data/
β β βββ disease_info.json # 30-class disease database
β βββ icon/
β β βββ site.webmanifest # PWA manifest
β βββ image/
β βββ README/ # Documentation images
β
βββ π³ Deployment
βββ Dockerfile # Container configuration
βββ README.md # This file
The app uses an intelligent fallback chain for maximum reliability:
1. Models/effBb3/best_phase2.keras β PRIMARY (ACTIVE)
β
2. Models/effBb3/skin_disease_model.keras
β
3. Models/effBb3/best_phase1.keras
β
4. Legacy output folder backups β FALLBACK
β¨ Auto-skips incompatible models (mixed_float16 issues)
π Available Training Resources
All training notebooks and artifacts are included in this repository:
| Notebook | Framework | Focus | Status |
|---|---|---|---|
Pytorch_Skin_Diseases_Detection.ipynb |
PyTorch | Alternative model training | β Available |
Skin_Diseases_Detection_30_Classes_GPU.ipynb |
TensorFlow/Keras | GPU-optimized training | β Available |
skin-diseases-detection-30-classes-tpu.ipynb |
TensorFlow | TPU acceleration | β Available |
Skin_Diseases_Detection_30_Classes_GPU folder |
Checkpoints | Training artifacts | β Included |
LoadModel.ipynb |
Jupyter | Model loading guide | β Reference |
The Flask app automatically uses the latest saved model and metadata from notebook training outputs.
β‘ Performance Metrics
| Metric | Value | Notes |
|---|---|---|
| Architecture | EfficientNetB3 | Transfer learning base |
| Training Data | Diverse dermatology images | 30-class balanced dataset |
| Inference Speed | <200ms per image | CPU; <100ms on GPU |
| Input Resolution | 300Γ300 px | Auto-resized by preprocessing |
| Output Classes | 30 skin conditions | Comprehensive coverage |
| Deployment | Flask + TensorFlow | Production-ready stack |
| Browser Support | Chrome, Firefox, Safari, Edge | Modern browsers only |
Key Optimization Techniques:
- β Model quantization & pruning
- β Batch normalization
- β Dropout regularization
- β Data augmentation during training
- β Mixed precision training (Phase 2)
π₯οΈ Hardware & Software
Minimum Requirements:
- Python 3.8+
- 4 GB RAM
- 2+ GB disk space (models)
- Modern web browser
Recommended for Best Performance:
- Python 3.9+
- 8+ GB RAM
- GPU (NVIDIA with CUDA 11.0+) for <100ms inference
- SSD for faster model loading
Supported Operating Systems:
- β Windows 10/11
- β macOS 10.14+
- β Ubuntu 18.04+
- β Any OS with Python 3.8+ support
Dependencies:
- TensorFlow/Keras 2.x
- Flask 2.x
- NumPy, Pillow for image processing
- CUDA/cuDNN (optional, for GPU acceleration)
Common Issues & Solutions
Solution: Ensure all model files exist in Models/effBb3/ directory. Run:
ls Models/effBb3/Solution: Change the port in app.py or kill the process:
# macOS/Linux
lsof -i :5000 | grep LISTEN | awk '{print $2}' | xargs kill
# Windows
netstat -ano | findstr :5000
taskkill /PID <PID> /FSolution: Check browser camera permissions:
- Click the camera icon in address bar
- Select "Allow" for camera access
- Refresh the page
Solution: Install GPU drivers or upgrade hardware. CPU inference takes 200-500ms depending on specs.
Solution: Close other applications or reduce batch size. GPU memory issues? Check CUDA availability:
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"Solution: Check file format (JPEG, PNG, WebP, BMP) and size (<16MB). Verify permissions:
chmod 755 uploads/ # Linux/macOSπ₯ How to Contribute
We welcome contributions! Here's how:
1. Report Bugs
- Open an issue with clear description
- Include screenshots and error messages
- Mention your OS and Python version
2. Suggest Features
- Describe the feature and use case
- Provide examples or mockups
- Label as
enhancement
3. Submit Code
# 1. Fork the repository
git clone https://github.com/YOUR_USERNAME/repo.git
cd repo
# 2. Create feature branch
git checkout -b feature/amazing-feature
# 3. Make your changes
# ... edit files ...
# 4. Test thoroughly
python app.py
# 5. Commit with clear messages
git commit -m "Add: amazing feature with tests"
# 6. Push to your fork
git push origin feature/amazing-feature
# 7. Open Pull Request on GitHubCode Style:
- Use clear variable names
- Add docstrings for functions
- Follow PEP 8 for Python
- Add comments for complex logic
Testing: Before submitting PR, test locally:
# Run Flask in debug mode
FLASK_DEBUG=1 python app.py
# Test with various image formats and sizes
# Check browser console for JS errorsFrequently Asked Questions
Q: Can this replace a dermatologist? A: Absolutely not. This is an educational tool only. Always consult healthcare professionals for medical decisions.
Q: What diseases can it detect?
A: 30 common skin conditions. Check data/disease_info.json for the complete list.
Q: How accurate is the model? A: Typical accuracy is 85-92% on test data, but real-world accuracy varies. Always verify with medical professionals.
Q: Can I use my own model?
A: Yes! Replace files in Models/effBb3/ with your .keras or .h5 files. Update preprocessing in app.py if needed.
Q: How do I deploy this? A: Use Docker:
docker build -t skin-disease-detector .
docker run -p 5000:5000 skin-disease-detectorOr deploy to cloud (AWS, Azure, GCP, Heroku).
Q: Can I use this commercially? A: No. MIT license permits personal/educational use only. Contact author for commercial licensing.
Q: How do I improve accuracy? A: Retrain with more diverse data. See training notebooks for implementation details.
Q: Is the model open source? A: Model weights are included. Training code is in notebooks. Architecture details are in docstrings.
Q: Why does prediction take so long? A: Check system specs. GPU inference: 50-100ms. CPU: 200-500ms. SSD is much faster than HDD.
π Planned Improvements
Short Term (Q2-Q3 2026):
- Mobile app (React Native)
- Batch prediction API
- User prediction history
- Dark/Light theme toggle
- Multi-language support
Medium Term (Q4 2026):
- Expand to 50+ disease classes
- Ensemble multiple models
- Uncertainty quantification
- DICOM image support
- API rate limiting
Long Term (2027+):
- Federated learning for privacy
- Explainability (Grad-CAM heatmaps)
- Integration with electronic health records
- Real-time video stream analysis
- Advanced computer vision techniques
β οΈ Important Legal Notice
EDUCATIONAL & ASSISTIVE USE ONLY
This tool is provided for educational and assistive purposes only. It is NOT a substitute for:
- β Professional medical diagnosis
- β Licensed dermatologist consultation
- β Clinical treatment decisions
- β Emergency medical care
Accuracy Limitations:
- Model predictions are probabilistic estimates only
- Real skin conditions are complex and multifactorial
- Image quality, lighting, and angle affect predictions
- Always consult qualified healthcare professionals
User Responsibility: Users assume all responsibility for interpretation and use of this tool's output.
Liability Disclaimer: The authors and contributors assume no liability for:
- Incorrect or incomplete predictions
- Medical decisions made based on this tool
- Damages arising from use or misuse of this tool
Recommended Action: For any skin health concerns, consult a board-certified dermatologist or licensed healthcare provider in your jurisdiction.
If you use this project in research, please cite:
@software{sharma2025skin,
author = {Sharma, Lucky},
title = {Skin Diseases Detection Using Deep Learning},
year = {2025},
url = {https://github.com/itsluckysharma01/Skin_Diseases_Detection_Using_Deep-Learning},
note = {Educational AI tool for dermatological image classification}
}Research Papers Referenced:
- Tan, M., & Le, Q. (2019). EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks. ICML.
- Esteva, A., et al. (2019). Dermatologist-level classification of skin cancer with deep neural networks. Nature Medicine, 25(2), 245-251.
π Show Your Support
If this project helped or inspired you, please consider:
- β Star the repository (it motivates continued development!)
- π Share with others in your network
- π¬ Provide feedback and suggestions
- π€ Contribute code, documentation, or ideas
- π Report bugs to help improve the project
- π’ Cite in your research or projects
Together we build better AI for everyone!
π Thank you for your support and interest in this project!
Made with β€οΈ for the open-source & medical AI community
Last Updated: May 2026 | License: MIT | Status: Active Development
