{"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/inverse-rendering-for-complex-indoor-scenes","title":"Inverse Rendering for Complex Indoor Scenes: Shape, Spatially-Varying Lighting and SVBRDF from a Single Image","arxiv_id":"1905.02722","date":"2019-05-07","proceeding":"CVPR 2020 6","authors":["Zhengqin Li","Mohammad Shafiei","Ravi Ramamoorthi","Kalyan Sunkavalli","Manmohan Chandraker"],"abstract":"We propose a deep inverse rendering framework for indoor scenes. From a single RGB image of an arbitrary indoor scene, we create a complete scene reconstruction, estimating shape, spatially-varying lighting, and spatially-varying, non-Lambertian surface reflectance. To train this network, we augment the SUNCG indoor scene dataset with real-world materials and render them with a fast, high-quality, physically-based GPU renderer to create a large-scale, photorealistic indoor dataset. Our inverse rendering network incorporates physical insights -- including a spatially-varying spherical Gaussian lighting representation, a differentiable rendering layer to model scene appearance, a cascade structure to iteratively refine the predictions and a bilateral solver for refinement -- allowing us to jointly reason about shape, lighting, and reflectance. Experiments show that our framework outperforms previous methods for estimating individual scene components, which also enables various novel applications for augmented reality, such as photorealistic object insertion and material editing. Code and data will be made publicly available.","url_abs":"https://arxiv.org/abs/1905.02722v1","url_pdf":"https://arxiv.org/pdf/1905.02722v1.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":"inverse-rendering-for-complex-indoor-scenes","repo_url":"https://github.com/lzqsd/InverseRenderingOfIndoorScene","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":null,"task_name":"GPU"},{"task_slug":"inverse-rendering","task_name":"Inverse Rendering"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1905.02722","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1905.02722"}},"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/lzqsd/InverseRenderingOfIndoorScene","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":3,"unverified":4},"by_repo_kind":{"official":{"samples":7,"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":"04c4101fccb5c55b","entry":"get_valid_idx","repo":"lzqsd/InverseRenderingOfIndoorScene","repo_kind":"official","path":"BilateralGrid.py","file_url":"https://github.com/lzqsd/InverseRenderingOfIndoorScene/blob/HEAD/BilateralGrid.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":"04c4101fccb5c55b"}},{"code_sha256_prefix":"ec22a04e890fb286","entry":"rgb2yuv","repo":"lzqsd/InverseRenderingOfIndoorScene","repo_kind":"official","path":"BilateralGrid.py","file_url":"https://github.com/lzqsd/InverseRenderingOfIndoorScene/blob/HEAD/BilateralGrid.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ec22a04e890fb286"}},{"code_sha256_prefix":"5d9850cf710de517","entry":"yuv2rgb","repo":"lzqsd/InverseRenderingOfIndoorScene","repo_kind":"official","path":"BilateralGrid.py","file_url":"https://github.com/lzqsd/InverseRenderingOfIndoorScene/blob/HEAD/BilateralGrid.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5d9850cf710de517"}},{"code_sha256_prefix":"8ca1216758404176","entry":"BatchRankingLoss","repo":"lzqsd/InverseRenderingOfIndoorScene","repo_kind":"official","path":"models.py","file_url":"https://github.com/lzqsd/InverseRenderingOfIndoorScene/blob/HEAD/models.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":"8ca1216758404176"}},{"code_sha256_prefix":"a3d957748a35ddcc","entry":"LSregress","repo":"lzqsd/InverseRenderingOfIndoorScene","repo_kind":"official","path":"models.py","file_url":"https://github.com/lzqsd/InverseRenderingOfIndoorScene/blob/HEAD/models.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":"a3d957748a35ddcc"}},{"code_sha256_prefix":"b9cc21870b03e16b","entry":"LSregressDiffSpec","repo":"lzqsd/InverseRenderingOfIndoorScene","repo_kind":"official","path":"models.py","file_url":"https://github.com/lzqsd/InverseRenderingOfIndoorScene/blob/HEAD/models.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":"b9cc21870b03e16b"}},{"code_sha256_prefix":"8a12b5688f68f4d8","entry":"compute_whdr","repo":"lzqsd/InverseRenderingOfIndoorScene","repo_kind":"official","path":"CompareWHDR.py","file_url":"https://github.com/lzqsd/InverseRenderingOfIndoorScene/blob/HEAD/CompareWHDR.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":"8a12b5688f68f4d8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}