{"id":21301810,"url":"https://github.com/v2ai/efg","last_synced_at":"2025-07-11T20:31:25.874Z","repository":{"id":64824098,"uuid":"577771714","full_name":"V2AI/EFG","owner":"V2AI","description":"An Efficient, Flexible, and General deep learning framework that retains minimal.","archived":false,"fork":false,"pushed_at":"2023-12-25T13:16:24.000Z","size":3716,"stargazers_count":115,"open_issues_count":2,"forks_count":12,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-06T08:36:33.488Z","etag":null,"topics":["3d-object-detection","3d-scene-understanding","detr","nuscenes","object-detection","pytorch","waymo-open-dataset"],"latest_commit_sha":null,"homepage":"https://efg.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/V2AI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-12-13T13:44:15.000Z","updated_at":"2025-04-04T20:40:50.000Z","dependencies_parsed_at":"2022-12-15T12:36:10.294Z","dependency_job_id":"73d97be6-57cb-4dec-8f15-31793044f66e","html_url":"https://github.com/V2AI/EFG","commit_stats":null,"previous_names":["v2ai/efg"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/V2AI/EFG","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/V2AI%2FEFG","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/V2AI%2FEFG/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/V2AI%2FEFG/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/V2AI%2FEFG/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/V2AI","download_url":"https://codeload.github.com/V2AI/EFG/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/V2AI%2FEFG/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264892218,"owners_count":23679255,"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-object-detection","3d-scene-understanding","detr","nuscenes","object-detection","pytorch","waymo-open-dataset"],"created_at":"2024-11-21T15:51:57.758Z","updated_at":"2025-07-11T20:31:20.859Z","avatar_url":"https://github.com/V2AI.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=center\u003e\u003cimg src=\".github/efg_logo.jpeg\" width=\"400\" \u003e\u003cdiv align=left\u003e\n\u003cbr/\u003e\n\nAn Efficient, Flexible, and General deep learning framework that retains minimal. Users can use EFG to explore any research topics following project templates. \n\n# What's New\n* 2023.08.22 Code release of ICCV2023 paper: [TrajectoryFormer: 3D Object Tracking Transformer with Predictive Trajectory Hypotheses](https://github.com/poodarchu/EFG/blob/master/playground/tracking.3d/waymo/trajectoryformer/README.md).\n* 2023.04.13 Support COCO Panoptic Segmentation with Mask2Former.\n* 2023.03.30 Support Pytorch 2.0.\n* 2023.03.21 Code release of CVPR2023 **Highlight** paper: [ConQueR: Query Contrast Voxel-DETR for 3D Object Detection](https://github.com/poodarchu/EFG/blob/master/playground/detection.3d/waymo/conquer/README.md).\n* 2023.03.21 Code release of EFG codebase, with support for 2D object detection (MS COCO dataset) and 3D object detection (Waymo and nuScenes dataset).\n\n# 0. Benchmarking\n\u003cdiv align=center\u003e\u003cimg src=\".github/efg_benchmark.png\" width=\"800\" \u003e\u003cdiv align=left\u003e\n\n\n# 1. Installation\n\n## 1.1 Prerequisites\n* gcc 5 (c++11 or newer) \n* python \u003e= 3.6\n* cuda \u003e= 10.1\n* pytorch \u003e= 1.6\n\n```shell\n# spconv\nspconv_cu11{X} (set X according to your cuda version)\n\n# waymo_open_dataset\n## python 3.6\nwaymo-open-dataset-tf-2-1-0==1.2.0\n\n## python 3.7, 3.8\nwaymo-open-dataset-tf-2-4-0==1.3.1\n\n```\n## 1.2 Build from source\n\n```shell\ngit clone https://github.com/poodarchu/EFG.git\ncd EFG\npip install -v -e .\n# set logging path to save model checkpoints, training logs, etc.\necho \"export EFG_CACHE_DIR=/path/to/your/logs/dir\" \u003e\u003e ~/.bashrc\n```\n\n# 2. Data\n## 2.1 Data Preparation - Waymo\n```shell\n\n# download waymo dataset v1.2.0 (or v1.3.2, etc)\ngsutil -m cp -r \\\n  \"gs://waymo_open_dataset_v_1_2_0_individual_files/testing\" \\\n  \"gs://waymo_open_dataset_v_1_2_0_individual_files/training\" \\\n  \"gs://waymo_open_dataset_v_1_2_0_individual_files/validation\" \\\n  .\n\n# extract frames from tfrecord to pkl\nCUDA_VISIBLE_DEVICES=-1 python cli/data_preparation/waymo/waymo_converter.py --record_path \"/path/to/waymo/training/*.tfrecord\" --root_path \"/path/to/waymo/train/\"\nCUDA_VISIBLE_DEVICES=-1 python cli/data_preparation/waymo/waymo_converter.py --record_path \"/path/to/waymo/validation/*.tfrecord\" --root_path \"/path/to/waymo/val/\"\n\n# create softlink to datasets\ncd /path/to/EFG/datasets; ln -s /path/to/waymo/dataset/root waymo; cd ..\n# create data summary and gt database from extracted frames\npython cli/data_preparation/waymo/create_data.py --root-path datasets/waymo --split train --nsweeps 1\npython cli/data_preparation/waymo/create_data.py --root-path datasets/waymo --split val --nsweeps 1\n\n```\n\n## 2.2 Data Preparation - nuScenes\n\n```\n# nuScenes\n\ndataset/nuscenes\n├── can_bus\n├── lidarseg\n├── maps\n├── occupancy\n│   ├── annotations.json\n│   └── gts\n├── panoptic\n├── samples\n├── sweeps\n├── v1.0-mini\n├── v1.0-test\n└── v1.0-trainval\n```\n\n```shell\n# create softlink to datasets\ncd /path/to/EFG/datasets; ln -s /path/to/nuscenes/dataset/root nuscenes; cd ..\n# suppose that here we use nuScenes/samples images, put gts and annotations.json under nuScenes/occupancy\npython cli/data_preparation/nuscenes/create_data.py --root-path datasets/nuscenes --version v1.0-trainval --nsweeps 11 --occ --seg\n```\n\n# 3. Get Started\n##  3.1 Training \u0026 Evaluation\n\n```shell\n# cd playground/path/to/experiment/directory\n\nefg_run --num-gpus x  # default 1\nefg_run --num-gpus x task [train | val | test]\nefg_run --num-gpus x --resume\nefg_run --num-gpus x dataloader.num_workers 0  # dynamically change options in config.yaml\n```\nModels will be evaluated automatically at the end of training. Or, \n```shell\nefg_run --num-gpus x task val\n```\n\n\n# 4. Model ZOO\n\nAll models are trained and evaluated on 8 x NVIDIA A100 GPUs.\n\n## Waymo Open Dataset - 3D Object Detection (val - mAPH/L2)\n\n|    Methods    | Frames | Schedule |  VEHICLE  | PEDESTRIAN |  CYCLIST  |\n| :-----------: | :----: | :------: | :-------: | :--------: | :-------: |\n|  CenterPoint  |   1    |    36    | 66.9/66.4 | 68.2/62.9  | 69.0/67.9 |\n|  CenterPoint  |   4    |    36    | 70.0/69.5 | 72.8/69.7  | 72.6/71.8 |\n|  Voxel-DETR   |   1    |    6     | 67.6/67.1 | 69.5/63.0  | 69.0/67.8 |\n|    ConQueR    |   1    |    6     | 68.7/68.2 | 70.9/64.7  | 71.4/70.1 |\n\n## nuScenes - 3D Object Detection (val)\n\n|    Methods    | Schedule | mAP  | NDS  | Logs |\n| :-----------: | :------: | :--: | :--: | :--: |\n|  CenterPoint  |    20    | 59.0 | 66.7 |      |\n\n\n# 5. Call for contributions\nEFG is currently in a relatively preliminary stage, and we still have a lot of work to do, if you are interested in contributing, you can email me at poodarchu@gmail.com.\n\n# 6. Citation\n```shell\n\n@article{chen2023trajectoryformer,\n  title={TrajectoryFormer: 3D Object Tracking Transformer with Predictive Trajectory Hypotheses},\n  author={Chen, Xuesong and Shi, Shaoshuai and Zhang, Chao and Zhu, Benjin and Wang, Qiang and Cheung, Ka Chun and See, Simon and Li, Hongsheng},\n  journal={arXiv preprint arXiv:2306.05888},\n  year={2023}\n}\n\n@inproceedings{zhu2023conquer,\n  title={Conquer: Query contrast voxel-detr for 3d object detection},\n  author={Zhu, Benjin and Wang, Zhe and Shi, Shaoshuai and Xu, Hang and Hong, Lanqing and Li, Hongsheng},\n  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},\n  pages={9296--9305},\n  year={2023}\n}\n\n@misc{zhu2023efg,\n    title={EFG: An Efficient, Flexible, and General deep learning framework that retains minimal},\n    author={EFG Contributors},\n    howpublished = {\\url{https://github.com/poodarchu/efg}},\n    year={2023}\n}\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fv2ai%2Fefg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fv2ai%2Fefg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fv2ai%2Fefg/lists"}