{"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/few-shot-object-detection-and-viewpoint","title":"Few-Shot Object Detection and Viewpoint Estimation for Objects in the Wild","arxiv_id":"2007.12107","date":"2020-07-23","proceeding":"ECCV 2020 8","authors":["Yang Xiao","Vincent Lepetit","Renaud Marlet"],"abstract":"Detecting objects and estimating their viewpoints in images are key tasks of 3D scene understanding. Recent approaches have achieved excellent results on very large benchmarks for object detection and viewpoint estimation. However, performances are still lagging behind for novel object categories with few samples. In this paper, we tackle the problems of few-shot object detection and few-shot viewpoint estimation. We demonstrate on both tasks the benefits of guiding the network prediction with class-representative features extracted from data in different modalities: image patches for object detection, and aligned 3D models for viewpoint estimation. Despite its simplicity, our method outperforms state-of-the-art methods by a large margin on a range of datasets, including PASCAL and COCO for few-shot object detection, and Pascal3D+ and ObjectNet3D for few-shot viewpoint estimation. Furthermore, when the 3D model is not available, we introduce a simple category-agnostic viewpoint estimation method by exploiting geometrical similarities and consistent pose labelling across different classes. While it moderately reduces performance, this approach still obtains better results than previous methods in this setting. Last, for the first time, we tackle the combination of both few-shot tasks, on three challenging benchmarks for viewpoint estimation in the wild, ObjectNet3D, Pascal3D+ and Pix3D, showing very promising results.","url_abs":"https://arxiv.org/abs/2007.12107v2","url_pdf":"https://arxiv.org/pdf/2007.12107v2.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":"few-shot-object-detection-and-viewpoint","repo_url":"https://github.com/YoungXIAO13/FewShotDetection","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"few-shot-object-detection-and-viewpoint","repo_url":"https://github.com/YoungXIAO13/PoseContrast","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"few-shot-object-detection","task_name":"Few-Shot Object Detection"},{"task_slug":"meta-learning","task_name":"Meta-Learning"},{"task_slug":"object","task_name":"Object"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"scene-understanding","task_name":"Scene Understanding"},{"task_slug":"viewpoint-estimation","task_name":"Viewpoint Estimation"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/few-shot-object-detection-on-ms-coco-10-shot","task":"Few-Shot Object Detection","dataset":"MS-COCO (10-shot)","model":"FSDetView","rank_in_archive_order":21,"of":33,"metrics":{"AP":"12.5"},"uses_additional_data":false},{"leaderboard":"/sota/few-shot-object-detection-on-ms-coco-30-shot","task":"Few-Shot Object Detection","dataset":"MS-COCO (30-shot)","model":"FsDetView","rank_in_archive_order":17,"of":25,"metrics":{"AP":"14.7"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2007.12107","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2007.12107"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/YoungXIAO13/FewShotDetection","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/YoungXIAO13/PoseContrast","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":1,"unverified":16},"by_repo_kind":{"listed":{"samples":17,"ran":1,"repositories":2}},"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":"fac5364e2f53c6db","entry":"conv3x3","repo":"YoungXIAO13/PoseContrast","repo_kind":"listed","path":"src/model/resnet.py","file_url":"https://github.com/YoungXIAO13/PoseContrast/blob/HEAD/src/model/resnet.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fac5364e2f53c6db"}},{"code_sha256_prefix":"a265d6a3a1a77ecf","entry":"adjust_learning_rate","repo":"YoungXIAO13/PoseContrast","repo_kind":"listed","path":"src/model/model_utils.py","file_url":"https://github.com/YoungXIAO13/PoseContrast/blob/HEAD/src/model/model_utils.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":"a265d6a3a1a77ecf"}},{"code_sha256_prefix":"af5785faecdf4e41","entry":"cross_entropy_loss","repo":"YoungXIAO13/PoseContrast","repo_kind":"listed","path":"src/model/model_utils.py","file_url":"https://github.com/YoungXIAO13/PoseContrast/blob/HEAD/src/model/model_utils.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":"af5785faecdf4e41"}},{"code_sha256_prefix":"2a0d3950d39963bd","entry":"custom_eval","repo":"YoungXIAO13/FewShotDetection","repo_kind":"listed","path":"lib/datasets/custom_eval.py","file_url":"https://github.com/YoungXIAO13/FewShotDetection/blob/HEAD/lib/datasets/custom_eval.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":"2a0d3950d39963bd"}},{"code_sha256_prefix":"3be9228820b46ef3","entry":"get_imdb","repo":"YoungXIAO13/FewShotDetection","repo_kind":"listed","path":"lib/datasets/factory.py","file_url":"https://github.com/YoungXIAO13/FewShotDetection/blob/HEAD/lib/datasets/factory.py","link_basis":"plan_row","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":"3be9228820b46ef3"}},{"code_sha256_prefix":"57069fdc71bccf4c","entry":"get_logger","repo":"YoungXIAO13/PoseContrast","repo_kind":"listed","path":"src/utils/logger.py","file_url":"https://github.com/YoungXIAO13/PoseContrast/blob/HEAD/src/utils/logger.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":"57069fdc71bccf4c"}},{"code_sha256_prefix":"62f21bfe77ba9f57","entry":"get_pred_from_cls_output","repo":"YoungXIAO13/PoseContrast","repo_kind":"listed","path":"src/model/model_utils.py","file_url":"https://github.com/YoungXIAO13/PoseContrast/blob/HEAD/src/model/model_utils.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":"62f21bfe77ba9f57"}},{"code_sha256_prefix":"acb811bff3bed991","entry":"parse_rec","repo":"YoungXIAO13/FewShotDetection","repo_kind":"listed","path":"lib/datasets/custom_eval.py","file_url":"https://github.com/YoungXIAO13/FewShotDetection/blob/HEAD/lib/datasets/custom_eval.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":"acb811bff3bed991"}},{"code_sha256_prefix":"aa91699e68fcd5c4","entry":"process_viewpoint_label","repo":"YoungXIAO13/PoseContrast","repo_kind":"listed","path":"src/dataset/data_utils.py","file_url":"https://github.com/YoungXIAO13/PoseContrast/blob/HEAD/src/dataset/data_utils.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":"aa91699e68fcd5c4"}},{"code_sha256_prefix":"cc95c0207256a15f","entry":"random_crop","repo":"YoungXIAO13/PoseContrast","repo_kind":"listed","path":"src/dataset/data_utils.py","file_url":"https://github.com/YoungXIAO13/PoseContrast/blob/HEAD/src/dataset/data_utils.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":"cc95c0207256a15f"}},{"code_sha256_prefix":"37944fb141643143","entry":"resize_pad","repo":"YoungXIAO13/PoseContrast","repo_kind":"listed","path":"src/dataset/data_utils.py","file_url":"https://github.com/YoungXIAO13/PoseContrast/blob/HEAD/src/dataset/data_utils.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":"37944fb141643143"}},{"code_sha256_prefix":"4369c368bb8cfd3b","entry":"resnet18","repo":"YoungXIAO13/PoseContrast","repo_kind":"listed","path":"src/model/resnet.py","file_url":"https://github.com/YoungXIAO13/PoseContrast/blob/HEAD/src/model/resnet.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":"4369c368bb8cfd3b"}},{"code_sha256_prefix":"5b6600441e89b9dd","entry":"resnet34","repo":"YoungXIAO13/PoseContrast","repo_kind":"listed","path":"src/model/resnet.py","file_url":"https://github.com/YoungXIAO13/PoseContrast/blob/HEAD/src/model/resnet.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":"5b6600441e89b9dd"}},{"code_sha256_prefix":"8a015c012f507631","entry":"unique_boxes","repo":"YoungXIAO13/FewShotDetection","repo_kind":"listed","path":"lib/datasets/ds_utils.py","file_url":"https://github.com/YoungXIAO13/FewShotDetection/blob/HEAD/lib/datasets/ds_utils.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":"8a015c012f507631"}},{"code_sha256_prefix":"27f142a9eb53b71c","entry":"voc_ap","repo":"YoungXIAO13/FewShotDetection","repo_kind":"listed","path":"lib/datasets/custom_eval.py","file_url":"https://github.com/YoungXIAO13/FewShotDetection/blob/HEAD/lib/datasets/custom_eval.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":"27f142a9eb53b71c"}},{"code_sha256_prefix":"d3e019b11b709edb","entry":"xywh_to_xyxy","repo":"YoungXIAO13/FewShotDetection","repo_kind":"listed","path":"lib/datasets/ds_utils.py","file_url":"https://github.com/YoungXIAO13/FewShotDetection/blob/HEAD/lib/datasets/ds_utils.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":"d3e019b11b709edb"}},{"code_sha256_prefix":"a832e5017f504280","entry":"xyxy_to_xywh","repo":"YoungXIAO13/FewShotDetection","repo_kind":"listed","path":"lib/datasets/ds_utils.py","file_url":"https://github.com/YoungXIAO13/FewShotDetection/blob/HEAD/lib/datasets/ds_utils.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":"a832e5017f504280"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}