Home

Awesome

GAMMA: A General Agent Motion Prediction Model for Autonomous Driving

Overview

GAMMA is a general agent motion prediction model for autonomous driving, implementing the code in the paper:

Luo, Y., Cai, P., Hsu, D., and Lee, W.S. GAMMA: A General Agent Motion Prediction Model for Autonomous Driving. arXiv preprint arXiv:1906.01566 (2019).

Requirements

Tested Operating System: Linux 16.04.

Tested Compilers: gcc | g++ 5.4.0 or above

Tested Hardware: Intel Core i7 CPU, 8.0 GB RAM

Download

Clone the repository from Github (Recommended):

$ git clone https://github.com/AdaCompNUS/GAMMA.git

OR manually download the Zip Files. For instructions, use this online Github README.

Installation

Follow following steps to compile:

$ cd GAMMA
$ mkdir build -p && cd build
$ cmake ..
$ make

GAMMA Prediction on Real-world Datasets

This repo provides GAMMA prediction on four datasets: ETH [1], UCY [2], UTWON, and CROSS. The latter two are datasets collected by our own, and contain various types of traffic agents. The datasets can be found in /GAMMA/dataset folder.

[1] Pellegrini, S., Ess, A., and Van Gool, L.. Improving data association by joint modeling of pedestrian trajectories and groupings. In European conference on computer vision (pp. 452-465). Springer, Berlin, Heidelberg. 2010.

[2] Leal-Taixé, L., Fenzi, M., Kuznetsova, A., Rosenhahn, B., & Savarese, S.. Learning an image-based motion context for multiple people tracking. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (pp. 3542-3549). 2014

To test the prediction accuracy of GAMMA for Eth dataset, simply run the following commands after compilation:

$ cd GAMMA/build
$ ./examples/predictor

This will generate a gamma_output.txt file in GAMMA/ containing the predicted motions and the ground truth. Run the following commands to compute the prediction accuracy:

$ cd GAMMA
$ python gamma_compute_accuracy.py

To test the prediction accuracy for other datasets, modify the following line in GAMMA/examples/prediction/AgentInfo.cpp file.

const DatasetNs::Dataset dataset = DatasetNs::Eth;

The candidate datasets include:

//ETH:
DatasetNs::Eth
DatasetNs::Hotel
//UCY:
DatasetNs::Zara01
DatasetNs::Zara02
DatasetNs::Univ001
DatasetNs::Univ003
//UTOWN:
DatasetNs::Utown
//CROSS:
DatasetNs::Cross_ct