DeepTest
A systematic testing tool for automatically detecting erroneous behaviors of DNN-driven vehicles
Install / Use
/learn @ARiSE-Lab/DeepTestREADME
DeepTest: Automated testing of deep-neural-network-driven autonomous cars
DeepTest is a systematic testing tool for automatically detecting erroneous behaviors of DNN-driven vehicles that can potentially lead to fatal crashes.
Install Required Packages
OS: Ubuntu 16.04
Read through and run ./install.sh
Code Directories
- Reproducing Udacity self-driving car Challenge2<sup>[1]</sup> results for Rambo, Chauffeur and Epoch models.
- Models and weights files are required to run these scripts.
- For Rambo model, Keras backend should be changed to theano.
- Generate synthetic images, calculate cumulative coverage and record predicted outputs.
- ncoverage.py: define NCoverage class for computing neuron coverage.
- Combine different transformations and leverage neuron coverage to guide the search.
- Re-runing the script will continue the search instead of starting from the beginning except deleting all pkl files.
Models and Saved Weights
- Rambo <sup>[2]</sup>
- Chauffeur <sup>[3]</sup>
- Epoch <sup>[4]</sup>
Datasets
Generate hmb3 dataset from HMB_3.bag
mkdir hmb3
python generate_hmb3.py --bagfile HMB_3.bag
The following commands are to install python-rosbag api.
sudo apt-get install python-rosbag
sudo apt-get install python-genmsg
sudo apt-get install python-genpy
sudo apt-get install python-rosgraph-msgs
Reproducing experiments
Dataset directory structure:
./Dataset/
├── hmb3/
└── hmb3_steering.csv
└── images
└── Ch2_001/
└── center/
└── images
└── CH2_final_evaluation.csv
Evaluating models' accuracy on existing test data
cd models/
python epoch_reproduce.py --dataset DATA_PATH/Dataset/
python chauffeur_reproduce.py --dataset DATA_PATH/Dataset/
python rambo_reproduce.py --dataset DATA_PATH/Dataset/
Generate synthetic images and compute cumulative neuron coverage
cd testgen/
./epoch_testgen_driver.sh 'DATA_PATH/Dataset/'
./chauffeur_testgen_driver.sh 'DATA_PATH/Dataset/'
python rambo_testgen_coverage.py --dataset DATA_PATH/Dataset/
Combine transformations and synthesize images by guided search
cd guided/
mkdir new/
rm -rf *.pkl
python epoch_guided.py --dataset DATA_PATH/Dataset/
python chauffeur_guided.py --dataset DATA_PATH/Dataset/
python rambo_guided.py --dataset DATA_PATH/Dataset/
<!---### Identify erroneous behaviors by metamorphic testing--->
Detected erroneous behaviors
https://deeplearningtest.github.io/deepTest/
Citation
If you find DeepTest useful for your research, please cite the following paper:
@article{tian2017deeptest,
title={DeepTest: Automated testing of deep-neural-network-driven autonomous cars},
author={Tian, Yuchi and Pei, Kexin and Jana, Suman and Ray, Baishakhi},
journal={arXiv preprint arXiv:1708.08559},
year={2017}
}
References
- Udacity self driving car challenge 2. <br /> https://github.com/udacity/self-driving-car/tree/master/challenges/challenge-2. (2016).
- Rambo model. <br /> https://github.com/udacity/self-driving-car/tree/master/steering-models/community-models/rambo. (2016).
- Chauffeur model. <br /> https://github.com/udacity/self-driving-car/tree/master/steering-models/community-models/chauffeur. (2016).
- Epoch model. <br /> https://github.com/udacity/self-driving-car/tree/master/steering-models/community-models/cg23. (2016).
Related Skills
node-connect
346.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
346.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
346.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
