TUBSRobustCheck is a toolbox to evaluate the robustness of semantic segmentation networks. The robustness is evaluated in terms of robustness towards adversarial attacks (attacks as well as robustness towards common corruptions (corruptions). It is mainly developed by Andreas Bär and Edgard Moreira Minete at the Institute for Communications Technology of the Technische Universität Braunschweig.
This tool implements various individual and universal adversarial attacks for semantic segmentation networks. More information can be found here.
This tool implements common corruptions, first introduced by (Hendrycks et al., ICLR 2019). More information can be found here.
If you find this repository helpful for your projects/papers, please add a link here. Thanks!
Repository | Paper | Venue |
---|---|---|
PerfPredRec | Performance Prediction for Semantic Segmentation by a Self-Supervised Image Reconstruction Decoder | CVPR WAD 2022 |
PerfPredRecV2 | Improvements to Image Reconstruction-Based Performance Prediction for Semantic Segmentation in Highly Automated Driving | CVPR WAD 2023 |
... | ... | ... |
To install TUBSRobustCheck, the following packages are needed:
conda create --name robust_check python==3.7 # Python 3.8 & 3.9 throw some gcc issues
source activate robust_check
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch
conda install matplotlib
pip install opencv-python
conda install -c conda-forge wand
conda install scipy
conda install scikit-image
conda install numba
pip install git+https://github.com/ifnspaml/IFN_Dataloader.git # This is only necessary if one wants to use the dataloader from the examples
To install via environment.txt, follow the following steps:
conda env create -f environment.txt
pip install git+https://github.com/ifnspaml/IFN_Dataloader.git
For reference: The environment.txt were created by exporting the environment via conda list -e > environment.txt
on a Linux cluster.
Thus, they only work with Linux.
For more information about the dataloader please visit the IfN dataloader repository.
To install TUBSRobustCheck as a package, run the following command inside your environment:
pip install -e .
We would like to thank all contributors of https://github.com/Harry24k/adversarial-attacks-pytorch, bethgelab/imagecorruptions#18, https://github.com/Trusted-AI/adversarial-robustness-toolbox, https://github.com/ej0cl6/pytorch-adversarial-examples, https://github.com/jsikyoon/nips17_adv_attack, https://github.com/Harry24k/AEPW-pytorch, and https://github.com/hendrycks/robustness for their awesome work. We used these GitHub repositories as guidelines and inspiration to create our own code base serving our needs. Please check out their contributions as well!
MIT Licence