  Multi-view Stereo (MVS) with known camera parameters is essentially a 1D
search problem within a valid depth range. Recent deep learning-based MVS
methods typically densely sample depth hypotheses in the depth range, and then
construct prohibitively memory-consuming 3D cost volumes for depth prediction.
Although coarse-to-fine sampling strategies alleviate this overhead issue to a
certain extent, the efficiency of MVS is still an open challenge. In this work,
we propose a novel method for highly efficient MVS that remarkably decreases
the memory footprint, meanwhile clearly advancing state-of-the-art depth
prediction performance. We investigate what a search strategy can be reasonably
optimal for MVS taking into account of both efficiency and effectiveness. We
first formulate MVS as a binary search problem, and accordingly propose a
generalized binary search network for MVS. Specifically, in each step, the
depth range is split into 2 bins with extra 1 error tolerance bin on both
sides. A classification is performed to identify which bin contains the true
depth. We also design three mechanisms to respectively handle classification
errors, deal with out-of-range samples and decrease the training memory. The
new formulation makes our method only sample a very small number of depth
hypotheses in each step, which is highly memory efficient, and also greatly
facilitates quick training convergence. Experiments on competitive benchmarks
show that our method achieves state-of-the-art accuracy with much less memory.
Particularly, our method obtains an overall score of 0.289 on DTU dataset and
tops the first place on challenging Tanks and Temples advanced dataset among
all the learning-based methods. The trained models and code will be released at
https://github.com/MiZhenxing/GBi-Net.
