{"id":13958410,"url":"https://github.com/JosephKJ/OWOD","last_synced_at":"2025-07-20T23:31:27.854Z","repository":{"id":41158501,"uuid":"299461202","full_name":"JosephKJ/OWOD","owner":"JosephKJ","description":"(CVPR 2021 Oral) Open World Object Detection","archived":false,"fork":false,"pushed_at":"2022-12-19T08:59:57.000Z","size":3792,"stargazers_count":1042,"open_issues_count":29,"forks_count":155,"subscribers_count":23,"default_branch":"master","last_synced_at":"2024-11-19T18:49:03.142Z","etag":null,"topics":["continual-learning","contrastive-learning","cvpr","cvpr2021","detectron2","energy-based-model","incremental-learning","object-detection","open-world"],"latest_commit_sha":null,"homepage":"https://josephkj.in","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/JosephKJ.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":"2020-09-29T00:12:53.000Z","updated_at":"2024-11-14T20:42:04.000Z","dependencies_parsed_at":"2023-01-29T21:00:32.000Z","dependency_job_id":null,"html_url":"https://github.com/JosephKJ/OWOD","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/JosephKJ%2FOWOD","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosephKJ%2FOWOD/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosephKJ%2FOWOD/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosephKJ%2FOWOD/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JosephKJ","download_url":"https://codeload.github.com/JosephKJ/OWOD/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226845020,"owners_count":17691143,"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":["continual-learning","contrastive-learning","cvpr","cvpr2021","detectron2","energy-based-model","incremental-learning","object-detection","open-world"],"created_at":"2024-08-08T13:01:32.685Z","updated_at":"2024-11-28T01:32:01.245Z","avatar_url":"https://github.com/JosephKJ.png","language":"Python","funding_links":[],"categories":["对象检测、分割","Frameworks"],"sub_categories":["网络服务_其他"],"readme":"## Towards Open World Object Detection [[arXiv](https://arxiv.org/abs/2103.02603) | [video](https://www.youtube.com/watch?v=aB2ZFAR-OZg) | [poster](https://github.com/JosephKJ/OWOD/blob/master/ORE_poster.pdf)]\n### Presented at CVPR 2021 as an ORAL paper\n\n\n\u003cp align=\"center\" width=\"100%\"\u003e\n\u003cimg src=\"https://josephkj.in/assets/img/owod/the_problem.png\" width=\"600\"/\u003e\n\u003c/p\u003e\n\n\n\u003cp align=\"center\" width=\"80%\"\u003e\nThe figure shows how our newly formulated Open World Object Detection setting relates to exsiting settings.\n\u003c/p\u003e\n\n\n#### Abstract\n\nHumans have a natural instinct to identify unknown object instances in their environments. The intrinsic curiosity about these unknown instances aids in learning about them, when the corresponding knowledge is eventually available. This motivates us to propose a novel computer vision problem called: Open World Object Detection, where a model is tasked to: \n1) Identify objects that have not been introduced to it as `unknown', without explicit supervision to do so, and \n2) Incrementally learn these identified unknown categories without forgetting previously learned classes, when the corresponding labels are progressively received. \n\nWe formulate the problem, introduce a strong evaluation protocol and provide a novel solution, which we call ORE: Open World Object Detector, based on contrastive clustering and energy based unknown identification. Our experimental evaluation and ablation studies analyse the efficacy of ORE in achieving Open World objectives. As an interesting by-product, we find that identifying and characterising unknown instances helps to reduce confusion in an incremental object detection setting, where we achieve state-of-the-art performance, with no extra methodological effort. We hope that our work will attract further research into this newly identified, yet crucial research direction. \n\n\n#### A sample qualitative result\n\n\u003cp align=\"center\" width=\"100%\"\u003e\n\u003cimg src=\"https://josephkj.in/assets/img/owod/example.png\" width=\"800\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\" width=\"80%\"\u003e\nThe sub-figure (a) is the result produced by our method after learning a few set of classes which doesnot include classes like \u003cstrong\u003eapple\u003c/strong\u003e and \u003cstrong\u003eorange\u003c/strong\u003e. We are able to identify them and correctly labels them as \u003cstrong\u003eunknown\u003c/strong\u003e. \nAfter some time, when the model is eventually taught to detect \u003cstrong\u003eapple\u003c/strong\u003e and \u003cstrong\u003eorange\u003c/strong\u003e, these instances are labelled correctly as seen in sub-figure (b); without forgetting how to detect \u003cstrong\u003eperson\u003c/strong\u003e. \nAn unidentified class instance still remains, and is successfully detected as an \u003cstrong\u003eunknown\u003c/strong\u003e.\n\u003c/p\u003e\n\n## Installation\n\nSee [INSTALL.md](INSTALL.md).\n\nDataset setup: Follow [these](https://github.com/JosephKJ/OWOD/issues/59#issuecomment-897747744) instructions.\n\n## Quick Start\n\nSome bookkeeping needs to be done for the code, like removing the local paths and so on. We will update these shortly. \n\nData split and trained models: [[Google Drive Link]](https://drive.google.com/drive/folders/1S5L-YmIiFMAKTs6nHMorB0Osz5iWI31k?usp=sharing) \n\nAll config files can be found in: `configs/OWOD`\n\nSample command on a 4 GPU machine:\n```python\npython tools/train_net.py --num-gpus 4 --config-file \u003cChange to the appropriate config file\u003e SOLVER.IMS_PER_BATCH 4 SOLVER.BASE_LR 0.005\n```\n\nKindly run `replicate.sh` to replicate results from the models shared on the Google Drive. \n\nKindly check `run.sh` file for a task workflow.\n\n## Incremental Object Detection\nIf you are interested in Incremental Object Detection, you may have to consider [this](https://github.com/JosephKJ/iOD) recent work. We have released the exact training configurations, trained models and logs for all three incremental settings: https://github.com/JosephKJ/iOD \n\n## Acknowledgement\n\nOur code base is build on top of [Detectron 2](https://github.com/facebookresearch/detectron2) library. \n\n\n## Citation\n\nIf you use our work in your research please cite us:\n\n```BibTeX\n@inproceedings{joseph2021open,\n  title={Towards Open World Object Detection},\n  author={K J Joseph and Salman Khan and Fahad Shahbaz Khan and Vineeth N Balasubramanian},\n  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR 2021)},\n  eprint={2103.02603},\n  archivePrefix={arXiv},\n  year={2021}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJosephKJ%2FOWOD","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJosephKJ%2FOWOD","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJosephKJ%2FOWOD/lists"}