GithubHelp home page GithubHelp logo

castacks / tartanair_tools Goto Github PK

View Code? Open in Web Editor NEW
287.0 13.0 34.0 24.79 MB

TartanAir dataset tools and samples

Home Page: http://theairlab.org/tartanair-dataset

License: BSD 3-Clause "New" or "Revised" License

Jupyter Notebook 92.25% Python 7.75%

tartanair_tools's Introduction

The dataset is moved to cloudflare! Thank Scaled Foundation for the support! If anyone or any research group is interested in hosting our dataset, please contact [email protected].

TartanAir dataset: AirSim Simulation Dataset for Simultaneous Localization and Mapping

This repository provides sample code and scripts for accessing the training and testing data, as well as evaluation tools. Please refer to TartanAir for more information about the dataset. You can also reach out to contributors on the associated AirSim GitHub.

This dataset was used to train the first generalizable learning-based visual odometry TartanVO, which achieved better performance than geometry-based VO methods in challenging cases. Please check out the paper and published TartanVO code.

Download the training data

The data is divided into two levels (Easy and Hard) in terms of the motion patterns. It is organized in trajectory folders. You can download data from different cameras (left or right), with different data types (RGB, depth, segmentation, camera pose, and flow). Please see data type page for the camera intrinsics, extrinsics and other information.

!! NOTE: The size of all the data is up to 3TB! It could take days to download. We also added the option to use the dataset directly on Azure without requiring a download. Please select the data type you really need before download. You can also go to TartanAir to download the sample files for a better understanding of the data types.

Data directory structure

ROOT
|
--- ENV_NAME_0                             # environment folder
|       |
|       ---- Easy                          # difficulty level
|       |      |
|       |      ---- P000                   # trajectory folder
|       |      |      |
|       |      |      +--- depth_left      # 000000_left_depth.npy - 000xxx_left_depth.npy
|       |      |      +--- depth_right     # 000000_right_depth.npy - 000xxx_right_depth.npy
|       |      |      +--- flow            # 000000_000001_flow/mask.npy - 000xxx_000xxx_flow/mask.npy
|       |      |      +--- image_left      # 000000_left.png - 000xxx_left.png 
|       |      |      +--- image_right     # 000000_right.png - 000xxx_right.png 
|       |      |      +--- seg_left        # 000000_left_seg.npy - 000xxx_left_seg.npy
|       |      |      +--- seg_right       # 000000_right_seg.npy - 000xxx_right_seg.npy
|       |      |      ---- pose_left.txt 
|       |      |      ---- pose_right.txt
|       |      |  
|       |      +--- P001
|       |      .
|       |      .
|       |      |
|       |      +--- P00K
|       |
|       +--- Hard
|
+-- ENV_NAME_1
.
.
|
+-- ENV_NAME_N

Download data to your local machine

We provide a python script download_training.py for the data downloading. You can also take look at the URL list to download the spesific files you want.

  • Install dependencies

    pip install boto3

  • Specify an output directory

    --output-dir OUTPUTDIR

  • Select file type:

    --rgb

    --depth

    --seg

    --flow

  • Select difficulty level:

    --only-hard

    --only-easy

    [NO TAG]: both 'hard' and 'easy' levels

  • Select camera:

    --only-left

    --only-right

    [NO TAG]: both 'left' and 'right' cameras

  • Select flow type when --flow is set:

    --only-flow

    --only-mask

    [NO TAG]: both 'flow' and 'mask' files

For example, download all the RGB images from the left camera:

python download_training.py --output-dir OUTPUTDIR --rgb --only-left

Download all the depth data from both cameras in hard level:

python download_training.py --output-dir OUTPUTDIR --depth --only-hard

Download all optical flow data without flow-mask:

python download_training.py --output-dir OUTPUTDIR --flow --only-flow

Download all the files in the dataset (could be very slow due to the large size):

python download_training.py --output-dir OUTPUTDIR --rgb --depth --seg --flow

Download the testing data for the CVPR Visual SLAM challenge

  • Monocular track (Size: 7.65 GB)

    MD5 hash: 009b52e7d7b224ffb8a203db294ac9fb

