{"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/srh-net-stacked-recurrent-hourglass-network","title":"SRH-Net: Stacked Recurrent Hourglass Network for Stereo Matching","arxiv_id":"2105.11587","date":"2021-05-25","proceeding":null,"authors":["Hongzhi Du","Yanyan Li","Yanbiao Sun","Jigui Zhu","Federico Tombari"],"abstract":"The cost aggregation strategy shows a crucial role in learning-based stereo matching tasks, where 3D convolutional filters obtain state of the art but require intensive computation resources, while 2D operations need less GPU memory but are sensitive to domain shift. In this paper, we decouple the 4D cubic cost volume used by 3D convolutional filters into sequential cost maps along the direction of disparity instead of dealing with it at once by exploiting a recurrent cost aggregation strategy. Furthermore, a novel recurrent module, Stacked Recurrent Hourglass (SRH), is proposed to process each cost map. Our hourglass network is constructed based on Gated Recurrent Units (GRUs) and down/upsampling layers, which provides GRUs larger receptive fields. Then two hourglass networks are stacked together, while multi-scale information is processed by skip connections to enhance the performance of the pipeline in textureless areas. The proposed architecture is implemented in an end-to-end pipeline and evaluated on public datasets, which reduces GPU memory consumption by up to 56.1\\% compared with PSMNet using stacked hourglass 3D CNNs without the degradation of accuracy. Then, we further demonstrate the scalability of the proposed method on several high-resolution pairs, while previously learned approaches often fail due to the memory constraint. The code is released at \\url{https://github.com/hongzhidu/SRHNet}.","url_abs":"https://arxiv.org/abs/2105.11587v1","url_pdf":"https://arxiv.org/pdf/2105.11587v1.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":"srh-net-stacked-recurrent-hourglass-network","repo_url":"https://github.com/hongzhidu/SRHNet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":null,"task_name":"GPU"},{"task_slug":"stereo-matching-1","task_name":"Stereo Matching"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2105.11587","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2105.11587"}},"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/hongzhidu/SRHNet","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":2,"ran":1,"ran_honours":1,"ran_fixture":1,"unverified":5},"by_repo_kind":{"official":{"samples":10,"ran":5,"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":"15ab3c76823aef7e","entry":"convbn","repo":"hongzhidu/SRHNet","repo_kind":"official","path":"models/SHRNet.py","file_url":"https://github.com/hongzhidu/SRHNet/blob/HEAD/models/SHRNet.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"15ab3c76823aef7e"}},{"code_sha256_prefix":"46674adf87c5459d","entry":"convbn_3d","repo":"hongzhidu/SRHNet","repo_kind":"official","path":"models/SHRNet.py","file_url":"https://github.com/hongzhidu/SRHNet/blob/HEAD/models/SHRNet.py","link_basis":"harvester_set","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":"46674adf87c5459d"}},{"code_sha256_prefix":"49a628e53f46ed75","entry":"load_data","repo":"hongzhidu/SRHNet","repo_kind":"official","path":"evaluation.py","file_url":"https://github.com/hongzhidu/SRHNet/blob/HEAD/evaluation.py","link_basis":"plan_row","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":"49a628e53f46ed75"}},{"code_sha256_prefix":"259c1efb59c8cc6f","entry":"readPFM","repo":"hongzhidu/SRHNet","repo_kind":"official","path":"evaluation.py","file_url":"https://github.com/hongzhidu/SRHNet/blob/HEAD/evaluation.py","link_basis":"plan_row","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":"259c1efb59c8cc6f"}},{"code_sha256_prefix":"a20b38ce75ecff0e","entry":"test_transform","repo":"hongzhidu/SRHNet","repo_kind":"official","path":"evaluation.py","file_url":"https://github.com/hongzhidu/SRHNet/blob/HEAD/evaluation.py","link_basis":"plan_row","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a20b38ce75ecff0e"}},{"code_sha256_prefix":"a9df3c5d6ab1be65","entry":"get_test_set","repo":"hongzhidu/SRHNet","repo_kind":"official","path":"dataloader/data.py","file_url":"https://github.com/hongzhidu/SRHNet/blob/HEAD/dataloader/data.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":"a9df3c5d6ab1be65"}},{"code_sha256_prefix":"0b702d8fe0367fe0","entry":"get_training_set","repo":"hongzhidu/SRHNet","repo_kind":"official","path":"dataloader/data.py","file_url":"https://github.com/hongzhidu/SRHNet/blob/HEAD/dataloader/data.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":"0b702d8fe0367fe0"}},{"code_sha256_prefix":"8bebef679adf02fe","entry":"readPFM","repo":"hongzhidu/SRHNet","repo_kind":"official","path":"dataloader/dataset.py","file_url":"https://github.com/hongzhidu/SRHNet/blob/HEAD/dataloader/dataset.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":"8bebef679adf02fe"}},{"code_sha256_prefix":"c1f134ceee85415d","entry":"test_transform","repo":"hongzhidu/SRHNet","repo_kind":"official","path":"dataloader/dataset.py","file_url":"https://github.com/hongzhidu/SRHNet/blob/HEAD/dataloader/dataset.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":"c1f134ceee85415d"}},{"code_sha256_prefix":"010a8bc4cac07920","entry":"train_transform","repo":"hongzhidu/SRHNet","repo_kind":"official","path":"dataloader/dataset.py","file_url":"https://github.com/hongzhidu/SRHNet/blob/HEAD/dataloader/dataset.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":"010a8bc4cac07920"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}