OncoVision (from oncology + vision) is a project I built to help people check skin lesions for potential risks from home. It uses a CNN model to classify skin images as either Benign or Malignant with ~93% accuracy.
The goal isn't to replace a real doctor, but to help people catch potential issues early so they know when it's time to seek professional medical advice.
oncovision-demo.mp4
- Classification: Categorizes skin lesion images using a deep learning model.
- Explainability: Generates Grad-CAM heatmaps to show exactly which parts of the image the AI is looking at.
- Fast UI: A clean, professional dashboard built with React and Vite.
- Convolutional layers with
ReLUactivation for feature extraction MaxPoolingfor spatial downsamplingDropoutto prevent overfitting- Fully connected layers leading to a
sigmoidoutput for binary classification
- Backend: Flask, TensorFlow, Keras, OpenCV
- Frontend: React, Vite, Framer Motion, Lucide Icons
- Model: Convolutional Neural Network (CNN) trained on thousands of labeled skin lesion images
The easiest way to run this is directly from source. You'll need two terminals open.
cd server
pip install -r requirements.txt
python app.pyThe server will run on http://localhost:5000.
cd client
npm install
npm run devThe UI will be available at http://localhost:5173.
or if you have docker
docker build -t oncovision:latest .
docker run -d -p 80:80 -p 5000:5000 oncovision:latestThe model was trained on a dataset of skin images. You can find the raw data I used here.
- Differentiating between specific cancer types (melanoma vs basal cell).
- Mobile optimization for easier photo taking.
- Improving the Grad-CAM resolution for better clinical insights.