mono
|
--- ME000                             # monocular easy trajectory 0 
|       |
|       ---- 000000.png               # RGB image 000000
|       ---- 000001.png               # RGB image 000001
|       .
|       .
|       ---- 000xxx.png               # RGB image 000xxx
|
+-- ME001                             # monocular easy trajectory 1 
.
.
+-- ME007                             # monocular easy trajectory 7 
|
+-- MH000                             # monocular hard trajectory 0 
.
.
|
+-- MH007                             # monocular hard trajectory 7 
  • Stereo track (Size: 17.51 GB)

    MD5 hash: 8a3363ff2013f147c9495d5bb161c48e

stereo
|
--- SE000                                 # stereo easy trajectory 0 
|       |
|       ---- image_left                   # left image folder
|       |       |
|       |       ---- 000000_left.png      # RGB left image 000000
|       |       ---- 000001_left.png      # RGB left image 000001
|       |       .
|       |       .
|       |       ---- 000xxx_left.png      # RGB left image 000xxx
|       |
|       ---- image_right                  # right image folder
|               |
|               ---- 000000_right.png     # RGB right image 000000
|               ---- 000001_right.png     # RGB right image 000001
|               .
|               .
|               ---- 000xxx_right.png     # RGB right image 000xxx
|
+-- SE001                                 # stereo easy trajectory 1 
.
.
+-- SE007                                 # stereo easy trajectory 7 
|
+-- SH000                                 # stereo hard trajectory 0 
.
.
|
+-- SH007                                 # stereo hard trajectory 7 

More information about the CVPR Visual SLAM challenge

Now the CVPR challenge has completed, the ground truth poses for the above testing trajectories are available here. If you need any further support, please send an email to [email protected].

Evaluation tools

Following the TUM dataset and the KITTI dataset, we adopt three metrics: absolute trajectory error (ATE), the relative pose error (RPE), a modified version of KITTI VO metric.

More details

Check out the sample code:

cd evaluation
python tartanair_evaluator.py

Note that our camera poses are defined in the NED frame. That is to say, the x-axis is pointing to the camera's forward, the y-axis is pointing to the camera's right, the z-axis is pointing to the camera's downward. You can use the cam2ned function in the evaluation/trajectory_transform.py to transform the trajectory from the camera frame to the NED frame.

Paper

More technical details are available in the TartanAir paper. Please cite this as:

