{"id":13443715,"url":"https://github.com/MartinHahner/LiDAR_fog_sim","last_synced_at":"2025-03-20T17:31:14.087Z","repository":{"id":40298919,"uuid":"394979663","full_name":"MartinHahner/LiDAR_fog_sim","owner":"MartinHahner","description":"LiDAR fog simulation","archived":false,"fork":false,"pushed_at":"2022-06-28T03:52:24.000Z","size":5365,"stargazers_count":178,"open_issues_count":0,"forks_count":31,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-10-28T07:39:53.050Z","etag":null,"topics":["3d","autonomous-driving","computer-vision","fog","fog-attenuation","fog-removal","lidar","lidar-point-cloud","point-cloud","simulation"],"latest_commit_sha":null,"homepage":"https://www.trace.ethz.ch/lidar_fog_sim","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/MartinHahner.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}},"created_at":"2021-08-11T12:23:04.000Z","updated_at":"2024-10-16T01:36:20.000Z","dependencies_parsed_at":"2022-09-19T19:02:30.416Z","dependency_job_id":null,"html_url":"https://github.com/MartinHahner/LiDAR_fog_sim","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinHahner%2FLiDAR_fog_sim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinHahner%2FLiDAR_fog_sim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinHahner%2FLiDAR_fog_sim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinHahner%2FLiDAR_fog_sim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MartinHahner","download_url":"https://codeload.github.com/MartinHahner/LiDAR_fog_sim/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244660333,"owners_count":20489316,"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":["3d","autonomous-driving","computer-vision","fog","fog-attenuation","fog-removal","lidar","lidar-point-cloud","point-cloud","simulation"],"created_at":"2024-07-31T03:02:07.895Z","updated_at":"2025-03-20T17:31:09.063Z","avatar_url":"https://github.com/MartinHahner.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"Created by [Martin Hahner](https://sites.google.com/view/martinhahner/home) at the [Computer Vision Lab](https://vision.ee.ethz.ch/) of [ETH Zurich](https://ethz.ch/).\n\n[![arXiv](https://img.shields.io/badge/arXiv-2108.05249-00ff00.svg)](https://arxiv.org/abs/2108.05249) [![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/fog-simulation-on-real-lidar-point-clouds-for/3d-object-detection-on-stf)](https://paperswithcode.com/sota/3d-object-detection-on-stf?p=fog-simulation-on-real-lidar-point-clouds-for) ![visitors](https://visitor-badge.laobi.icu/badge?page_id=MartinHahner.LiDAR_fog_sim)\n\n\n# [Fog Simulation on Real LiDAR Point Clouds \u003cbr\u003e for 3D Object Detection in Adverse Weather](https://arxiv.org/abs/2108.05249)\n*by [Martin Hahner](https://www.trace.ethz.ch/team/members/martin.html), [Christos Sakaridis](https://www.trace.ethz.ch/team/members/christos.html), [Dengxin Dai](https://www.trace.ethz.ch/team/members/dengxin.html), and [Luc van Gool](https://www.trace.ethz.ch/team/members/luc.html)*\n\nAccepted at [ICCV 2021](http://iccv2021.thecvf.com). \u003cbr\u003e\nPlease visit our [paper website](https://trace.ethz.ch/lidar_fog_sim) for more details.\n\n![pointcloud_viewer](https://user-images.githubusercontent.com/14181188/115385936-0e033b00-a1d9-11eb-9d55-75969ae7ce47.gif)\n\n## Overview\n\n    .\n    ├── file_lists                          # contains file lists for pointcloud_viewer.py\n    │   └── ...\n    ├── integral_lookup_tables              # contains lookup tables to speed up the fog simulation\n    │   └── ... \n    ├── extract_fog.py                      # to extract real fog noise* from the SeeingThroughFog dataset\n    ├── fog_simulation.py                   # to augment a clear weather pointcloud with artificial fog (used during training)\n    ├── generate_integral_lookup_table.py   # to precompute the integral inside the fog equation\n    ├── pointcloud_viewer.py                # to visualize entire point clouds of different datasets with the option to augment fog into their scenes\n    ├── README.md\n    └── theory.py                           # to visualize the theory behind a single LiDAR beam in foggy conditions\n\n\n\\* Contains returns not only from fog, but also from physical objects that are closeby.\n\n**Datasets supported by `pointcloud_viewer.py`:**\n- [H3D](https://usa.honda-ri.com/H3D)\n- [A2D2](https://www.a2d2.audi/a2d2/en.html)\n- [KITTI](http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d)\n- [LyftL5](https://self-driving.lyft.com/level5/prediction/)\n- [Pandaset](https://pandaset.org/)\n- [nuScenes](https://www.nuscenes.org/nuscenes)\n- [Argoverse](https://www.argoverse.org/data.html#tracking-link)\n- [ApolloScape](http://apolloscape.auto/tracking.html)\n- **[SeeingThroughFog](https://www.cs.princeton.edu/~fheide/AdverseWeatherFusion/)** \u0026nbsp;:arrow_left: works best\n- [WaymoOpenDataset](https://waymo.com/open/) (via [waymo_kitti_converter](https://github.com/caizhongang/waymo_kitti_converter))\n\n\n## License\n\nThis software is made available for non-commercial use under a Creative Commons [License](LICENSE).\u003cbr\u003e\nA summary of the license can be found [here](https://creativecommons.org/licenses/by-nc/4.0/).\n\n\n## Acknowledgments\n\nThis work is supported by [Toyota](https://www.toyota-europe.com/) via the [TRACE](https://www.trace.ethz.ch/) project.\n\nFurthermore, we would like to thank the authors of [SeeingThroughFog](https://www.cs.princeton.edu/~fheide/AdverseWeatherFusion/) for their great work. \u003cbr\u003e\nIn this repository, we use a [fork](https://github.com/MartinHahner/SeeingThroughFog) of [their original repository](https://github.com/princeton-computational-imaging/SeeingThroughFog) to visualize annotations and compare to their fog simulation. Their code is licensed via the [MIT License](https://github.com/princeton-computational-imaging/SeeingThroughFog/blob/master/LICENSE).\n\n## Citation(s)\n\nIf you find this work useful, please consider citing our paper.\n```bibtex\n@inproceedings{HahnerICCV21,\n  author = {Hahner, Martin and Sakaridis, Christos and Dai, Dengxin and Van Gool, Luc},\n  title = {{Fog Simulation on Real LiDAR Point Clouds for 3D Object Detection in Adverse Weather}},\n  booktitle = {IEEE International Conference on Computer Vision (ICCV)},\n  year = {2021},\n}\n```\nYou may also want to check out our latest work (Oral at CVPR 2022)\u003cbr\u003e\n[*LiDAR Snowfall Simulation for Robust 3D Object Detection*](https://github.com/SysCV/LiDAR_snow_sim).\n\n```bibtex\n@inproceedings{HahnerCVPR22,\n  author = {Hahner, Martin and Sakaridis, Christos and Bijelic, Mario and Heide, Felix and Yu, Fisher and Dai, Dengxin and Van Gool, Luc},\n  title = {{LiDAR Snowfall Simulation for Robust 3D Object Detection}},\n  booktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},\n  year = {2022},\n}\n```\n\n## Getting Started\n\n### Setup\n\n1) Install [anaconda](https://docs.anaconda.com/anaconda/install/).\n\n2) Create a new conda environment.\n\n```bash\nconda create --name foggy_lidar python=3.9 -y\n```\n\n3) Activate the newly created conda environment.\n\n```bash\nconda activate foggy_lidar\n```\n\n4) Install all necessary packages.\n\n```bash\nconda install matplotlib numpy opencv pandas plyfile pyopengl pyqt pyqtgraph quaternion scipy tqdm -c conda-forge -y\npip install pyquaternion\n```\n\n5) Clone this repository (including submodules).\n```bash\ngit clone git@github.com:MartinHahner/LiDAR_fog_sim.git --recursive\ncd LiDAR_fog_sim\n```\n\n### Usage\n\nHow to run the script that visualizes the theory behind a single LiDAR beam in foggy conditions:\n\n```bash\npython theory.py\n```\n![theory](https://user-images.githubusercontent.com/14181188/115370049-f9b74200-a1c8-11eb-88d0-474b8dd5daa3.gif)\n\nHow to run the script that visualizes entire point clouds of different datasets:\n\n```bash\npython pointcloud_viewer.py -d \u003cpath_to_where_you_store_your_datasets\u003e\n```\n\n**Note:**\n\nYou may also have to adjust the relative paths in `pointcloud_viewer.py` (right at the beginning of the file) to be compatible with your datasets relative folder structure.\n\n### Disclaimer\n\nThe code has been successfully tested on\n- Ubuntu 18.04.5 LTS\n- macOS Big Sur 11.2.1\n- Debian GNU/Linux 9.13\n\nusing conda 4.9.2.\n\n\n## Contributions\nPlease feel free to suggest improvements to this repository.\u003cbr\u003e \nWe are always open to merge usefull pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMartinHahner%2FLiDAR_fog_sim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMartinHahner%2FLiDAR_fog_sim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMartinHahner%2FLiDAR_fog_sim/lists"}