How jhansi-07-10/efficiennetb0-vit-reasoning works
SkinScan AI is a skin-lesion classification application backed by a hybrid EfficientNet-B0/ViT model. The primary workflow runs from image upload through preprocessing and prediction to class, confidence, risk guidance, probability visualization, and a downloadable PDF report. Separate training and evaluation workflows prepare HAM10000 data, train the model, and calculate metrics. The README also documents class-imbalance handling and seven disease categories. The tree includes no dataset or checkpoint files, so their storage locations and availability cannot be verified from the sampled source.
Main entry points: model_def.py Hybrid classifier · train.py Training workflow · evaluate.py Evaluation workflow · app.py Streamlit app
Components 18
User application
- Streamlit app
Skin_Cancer_Detection/app.py - Risk guidance
Skin_Cancer_Detection/app.py - PDF report
Skin_Cancer_Detection/app.py
Prediction
- Predictor
Skin_Cancer_Detection/src/predict.py - Image preprocessing
Skin_Cancer_Detection/src/predict.py
Model architecture
- Hybrid classifier
Skin_Cancer_Detection/src/model_def.py - EfficientNet-B0
Skin_Cancer_Detection/src/model_def.py - Feature bridge and ViT
Skin_Cancer_Detection/src/model_def.py - Seven-class head
Skin_Cancer_Detection/src/model_def.py
Training and evaluation
- Training workflow
Skin_Cancer_Detection/src/train.py - Stratified split
Skin_Cancer_Detection/src/utils.py - HAM10000 loader
Skin_Cancer_Detection/src/dataset.py - Class-balanced sampler
Skin_Cancer_Detection/src/train.py - Model checkpoint
Skin_Cancer_Detection/src/train.py - Evaluation workflow
Skin_Cancer_Detection/src/evaluate.py - Metrics and confusion matrix
Skin_Cancer_Detection/src/evaluate.py
Other components
- Image submitter
- HAM10000 images and metadata
Connections 23
- Image submitter → Streamlit app: uploads image
- Streamlit app → Predictor: requests prediction
- Predictor → Image preprocessing: transforms image
- Image preprocessing → Hybrid classifier: provides tensor
- Predictor → Hybrid classifier: runs inference
- Hybrid classifier → EfficientNet-B0: extracts features
- Hybrid classifier → Feature bridge and ViT: aligns and attends
- Hybrid classifier → Seven-class head: classifies features
- Predictor → Streamlit app: returns probabilities
- Streamlit app → Risk guidance: derives risk details
- Streamlit app → PDF report: generates report
- Training workflow → Stratified split: requests data split
- Training workflow → HAM10000 loader: creates datasets
- Stratified split → HAM10000 images and metadata: reads metadata
- HAM10000 loader → HAM10000 images and metadata: reads images
- Training workflow → Class-balanced sampler: balances classes
- Training workflow → Hybrid classifier: trains model
- Training workflow → Model checkpoint: saves weights
- Evaluation workflow → Stratified split: requests validation split
- Evaluation workflow → HAM10000 loader: creates validation set
- Evaluation workflow → Hybrid classifier: evaluates model
- Evaluation workflow → Model checkpoint: loads weights
- Evaluation workflow → Metrics and confusion matrix: writes evaluation results