Semantic Segmentation & Explainable AI Framework for Documents and Urban Scenes
SegClarity is a unified framework designed for semantic segmentation and explainable AI, supporting both:
- Document Layout Analysis
- Urban Scene Understanding (Cityscapes)
It provides pre-trained models, attribution methods, visualization utilities, and experiment notebooks.
- Models trained on UTP and splitAB1 datasets
- Layout segmentation using UNet & LUNet architectures
- UNet models trained on Cityscapes
- Full semantic segmentation pipeline
- Attribution methods via Captum
- Integrated Gradients, GradCAM, Occlusion, and more
- Visual explainability on documents & scenes
- Side-by-side predictions
- Attribution heatmaps
- Overlay masks, saliency, and classβwise contributions
SegClarity/
βββ Modules/
β βββ Architecture/ # UNet, LUNet implementations
β βββ Dataset/ # Dataset loaders & transforms
β βββ CityscapeDataset/ # Cityscapes utilities
β βββ ModelXAI/ # Explainable AI methods
β βββ Attribution/ # Attribution pipeline
β βββ Visualization/ # Plotting & rendering utils
β βββ ...
βββ Notebooks/ # Experiment notebooks
βββ models/ # Pre-trained weights
βββ datasets/ # Document datasets
βββ requirements.txt
git clone https://github.com/iheb-brini/SegClarity.git
cd SegClaritypython -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activatepip install -r requirements.txtπ Note: Requirements include PyTorch with CUDA 12.6. Adjust if needed.
Download the weights from the release page:
https://github.com/iheb-brini/SegClarity/releases/tag/model_weights
Place them under:
models/
βββ cityscapes/
βββ splitAB1/
βββ UTP/
Already included in:
datasets/
Download from: https://www.cityscapes-dataset.com/file-handling/?packageID=3
Required files:
leftImg8bit_trainvaltest.zipgtFine_trainvaltest.zip
Extract into:
datasets/cityscapes/
βββ leftImg8bit/
βββ gtFine/
Install Jupyter:
pip install jupyter notebookRun:
jupyter notebook01_Model_predictions_on_documents.ipynbβ Document segmentation evaluation02_Model_predictions_on_cityscapes.ipynbβ Urban scene segmentation03_Attributions_on_documents.ipynbβ Document explainability04_Attributions_on_cityscapes.ipynbβ Scene explainability
Each notebook allows configuration of:
- Dataset
- Architecture (UNet / LUNet)
- Pretrained model choice
- CPU/GPU runtime
- Python 3.10β3.12
- CUDA 12.6 (optional)
- RAM: 8GB minimum, 16GB recommended
- Disk: ~15GB for datasets + models
- Reduce batch size
- Use CPU mode
Ensure the structure is:
models/<dataset>/<architecture>/<model>.pth
Check path:
datasets/<dataset-name>/
Reinstall dependencies:
pip install -r requirements.txtIf you use SegClarity in your research, please cite:
@article{Brini2025SegClarity,
author = {Iheb Brini and others},
title = {SegClarity: Semantic Segmentation with Explainable AI},
journal = {Journal of Imaging},
volume = {11},
number = {12},
pages = {424},
year = {2025},
publisher = {MDPI},
doi = {10.3390/jimaging11120424},
url = {https://www.mdpi.com/2313-433X/11/12/424}
}This project is licensed under the MIT License.
See the LICENSE file for more information.