This project implements a deep learning pipeline for road skeletonization from aerial imagery, using a customized Efficient U-Net model. The system includes data preparation, training, evaluation, and inference scripts.
This project aims to generate 1-pixel-wide road skeleton maps from input aerial images. It uses a 5-down Efficient U-Net structure with Leaky ReLU activations and Batch Normalization layers.
You can install the required dependencies using the provided installation script:
bash setup.shTo train the model:
python train.pyTraining outputs model checkpoints to the saved_models/ directory.
To test the model on unseen data:
python test.pyThe predictions will be saved under a results/ directory.
The model is based on a simplified U-Net design with the following structure:
- Double Convolution blocks (Conv2D -> BatchNorm -> LeakyReLU -> Conv2D -> BatchNorm -> LeakyReLU)
- 5 levels of downsampling and upsampling
- Skip connections between matching resolution levels
Implemented in model.py.
| File | Description |
|---|---|
setup.sh |
Installs the required Python packages. |
make_data.py |
Prepares and preprocesses the dataset. |
train.py |
Trains the Efficient U-Net model. |
test.py |
Runs inference on the test dataset. |
evaluate.py |
Evaluates model outputs against ground truth. |
model.py |
Defines the Efficient U-Net architecture. |
This project is released under the MIT License.
- Make sure your dataset is structured correctly (input images and corresponding masks).
- CUDA-enabled GPU is recommended for faster training.
- The project assumes input and output images are 256x256 pixels.