{"id":26981756,"url":"https://github.com/visionxlab/pointobb-v2","last_synced_at":"2025-04-03T15:38:46.272Z","repository":{"id":258521135,"uuid":"869332349","full_name":"VisionXLab/PointOBB-v2","owner":"VisionXLab","description":"[ICLR'25] Official repo of \"PointOBB-v2: Towards Simpler, Faster, and Stronger Single Point Supervised Oriented Object Detection\"","archived":false,"fork":false,"pushed_at":"2025-03-27T12:35:56.000Z","size":10546,"stargazers_count":30,"open_issues_count":5,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-27T13:34:38.893Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/VisionXLab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-08T05:55:44.000Z","updated_at":"2025-03-27T12:36:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"d2b81f42-d2d8-4219-8470-2078d5a88445","html_url":"https://github.com/VisionXLab/PointOBB-v2","commit_stats":null,"previous_names":["taugeren/pointobb-v2","visionxlab/pointobb-v2"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VisionXLab%2FPointOBB-v2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VisionXLab%2FPointOBB-v2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VisionXLab%2FPointOBB-v2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VisionXLab%2FPointOBB-v2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VisionXLab","download_url":"https://codeload.github.com/VisionXLab/PointOBB-v2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247029404,"owners_count":20871882,"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":[],"created_at":"2025-04-03T15:38:45.688Z","updated_at":"2025-04-03T15:38:46.251Z","avatar_url":"https://github.com/VisionXLab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## **PointOBB-v2: Towards Simpler, Faster, and Stronger Single Point Supervised Oriented Object Detection**\n\n[[paper]](https://arxiv.org/abs/2410.08210)\n\n### ⭐️ Highlights\n\n**TL;DR:** We propose PointOBB-v2, a simpler, faster, and stronger method to generate pseudo rotated boxes from points without relying on any other prior. It achieves a training speed 15.58x faster and an accuracy improvement of 11.60%/25.15%/21.19% on the DOTA-v1.0/v1.5/v2.0 datasets compared to the previous state-of-the-art, PointOBB.\n\n![pipeline](pointobbv2.jpg)\n\n### 🛠️ Installation\n\nPlease refer to the [Installation](https://github.com/open-mmlab/mmrotate/blob/main/README.md), we copy it here.\n\n```\nconda create -n open-mmlab python=3.7 pytorch==1.7.0 cudatoolkit=10.1 torchvision -c pytorch -y\nconda activate open-mmlab\npip install openmim\nmim install mmcv-full\nmim install mmdet\ngit clone https://github.com/taugeren/PointOBB-v2.git\ncd mmrotate\npip install -r requirements/build.txt\npip install -v -e .\n```\n\n### 📊 Data Preparation\n\nPlease follow [data_preparation](https://github.com/taugeren/PointOBB-v2/tree/master/tools/data) to prepare formatting data\n\n### 🏋️ Train CPM\n\nIf you want to visualize CPM result during training, please set `visualize=True` in **train_config**\n\nPlease modified the config code that contains the **visualize directory path**\n\nThe learning rate for **`n` GPU card** and **batch size m** is `0.0125 * n * m`\n\nFor single GPU\n\n```\n# Basic format: python tools/train.py ${CONFIG_FILE} [optional arguments]\npython tools/train.py configs/pointobbv2/train_cpm_dotav10.py --work-dir work_dirs/cpm_dotav10 --gpu-ids 0\n```\n\nFor multiple GPU\n\n```\n# Basic format: ./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments]\nCUDA_VISIBLE_DEVICES=0,1 PORT=29801 ./tools/dist_train.sh configs/pointobbv2/train_cpm_dotav10.py 2\n```\n\n### 🏋️ Generate Pseudo Label\n\nPlease modified the config code that contains the **directory path**\n\nFor single GPU\n\n```\n# Basic fromat: python tools/train.py ${CONFIG_FILE} --resume-from ${CPM_CHECKPOINT_FILE} [other arguments]\npython tools/train.py configs/pointobbv2/generate_pseudo_label_dotav10.py --resume-from work_dirs/cpm_dotav10/epoch_6.pth --work-dir work_dirs/cpm_dotav10 --gpu-ids 0\n```\n\nFor multiple GPU\n\n```\n# Basic format: ./tools/dist_train_resume.sh ${CONFIG_FILE} ${CPM_CHECKPOINT_FILE} ${GPU_NUM} [optional arguments]\nCUDA_VISIBLE_DEVICES=0,1 PORT=29801 ./tools/dist_train_resume.sh /ssd1/renbotao/github_submission/mmrotate/configs/pointobbv2/generate_pseudo_label_dotav10.py work_dirs/cpm_dotav10/epoch_6.pth 2\n```\n\n### 🏋️ Train Detector\n\nYou can use different oriented object detection detector in [MMRotate Config](https://github.com/open-mmlab/mmrotate/tree/main/configs)\n\nPlease modify the **pseudo label path** in config file\n\nFor example, using Redet, the training command:\n\n```\n# single GPU\npython tools/train.py configs/pointobbv2/redet_dotav10.py --work-dir work_dirs/cpm_dotav10 --gpu-ids 0\n\n# multiple GPU\nCUDA_VISIBLE_DEVICES=0,1 PORT=29801 ./tools/dist_train.sh configs/pointobbv2/redet_dotav10.py 2\n```\n\nthe testing command:\n\n```\n# single GPU\npython tools/test.py work_dirs/redet_dotav10/redet_dotav10.py work_dirs/redet_dotav10/epoch_12.pth --gpu-ids 0 --format-only --eval-options submission_dir=testmodel/redet_dotav10_epoch12\n\n# multiple GPU\nCUDA_VISIBLE_DEVICES=0,1,2,3 PORT=29816 tools/dist_test1.sh work_dirs/redet_dotav10/redet_dotav10.py work_dirs/redet_dotav10/epoch_12.pth 4\n```\n\n### 🚀 Released Models\n\n|  Dataset  |                            Config                            |                             Log                              |                          Checkpoint                          |  mAP  |\n| :-------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :---: |\n| DOTA-v1.0 | [config](https://github.com/taugeren/PointOBB-v2/tree/main/configs/pointobbv2) | [quark](https://pan.quark.cn/s/72c9fb568db8)    [hugging face](https://huggingface.co/Tauger/PointOBB-v2/blob/main/log_dotav10.zip) | [quark](https://pan.quark.cn/s/72c9fb568db8)    [hugging face](https://huggingface.co/Tauger/PointOBB-v2/blob/main/checkpoint_dotav10.zip) | 44.85 |\n| DOTA-v1.5 | [config](https://github.com/taugeren/PointOBB-v2/tree/main/configs/pointobbv2) | [quark](https://pan.quark.cn/s/85de4e0b1878)    [hugging face](https://huggingface.co/Tauger/PointOBB-v2/blob/main/log_dotav15.zip) | [quark](https://pan.quark.cn/s/85de4e0b1878)   [hugging face](https://huggingface.co/Tauger/PointOBB-v2/blob/main/checkpoint_dotav15.zip) | 36.39 |\n| DOTA-v2.0 | [config](https://github.com/taugeren/PointOBB-v2/tree/main/configs/pointobbv2) | [quark](https://pan.quark.cn/s/aa555f111d43)    [hugging face](https://huggingface.co/Tauger/PointOBB-v2/blob/main/log_dotav20.zip) | [quark](https://pan.quark.cn/s/aa555f111d43)    [hugging face](https://huggingface.co/Tauger/PointOBB-v2/blob/main/checkpoint_dotav20.zip) | 27.22 |\n\n## 🖊️ Citation\n\nIf you find this work helpful for your research, please consider giving this repo a star ⭐ and citing our papers:\n\n```bibtex\n@article{pointobbv2,\n  title={PointOBB-v2: Towards Simpler, Faster, and Stronger Single Point Supervised Oriented Object Detection},\n  author={Ren, Botao and Yang, Xue and Yu, Yi and Luo, Junwei and Deng, Zhidong},\n  journal={arXiv preprint arXiv:2410.08210},\n  year={2024}\n}\n\n@inproceedings{pointobb,\n  title={PointOBB: Learning Oriented Object Detection via Single Point Supervision},\n  author={Luo, Junwei and Yang, Xue and Yu, Yi and Li, Qingyun and Yan, Junchi and Li, Yansheng},\n  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},\n  pages={16730--16740},\n  year={2024}\n}\n\n@inproceedings{point2rbox,\n  title={Point2RBox: Combine Knowledge from Synthetic Visual Patterns for End-to-end Oriented Object Detection with Single Point Supervision},\n  author={Yu, Yi and Yang, Xue and Li, Qingyun and Da, Feipeng and Dai, Jifeng and Qiao, Yu and Yan, Junchi},\n  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},\n  pages={16783--16793},\n  year={2024}\n}\n```\n\n## 📃 License\n\nThis project is released under the [Apache License 2.0](LICENSE). \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvisionxlab%2Fpointobb-v2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvisionxlab%2Fpointobb-v2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvisionxlab%2Fpointobb-v2/lists"}