This repository contains code and results for a semantic segmentation competition using a small autonomous driving dataset. The project explores various data augmentation strategies, network architectures, and training techniques to improve segmentation accuracy and efficiency on urban road scenes.
- Training images: 150
- Testing images: 50
- Classes: 19 (see
seg_data/names.txt) - Color palette: see
seg_data/colors.txt
pip install -r requirements.txt.
├── segmentation-2025.ipynb # Main notebook (all experiments consolidated)
├── requirements.txt # Python dependencies
├── Final_Report.pdf # Detailed report with ablation studies
├── seg_data/
│ ├── training/image/ # Training images
│ ├── training/label/ # Training labels
│ ├── testing/ # Testing images
│ ├── names.txt # Class names
│ └── colors.txt # Class color palette
└── result/
├── baseline/ # Baseline model
├── flip_augmentation/ # Flip augmentation experiment
├── flip_colorjitter_batchnorm/ # Flip + color jitter + batch normalization
├── baseline_augmentation/ # Baseline with data augmentation
├── residual_skip_dilated_augmentation/ # Residual + skip + dilated convolutions
├── mobilenetv3_crossentropy/ # MobileNetV3 with cross-entropy loss
├── mobilenetv3_hybrid_loss/ # MobileNetV3 with hybrid (CE + Dice) loss
├── mobilenetv3_augmentation_crossentropy/ # MobileNetV3 + augmentation + CE loss
├── crop_rot_blur_jitter_hybrid_loss/ # Crop + rotation + blur + jitter + hybrid loss
└── crop_rot_blur_jitter_adamw_batchnorm_residual_skip_dilated/ # Full pipeline experiment
-
Prepare Data
- Place the dataset in the
seg_data/directory following the structure above.
- Place the dataset in the
-
Run Experiments
- Open and run
segmentation-2025.ipynbfor the main experiment pipeline. - Each subfolder in
result/contains a notebook for a specific ablation study.
- Open and run
-
Evaluate
- Evaluation uses mean Intersection over Union (mIoU) as the primary metric.
- Results and predictions are saved in the
result/subfolders.
The main notebook’s historical ablation table lists baseline mIoU 0.286 / 66.97 GFLOPs, a residual/skip/dilated configuration at 0.3421 / 204.83 GFLOPs, and a MobileNetV3 configuration at 0.3377 / 18.10 GFLOPs. Values are recorded notebook results, not a new rerun or an estimate across seeds. The table header says percent, but its listed mIoU values use the 0–1 scale.
The checked-in training loop measures testing/label during training and uses that score for best-checkpoint selection and early stopping. Consequently, the directory called testing is a development/selection set in this workflow; these results are not an untouched final-test claim. A future study needs a separate validation partition and a frozen final test before making generalization claims.
See the main notebook, the report and individual experiment notebooks for historical settings. Alternative architecture cells are present; choose the matching model, loss and training/prediction path rather than assuming every cell forms one universally runnable pipeline.