{"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/seflow-a-self-supervised-scene-flow-method-in","title":"SeFlow: A Self-Supervised Scene Flow Method in Autonomous Driving","arxiv_id":"2407.01702","date":"2024-07-01","proceeding":null,"authors":["Qingwen Zhang","Yi Yang","Peizheng Li","Olov Andersson","Patric Jensfelt"],"abstract":"Scene flow estimation predicts the 3D motion at each point in successive LiDAR scans. This detailed, point-level, information can help autonomous vehicles to accurately predict and understand dynamic changes in their surroundings. Current state-of-the-art methods require annotated data to train scene flow networks and the expense of labeling inherently limits their scalability. Self-supervised approaches can overcome the above limitations, yet face two principal challenges that hinder optimal performance: point distribution imbalance and disregard for object-level motion constraints. In this paper, we propose SeFlow, a self-supervised method that integrates efficient dynamic classification into a learning-based scene flow pipeline. We demonstrate that classifying static and dynamic points helps design targeted objective functions for different motion patterns. We also emphasize the importance of internal cluster consistency and correct object point association to refine the scene flow estimation, in particular on object details. Our real-time capable method achieves state-of-the-art performance on the self-supervised scene flow task on Argoverse 2 and Waymo datasets. The code is open-sourced at https://github.com/KTH-RPL/SeFlow along with trained model weights.","url_abs":"https://arxiv.org/abs/2407.01702v2","url_pdf":"https://arxiv.org/pdf/2407.01702v2.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":"seflow-a-self-supervised-scene-flow-method-in","repo_url":"https://github.com/kth-rpl/deflow","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"paper_slug":"seflow-a-self-supervised-scene-flow-method-in","repo_url":"https://github.com/kth-rpl/seflow","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"tasks":[{"task_slug":"autonomous-driving","task_name":"Autonomous Driving"},{"task_slug":"autonomous-vehicles","task_name":"Autonomous Vehicles"},{"task_slug":"object","task_name":"Object"},{"task_slug":"scene-flow-estimation","task_name":"Scene Flow Estimation"},{"task_slug":"self-supervised-scene-flow-estimation","task_name":"Self-supervised Scene Flow Estimation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/scene-flow-estimation-on-argoverse-2","task":"Scene Flow Estimation","dataset":"Argoverse 2","model":"SeFlow","rank_in_archive_order":3,"of":7,"metrics":{"EPE 3-Way":"0.048590","EPE Background Static":"0.005990","EPE Foreground Dynamic":"0.121375","EPE Foreground Static":"0.018404"},"uses_additional_data":false},{"leaderboard":"/sota/self-supervised-scene-flow-estimation-on-1","task":"Self-supervised Scene Flow Estimation","dataset":"Argoverse 2","model":"SeFlow","rank_in_archive_order":1,"of":6,"metrics":{"EPE 3-Way":"0.048590","EPE Background Static":"0.005990","EPE Foreground Dynamic":"0.121375","EPE Foreground Static":"0.018404"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2407.01702","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2407.01702"}},"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/kth-rpl/seflow","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/kth-rpl/deflow","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/KTH-RPL/SeFlow","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"summary":{"unverified":2},"by_repo_kind":{"official":{"samples":2,"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":"133aec51ee5b1a44","entry":"deflowLoss","repo":"KTH-RPL/SeFlow","repo_kind":"official","path":"lossfunc.py","file_url":"https://github.com/KTH-RPL/SeFlow/blob/HEAD/lossfunc.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"133aec51ee5b1a44"}},{"code_sha256_prefix":"82ca3787fafa7371","entry":"zeroflowLoss","repo":"KTH-RPL/SeFlow","repo_kind":"official","path":"lossfunc.py","file_url":"https://github.com/KTH-RPL/SeFlow/blob/HEAD/lossfunc.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"82ca3787fafa7371"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}