{"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/who-left-the-dogs-out-3d-animal","title":"Who Left the Dogs Out? 3D Animal Reconstruction with Expectation Maximization in the Loop","arxiv_id":"2007.11110","date":"2020-07-21","proceeding":"ECCV 2020 8","authors":["Benjamin Biggs","Oliver Boyne","James Charles","Andrew Fitzgibbon","Roberto Cipolla"],"abstract":"We introduce an automatic, end-to-end method for recovering the 3D pose and shape of dogs from monocular internet images. The large variation in shape between dog breeds, significant occlusion and low quality of internet images makes this a challenging problem. We learn a richer prior over shapes than previous work, which helps regularize parameter estimation. We demonstrate results on the Stanford Dog dataset, an 'in the wild' dataset of 20,580 dog images for which we have collected 2D joint and silhouette annotations to split for training and evaluation. In order to capture the large shape variety of dogs, we show that the natural variation in the 2D dataset is enough to learn a detailed 3D prior through expectation maximization (EM). As a by-product of training, we generate a new parameterized model (including limb scaling) SMBLD which we release alongside our new annotation dataset StanfordExtra to the research community.","url_abs":"https://arxiv.org/abs/2007.11110v2","url_pdf":"https://arxiv.org/pdf/2007.11110v2.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":"who-left-the-dogs-out-3d-animal","repo_url":"https://github.com/benjiebob/WLDO","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"who-left-the-dogs-out-3d-animal","repo_url":"https://github.com/benjiebob/StanfordExtra","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"parameter-estimation","task_name":"parameter estimation"}],"methods":[],"datasets_introduced":[{"slug":"stanfordextra","name":"StanfordExtra","full_name":""}],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2007.11110","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2007.11110"}},"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/benjiebob/StanfordExtra","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/benjiebob/WLDO","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":14},"by_repo_kind":{"official":{"samples":14,"ran":0,"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":"0c9c013792e355be","entry":"align_smal_template_to_symmetry_axis","repo":"benjiebob/WLDO","repo_kind":"official","path":"global_utils/smal_model/smal_basics.py","file_url":"https://github.com/benjiebob/WLDO/blob/HEAD/global_utils/smal_model/smal_basics.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":"0c9c013792e355be"}},{"code_sha256_prefix":"1d796eb9e4982269","entry":"batch_lrotmin","repo":"benjiebob/WLDO","repo_kind":"official","path":"global_utils/smal_model/batch_lbs.py","file_url":"https://github.com/benjiebob/WLDO/blob/HEAD/global_utils/smal_model/batch_lbs.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":"1d796eb9e4982269"}},{"code_sha256_prefix":"21a30886f57a5802","entry":"batch_rodrigues","repo":"benjiebob/WLDO","repo_kind":"official","path":"global_utils/smal_model/batch_lbs.py","file_url":"https://github.com/benjiebob/WLDO/blob/HEAD/global_utils/smal_model/batch_lbs.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":"21a30886f57a5802"}},{"code_sha256_prefix":"b81ca5c432498374","entry":"batch_skew","repo":"benjiebob/WLDO","repo_kind":"official","path":"global_utils/smal_model/batch_lbs.py","file_url":"https://github.com/benjiebob/WLDO/blob/HEAD/global_utils/smal_model/batch_lbs.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":"b81ca5c432498374"}},{"code_sha256_prefix":"39b0a6e785727a7f","entry":"crop","repo":"benjiebob/WLDO","repo_kind":"official","path":"dataset_dogs/imutils.py","file_url":"https://github.com/benjiebob/WLDO/blob/HEAD/dataset_dogs/imutils.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":"39b0a6e785727a7f"}},{"code_sha256_prefix":"483c5935ef25b6f6","entry":"fc","repo":"benjiebob/WLDO","repo_kind":"official","path":"global_utils/nnutils/net_blocks.py","file_url":"https://github.com/benjiebob/WLDO/blob/HEAD/global_utils/nnutils/net_blocks.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":"483c5935ef25b6f6"}},{"code_sha256_prefix":"e59492399c2004d7","entry":"fc_stack","repo":"benjiebob/WLDO","repo_kind":"official","path":"global_utils/nnutils/net_blocks.py","file_url":"https://github.com/benjiebob/WLDO/blob/HEAD/global_utils/nnutils/net_blocks.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":"e59492399c2004d7"}},{"code_sha256_prefix":"989712660a666ac2","entry":"fc_stack_dropout","repo":"benjiebob/WLDO","repo_kind":"official","path":"global_utils/nnutils/net_blocks.py","file_url":"https://github.com/benjiebob/WLDO/blob/HEAD/global_utils/nnutils/net_blocks.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":"989712660a666ac2"}},{"code_sha256_prefix":"2168db1f5afbcd0d","entry":"get_transform","repo":"benjiebob/WLDO","repo_kind":"official","path":"dataset_dogs/imutils.py","file_url":"https://github.com/benjiebob/WLDO/blob/HEAD/dataset_dogs/imutils.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":"2168db1f5afbcd0d"}},{"code_sha256_prefix":"f9548c1b509ad9a7","entry":"quaternion_to_angle_axis","repo":"benjiebob/WLDO","repo_kind":"official","path":"global_utils/helpers/conversions.py","file_url":"https://github.com/benjiebob/WLDO/blob/HEAD/global_utils/helpers/conversions.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":"f9548c1b509ad9a7"}},{"code_sha256_prefix":"d2992f12dee5e69c","entry":"rotation_matrix_to_angle_axis","repo":"benjiebob/WLDO","repo_kind":"official","path":"global_utils/helpers/conversions.py","file_url":"https://github.com/benjiebob/WLDO/blob/HEAD/global_utils/helpers/conversions.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":"d2992f12dee5e69c"}},{"code_sha256_prefix":"b1dfd3e4636103d1","entry":"rotation_matrix_to_quaternion","repo":"benjiebob/WLDO","repo_kind":"official","path":"global_utils/helpers/conversions.py","file_url":"https://github.com/benjiebob/WLDO/blob/HEAD/global_utils/helpers/conversions.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":"b1dfd3e4636103d1"}},{"code_sha256_prefix":"44ec83c302f6a44b","entry":"transform","repo":"benjiebob/WLDO","repo_kind":"official","path":"dataset_dogs/imutils.py","file_url":"https://github.com/benjiebob/WLDO/blob/HEAD/dataset_dogs/imutils.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":"44ec83c302f6a44b"}},{"code_sha256_prefix":"e24744b154d5aa09","entry":"undo_chumpy","repo":"benjiebob/WLDO","repo_kind":"official","path":"global_utils/smal_model/smal_torch.py","file_url":"https://github.com/benjiebob/WLDO/blob/HEAD/global_utils/smal_model/smal_torch.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":"e24744b154d5aa09"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}