{"id":19855249,"url":"https://github.com/leggedrobotics/anomaly_navigation","last_synced_at":"2025-10-19T16:49:52.251Z","repository":{"id":83355862,"uuid":"233902850","full_name":"leggedrobotics/anomaly_navigation","owner":"leggedrobotics","description":"Anomaly Navigation - ANNA","archived":false,"fork":false,"pushed_at":"2020-01-14T19:03:41.000Z","size":32,"stargazers_count":41,"open_issues_count":0,"forks_count":11,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-06T20:46:33.510Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leggedrobotics.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-14T17:59:09.000Z","updated_at":"2024-11-09T09:09:28.000Z","dependencies_parsed_at":"2023-03-12T18:06:40.356Z","dependency_job_id":null,"html_url":"https://github.com/leggedrobotics/anomaly_navigation","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Fanomaly_navigation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Fanomaly_navigation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Fanomaly_navigation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Fanomaly_navigation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leggedrobotics","download_url":"https://codeload.github.com/leggedrobotics/anomaly_navigation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251969280,"owners_count":21673184,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T14:12:08.084Z","updated_at":"2025-10-19T16:49:47.197Z","avatar_url":"https://github.com/leggedrobotics.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Anomaly Navigation - ANNA\n\n## Overview \n\nThis is code to train and evaluate anomaly detection algorithms using multi-modal sensor information.\n\nBased in part on [Deep-SVDD-PyTorch](https://github.com/lukasruff/Deep-SVDD-PyTorch).\n\n**Author:** Lorenz Wellhausen, [lorenwel@ethz.ch](mailto:lorenwel@ethz.ch)\n\n**Affiliation:** [Robotic Systems Lab](https://rsl.ethz.ch/), ETH Zürich\n\n## Publications\n\nIf you use this work in an academic context, please cite the following publication:\n\n\u003e L. Wellhausen, R. Ranftl and M. Hutter,\n\u003e **\"Safe Robot Navigation via Multi-Modal Anomaly Detection\"**,\n\u003e in IEEE Robotics and Automation Letters (RA-L), 2020\n\n## Installation\n\nTested on Ubuntu 18.04 using Python 3 and Pytorch 1.2.0/1.3.1.\n\nInstall dependencies:\n\n`sudo apt install git-lfs virtualenv unzip`\n\nCreate and activate virtual environment with Python 3 as default version:\n\n```\nvirtualenv --system-site-packages -p python3 ~/venv\nsource ~/venv/bin/activate\n```\n\n[Install Pytorch using Pip](https://pytorch.org/get-started/locally/) (Follow instructions for Ubuntu and your CUDA version).\n\nInstall additional Python dependencies:\n\n`pip install click numpy matplotlib opencv-python sklearn tensorboard`\n\n## Usage\n\nAll of the commands below assume that you have your terminal open in the base directory of this repo.\n\n### ANNA Dataset\n\nWe use our anomaly navigation (ANNA) dataset to evaluate the performance of different methods and sensor configurations.\nYou can automatically download and extract the ANNA dataset into the appropriate folders by calling the appropriate script.\n\n`./get_dataset.sh`\n\nYou can also download the ANNA dataset yourself from the [ETH Research Collection](https://www.research-collection.ethz.ch/handle/20.500.11850/389950)\n\n### Single Network\n\nTo train a network using Real-NVP, with RGB, gravity-aligned depth and surface normal information (the highest performing method evaluated in the publication), simply call the provided script:\n\n`./train_anomaly_detection.sh`\n\n### All Combinations\n\nTo train all possible combinations (reproducing Table I from the publication), call\n\n`python train_all_combinations.py`\n\nThis will take multiple days to train if you want to average over 10 runs, as we did for the publication. \nYou can also adjust the number of iterations in the code, if you want to train more quickly.\n\nWe also provide our script to generate the pretty table we use in our publication.\n\n`python anomaly_detection/utils/generate_overview_table.py`\n\n### Incremental Data\n\nTo train with incrementally more data from different environmental conditions (reproducing Fig. 5 from the publication) , call \n\n`python train_incrementally.py`\n\n### Track Progress\n\nNetwork training logs progress via Tensorboard so that you can track AUC and loss performance during training.\nTo launch tensorboard run\n\n`tensorboard --logdir log`\n\nThen, navigate to `http://127.0.0.1:6006/` in your browser.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleggedrobotics%2Fanomaly_navigation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleggedrobotics%2Fanomaly_navigation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleggedrobotics%2Fanomaly_navigation/lists"}