{"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/learning-anchored-unsigned-distance-functions","title":"Learning Anchored Unsigned Distance Functions with Gradient Direction Alignment for Single-view Garment Reconstruction","arxiv_id":"2108.08478","date":"2021-08-19","proceeding":"ICCV 2021 10","authors":["Fang Zhao","Wenhao Wang","Shengcai Liao","Ling Shao"],"abstract":"While single-view 3D reconstruction has made significant progress benefiting from deep shape representations in recent years, garment reconstruction is still not solved well due to open surfaces, diverse topologies and complex geometric details. In this paper, we propose a novel learnable Anchored Unsigned Distance Function (AnchorUDF) representation for 3D garment reconstruction from a single image. AnchorUDF represents 3D shapes by predicting unsigned distance fields (UDFs) to enable open garment surface modeling at arbitrary resolution. To capture diverse garment topologies, AnchorUDF not only computes pixel-aligned local image features of query points, but also leverages a set of anchor points located around the surface to enrich 3D position features for query points, which provides stronger 3D space context for the distance function. Furthermore, in order to obtain more accurate point projection direction at inference, we explicitly align the spatial gradient direction of AnchorUDF with the ground-truth direction to the surface during training. Extensive experiments on two public 3D garment datasets, i.e., MGN and Deep Fashion3D, demonstrate that AnchorUDF achieves the state-of-the-art performance on single-view garment reconstruction.","url_abs":"https://arxiv.org/abs/2108.08478v2","url_pdf":"https://arxiv.org/pdf/2108.08478v2.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":"learning-anchored-unsigned-distance-functions","repo_url":"https://github.com/zhaofang0627/anchorudf","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"3d-reconstruction","task_name":"3D Reconstruction"},{"task_slug":"garment-reconstruction","task_name":"Garment Reconstruction"},{"task_slug":"single-view-3d-reconstruction","task_name":"Single-View 3D Reconstruction"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2108.08478","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2108.08478"}},"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/zhaofang0627/anchorudf","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":3,"unverified":15},"by_repo_kind":{"official":{"samples":18,"ran":3,"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":"87e822f4bcfbdac7","entry":"divergence","repo":"zhaofang0627/anchorudf","repo_kind":"official","path":"lib/diff_operators.py","file_url":"https://github.com/zhaofang0627/anchorudf/blob/HEAD/lib/diff_operators.py","link_basis":"plan_row","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":"87e822f4bcfbdac7"}},{"code_sha256_prefix":"fd089b9f4b8749ab","entry":"hessian","repo":"zhaofang0627/anchorudf","repo_kind":"official","path":"lib/diff_operators.py","file_url":"https://github.com/zhaofang0627/anchorudf/blob/HEAD/lib/diff_operators.py","link_basis":"plan_row","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":"fd089b9f4b8749ab"}},{"code_sha256_prefix":"a2be4be6558869af","entry":"laplace","repo":"zhaofang0627/anchorudf","repo_kind":"official","path":"lib/diff_operators.py","file_url":"https://github.com/zhaofang0627/anchorudf/blob/HEAD/lib/diff_operators.py","link_basis":"plan_row","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":"a2be4be6558869af"}},{"code_sha256_prefix":"c909dbba49acbe18","entry":"adjust_learning_rate","repo":"zhaofang0627/anchorudf","repo_kind":"official","path":"lib/net_util.py","file_url":"https://github.com/zhaofang0627/anchorudf/blob/HEAD/lib/net_util.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":"c909dbba49acbe18"}},{"code_sha256_prefix":"1c425b0d9e08d0c3","entry":"batch_eval","repo":"zhaofang0627/anchorudf","repo_kind":"official","path":"lib/sdf.py","file_url":"https://github.com/zhaofang0627/anchorudf/blob/HEAD/lib/sdf.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":"1c425b0d9e08d0c3"}},{"code_sha256_prefix":"190c784e12e69338","entry":"create_grid","repo":"zhaofang0627/anchorudf","repo_kind":"official","path":"lib/sdf.py","file_url":"https://github.com/zhaofang0627/anchorudf/blob/HEAD/lib/sdf.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":"190c784e12e69338"}},{"code_sha256_prefix":"30b375d99e7c6628","entry":"create_grid_points_from_bounds","repo":"zhaofang0627/anchorudf","repo_kind":"official","path":"lib/mesh_util.py","file_url":"https://github.com/zhaofang0627/anchorudf/blob/HEAD/lib/mesh_util.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":"30b375d99e7c6628"}},{"code_sha256_prefix":"2e4f8c7dfe5817f0","entry":"eval_grid","repo":"zhaofang0627/anchorudf","repo_kind":"official","path":"lib/sdf.py","file_url":"https://github.com/zhaofang0627/anchorudf/blob/HEAD/lib/sdf.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":"2e4f8c7dfe5817f0"}},{"code_sha256_prefix":"add73ec2e2c2eccb","entry":"get_verts_rgb_colors","repo":"zhaofang0627/anchorudf","repo_kind":"official","path":"lib/colab_util.py","file_url":"https://github.com/zhaofang0627/anchorudf/blob/HEAD/lib/colab_util.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":"add73ec2e2c2eccb"}},{"code_sha256_prefix":"9e75a53ec16ff31a","entry":"index","repo":"zhaofang0627/anchorudf","repo_kind":"official","path":"lib/geometry.py","file_url":"https://github.com/zhaofang0627/anchorudf/blob/HEAD/lib/geometry.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":"9e75a53ec16ff31a"}},{"code_sha256_prefix":"c923c46cac70f2c7","entry":"orthogonal","repo":"zhaofang0627/anchorudf","repo_kind":"official","path":"lib/geometry.py","file_url":"https://github.com/zhaofang0627/anchorudf/blob/HEAD/lib/geometry.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":"c923c46cac70f2c7"}},{"code_sha256_prefix":"77c9954623b479a9","entry":"perspective","repo":"zhaofang0627/anchorudf","repo_kind":"official","path":"lib/geometry.py","file_url":"https://github.com/zhaofang0627/anchorudf/blob/HEAD/lib/geometry.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":"77c9954623b479a9"}},{"code_sha256_prefix":"fa0763997c45084b","entry":"reconstruction","repo":"zhaofang0627/anchorudf","repo_kind":"official","path":"lib/mesh_util.py","file_url":"https://github.com/zhaofang0627/anchorudf/blob/HEAD/lib/mesh_util.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":"fa0763997c45084b"}},{"code_sha256_prefix":"6105ec53e0ac47ed","entry":"reconstruction_anchor","repo":"zhaofang0627/anchorudf","repo_kind":"official","path":"lib/mesh_util.py","file_url":"https://github.com/zhaofang0627/anchorudf/blob/HEAD/lib/mesh_util.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":"6105ec53e0ac47ed"}},{"code_sha256_prefix":"4cf11c5a14b1f039","entry":"reshape_multiview_tensors","repo":"zhaofang0627/anchorudf","repo_kind":"official","path":"lib/net_util.py","file_url":"https://github.com/zhaofang0627/anchorudf/blob/HEAD/lib/net_util.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":"4cf11c5a14b1f039"}},{"code_sha256_prefix":"79509ef34e0af8e4","entry":"reshape_sample_tensor","repo":"zhaofang0627/anchorudf","repo_kind":"official","path":"lib/net_util.py","file_url":"https://github.com/zhaofang0627/anchorudf/blob/HEAD/lib/net_util.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":"79509ef34e0af8e4"}},{"code_sha256_prefix":"757063dc19881fa9","entry":"save_samples_rgb","repo":"zhaofang0627/anchorudf","repo_kind":"official","path":"lib/sample_util.py","file_url":"https://github.com/zhaofang0627/anchorudf/blob/HEAD/lib/sample_util.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":"757063dc19881fa9"}},{"code_sha256_prefix":"d9c92c86878b41e7","entry":"save_samples_truncted_prob","repo":"zhaofang0627/anchorudf","repo_kind":"official","path":"lib/sample_util.py","file_url":"https://github.com/zhaofang0627/anchorudf/blob/HEAD/lib/sample_util.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":"d9c92c86878b41e7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}