A full-stack AI-powered web application for classifying kidney CT scan images as Normal, Cyst, Stone, or Tumor.
- User login authentication
- Upload and analyze kidney CT scan images
- Deep learning model (MobileNetV2 transfer learning)
- Real-time predictions with confidence scores
- Modern, responsive UI
- Python 3.8+
- Node.js & npm (for frontend)
-
Navigate to the backend directory:
cd backend -
Create a virtual environment and activate it:
python -m venv venv # On Windows: venv\Scripts\activate # On Mac/Linux: source venv/bin/activate -
Install dependencies:
pip install -r requirements.txt -
Run the backend server:
python app.py
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install -
Start the frontend:
npm run dev -
Open your browser at http://localhost:5173
- Username: admin
- Password: password123
kidney-stone-analyzer/
├── backend/
│ ├── app.py # Flask backend server
│ ├── train_model.py # Model training script
│ ├── kidney_stone_cnn_model.h5 # Trained model file
│ ├── class_labels.json # Class labels for predictions
│ ├── requirements.txt # Python dependencies
│ └── samples/ # Sample images for testing
├── frontend/
│ ├── src/
│ │ ├── components/ # React components
│ │ └── pages/ # React pages
│ ├── package.json # Node.js dependencies
│ └── ... # Other frontend config files
├── README.md
└── LICENSE
The data/ directory contains ~12,000 CT scan images organized by class:
- Cyst: 3,709 images
- Normal: 5,077 images
- Stone: 1,377 images
- Tumor: 2,283 images
Note: The whole dataset is excluded from the Git repository due to its large size (~GB). If you need to download the Dataset completly then See data/README.md for more details.