Papers › CFNet: Cascade and Fused Cost Volume for Robust Stereo Matching

CFNet: Cascade and Fused Cost Volume for Robust Stereo Matching

9 Apr 2021CVPR 2021 1arXiv:2104.04314archive 2025-07-28

Zhelun Shen, Yuchao Dai, Zhibo Rao

Recently, the ever-increasing capacity of large-scale annotated datasets has led to profound progress in stereo matching. However, most of these successes are limited to a specific dataset and cannot generalize well to other datasets. The main difficulties lie in the large domain differences and unbalanced disparity distribution across a variety of datasets, which greatly limit the real-world applicability of current deep stereo matching models. In this paper, we propose CFNet, a Cascade and Fused cost volume based network to improve the robustness of the stereo matching network. First, we propose a fused cost volume representation to deal with the large domain difference. By fusing multiple low-resolution dense cost volumes to enlarge the receptive field, we can extract robust structural representations for initial disparity estimation. Second, we propose a cascade cost volume representation to alleviate the unbalanced disparity distribution. Specifically, we employ a variance-based uncertainty estimation to adaptively adjust the next stage disparity search space, in this way driving the network progressively prune out the space of unlikely correspondences. By iteratively narrowing down the disparity search space and improving the cost volume resolution, the disparity estimation is gradually refined in a coarse-to-fine manner. When trained on the same training images and evaluated on KITTI, ETH3D, and Middlebury datasets with the fixed model parameters and hyperparameters, our proposed method achieves the state-of-the-art overall performance and obtains the 1st place on the stereo task of Robust Vision Challenge 2020. The code will be available at https://github.com/gallenszl/CFNet.

PaperPDFConference PDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2104.04314")

Code

Syntology Ran 4 of 21 code samples harvested from 3 repositories linked to this paper; 17 have no recorded run. Of those that ran: 1 ran · violated contract; 3 ran with no contract checked.

By repository: official repository: 4 samples from 1 repository, 0 ran; community (archive-listed): 17 samples from 2 repositories, 4 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

gallenszl/CFNet officialmentioned in papermentioned on GitHubpytorch report
gallenszl/MSMD-Net mentioned on GitHubpytorchMIT report
gallenszl/pcwnet mentioned on GitHubpytorch report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

21 samples harvested; 4 ran; 0 honoured the contract we drafted; 17 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

1ran · violated contract
3ran
17unverified

Licence: 0 of the 21 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 3 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: 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. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

cfnet gallenszl/CFNet/models/cfnet.py official repository unverified MIT (permissive) · 62b8c9c0e874f080 · report
feature_extraction gallenszl/CFNet/models/cfnet.py official repository unverified MIT (permissive) · a491de58629728ba · report
hourglass gallenszl/CFNet/models/cfnet.py official repository unverified MIT (permissive) · 8d7de0be86b5a6fe · report
hourglassup gallenszl/CFNet/models/cfnet.py official repository unverified MIT (permissive) · ee1891dd3bc104aa · report
convbn gallenszl/MSMD-Net/models/submodule.py community (archive-listed) ran MIT (permissive) · 4589ab426bdcfbb8 · report
convbn_3d gallenszl/MSMD-Net/models/submodule.py community (archive-listed) ran MIT (permissive) · 252c55c642e6a443 · report
default_loader gallenszl/MSMD-Net/datasets/MiddleburyLoader.py community (archive-listed) ran MIT (permissive) · ac269a0e4b8d946e · report
is_image_file gallenszl/MSMD-Net/datasets/MiddleburyLoader.py community (archive-listed) ran · violated contract MIT (permissive) · ab4109634b75ef8b · report
PWCNet gallenszl/pcwnet/models/pwcnet.py community (archive-listed) unverified MIT (permissive) · 02fe2a4c8495bd97 · report
PWCNet_G gallenszl/MSMD-Net/models/pwcnet.py community (archive-listed) unverified MIT (permissive) · 228040fffd916ded · report
PWCNet_GC gallenszl/MSMD-Net/models/pwcnet.py community (archive-listed) unverified MIT (permissive) · 9cffe943e8f11cb4 · report
dataloader gallenszl/MSMD-Net/datasets/listfiles.py community (archive-listed) unverified MIT (permissive) · b0a995994e4e38c4 · report
disparity_loader gallenszl/MSMD-Net/datasets/MiddleburyLoader.py community (archive-listed) unverified MIT (permissive) · 6f290af6f9436c6b · report
disparity_regression gallenszl/MSMD-Net/models/submodule.py community (archive-listed) unverified MIT (permissive) · b667855f4bbc313f · report
feature_extraction gallenszl/pcwnet/models/pwcnet.py community (archive-listed) unverified MIT (permissive) · 51f513f2170035a0 · report
hourglassup gallenszl/pcwnet/models/pwcnet.py community (archive-listed) unverified MIT (permissive) · 0fb7e137c632d36a · report
model_loss gallenszl/MSMD-Net/models/loss.py community (archive-listed) unverified MIT (permissive) · ef110dda447f94a6 · report
pfm_imread gallenszl/MSMD-Net/datasets/data_io.py community (archive-listed) unverified MIT (permissive) · c35f13ea74c6be42 · report
readPFM gallenszl/MSMD-Net/datasets/readpfm.py community (archive-listed) unverified MIT (permissive) · d8dba6f53d86a041 · report
read_all_lines gallenszl/MSMD-Net/datasets/data_io.py community (archive-listed) unverified MIT (permissive) · e711a03e74028ed6 · report
refinenet_version3 gallenszl/pcwnet/models/pwcnet.py community (archive-listed) unverified MIT (permissive) · 568992afe2a876a6 · report

Tasks

Disparity EstimationStereo Matching

Results from the paper archive 2025-07-28

No leaderboard rows for this paper in the archive.

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections