Welcome to the world of real-time semantic segmentation with LEDNet, a lightweight encoder-decoder network designed to bring high-performance capabilities to mobile devices. In this guide, we’ll walk through the setup and usage of LEDNet, unravel its mechanisms, and troubleshoot common issues you might encounter along the way. Let’s dive in!
Table of Contents
- Introduction
- Project Structure
- Installation
- Datasets
- Training LEDNet
- Resuming Training
- Testing
- Results
- Tips
Introduction
The LEDNet architecture was created by Yu Wang to tackle the challenges posed by conventional Convolutional Neural Networks (CNNs) in mobile applications. It uses an asymmetric encoder-decoder structure to effectively perform semantic segmentation.

What sets it apart? By incorporating channel split and shuffle operations in the residual blocks, LEDNet reduces computational requirements while maintaining accuracy. This model boasts fewer than 1 million parameters and can execute over 71 frames per second on a GTX 1080Ti.
Project Structure
The basic project structure includes:
- datasets: Contains all datasets for the project.
- checkpoint: Pretrained models and trained models.
- utils: Necessary utilities for data loading, evaluation, visualization, and loss function definitions.
Installation
Before we start, ensure your environment is set up as follows:
- Python 3.6.x (Recommended: Anaconda3)
- Clone the LEDNet repository:
git clone https://github.com/xiaoyufenfei/LEDNet.git
cd LEDNet-master
pip3 install -r requirements.txt
Datasets
For training the model, you’ll need the Cityscapes dataset:
- Download it here.
- Follow the instructions for proper directory structure as specified in the repository documentation.
Training LEDNet
To initiate your training session, utilize the main training script with the desired parameters:
python main.py --savedir logs --model lednet --datadir path_to_root_directory --num-epochs xx --batch-size xx ...
Run python main.py -h
for help on optional arguments.
Resuming Training
If the decoder part encounters issues, resuming training is straightforward:
python main.py --savedir logs --name lednet --datadir path_to_root_directory --num-epochs xx --batch-size xx --decoder --state saved_logs/model_best_enc.pth.tar
Testing
To test the trained model, make use of the testing scripts available in the repository. You can find the trained models here.
Results
LEDNet demonstrates impressive metrics:
Method | Dataset | Fine IoU | Coarse IoU | FPS |
---|---|---|---|---|
LEDNet | Cityscapes | 70.6% | 87.1% | 70+ |

Tips
- If you have limited GPU resources, consider pre-training the Encoder on ImageNet before fine-tuning the Decoder for better results.
- Leverage additional references provided in the project for further understanding and improvements.
Troubleshooting
If you encounter issues at any stage of your process—be it installation, training, or testing—here are some troubleshooting tips:
- Ensure that your dependencies are correctly installed and are the recommended versions.
- When facing performance issues, check if your GPU memory is sufficient for the model requirements.
- Review any error messages carefully, as they often provide guidance on what went wrong.
For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.
Conclusion
At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.