{"id":23269060,"url":"https://github.com/johnwlambert/tbv","last_synced_at":"2025-05-15T22:19:26.060Z","repository":{"id":41841906,"uuid":"400543321","full_name":"johnwlambert/tbv","owner":"johnwlambert","description":"Official Repo of NeurIPS '21: \"Trust, but Verify: Cross-Modality Fusion for HD Map Change Detection\"","archived":false,"fork":false,"pushed_at":"2023-04-22T19:06:25.000Z","size":2116,"stargazers_count":79,"open_issues_count":2,"forks_count":16,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-12-19T17:48:45.314Z","etag":null,"topics":["hd-maps","machine-learning","map-change-detection","self-driving"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/johnwlambert.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-27T14:51:49.000Z","updated_at":"2024-12-10T17:44:20.000Z","dependencies_parsed_at":"2024-12-19T17:45:43.944Z","dependency_job_id":"a01e60ea-c4eb-4c32-87e0-29bbec02a076","html_url":"https://github.com/johnwlambert/tbv","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnwlambert%2Ftbv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnwlambert%2Ftbv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnwlambert%2Ftbv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnwlambert%2Ftbv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johnwlambert","download_url":"https://codeload.github.com/johnwlambert/tbv/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254430285,"owners_count":22069909,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hd-maps","machine-learning","map-change-detection","self-driving"],"created_at":"2024-12-19T17:45:38.641Z","updated_at":"2025-05-15T22:19:26.041Z","avatar_url":"https://github.com/johnwlambert.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Trust, but Verify: Cross-Modality Fusion for HD Map Change Detection (NeurIPS '21, Official Repo)\n[John Lambert](https://johnwlambert.github.io/), [James Hays](https://www.cc.gatech.edu/~hays/)\n\nThis repository contains the source code for training and evaluating models described in the NeurIPS '21 paper *Trust, but Verify: Cross-Modality Fusion for HD Map Change Detection*. [[arXiv]](https://arxiv.org/abs/2212.07312) [[Project Site \u0026 Videos]](https://johnwlambert.github.io/tbv-dataset/)\n\nThe Trust but Verify (TbV) dataset is publicly available for download, as part of the [**Argoverse 2.0** family of datasets](https://www.argoverse.org/av2.html). Download instructions can be found [here](https://argoverse.github.io/user-guide/datasets/map_change_detection.html#downloading-tbv). You can find a short invited talk at the CVPR 2021 VOCVALC workshop summarizing our work [here on Youtube](https://youtu.be/JeTZbCuyeM8?t=3735).\n\n## Table of Contents\n\n- [Dataset Overview](#dataset-overview)\n- [Installation](#installation)\n- [Downloading the dataset](#download-dataset)\n- [Rendering Training/Val/Test Data](#render-data)\n- [Training Models](#training-models)\n- [Evaluating Models](#evaluating-models)\n- [Pre-trained Model Accuracies](#pretrained-model-accuracies)\n- [Generating `seamseg` semantic segmentation label maps](#generating-seamseg-label-maps)\n- [Citing](#citing)\n- [FAQ](#faq)\n- [License](#license)\n\n\n\u003ca name='dataset-overview'\u003e\u003c/a\u003e\n## Dataset Overview\n\nThe Trust but Verify (TbV) dataset is the first public dataset for the task of high-definition (HD) map change detection, i.e. determining when sensor data and map data are no longer in agreement with one another due to real-world changes. We collected TbV by mining thousands of hours of data from over 9 months of autonomous vehicle fleet operations.\n\n[//]: # (92me_Jd8_hstacked, cJiXg_jDONA, 92me_Jd8_hstacked_map, 0f0c_Aom_hstack, xpxg_4ab4, Hl998_zU1P_hstacked)\n\nAn example from Pittsburgh:\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/160265919-99b300fa-d7b9-4eaa-8889-46f8f142ee52.gif\" height=\"215\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/160266065-7cbccc84-daa7-4129-92da-0f50569f0aed.gif\" height=\"215\"\u003e\n\u003c/p\u003e\n\nExamples from Palo Alto and Miami:\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/160265925-174a2958-e8d6-42ac-84a2-8e012b9e4e71.gif\" height=\"215\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/29715011/160264648-cfad3571-3bfa-4acb-9831-d8f8693a7dc8.gif\" height=\"215\"\u003e\n\u003c/p\u003e\n\nExamples from Miami:\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/29715011/160264672-3e725689-395f-4fd5-847f-d9ba273e8c5c.gif\" height=\"215\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/29715011/160264678-760a8167-0b1e-442d-8d73-e0487868c40a.gif\" height=\"215\"\u003e\n\u003c/p\u003e\n\nThe dataset, consisting of maps and logs collected in six North American cities, is one of the largest AV datasets to date with more than 7.9 million images and will be made available to the public, along with code and models under the the CC BY-NC-SA 4.0 license. Above, we show before-and-after images that showcase a few examples of map changes featured in TbV logs.\n\n\u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"\u003e\u003cimg alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /\u003e\u003c/a\u003e\u003cbr /\u003eThis work is licensed under a \u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"\u003eCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License\u003c/a\u003e.\n\n\u003ca name='installation'\u003e\u003c/a\u003e\n## Installation\n\nFirst, clone the repo:\n```bash\ngit clone https://github.com/johnwlambert/tbv.git\n```\nNext, install Miniconda or Anaconda, and create the conda environment:\n```bash\nconda env create -f environment_linux.yml\nconda env create -f environment_mac.yml\n```\nNote: rendering data is only supported on Linux with a CUDA-supported GPU.\n```bash\ncd tbv\npip install -e .\n```\nWhen you clone the repo, the structure should be as follows:\n```\n- tbv/\n |--- setup.py\n |--- tbv-raytracing/\n   |---setup.py\n   |---pybind11/\n```\nNext, install `mseg-api` anywhere on your machine using:\n```bash\ngit clone https://github.com/mseg-dataset/mseg-api.git\ncd mseg-api\npip install -e .\ncd ..\n```\nNext, install `mseg-semantic` anywhere on your machine using:\n```bash\ngit clone https://github.com/mseg-dataset/mseg-semantic.git\npip install -e .\n```\nNext, install `av2` ([`av2-api`](https://github.com/argoverse/av2-api/blob/main/README.md) is the official repo for Argoverse 2.0):\n```bash\npip install av2==0.1.0\n```\n\nNext, install Eigen. On Linux, `sudo apt install libeigen3-dev`. Next, `cd tbv-raytracing` and download `pybind11` via `git clone https://github.com/pybind/pybind11.git`, where it should be downloaded into the second-level `tbv-raytracing` dir.\n\nEnsure your `nvcc` compiler is at least version `11.3, V11.3.109`, and then compile the GPU library using `setup.py` as follows:\n```bash\npython setup.py bdist_wheel\npip install dist/tbv_raytracing-0.0.1-cp{PY_VERSION}-cp{PY_VERSION}-linux_x86_64.whl\n```\ne.g. this file could be named one of the following:\n```python\npip install dist/tbv_raytracing-0.0.1-cp38-cp38-linux_x86_64.whl\npip install dist/tbv_raytracing-0.0.1-cp39-cp39-linux_x86_64.whl \npip install dist/tbv_raytracing-0.0.1-cp310-cp310-linux_x86_64.whl\n```\n\n\u003ca name='download-dataset'\u003e\u003c/a\u003e\n## Downloading the dataset\n\nDownload the dataset per the instructions found [here](https://argoverse.github.io/user-guide/datasets/map_change_detection.html#downloading-tbv).\n\nCreate a folder, and then `logs/`\n\n\u003ca name='render-data'\u003e\u003c/a\u003e\n## Rendering Training/Val/Test Data\n\nTo render data in a bird's eye view, run\n```bash\npython scripts/run_dataset_rendering_job.py --config_name bev_config.yaml\n```\n\nTo render data in the ego-view, run\n```bash\npython scripts/run_dataset_rendering_job.py --config_name egoview_config.yaml\n```\n\nFor training data w/ augmentations, ensure the following fields are set to `render_test_set_only: False` and `jitter_vector_map: True`.\n\n\n[//]: # ()\n[//]: # (i47t2l9q6nJQNDFbD6iI0MrQ11yq4JNB__Autumn_2020_315971536859131000_rgb_interpTruelinear_projmethodray_tracing)\n[//]: # (i47t2l9q6nJQNDFbD6iI0MrQ11yq4JNB__Autumn_2020_315971536859131000_semantics_interpTruenearest_projmethodray_tracing)\n[//]: # (ujhUH2flle6ctyPZawAe9GiSzoeqkAJX__Summer_2020_315971131960015000_rgb_interpTruelinear_projmethodray_tracing)\n[//]: # (ujhUH2flle6ctyPZawAe9GiSzoeqkAJX__Summer_2020_315971131960015000_semantics_interpTruenearest_projmethodray_tracing)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/165433493-219d9070-c157-4b05-9862-70fe5b6eec3d.jpg\" height=\"200\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/165433531-26994c65-62e2-4ba4-b2ce-6c7669d0d864.png\" height=\"200\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/165433535-84be378b-620e-4523-97f6-01cb37536c1d.jpg\" height=\"200\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/165433547-9479430c-432c-4722-bdfa-acec0c3dab44.png\" height=\"200\"\u003e\n\u003c/p\u003e\n\nProgram output will be saved in a `logging_output` directory.\n\nWe use the following abbreviations for city names featured in TbV:\n| City Name | Abbreviation | \n| :-------: | :----------: |\n| Washington, DC | WDC |\n| Miami, FL | MIA |\n| Pittsburgh, PA | PIT |\n| Palo Alto, CA | PAO | \n| Austin, TX | ATX | \n| Detroit, MI | DTW |\n\n\n\u003ca name='training-models'\u003e\u003c/a\u003e\n## Training Models\n\nAfter rendering a dataset, you're ready to train models. Start training by running:\n```bash\npython scripts/train.py \\\n    --training_config_name {CONFIG_UUID}.yaml \\\n    --rendering_config_name {CONFIG_UUID}.yaml\n```\n\n\u003ca name='evaluating-models'\u003e\u003c/a\u003e\n## Evaluating Models\n\n**Pretrained Models** are available [here](https://github.com/johnwlambert/tbv/releases/tag/v0.1_tbv_pretrained_models). Each model has an associated rendering config, training config, and model checkpoint file, all with the same uuid (e.g. `0589cca2-72aa-4626-9a05-af60eeea5fb6`).\n\nTo run model inference with a model trained to operate on the **ego-view**:\n```bash\npython scripts/test.py \\\n    --rendering_config_name 6d3bfc13-1da4-49f0-bf6d-f6b1fc9647d8.yaml \\\n    --training_config_name 6d3bfc13-1da4-49f0-bf6d-f6b1fc9647d8.yaml \\\n    --gpu_ids 0 \\\n    --save_inference_viz False \\\n    --split val \\\n    --ckpt_fpath ~/Downloads/6d3bfc13-1da4-49f0-bf6d-f6b1fc9647d8.pth \\\n    --filter_eval_by_visibility True\n```\n\nTo run model inference with a model trained to operate on the **BEV**:\n```bash\npython scripts/test.py \\\n    --rendering_config_name 0589cca2-72aa-4626-9a05-af60eeea5fb6.yaml \\\n    --training_config_name 0589cca2-72aa-4626-9a05-af60eeea5fb6.yaml \\\n    --gpu_ids 0 \\\n    --save_inference_viz False \\\n    --split val \\\n    --ckpt_fpath ~/Downloads/0589cca2-72aa-4626-9a05-af60eeea5fb6.pth \\\n    --filter_eval_by_visibility False \\\n```\n\n\u003ca name='pretrained-model-accuracies'\u003e\u003c/a\u003e\n## Pre-trained Model Accuracies\nBelow, we provide the accuracies of the released pre-trained models on the val and test sets. Mean accuracies below are over the visible region (see asterisk *). All use early-fusion, except otherwise specified.\n\n| Model UUID |  Model Description | Sensor Input | Map Input | Semantic Label Map Input | (Real) Val mAcc* | (Real) Test mAcc* |\n| :--------: | :----------------: | :----: | :--:| :--------:| :--------:| :---------:|\n| 6d3bfc13-1da4-49f0-bf6d-f6b1fc9647d8 | egoview, dropout either map or semantics, 100% prob | :white_check_mark:| :white_check_mark:| :white_check_mark:| 0.7031 | 0.7013 |\n| 9dcfaa3f-a6af-4295-93ca-24a84d6b9c2d | egoview, 224x224, larger batch size |:white_check_mark:| :white_check_mark:| :white_check_mark: | 0.6916 | 0.6843 |\n| 98e50a71-c7b2-411d-99f4-781826488a26 | egoview, blurred input, independent map dropout_prob: 0.5, independent semantics dropout prob: 0.0 | :white_check_mark:| :white_check_mark:| :white_check_mark:| 0.7138 | 0.6826 |\n| 2a3550a4-7b3d-4ab1-8165-e20d7cb069c9 | egoview, early fusion, but dropout either semantics or sensor, 0% prob | :white_check_mark:| :white_check_mark:| :white_check_mark: | 0.6923 | 0.6747    \n| 0061c32d-da98-4583-a311-8f2fc37b6655 | egoview, independent map dropout_prob: 0.0, independent semantics dropout prob: 0.5 | :white_check_mark:| :white_check_mark:| :white_check_mark: | 0.6850 | 0.6697 |\n| 44e55ee6-76da-4995-8fff-f4a2a4c3a8af | egoview, independent semantics dropout prob: 0.75, independent map dropout prob: 0.75 | :white_check_mark:| :white_check_mark:| :white_check_mark: | 0.6735 | 0.6766 |\n| 4d4f41a2-4bfe-42f2-88d0-1db253eeb9be | egoview, high res, all 3 modalities w/ dropout, 448x448 | :white_check_mark:| :white_check_mark:| :white_check_mark: | 0.6732 | 0.6589 |\n| 17fd2c0a-fee5-47c5-92cc-8b37f4479a8b | egoview, independent semantics dropout prob: 0.75, independent map dropout prob: 0.50 | :white_check_mark:| :white_check_mark:| :white_check_mark: | 0.6683 | 0.6606 |\n| b3ef41e8-db72-4e12-808d-353e4cd54280 | egoview 224x224  | | :white_check_mark:| :white_check_mark: | 0.6677 | 0.6183 |\n| 88f42746-3374-40f7-a015-625652ca62c8 | egoview, blurred, independent semantics dropout prob: 0.25, independent map dropout prob: 0.25 | :white_check_mark:| :white_check_mark:| :white_check_mark: | 0.6762 | 0.6604 |\n| fe460247-d73f-4519-8643-ff38f95fb3b7 | egoview, 0% dropout, and with blur | :white_check_mark:| :white_check_mark:| :white_check_mark: | 0.6781 | 0.6373 |\n| e3411e4e-87a6-4539-9ebb-1fcd6f99e601 | egoview, Resnet-50 | :white_check_mark: | :white_check_mark: | | 0.6505 | 0.6442 |\n| 36b24988-5c54-46b4-9c22-cd48f70ae9f6 | egoview, 120 epochs |:white_check_mark: | :white_check_mark: | | 0.6533 | 0.6169 |\n| 9b170dcf-6ba8-41d0-9ff2-fc3faf92e514 | egoview, 60 epochs,  no multiple negatives | :white_check_mark: | :white_check_mark: | | 0.6085 | 0.6362 |\n| b5a2198c-5368-4feb-85c5-843a5646ecfa | egoview, map-only | | :white_check_mark: | | 0.5512 | 0.5364 |\n| 615683e4-8431-4b31-ba1d-3523e6165fa9 | egoview, late fusion | :white_check_mark: | :white_check_mark: | | 0.5453 | 0.4963 |\n| 0589cca2-72aa-4626-9a05-af60eeea5fb6 | BEV,  Resnet-50, 30 epochs | :white_check_mark: | :white_check_mark: | | 0.6588 | 0.6448 |\n| e0ac04a5-c883-4497-81ef-e89ef3d23fdb | BEV, late fusion | :white_check_mark: | :white_check_mark: | | 0.6207 | 0.5450 |\n\n\n\u003ca name='generating-seamseg-label-maps'\u003e\u003c/a\u003e\n## Generating `seamseg` semantic segmentation label maps\nSome models use `seamseg` label maps. To generate them, follow the steps below:\n\nClone the following fork of `seamseg`: https://github.com/johnwlambert/seamseg\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/162601727-0d5ede18-6092-4942-92b8-310d7ffc3956.jpeg\" height=\"215\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/162601729-32df0429-0882-4b62-89b7-5ca4ed28664a.jpeg\" height=\"215\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/162601730-8961720d-8c7b-4cf3-8d7d-6adb0028c68f.jpeg\" height=\"215\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/162601731-53cc14c1-aa50-41ae-a22c-09b0b57b4338.jpeg\" height=\"215\"\u003e\n\u003c/p\u003e\n\nDownload the `seamseg` `seamseg_r50_vistas.zip` model [here](https://drive.google.com/file/d/1ULhd_CZ24L8FnI9lZ2H6Xuf03n6NA_-Y/view), or using the following bash commands:\n\n```bash\nexport GDRIVE_FILEID='1ULhd_CZ24L8FnI9lZ2H6Xuf03n6NA_-Y'\nexport GDRIVE_URL='https://docs.google.com/uc?export=download\u0026id='$GDRIVE_FILEID\nwget --save-cookies cookies.txt $GDRIVE_URL -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\\1/p' \u003e confirm.txt\nwget --load-cookies cookies.txt -O seamseg_r50_vistas.zip $GDRIVE_URL'\u0026confirm='$(\u003cconfirm.txt)\n```\n\nInstall `inplace-abn`: `pip install git+https://github.com/mapillary/inplace_abn.git`, and unzip the downloaded `.zip` file:\n\n```bash\nmkdir seamseg_pretrained_models\nunzip seamseg_r50_vistas.zip -d seamseg_pretrained_models\n```\nYou should see\n```bash\nls -l seamseg_pretrained_models \nconfig.ini\nmetadata.bin\nseamseg_r50_vistas.tar\n```\nPass `/path/to/seamseg_pretrained_models` as `seamseg_model_dirpath` to `python run_seamseg_over_logs.py` as follows:\n```bash\ncd seamseg/scripts\nmkdir ../logs\npython ../../tbv-staging/scripts/run_seamseg_over_logs.py --tbv-dataroot /tbv_dataset/logs_raw --seamseg_output_dataroot /tbv_dataset/seamseg_output --num-processes 1 --split test --seamseg_model_dirpath /path/to/seamseg_pretrained_models\n```\n\n\u003ca name='citing'\u003e\u003c/a\u003e\n## Citing this work\n```BibTeX\n@inproceedings{Lambert21neurips_TrustButVerifyHDMapChangeDetection,\n author = {Lambert, John W. and Hays, James},\n booktitle = {Advances in Neural Information Processing Systems Track on Datasets and Benchmarks},\n title = {{Trust, but Verify}: Cross-Modality Fusion for HD Map Change Detection},\n url = {https://openreview.net/pdf?id=cXCZnLjDm4s},\n year = {2021}\n}\n```\n\n\u003ca name='faq'\u003e\u003c/a\u003e\n## FAQ:\n\n**Q**: Is there a file that indicates different log pairs and what has changed?\n\n**A**: We provide a clustering of logs by spatial location [here](tbv/scene_clusters.py). A few things to note:\n\n- Each log within a cluster shares some significant visual overlap with other logs within its cluster.\n- These are not necessarily before/after pairs. In some cases, all logs in a cluster may be \"after\" a change.\n- Each cluster has at least one log in the val or test set.\n- Logs of each cluster are provided in chronological order.\n\n**Q**: Where can I find the data splits?\n\n**A**: Official train, val, test data splits are available [here](tbv/splits.py). There are 799 train logs, 111 val logs, and 133 test logs.\n\n**Q**: Will labels be released for which logs include change/no change? Wanted to verify that the training sets have no changes. Therefore, all we need to know is if a log is in the training set to know the label?\n\n**A**: Yes. Val split labels can be found [here](labeled_data/tbv_val_split_annotations.json). All train logs are *positive* logs that contain no changes. Most of the val and test logs contain at least some change (*negatives*), although some are positive \"before\" logs.\n\n**Q**: TbV doesn't necessarily have before and after sensor data? So it seems we're just checking if the corresponding vector map is up-to-date or not?\n\n**A**: Correct. We certainly do have many pairs of sensor data before/after in the dataset, but our goal was to be able to not have to store all past sensor data when we want to make an online map change prediction (for the TbV paper's experiments, we assume online online sensor data, and an onboard map).\n\n**Q**: How you make your decision on change: In your paper, you mention that each change task is given a buffer of sensor data from time 0 to t, but in your model architectures in figure 3, I can't figure out how you incorporate the buffer. Is it at each time stamp, a change decision is made, and then you average the decision from all of the time stamps?\n**A**: Using the buffer is not strictly necessary, but in some cases, it can be useful to have. Having a buffer of past info is also fairly realistic w.r.t. onboard settings. For the bird's eye view models we trained, we used a ring buffer to keep around the past 3d points w/ their RGB values, to make a richer input texture map (see code [here](tbv/rendering/orthoimagery_generator.py#L113)). For the ego-view models, we didn't use a buffer of sensor data, but there would be ways to feed into a buffer of data as input. We discuss this a bit [Appendix F, page 5 of the supplement](https://openreview.net/attachment?id=cXCZnLjDm4s\u0026name=supplementary_material).\n\n**Q**: I can't compile the `tbv_raytracing` package?\n**A**: Check that the version of your driver (`cat /proc/driver/nvidia/version`) is compatible with your `cuda-toolkit` version (`torch.version.cuda`), according to the [NVIDIA compatibility CUDA/driver docs](https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html).\n\n\n[//]: # (row 1)\n[//]: # (YEDRWy1MYuf5IONz4gQmQwAVuVQzkovm__2020-07-02-Z1F0055, YEDRWy1MYuf5IONz4gQmQwAVuVQzkovm__2020-11-10-Z1F0014, blank)\n[//]: # (Nr6t0auYyTEC42fJNIqhkaSasyGjfV6E__2020-06-22-Z1F0064, Nr6t0auYyTEC42fJNIqhkaSasyGjfV6E__2020-10-12-Z1F0052)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/131888454-791e26a0-ba8c-4152-b510-eac6acc6e8b0.jpeg\" height=\"215\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/131888462-f372ba49-4ea7-426a-922f-6aa805983616.jpeg\" height=\"215\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/131890666-e917acce-9329-49d4-aaf4-22d93b0165f8.jpg\" height=\"65\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/131889151-6cd72465-0fec-4be6-882e-18078c9ad48c.jpeg\" height=\"215\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/131889153-c76d60fd-24a0-4f61-82c6-114e616ca9b6.jpeg\" height=\"215\"\u003e\n\u003c/p\u003e\n\n[//]: # (row 2)\n[//]: # (bjalGQhAZWMLh50K0poYHX6GcXxnJPom__2020-06-23-Z1F0042, 9nS3_LogId79188___2020_10_22)\n[//]: # (pbADFDy5ElABBs4vTFGnGtkQjTqIDKyD__2020-06-10-Z1F0049, pbADFDy5ElABBs4vTFGnGtkQjTqIDKyD__2020-07-23-Z1F0012____v2)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/131891417-8da39671-adc1-45d2-bd91-e4b67f6673a4.jpeg\" height=\"215\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/131891426-8737c7c7-40f5-4246-a101-30ac90c9743c.jpeg\" height=\"215\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/131890666-e917acce-9329-49d4-aaf4-22d93b0165f8.jpg\" height=\"65\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/131893541-0ef130ee-7b37-45d5-b8fa-8cf600f0f39f.jpeg\" height=\"215\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/16724970/131893551-1e6142a1-ac96-4843-a3a2-e8083a035e3b.jpeg\" height=\"215\"\u003e\n\u003c/p\u003e\n\n\n\u003ca name='license'\u003e\u003c/a\u003e\n## License\n\nAll code within this repository and all data included in the TbV Dataset are governed by the CC BY-NC-SA 4.0 license. By downloading the software, you are agreeing to the terms of this license agreement. If you do not agree with these terms, you may not use or download this software. It may not be used for any commercial purpose. See **[LICENSE](./LICENSE)** for more details.\n\nThis code and dataset are owned by Argo AI, LLC (Licensor), but are distributed by John Lambert with Argo's permission under CC BY-NC-SA 4.0. \n\nExclusive Remedy and Limitation of Liability: To the maximum extent permitted under applicable law, Licensor shall not be liable for direct, indirect, special, incidental, or consequential damages or lost profits related to Licensee's (you or your organization) use of and/or inability to use the Software, even if Licensor is advised of the possibility of such damage.\n\nDisclaimer of warranties: The software is provided \"as-is\" without warranty of any kind including any warranties of performance or merchantability or fitness for a particular use or purpose or of non-infringement. Licensee bears all risk relating to quality and performance of the software and related materials.\n\nCopyright: The Software is owned by Licensor and is protected by United States copyright laws and applicable international treaties and/or conventions.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnwlambert%2Ftbv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohnwlambert%2Ftbv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnwlambert%2Ftbv/lists"}