├── .gitignore ├── README.md ├── dataset_generation ├── .gitignore ├── README.md ├── fishyrails.py ├── fishyrailscropped2hdf5.py ├── generate_image_crops.py ├── imagenet2hdf5.py ├── railsem19cropped2hdf5.py └── utils.py ├── images └── anomaly-direct.png └── patch_classification ├── .gitignore ├── README.md ├── ablation_study_runs ├── evaluations_patchclass.sh ├── evaluations_students.sh ├── runs_patchclass.sh ├── runs_students.sh └── runs_teacher.sh ├── autoencoder_networks.py ├── compute_mean_teacher.py ├── create_ae_dataset.py ├── dataset.py ├── discriminator.py ├── evaluate_patchclass_fishyrails.py ├── evaluate_students_fishyrails.py ├── histogram_loss.py ├── patchclass_networks.py ├── presets.py ├── real_world_dataset ├── fishy_masks │ ├── rs07516_01_mask_fishy.png │ ├── rs07518_01_mask_fishy.png │ └── rs07519_01_mask_fishy.png ├── rs07501_01.png ├── rs07501_01.txt ├── rs07501_01_mask.png ├── rs07501_01_obstacle.png ├── rs07507_01.png ├── rs07507_01.txt ├── rs07507_01_mask.png ├── rs07507_01_obstacle.png ├── rs07508_01.png ├── rs07508_01.txt ├── rs07508_01_mask.png ├── rs07508_01_obstacle.png ├── rs07516_01.png ├── rs07516_01.txt ├── rs07516_01_mask.png ├── rs07516_01_obstacle.png ├── rs07518_01.png ├── rs07518_01.txt ├── rs07518_01_mask.png ├── rs07518_01_obstacle.png ├── rs07519_01.png ├── rs07519_01.txt ├── rs07519_01_mask.png └── rs07519_01_obstacle.png ├── real_world_dataset_raw ├── rs07501_01.png ├── rs07507_01.png ├── rs07508_01.png ├── rs07516_01.png ├── rs07518_01.png └── rs07519_01.png ├── real_world_evaluation.py ├── real_world_masking.py ├── thesis_visualizations.ipynb ├── train_autoencoder.py ├── train_patchclass.py ├── train_student.py ├── train_teacher.py ├── transforms.py └── utils.py /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | __pycache__ 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/README.md -------------------------------------------------------------------------------- /dataset_generation/.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | __pycache__ 3 | venv 4 | -------------------------------------------------------------------------------- /dataset_generation/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/dataset_generation/README.md -------------------------------------------------------------------------------- /dataset_generation/fishyrails.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/dataset_generation/fishyrails.py -------------------------------------------------------------------------------- /dataset_generation/fishyrailscropped2hdf5.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/dataset_generation/fishyrailscropped2hdf5.py -------------------------------------------------------------------------------- /dataset_generation/generate_image_crops.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/dataset_generation/generate_image_crops.py -------------------------------------------------------------------------------- /dataset_generation/imagenet2hdf5.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/dataset_generation/imagenet2hdf5.py -------------------------------------------------------------------------------- /dataset_generation/railsem19cropped2hdf5.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/dataset_generation/railsem19cropped2hdf5.py -------------------------------------------------------------------------------- /dataset_generation/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/dataset_generation/utils.py -------------------------------------------------------------------------------- /images/anomaly-direct.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/images/anomaly-direct.png -------------------------------------------------------------------------------- /patch_classification/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/.gitignore -------------------------------------------------------------------------------- /patch_classification/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/README.md -------------------------------------------------------------------------------- /patch_classification/ablation_study_runs/evaluations_patchclass.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/ablation_study_runs/evaluations_patchclass.sh -------------------------------------------------------------------------------- /patch_classification/ablation_study_runs/evaluations_students.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/ablation_study_runs/evaluations_students.sh -------------------------------------------------------------------------------- /patch_classification/ablation_study_runs/runs_patchclass.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/ablation_study_runs/runs_patchclass.sh -------------------------------------------------------------------------------- /patch_classification/ablation_study_runs/runs_students.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/ablation_study_runs/runs_students.sh -------------------------------------------------------------------------------- /patch_classification/ablation_study_runs/runs_teacher.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/ablation_study_runs/runs_teacher.sh -------------------------------------------------------------------------------- /patch_classification/autoencoder_networks.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/autoencoder_networks.py -------------------------------------------------------------------------------- /patch_classification/compute_mean_teacher.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/compute_mean_teacher.py -------------------------------------------------------------------------------- /patch_classification/create_ae_dataset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/create_ae_dataset.py -------------------------------------------------------------------------------- /patch_classification/dataset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/dataset.py -------------------------------------------------------------------------------- /patch_classification/discriminator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/discriminator.py -------------------------------------------------------------------------------- /patch_classification/evaluate_patchclass_fishyrails.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/evaluate_patchclass_fishyrails.py -------------------------------------------------------------------------------- /patch_classification/evaluate_students_fishyrails.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/evaluate_students_fishyrails.py -------------------------------------------------------------------------------- /patch_classification/histogram_loss.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/histogram_loss.py -------------------------------------------------------------------------------- /patch_classification/patchclass_networks.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/patchclass_networks.py -------------------------------------------------------------------------------- /patch_classification/presets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/presets.py -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/fishy_masks/rs07516_01_mask_fishy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/fishy_masks/rs07516_01_mask_fishy.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/fishy_masks/rs07518_01_mask_fishy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/fishy_masks/rs07518_01_mask_fishy.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/fishy_masks/rs07519_01_mask_fishy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/fishy_masks/rs07519_01_mask_fishy.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07501_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07501_01.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07501_01.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07501_01.txt -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07501_01_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07501_01_mask.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07501_01_obstacle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07501_01_obstacle.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07507_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07507_01.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07507_01.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07507_01.txt -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07507_01_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07507_01_mask.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07507_01_obstacle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07507_01_obstacle.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07508_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07508_01.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07508_01.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07508_01.txt -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07508_01_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07508_01_mask.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07508_01_obstacle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07508_01_obstacle.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07516_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07516_01.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07516_01.txt: -------------------------------------------------------------------------------- 1 | 1 0 116 136 224 2 | -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07516_01_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07516_01_mask.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07516_01_obstacle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07516_01_obstacle.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07518_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07518_01.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07518_01.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07518_01.txt -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07518_01_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07518_01_mask.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07518_01_obstacle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07518_01_obstacle.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07519_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07519_01.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07519_01.txt: -------------------------------------------------------------------------------- 1 | 1 76 34 161 188 2 | -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07519_01_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07519_01_mask.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset/rs07519_01_obstacle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset/rs07519_01_obstacle.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset_raw/rs07501_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset_raw/rs07501_01.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset_raw/rs07507_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset_raw/rs07507_01.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset_raw/rs07508_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset_raw/rs07508_01.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset_raw/rs07516_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset_raw/rs07516_01.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset_raw/rs07518_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset_raw/rs07518_01.png -------------------------------------------------------------------------------- /patch_classification/real_world_dataset_raw/rs07519_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_dataset_raw/rs07519_01.png -------------------------------------------------------------------------------- /patch_classification/real_world_evaluation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_evaluation.py -------------------------------------------------------------------------------- /patch_classification/real_world_masking.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/real_world_masking.py -------------------------------------------------------------------------------- /patch_classification/thesis_visualizations.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/thesis_visualizations.ipynb -------------------------------------------------------------------------------- /patch_classification/train_autoencoder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/train_autoencoder.py -------------------------------------------------------------------------------- /patch_classification/train_patchclass.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/train_patchclass.py -------------------------------------------------------------------------------- /patch_classification/train_student.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/train_student.py -------------------------------------------------------------------------------- /patch_classification/train_teacher.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/train_teacher.py -------------------------------------------------------------------------------- /patch_classification/transforms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/transforms.py -------------------------------------------------------------------------------- /patch_classification/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethz-asl/railway-anomaly-detection/HEAD/patch_classification/utils.py --------------------------------------------------------------------------------