Offroad Semantic Segmentation Model A semantic segmentation system for detecting vegetation, objects, and terrain features in offroad/desert environments. Built with DINOv2 backbone and a ConvNeXt-style segmentation head. Features
- Vegetation Detection: Trees, Lush Bushes, Dry Grass, Dry Bushes
- Object Detection: Rocks, Logs, Ground Clutter
- Terrain Analysis: Landscape and Sky segmentation
- Pixel-level Coverage Metrics: Class distribution and percentages
Project Structure desert/ ├── Offroad_Segmentation_Scripts/ │ ├── train_segmentation.py # Training │ ├── test_segmentation.py # Validation │ ├── visualize.py # Visualization │ ├── ENV_SETUP/ # Environment setup │ └── train_stats/ # Training metrics ├── inference_pipeline.py # Inference pipeline ├── Offroad_Segmentation_Training_Dataset/ │ ├── train/ # Training data │ └── val/ # Validation data └── README.md
Quick Start
-
Setup Environment cd Offroad_Segmentation_Scripts/ENV_SETUP/ pip install torch torchvision torchaudio pip install pytorch-lightning torchmetrics pillow opencv-python numpy matplotlib tqdm
-
Train Model cd Offroad_Segmentation_Scripts/ python train_segmentation.py
-
Run Inference python inference_pipeline.py
--image_dir /path/to/images
--model_path Offroad_Segmentation_Scripts/segmentation_head.pth
--output_dir ./predictions
Outputs
- masks/ → Raw segmentation masks (class IDs 0–9)
- masks_color/ → Colored masks for visualization
- visualizations/ → Side-by-side input + prediction
- analysis_summary.json → Per-image statistics
- class_legend.png → Color legend