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.