{"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/nero-neural-geometry-and-brdf-reconstruction","title":"NeRO: Neural Geometry and BRDF Reconstruction of Reflective Objects from Multiview Images","arxiv_id":"2305.17398","date":"2023-05-27","proceeding":null,"authors":["YuAn Liu","Peng Wang","Cheng Lin","Xiaoxiao Long","Jiepeng Wang","Lingjie Liu","Taku Komura","Wenping Wang"],"abstract":"We present a neural rendering-based method called NeRO for reconstructing the geometry and the BRDF of reflective objects from multiview images captured in an unknown environment. Multiview reconstruction of reflective objects is extremely challenging because specular reflections are view-dependent and thus violate the multiview consistency, which is the cornerstone for most multiview reconstruction methods. Recent neural rendering techniques can model the interaction between environment lights and the object surfaces to fit the view-dependent reflections, thus making it possible to reconstruct reflective objects from multiview images. However, accurately modeling environment lights in the neural rendering is intractable, especially when the geometry is unknown. Most existing neural rendering methods, which can model environment lights, only consider direct lights and rely on object masks to reconstruct objects with weak specular reflections. Therefore, these methods fail to reconstruct reflective objects, especially when the object mask is not available and the object is illuminated by indirect lights. We propose a two-step approach to tackle this problem. First, by applying the split-sum approximation and the integrated directional encoding to approximate the shading effects of both direct and indirect lights, we are able to accurately reconstruct the geometry of reflective objects without any object masks. Then, with the object geometry fixed, we use more accurate sampling to recover the environment lights and the BRDF of the object. Extensive experiments demonstrate that our method is capable of accurately reconstructing the geometry and the BRDF of reflective objects from only posed RGB images without knowing the environment lights and the object masks. Codes and datasets are available at https://github.com/liuyuan-pal/NeRO.","url_abs":"https://arxiv.org/abs/2305.17398v1","url_pdf":"https://arxiv.org/pdf/2305.17398v1.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":"nero-neural-geometry-and-brdf-reconstruction","repo_url":"https://github.com/liuyuan-pal/nero","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"neural-rendering","task_name":"Neural Rendering"},{"task_slug":"object","task_name":"Object"}],"methods":[{"method_slug":"fail","method_name":"fail"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2305.17398","atlas_url":"https://app.syntology.ai/?focus=2305.17398","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2305.17398"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/liuyuan-pal/nero","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":2,"ran":1,"ran_honours":1,"unverified":7},"by_repo_kind":{"official":{"samples":11,"ran":4,"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":"bb0e12df9c0d2a05","entry":"get_embedder","repo":"liuyuan-pal/nero","repo_kind":"official","path":"network/field.py","file_url":"https://github.com/liuyuan-pal/nero/blob/HEAD/network/field.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bb0e12df9c0d2a05"}},{"code_sha256_prefix":"c33bff4fa6509334","entry":"read_cameras_binary","repo":"liuyuan-pal/nero","repo_kind":"official","path":"colmap/read_write_model.py","file_url":"https://github.com/liuyuan-pal/nero/blob/HEAD/colmap/read_write_model.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":"c33bff4fa6509334"}},{"code_sha256_prefix":"8a38e306ff4c5b42","entry":"read_cameras_text","repo":"liuyuan-pal/nero","repo_kind":"official","path":"colmap/read_write_model.py","file_url":"https://github.com/liuyuan-pal/nero/blob/HEAD/colmap/read_write_model.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":"8a38e306ff4c5b42"}},{"code_sha256_prefix":"56858e04e6fdb2ff","entry":"read_next_bytes","repo":"liuyuan-pal/nero","repo_kind":"official","path":"colmap/read_write_model.py","file_url":"https://github.com/liuyuan-pal/nero/blob/HEAD/colmap/read_write_model.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"56858e04e6fdb2ff"}},{"code_sha256_prefix":"cfa1ef5be4f8b72c","entry":"compute_psnr","repo":"liuyuan-pal/nero","repo_kind":"official","path":"network/metrics.py","file_url":"https://github.com/liuyuan-pal/nero/blob/HEAD/network/metrics.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":"cfa1ef5be4f8b72c"}},{"code_sha256_prefix":"a8a864937e6cf4f5","entry":"contract","repo":"liuyuan-pal/nero","repo_kind":"official","path":"extract_materials_texture_map.py","file_url":"https://github.com/liuyuan-pal/nero/blob/HEAD/extract_materials_texture_map.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":"a8a864937e6cf4f5"}},{"code_sha256_prefix":"5bafb07cf764fb7b","entry":"get_camera_plane_intersection","repo":"liuyuan-pal/nero","repo_kind":"official","path":"network/field.py","file_url":"https://github.com/liuyuan-pal/nero/blob/HEAD/network/field.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":"5bafb07cf764fb7b"}},{"code_sha256_prefix":"6aed22120c801961","entry":"imgs_info_slice","repo":"liuyuan-pal/nero","repo_kind":"official","path":"network/renderer.py","file_url":"https://github.com/liuyuan-pal/nero/blob/HEAD/network/renderer.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":"6aed22120c801961"}},{"code_sha256_prefix":"9644c3fa80fbd2d2","entry":"imgs_info_to_torch","repo":"liuyuan-pal/nero","repo_kind":"official","path":"network/renderer.py","file_url":"https://github.com/liuyuan-pal/nero/blob/HEAD/network/renderer.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":"9644c3fa80fbd2d2"}},{"code_sha256_prefix":"a51c8f2eb208a410","entry":"make_predictor","repo":"liuyuan-pal/nero","repo_kind":"official","path":"network/field.py","file_url":"https://github.com/liuyuan-pal/nero/blob/HEAD/network/field.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":"a51c8f2eb208a410"}},{"code_sha256_prefix":"23b1ffc134d29286","entry":"nearest_dist","repo":"liuyuan-pal/nero","repo_kind":"official","path":"eval_synthetic_shape.py","file_url":"https://github.com/liuyuan-pal/nero/blob/HEAD/eval_synthetic_shape.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":"23b1ffc134d29286"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}