{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/ovanet-one-vs-all-network-for-universal","title":"OVANet: One-vs-All Network for Universal Domain Adaptation","arxiv_id":"2104.03344","date":"2021-04-07","proceeding":"ICCV 2021 10","authors":["Kuniaki Saito","Kate Saenko"],"abstract":"Universal Domain Adaptation (UNDA) aims to handle both domain-shift and category-shift between two datasets, where the main challenge is to transfer knowledge while rejecting unknown classes which are absent in the labeled source data but present in the unlabeled target data. Existing methods manually set a threshold to reject unknown samples based on validation or a pre-defined ratio of unknown samples, but this strategy is not practical. In this paper, we propose a method to learn the threshold using source samples and to adapt it to the target domain. Our idea is that a minimum inter-class distance in the source domain should be a good threshold to decide between known or unknown in the target. To learn the inter-and intra-class distance, we propose to train a one-vs-all classifier for each class using labeled source data. Then, we adapt the open-set classifier to the target domain by minimizing class entropy. The resulting framework is the simplest of all baselines of UNDA and is insensitive to the value of a hyper-parameter yet outperforms baselines with a large margin.","url_abs":"https://arxiv.org/abs/2104.03344v4","url_pdf":"https://arxiv.org/pdf/2104.03344v4.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"ovanet-one-vs-all-network-for-universal","repo_url":"https://github.com/VisionLearningGroup/OVANet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"ovanet-one-vs-all-network-for-universal","repo_url":"https://github.com/VisionLearningGroup/visda21-dev","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"all","task_name":"All"},{"task_slug":"domain-adaptation","task_name":"Domain Adaptation"},{"task_slug":"universal-domain-adaptation","task_name":"Universal Domain Adaptation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/universal-domain-adaptation-on-domainnet","task":"Universal Domain Adaptation","dataset":"DomainNet","model":"OVANet","rank_in_archive_order":7,"of":12,"metrics":{"H-Score":"50.7","Source-free":"no"},"uses_additional_data":false},{"leaderboard":"/sota/universal-domain-adaptation-on-office-31","task":"Universal Domain Adaptation","dataset":"Office-31","model":"OVANet","rank_in_archive_order":9,"of":12,"metrics":{"H-score":"86.5","Source-Free":"no"},"uses_additional_data":false},{"leaderboard":"/sota/universal-domain-adaptation-on-office-home","task":"Universal Domain Adaptation","dataset":"Office-Home","model":"OVANet","rank_in_archive_order":9,"of":14,"metrics":{"H-Score":"71.8","Source-free":"no","VLM":"no"},"uses_additional_data":false},{"leaderboard":"/sota/universal-domain-adaptation-on-visda2017","task":"Universal Domain Adaptation","dataset":"VisDA2017","model":"OVANet","rank_in_archive_order":10,"of":13,"metrics":{"H-score":"53.1","Source-free":"no"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2104.03344","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2104.03344"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/VisionLearningGroup/OVANet","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/VisionLearningGroup/visda21-dev","reach":null}],"summary":{"ran_fixture":1,"ran":1,"ran_violates":1,"ran_draft_wrong":1,"unverified":8},"by_repo_kind":{"official":{"samples":11,"ran":3,"repositories":1},"listed":{"samples":1,"ran":1,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"1b0bf9bd060bf1a1","entry":"entropy","repo":"VisionLearningGroup/OVANet","repo_kind":"official","path":"utils/loss.py","file_url":"https://github.com/VisionLearningGroup/OVANet/blob/HEAD/utils/loss.py","link_basis":"plan_row","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1b0bf9bd060bf1a1"}},{"code_sha256_prefix":"52d10a10fb72fb9f","entry":"find_classes","repo":"VisionLearningGroup/OVANet","repo_kind":"official","path":"data_loader/mydataset.py","file_url":"https://github.com/VisionLearningGroup/OVANet/blob/HEAD/data_loader/mydataset.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"52d10a10fb72fb9f"}},{"code_sha256_prefix":"ab4109634b75ef8b","entry":"is_image_file","repo":"VisionLearningGroup/OVANet","repo_kind":"official","path":"data_loader/mydataset.py","file_url":"https://github.com/VisionLearningGroup/OVANet/blob/HEAD/data_loader/mydataset.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ab4109634b75ef8b"}},{"code_sha256_prefix":"e94975ec6929c1c0","entry":"ova_loss","repo":"VisionLearningGroup/visda21-dev","repo_kind":"listed","path":"utils/loss.py","file_url":"https://github.com/VisionLearningGroup/visda21-dev/blob/HEAD/utils/loss.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e94975ec6929c1c0"}},{"code_sha256_prefix":"8ff18904c899705c","entry":"get_loader","repo":"VisionLearningGroup/OVANet","repo_kind":"official","path":"data_loader/get_loader.py","file_url":"https://github.com/VisionLearningGroup/OVANet/blob/HEAD/data_loader/get_loader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8ff18904c899705c"}},{"code_sha256_prefix":"9f5714078503b766","entry":"get_loader_label","repo":"VisionLearningGroup/OVANet","repo_kind":"official","path":"data_loader/get_loader.py","file_url":"https://github.com/VisionLearningGroup/OVANet/blob/HEAD/data_loader/get_loader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9f5714078503b766"}},{"code_sha256_prefix":"c34f764aa367c56c","entry":"get_model_mme","repo":"VisionLearningGroup/OVANet","repo_kind":"official","path":"utils/utils.py","file_url":"https://github.com/VisionLearningGroup/OVANet/blob/HEAD/utils/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c34f764aa367c56c"}},{"code_sha256_prefix":"aa66984f3b0d98e3","entry":"inv_lr_scheduler","repo":"VisionLearningGroup/OVANet","repo_kind":"official","path":"utils/lr_schedule.py","file_url":"https://github.com/VisionLearningGroup/OVANet/blob/HEAD/utils/lr_schedule.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"aa66984f3b0d98e3"}},{"code_sha256_prefix":"e5fe84875f47cd9b","entry":"load_model","repo":"VisionLearningGroup/OVANet","repo_kind":"official","path":"utils/utils.py","file_url":"https://github.com/VisionLearningGroup/OVANet/blob/HEAD/utils/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e5fe84875f47cd9b"}},{"code_sha256_prefix":"3ef6fcb67669d5c8","entry":"log_set","repo":"VisionLearningGroup/OVANet","repo_kind":"official","path":"utils/utils.py","file_url":"https://github.com/VisionLearningGroup/OVANet/blob/HEAD/utils/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3ef6fcb67669d5c8"}},{"code_sha256_prefix":"d90e54cc28eb9dba","entry":"make_dataset","repo":"VisionLearningGroup/OVANet","repo_kind":"official","path":"data_loader/mydataset.py","file_url":"https://github.com/VisionLearningGroup/OVANet/blob/HEAD/data_loader/mydataset.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d90e54cc28eb9dba"}},{"code_sha256_prefix":"62e430d298d27ab3","entry":"open_entropy","repo":"VisionLearningGroup/OVANet","repo_kind":"official","path":"utils/loss.py","file_url":"https://github.com/VisionLearningGroup/OVANet/blob/HEAD/utils/loss.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"62e430d298d27ab3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}