GithubHelp home page GithubHelp logo

resilient-fusion's Introduction

<Toolkit name here>

Test robustness of navigation models for route completion tasks.

Toolkit Layout Toolkit Layout

Example

Applying various attacks to the Late Fusion model along Route 01 in Town05 Short.

Video showing how Late Fusion reacts to various attacks along the route

Installation

  1. Install CARLA 0.9.11. Follow the instructions provided here.

  2. Clone this repo

    git clone <https://gitlab.developers.cam.ac.uk/cst/prorok-lab/resilient-fusion-nav.git>
  3. Download the pre-trained models via this link and place them under backend/model. This folder should currently have 3 models, and hence should look like -- backend/model/cilrs, backend/model/late_fusion and backend/model/transfuser.

  4. Setup a virtual environment with Python 3.7 using the provided requirements.txt file.

  5. Install Carlaviz at resilient-fusion-nav/backend. This is an OPTIONAL step as the tool is not essential for the working of the toolkit. Carlaviz is a third-party tool that allows you to visualise the expected and actual trajectories of the ego vehicle. Installation instructions can be found here. Note: Between step 1.1 and 1.2, you also need to execute git fetch --all --tags.

Usage

To start the toolkit, you need 4 different terminal windows to execute the following steps:

  1. Start CARLA simulator.

    cd /path/to/carla/simulator
    ./CarlaUE4.sh
  2. (Optional) Start Carlaviz backend.

    cd resilient-fusion-nav/backend/carlaviz
    ./backend/bin/backend
  3. (Optional) Start Carlaviz frontend.

    cd resilient-fusion-nav/backend/carlaviz/frontend
    yarn start
  4. Start toolkit

    In the resilient-fusion-nav folder, edit the run_toolkit_home.sh file and update the following variables:

    • CARLA_ROOT: path to your CARLA simulator installation
    • RESULTS_BASEPATH: to define the location where the metrics values would be stored
    • USE_CARLAVIZ: Set to True if you have install Carlaviz and wish to use it. Default=False

    NOTE: The toolkit uses CARLA (and leaderboard) at the backend. The issue with this though is that with the version 0.9.11 used here, to change the settings regarding the model and route information, you would need to manually restart the toolkit every time.

Benchmark results

All test results shown below as performed on the following route available via the toolkit interface:

  1. Town 05 Short, Route 0
  2. Town 05 Short, Route 10
  3. Town 05 Tiny, Route 10
  4. Town 05 Tiny, Route 110
  5. Town 05 Tiny, Route 210
  6. Town 05 Tiny, Route 310

Each of these routes are tested for seeds: 0, 1, 2, 3, 4. Per seed, the route is run twice, once with 'no_scenario.json' and then with 'Town05_all_scenarios.json'.

Thus results in the table below as obtained by averaging across 60 route variations (6 routes x 5 seeds per route x 2 scenarios = 60).

NOTE: The testing and data collection phase is currently underway.

FGSM attack

Results of FGSM attack

Gaussian noise attack

Results of applying Gaussian noise to the image

Work in progress

  • Adversarial attacks directly on point cloud - This is not currently possible. To be able to compute adversarial attacks we need to be able to run the input through the model to collect the gradients. But all our models accept psuedo-images as input. Additionally, the method of conversion used by these models to go from point cloud to psuedo-image is lossy, thereby not allowing to easily move back and forth between the two forms.
  • CW attack on images does not work properly
  • Test with CARLA >0.9.11 to see if it resolves the issue of having to restart the toolkit with each test
  • Refactor and document code
  • Create a json file to define attacks at various points of the route

resilient-fusion's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

saashanair

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.