@article{tartanair2020iros,
  title =   {TartanAir: A Dataset to Push the Limits of Visual SLAM},
  author =  {Wang, Wenshan and Zhu, Delong and Wang, Xiangwei and Hu, Yaoyu and Qiu, Yuheng and Wang, Chen and Hu, Yafei and Kapoor, Ashish and Scherer, Sebastian},
  booktitle = {2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  year =    {2020}
}

Contact

Email [email protected] if you have any questions about the data source. To post problems in the Github issue is also welcome. You can also reach out to contributors on the associated GitHub.

License

This software is BSD licensed.

Copyright (c) 2020, Carnegie Mellon University All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

tartanair_tools's People

Contributors

amigoshan avatar andrewjong avatar huyaoyu avatar markchenyutian avatar smash0190 avatar theairlab avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tartanair_tools's Issues

How can I get the download URL of the dataset sample used in your paper?

Sorry to bother you. I just read your paper, and it is a wonderful job. I want to evaluate my algorithm with your dataset . But the URL list you supprot is not including some samples in your paper, such as Slaughter , Autumn forest,and so on. I tried to replace the sample name with the sample name I want , for example ,https://tartanair.blob.core.windows.net/tartanair-release1/slaughter /Easy/image_right.zip. But it didn't work. Could you please give me some idea?
looking forward to your reply.

How to get pose of data

Hi,
When use
python download_training.py --depth --only-easy --rgb --only-left --azcopy,
how to get the pose of images?

Resizing Optical Flow

The image resolution seems really huge for the model that I am training and I would prefer to downscale it to a smaller shape. however, the optical flow groundtruths cannot be resized the same way. Any suggestions on how to do this ?

camera internal and external parameters?

Hi, I find no camera internal and external parameters provided in the stereo track dataset, and there are no instructions or download links elsewhere, is this data not provided?

Optical Flow for dynamic scenes

Hi,
I just read, that you created the optical flow from the groundtruth depth and camera motion.

However, some scenes contain dynamic objects, which apparently you mask with flow_mask.npy. Since you have a virtual dataset, I would be interested in knowing the reason for this procedure? Why could you not read out the total optical flow, resulting from all motions in the scene?

It would be a very cool feature, if you provided the total optical flow for all motions!

Aligning Point Cloud

Two subsequent point cloud generated from the depth map are not aligned when plotted together. We are transforming the camera parameters using scipy.spatial.transform and usubg open3d library for plotting.

Timestamps in dataset

Hi, KITTI also provides timestamp between each frame.

As the images are generated from simulator, which exported ground truth at particular fps. I think it would be a heloful additon the dataset.

semantic labels

Hi! That is a really good dataset! I'd like to make the use of the semantic annotations available in it. Which set of semantic classes is used on the dataset? I haven't found any tools or documentation describing the class ids and labels... Could you please provide me with this information? Thank you!

What's the meaning of semantic label?

I read your description about assigning 0-255 to meshes, but is there any meaning of these values (e.g., sky, wall and etc.) ?
Thank you for your attention.

About depth map

Excuse me, I want to use the depth map for reconstruction. Is the depth map captured in perspective or orthographic mode?

How to use data on azure?

Hi, I have used the sample notebook locally to access the data. But each time I accessed an image, the speed is very slow. So my question is that is it right when using the notebook locally or other ways? Thank you

Baseline VO-SLAM inside?

Are there any of the baseline VO slam methods provided within this code as demonstrated in your videos

Confusing mask result for dynamic objects

Hi,

Thanks for the great work!

I'm a bit confused by the flow and flow mask for: ocean/Easy/P012/image_left/000367_left.png

The mask doesn't seem like it's correctly highlighting the dynamic object.

Im0
image

Im1
image

Flow
image

Warp of Im1 to Im0 through Flow
image

Mask == 1
image

Mask == 10
image

Mask == 100
image

Also, would it be possible to get a pointer to the mask generation code?

Thanks!
Charles

download url seems unavailable

Dear Professor:
The link "https://github.com/castacks/tartanair_tools/blob/master/download_training_zipfiles.txt" and other similar url seems not available in Tartanair project.
"wget -c https://tartanair.blob.core.windows.net/tartanair-release1/*/*/depth_left.zip" returns an Error

Warning: wildcards not supported in HTTP.
https://tartanair.blob.core.windows.net/tartanair-release1/*/*/depth_left.zip
Resolving tartanair.blob.core.windows.net (tartanair.blob.core.windows.net)... 52.239.169.4
Connecting to tartanair.blob.core.windows.net (tartanair.blob.core.windows.net)|52.239.169.4|:443... connected.
HTTP request sent, awaiting response... 403 The specified account is disabled.
ERROR 403: The specified account is disabled..

Licensing issue regarding the submission terms and conditions

I might be interpreting the terms incorrectly, so let me know if I am wrong.

What I have read here is that I will lose the intellectual right for the novelty of my proposed method once I have submitted the results, am I right? Even if I would like to publish the results in my future paper, I won't be able to claim the results as mine, because the results belong to "the sole property of Alcrowd".

Please advice.

image
image

About the abandonedfactory day-night dataset

Are the day and night sequences actually the same scenes with different light condition? Maybe the same scene will be better for comparative experiment. In the video, they seem to be the same, but when I download the sample trajectories, I find they are different. And the whole dataset is too large for me to download, so I want to ask you first

Which data type contains 'Domestic' scenes?

Thank you for your great work!

I would like to download the 'Domestic' scenes as shown in Fig.1 of the paper.
Which data type should I download to get 'Domestic' scenes?

about camera pose

Can you tell me what the 7 columns of parameters in your camera pose file refer to?

What about LIDAR and IMU?

The paper and website for this dataset talks about "simulated multi-line LiDAR points, and simulated IMU readings.". However, this repo doesn't mention anything about those. Are they going to be made public and added later?

List of features of each environment/sequence

I would like to know which environments or sequences have certain features. Do you have a list or table that shows this information? More specifically, for now, I'm only interested in sequences that have dynamic objects, but I couldn't find this.

Ground truth labels for semantic segmentation

I downloaded the segmentation maps available in the dataset, however, I can't find the labels for each object. Would you have a table with this information? As in the following example:
'0000 -> car'
'0001 -> trees'
'0002' -> sky '
if there is no such thing, would there be any way for me to get to that information myself? Is there any code or tool to help with this task?

Transformation from NED to Cam

Hi,
Tartain air is my training dataset for a deep learning odometry project.
In your dataset, the poses are in NED coordinate while I need to convert them to camera (opencv) coordinate system[right-down-forward]. For this purpose, you also implemented a function as ned2cam that converts a ned trajectory into my desired camera coordinate system.
So the question is, why do you need to apply the right multiplication (.dot(T_inv)) for this transformation : ttt=T.dot(tt).dot(T_inv).

When you have the pose of a frame with respect to a world pose in NED coordinate, you just need to apply the transformation from NED to Cam (T matrix in your formula) to have it in Cam coordinate! So then, what is the point of T_inv there?
Notepad5_1

[enhancement] Download specific training trajectories

It'd be nice if the training data was broken up in a way that I could specify an environment & trajectory to download rather than downloading all of the "Easy" or "Hard" trajectories of an environment at once.

I did --rgb --only-left --only-easy and the training set is still ~170GB unzipped. I'd like to specify a subset of trajectories to download, but I haven't figured out how to be able to do that.

inaccurate sky depth for amusement

Just in case someone falls into this trap like me:
截圖 2023-07-15 下午3 53 35

The sky depth for amusement scene is corrupted, it seems there is a invisible dome capping the max depth. We can use the segmentation to somehow correct the depth, but segmentation (id=182) is inaccurate too, it contains some of the trees (so it means they are the same mesh?). Setting the depth value of this class to be something like 100 should be a somehow reasonable solution.

Encountered `failed: Connection refused`

Hi TartanAir Maintainer,

Firstly, thank you so much for providing such a great dataset!

To download the dataset, I've encountered a connection problem. An example of the failure message is

--2024-04-28 21:34:36--  https://airlab-share.andrew.cmu.edu:8081/tartanair/westerndesert/Hard/image_right.zip                                                                          
Resolving airlab-share.andrew.cmu.edu (airlab-share.andrew.cmu.edu)... 128.237.74.70
Connecting to airlab-share.andrew.cmu.edu (airlab-share.andrew.cmu.edu)|128.237.74.70|:8081... failed: Connection refused.

Could anyone help and check the server status?

Best,
Yukun

Where can we get the camera model?

I am generating point cloud data from the depth images, but could not find camera intrinsic parameters.
Could you please give me some advice on this? Thank you so much!

How to read pose file ?

Hi, in the sample code, you provided code to load numpy files, images, but txt files which are left pose and right pose files. How can I read this ? Thank you

Can't download : ERROR 409: Public access is not permitted on this storage account.

I am having this issue while downloading using wget <link> or using command mentioned in the README (python download_training.py --output-dir OUTPUTDIR --flow --only-flow). Kindly help on this.

--2024-01-05 11:08:26--  https://tartanair.blob.core.windows.net/tartanair-release1/seasonsforest/Hard/flow_mask.zip
Resolving xen03.iitd.ac.in (xen03.iitd.ac.in)... 10.10.88.6
Connecting to xen03.iitd.ac.in (xen03.iitd.ac.in)|10.10.88.6|:3128... connected.
Proxy request sent, awaiting response... 409 Public access is not permitted on this storage account.
2024-01-05 11:08:27 ERROR 409: Public access is not permitted on this storage account..

Error : QUATERNION_FORMAT_ILLEGAL: Quaternion should be normalized!

Hi, I participate TartanAir Visual SLAM challenge, the submission results were error (quaternion format illegal). But the quaternion have been normalized, and there are no the error in the evaluation code(tartanair_tools). I would like to know the reason, looking forward to receiving your reply as soon as possible.

Product Links to Environments

Dear authors,

Thanks for your great work!

I assume that you imported the environments from the Unreal Engine Store. Could you kindly provide the list of store links of used environments?

suggestion for lidar data

Hi, your dataset is great. I would like to use this dataset to do depth completion task. Maybe you can provide the lidar data by projecting the points to the 2D image. In other words, the sparse depth map corresponding the rgb image and dense depth map can be added to the dataset like kitti,[http://www.cvlibs.net/datasets/kitti/eval_depth.php?benchmark=depth_completion](depth completion task).

How to download the spesific files?

Dear authors : In "README.md", you have mentioned "You can also take look at the (download_training_zipfiles.txt) to download the spesific files you want. " May I ask how to do that?It seems like there is no download link. Looking forward to your reply. Thank you!

*"

connection time out

Hi, when I run download_training.py, I always met : Connecting to airlab-share.andrew.cmu.edu (airlab-share.andrew.cmu.edu)|128.237.74.70|:8081... failed: Connection timed out.

Is there anything wrong with the server?

request to re-render dataset

Thanks for your amazing data set.

I am interested in re-rendering TartanAir. Would you be willing to provide the trajectories and UnrealEngine Environments, such that we can re-render the dataset on our side?

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.