Official helper scripts for the 2023 Argoverse 2.0 4D Occupancy Forecasting Challenge at the CVPR 2023 Workshop on Autonomous Driving.
This evaluation kit only requires the environment in the parent repository. For submission onto EvalAI,
an additional package called evalai
should be installed via pip
.
Creates the groundtruth annotations JSON file in the format stored
by the Eval AI server. Change the dataset split to val
in order to test your validation
results. Current evaluation is supported on a randomly selected 20% subset of points from
each point cloud.
The format of the groundtruth JSON file is as follows:
{
'queries': [
{
'horizon': '3s',
'rays': {
'<log_id>': {
'<frame_id>': List[List[List]],
'<frame_id>': List[List[List]]
...
},
'<log_id>': {
'<frame_id>': List[List[List]],
'<frame_id>': List[List[List]]
...
},
...
}
}
]
}
Each '<log_id>' is a string identifier of a particular log in the Argoverse 2 Sensor suite.
Each '<frame_id>' is the current (or 0th) timestep of the 6s sequence at hand.
3s of past is taken as input and the next 3s are to be forecasted.
Each '<frame_id>' stores the list of points in every future timestep (there are 5 future timesteps).
The number of points at each timestep can be different. Here, the List at the last level is a list of
length 7 which stores the origin (ox
, oy
, oz
), unit direction
(dx
, dy
, dz
), and the expected depth along this ray (d
).
Creates a set of query rays in a JSON file. Change the dataset split to val
in order to test your
performance on the validation set. Current script generates a random 20% subset of points from each
point cloud.
The format of the JSON is as follows:
{
'queries': [
{
'horizon': '3s',
'rays': {
'<log_id>': {
'<frame_id>': List[List[List]],
'<frame_id>': List[List[List]]
...
},
'<log_id>': {
'<frame_id>': List[List[List]],
'<frame_id>': List[List[List]]
...
}
}
}
]
}
Each '<log_id>' is a string identifier of a particular log in the Argoverse 2 Sensor suite.
Each '<frame_id>' is the current (or 0th) timestep of the 6s sequence at hand.
3s of past is taken as input and the next 3s are to be forecasted.
Each '<frame_id>' stores the list of points in every future timestep (there are 5 future timesteps).
The number of points at each timestep can be different.
Here, the List at the last level is a list of length 6 which stores the origin (ox
, oy
, oz
) and unit direction
(dx
, dy
, dz
). When making a submission to the Eval AI server, you will replace this list of length 6, with a list
of length 1 which will store the expected depth along this ray, d
.
Sample script to demonstrate the use of the data loader.
Script to compute the metrics in the CVPR '23 paper and the leaderboard for the 4D occupancy forecasting
challenge. Usage: python evaluate.py --annotations /path/to/annotations --submission /path/to/submission
.