{"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/banet-bilateral-aggregation-network-for","title":"BANet: Bilateral Aggregation Network for Mobile Stereo Matching","arxiv_id":"2503.03259","date":"2025-03-05","proceeding":null,"authors":["Gangwei Xu","Jiaxin Liu","Xianqi Wang","Junda Cheng","Yong Deng","Jinliang Zang","Yurui Chen","Xin Yang"],"abstract":"State-of-the-art stereo matching methods typically use costly 3D convolutions to aggregate a full cost volume, but their computational demands make mobile deployment challenging. Directly applying 2D convolutions for cost aggregation often results in edge blurring, detail loss, and mismatches in textureless regions. Some complex operations, like deformable convolutions and iterative warping, can partially alleviate this issue; however, they are not mobile-friendly, limiting their deployment on mobile devices. In this paper, we present a novel bilateral aggregation network (BANet) for mobile stereo matching that produces high-quality results with sharp edges and fine details using only 2D convolutions. Specifically, we first separate the full cost volume into detailed and smooth volumes using a spatial attention map, then perform detailed and smooth aggregations accordingly, ultimately fusing both to obtain the final disparity map. Additionally, to accurately identify high-frequency detailed regions and low-frequency smooth/textureless regions, we propose a new scale-aware spatial attention module. Experimental results demonstrate that our BANet-2D significantly outperforms other mobile-friendly methods, achieving 35.3\\% higher accuracy on the KITTI 2015 leaderboard than MobileStereoNet-2D, with faster runtime on mobile devices. The extended 3D version, BANet-3D, achieves the highest accuracy among all real-time methods on high-end GPUs. Code: \\textcolor{magenta}{https://github.com/gangweiX/BANet}.","url_abs":"https://arxiv.org/abs/2503.03259v1","url_pdf":"https://arxiv.org/pdf/2503.03259v1.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":"banet-bilateral-aggregation-network-for","repo_url":"https://github.com/gangweix/banet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"stereo-matching-1","task_name":"Stereo Matching"}],"methods":[{"method_slug":"attention","method_name":"Attention"},{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2503.03259","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2503.03259"}},"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/gangweix/banet","reach":null}],"summary":{"ran":6,"ran_fixture":2,"unverified":3},"by_repo_kind":{"official":{"samples":11,"ran":8,"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":"d9b7d05cfc394d91","entry":"BasicConv","repo":"gangweix/banet","repo_kind":"official","path":"banet-2d/core/BANet.py","file_url":"https://github.com/gangweix/banet/blob/HEAD/banet-2d/core/BANet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d9b7d05cfc394d91"}},{"code_sha256_prefix":"c41758f60b0b985c","entry":"CostVolume","repo":"gangweix/banet","repo_kind":"official","path":"banet-2d/core/BANet.py","file_url":"https://github.com/gangweix/banet/blob/HEAD/banet-2d/core/BANet.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":"c41758f60b0b985c"}},{"code_sha256_prefix":"b5bd49ac496a49f3","entry":"DeconvLayer","repo":"gangweix/banet","repo_kind":"official","path":"banet-2d/core/BANet.py","file_url":"https://github.com/gangweix/banet/blob/HEAD/banet-2d/core/BANet.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":"b5bd49ac496a49f3"}},{"code_sha256_prefix":"9bee8980700a2041","entry":"Guided_Cost_Volume_Excitation","repo":"gangweix/banet","repo_kind":"official","path":"banet-2d/core/BANet.py","file_url":"https://github.com/gangweix/banet/blob/HEAD/banet-2d/core/BANet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9bee8980700a2041"}},{"code_sha256_prefix":"2d569dc98d2903d5","entry":"MobileV2Residual","repo":"gangweix/banet","repo_kind":"official","path":"banet-2d/core/BANet.py","file_url":"https://github.com/gangweix/banet/blob/HEAD/banet-2d/core/BANet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2d569dc98d2903d5"}},{"code_sha256_prefix":"40dda37e454c1200","entry":"SpatialAttention","repo":"gangweix/banet","repo_kind":"official","path":"banet-2d/core/BANet.py","file_url":"https://github.com/gangweix/banet/blob/HEAD/banet-2d/core/BANet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"40dda37e454c1200"}},{"code_sha256_prefix":"2f389e2fc94bcb90","entry":"context_upsample","repo":"gangweix/banet","repo_kind":"official","path":"banet-2d/core/BANet.py","file_url":"https://github.com/gangweix/banet/blob/HEAD/banet-2d/core/BANet.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2f389e2fc94bcb90"}},{"code_sha256_prefix":"cf8c770f19488cdf","entry":"disparity_regression","repo":"gangweix/banet","repo_kind":"official","path":"banet-2d/core/BANet.py","file_url":"https://github.com/gangweix/banet/blob/HEAD/banet-2d/core/BANet.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cf8c770f19488cdf"}},{"code_sha256_prefix":"5013ced1cdd79a0c","entry":"Aggregation","repo":"gangweix/banet","repo_kind":"official","path":"banet-2d/core/BANet.py","file_url":"https://github.com/gangweix/banet/blob/HEAD/banet-2d/core/BANet.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":"5013ced1cdd79a0c"}},{"code_sha256_prefix":"3b53e8c6d79b4736","entry":"BANet","repo":"gangweix/banet","repo_kind":"official","path":"banet-2d/core/BANet.py","file_url":"https://github.com/gangweix/banet/blob/HEAD/banet-2d/core/BANet.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":"3b53e8c6d79b4736"}},{"code_sha256_prefix":"61ac39817592a7bb","entry":"FeatureNet","repo":"gangweix/banet","repo_kind":"official","path":"banet-2d/core/BANet.py","file_url":"https://github.com/gangweix/banet/blob/HEAD/banet-2d/core/BANet.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":"61ac39817592a7bb"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}