{"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/multi-body-neural-scene-flow","title":"Multi-Body Neural Scene Flow","arxiv_id":"2310.10301","date":"2023-10-16","proceeding":null,"authors":["Kavisha Vidanapathirana","Shin-Fang Chng","Xueqian Li","Simon Lucey"],"abstract":"The test-time optimization of scene flow - using a coordinate network as a neural prior - has gained popularity due to its simplicity, lack of dataset bias, and state-of-the-art performance. We observe, however, that although coordinate networks capture general motions by implicitly regularizing the scene flow predictions to be spatially smooth, the neural prior by itself is unable to identify the underlying multi-body rigid motions present in real-world data. To address this, we show that multi-body rigidity can be achieved without the cumbersome and brittle strategy of constraining the $SE(3)$ parameters of each rigid body as done in previous works. This is achieved by regularizing the scene flow optimization to encourage isometry in flow predictions for rigid bodies. This strategy enables multi-body rigidity in scene flow while maintaining a continuous flow field, hence allowing dense long-term scene flow integration across a sequence of point clouds. We conduct extensive experiments on real-world datasets and demonstrate that our approach outperforms the state-of-the-art in 3D scene flow and long-term point-wise 4D trajectory prediction. The code is available at: https://github.com/kavisha725/MBNSF.","url_abs":"https://arxiv.org/abs/2310.10301v2","url_pdf":"https://arxiv.org/pdf/2310.10301v2.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":"multi-body-neural-scene-flow","repo_url":"https://github.com/kavisha725/MBNSF","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"scene-flow-estimation","task_name":"Scene Flow Estimation"},{"task_slug":"trajectory-prediction","task_name":"Trajectory Prediction"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2310.10301","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2310.10301"}},"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/kavisha725/MBNSF","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":6,"unverified":6},"by_repo_kind":{"official":{"samples":12,"ran":6,"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":"caf66f7bb746a711","entry":"cosine_embed","repo":"kavisha725/MBNSF","repo_kind":"official","path":"utils/ntp_utils.py","file_url":"https://github.com/kavisha725/MBNSF/blob/HEAD/utils/ntp_utils.py","link_basis":"first_harvest_node","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":"caf66f7bb746a711"}},{"code_sha256_prefix":"036a140dfffe90bc","entry":"get_traj_field","repo":"kavisha725/MBNSF","repo_kind":"official","path":"utils/ntp_utils.py","file_url":"https://github.com/kavisha725/MBNSF/blob/HEAD/utils/ntp_utils.py","link_basis":"first_harvest_node","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":"036a140dfffe90bc"}},{"code_sha256_prefix":"969455f252a25534","entry":"scene_flow_metrics","repo":"kavisha725/MBNSF","repo_kind":"official","path":"utils/general_utils.py","file_url":"https://github.com/kavisha725/MBNSF/blob/HEAD/utils/general_utils.py","link_basis":"first_harvest_node","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":"969455f252a25534"}},{"code_sha256_prefix":"67224b656a170799","entry":"sf_solver","repo":"kavisha725/MBNSF","repo_kind":"official","path":"scene_flow_estimation/nsfp_pp.py","file_url":"https://github.com/kavisha725/MBNSF/blob/HEAD/scene_flow_estimation/nsfp_pp.py","link_basis":"first_harvest_node","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":"67224b656a170799"}},{"code_sha256_prefix":"6b806ae3af1268c5","entry":"traj_metrics","repo":"kavisha725/MBNSF","repo_kind":"official","path":"utils/general_utils.py","file_url":"https://github.com/kavisha725/MBNSF/blob/HEAD/utils/general_utils.py","link_basis":"first_harvest_node","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":"6b806ae3af1268c5"}},{"code_sha256_prefix":"85b08c63d92867c0","entry":"traj_metrics_without_table","repo":"kavisha725/MBNSF","repo_kind":"official","path":"trajectory_estimation/compute_traj_metrics.py","file_url":"https://github.com/kavisha725/MBNSF/blob/HEAD/trajectory_estimation/compute_traj_metrics.py","link_basis":"first_harvest_node","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":"85b08c63d92867c0"}},{"code_sha256_prefix":"cf23d4d369e93346","entry":"fit_scene_flow_pp","repo":"kavisha725/MBNSF","repo_kind":"official","path":"scene_flow_estimation/nsfp_pp.py","file_url":"https://github.com/kavisha725/MBNSF/blob/HEAD/scene_flow_estimation/nsfp_pp.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":"cf23d4d369e93346"}},{"code_sha256_prefix":"2558f5ce25304754","entry":"fit_sequence_of_scene_flow_field","repo":"kavisha725/MBNSF","repo_kind":"official","path":"scene_flow_estimation/nsfp.py","file_url":"https://github.com/kavisha725/MBNSF/blob/HEAD/scene_flow_estimation/nsfp.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":"2558f5ce25304754"}},{"code_sha256_prefix":"caf620f2d43d43eb","entry":"fit_sequence_of_scene_flow_field","repo":"kavisha725/MBNSF","repo_kind":"official","path":"trajectory_estimation/nsfp_fe.py","file_url":"https://github.com/kavisha725/MBNSF/blob/HEAD/trajectory_estimation/nsfp_fe.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":"caf620f2d43d43eb"}},{"code_sha256_prefix":"d6e05865181a8e8f","entry":"load_test_traj","repo":"kavisha725/MBNSF","repo_kind":"official","path":"trajectory_estimation/compute_traj_metrics.py","file_url":"https://github.com/kavisha725/MBNSF/blob/HEAD/trajectory_estimation/compute_traj_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":"d6e05865181a8e8f"}},{"code_sha256_prefix":"5fbd11097a448f5b","entry":"sceneflow_deep_prior","repo":"kavisha725/MBNSF","repo_kind":"official","path":"scene_flow_estimation/nsfp.py","file_url":"https://github.com/kavisha725/MBNSF/blob/HEAD/scene_flow_estimation/nsfp.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":"5fbd11097a448f5b"}},{"code_sha256_prefix":"b96671849dc9951e","entry":"sceneflow_deep_prior","repo":"kavisha725/MBNSF","repo_kind":"official","path":"trajectory_estimation/nsfp_fe.py","file_url":"https://github.com/kavisha725/MBNSF/blob/HEAD/trajectory_estimation/nsfp_fe.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":"b96671849dc9951e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}