A Deep Learning-Based Mobile Application for Skin Disease Detection
DermaDetect Pro is an AI-powered mobile healthcare application that detects and classifies various skin diseases using real-time image analysis. 1 Built using Convolutional Neural Networks (CNNs), TensorFlow Lite, and Android, this project aims to provide early dermatological diagnostics through an accessible and user-friendly interface.
The application leverages on-device machine learning inference to provide privacy-preserving, offline skin disease classification with support for 8 different skin conditions including cellulitis, impetigo, athlete's foot, nail fungus, ringworm, cutaneous larva migrans, chicken pox, and shingles.
🚀 Key Features 2
- 🔍 Advanced Skin Disease Classification: Detects 8 common skin conditions with ~80% accuracy
- 📷 Intelligent Image Processing: Real-time capture with automated preprocessing pipeline
- 🧠 On-Device ML Inference: TensorFlow Lite model execution for privacy and offline functionality
- 📊 Medical History Management: Secure storage and retrieval of scan history
- 🩺 Treatment Recommendations: Evidence-based precautions and dermatologist guidance
- 🔐 Secure Authentication: Firebase-integrated user management system
- Image Preprocessing Pipeline: Automated 224x224 pixel resizing with RGB normalization
- Memory-Optimized Inference: Direct ByteBuffer allocation for efficient model execution
- Error Handling: Comprehensive exception management for model loading and image processing
- Resource Management: Proper cleanup of TensorFlow Lite interpreter resources
🛠️ Technical Architecture 3
| Layer | Technology | Implementation |
|---|---|---|
| ML Engine | TensorFlow Lite | On-device CNN inference with 8-class output |
| Image Processing | Android Bitmap API | 224x224 preprocessing with RGB normalization |
| UI Framework | Android Activities | Native Android with XML layouts |
| Authentication | Firebase Auth | Secure user registration and login |
| Data Storage | SQLite + Firebase | Local history with cloud backup |
The core disease detection functionality is implemented in DiseaseDetectionActivity.java 4 which handles:
- Image Selection: Gallery integration with URI handling
- Preprocessing: Bitmap scaling and ByteBuffer conversion
- Model Inference: TensorFlow Lite interpreter execution
- Result Processing: Probability analysis and classification mapping
🧪 Machine Learning Model 5
- Architecture: Convolutional Neural Network with Conv2D, MaxPooling, and Dense layers
- Input Format: 224x224x3 RGB images (normalized 0.0-1.0)
- Output Format: 8-class probability distribution
- Model Size: Optimized
.tfliteformat for mobile deployment - Accuracy: ~80% classification accuracy on validation dataset
- Cellulitis
- Impetigo
- Athlete's Foot
- Nail Fungus
- Ringworm
- Cutaneous Larva Migrans
- Chicken Pox
- Shingles
🚀 Installation & Setup 7
- Android Studio Arctic Fox or later
- Android SDK API Level 21+
- Firebase project (for authentication features)
- Physical device or emulator for testing
-
Clone Repository
git clone https://github.com/harshbaee/DermaDetectPro_213.git cd DermaDetectPro_213 -
Configure Firebase
- Create a new Firebase project
- Add Android app to Firebase project
- Download
google-services.jsonand place inapp/directory
-
Build and Run
./gradlew assembleDebug ./gradlew installDebug
DermaDetectPro_213/
├── app/src/main/
│ ├── java/com/example/derma/
│ │ ├── DiseaseDetectionActivity.java # Core ML inference logic
│ │ ├── SkinCareActivity.java # Treatment recommendations
│ │ └── MainActivity.java # App entry point
│ ├── assets/
│ │ └── model.tflite # TensorFlow Lite model
│ └── res/ # UI layouts and resources
├── gradle/ # Build configuration
└── README.md # Project documentation
The application implements a sophisticated image processing pipeline that transforms user-selected images into model-ready format:
- Image Acquisition: Gallery selection via
Intent.ACTION_PICK - Format Conversion: Bitmap to ByteBuffer with proper memory allocation
- Normalization: RGB pixel values scaled from 0-255 to 0.0-1.0 range
- Model Inference: Direct TensorFlow Lite interpreter execution
- Model Loading: Memory-mapped file access for efficient model loading
- Buffer Allocation: Direct ByteBuffer allocation with native byte ordering
- Resource Cleanup: Proper interpreter disposal in activity lifecycle
🧑💻 Development Team 8
Mr. Kamal Sutaria – Department of Computer Science, Parul University
- Harsh Prajapati - Lead Developer & ML Engineer
- Charmi Shah - Android Developer & UI/UX Designer
- Divy Patel - Backend Developer & Firebase Integration
- Pruthvi Rajput - Quality Assurance & Testing
📚 Additional Resources 9
- 📄 Research Paper & Technical Report: Google Drive
- 🔗 Project Repository: GitHub
⚖️ Legal & Ethical Considerations 10
Important Medical Disclaimer: This application is designed for educational and research purposes only. The AI-powered skin disease detection should not replace professional medical diagnosis. Always consult with a certified dermatologist or healthcare professional for accurate medical advice and treatment.
We welcome contributions to improve DermaDetect Pro! Please follow these guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
For technical support, feature requests, or academic collaboration:
- 📧 Email: Contact through GitHub Issues
- 🏫 Institution: Parul University, Department of Computer Science
- 👨🏫 Academic Supervisor: Mr. Kamal Sutaria
Built with ❤️ for advancing accessible healthcare through AI technology
This comprehensive README combines all existing content from the original file with enhanced technical details derived from the codebase analysis. The structure includes detailed implementation information about the image processing pipeline, TensorFlow Lite integration, and technical architecture while maintaining the original project's academic and medical context. The skin care functionality is also referenced through SkinCareActivity.java 11 which provides treatment recommendations for various skin conditions.