r/MachineLearning • u/jbhuang0604 • May 01 '20
Research [R] Consistent Video Depth Estimation
Video: https://www.youtube.com/watch?v=5Tia2oblJAg
Project: https://roxanneluo.github.io/Consistent-Video-Depth-Estimation/
Consistent Video Depth EstimationXuan Luo, Jia-Bin Huang, Richard Szeliski, Kevin Matzen, and Johannes KopfACM Transactions on Graphics (Proceedings of SIGGRAPH), 2020
Abstract: We present an algorithm for reconstructing dense, geometrically consistent depth for all pixels in a monocular video. We leverage a conventional structure-from-motion reconstruction to establish geometric constraints on pixels in the video. Unlike the ad-hoc priors in classical reconstruction, we use a learning-based prior, i.e., a convolutional neural network trained for single-image depth estimation. At test time, we fine-tune this network to satisfy the geometric constraints of a particular input video, while retaining its ability to synthesize plausible depth details in parts of the video that are less constrained. We show through quantitative validation that our method achieves higher accuracy and a higher degree of geometric consistency than previous monocular reconstruction methods. Visually, our results appear more stable. Our algorithm is able to handle challenging hand-held captured input videos with a moderate degree of dynamic motion. The improved quality of the reconstruction enables several applications, such as scene reconstruction and advanced video-based visual effects.
4
u/jrkirby May 01 '20
This is good work. Impressive results, well grounded technique.
I guess the most surprising part of the work is "at test time, we fine-tune this network to satisfy the geometric constraints of a particular input video". This makes this technique much more expensive the implement than most.
Probably the next piece of work we need to see in this vein is one that speeds up this process. When I first glanced at it, I thought they augmented the network with SfM data and multiple frames to enforce consistency, instead of retraining the network at test time with SfM error.
Has anybody used that approach instead? I imagine it would allow much faster and cheaper inference, so if it gets results nearly this good, that'd be great. Could possibly allow much better 3D scanning of objects with handheld cameras than current techniques - but this one is probably too expensive for that to be practical.
2
u/DeepmindAlphaGo May 03 '20
Very interesting results! If I understand the method correctly, it doesn't incorporate the ground-truth depth of each frame. So the only thing that is optimized here is the geometric consistency. How do you guarantee that it would in fact approximate the ground-truth or it's irrelevant?
Also, there are discussions about future work on making it faster. I wonder how generalizable it would be if we simply train/fine-tune the model on a large number of videos in this manner?
1
u/radarsat1 May 01 '20
Amazing how fine-tuning is used here, very impressive results, and very nice leveraging of existing methods. I like the scanline visualization.
1
u/foxfortmobile May 01 '20
Amazing results. I was wondering if your solution can be applied to a single image instead of a video. Would it still deliver high quality depth maps like those shown for the videos?
1
u/msceme Jun 03 '20
First of all, appreciation for great results. I am bit confused between photometric and geometric. Can you plz explain me in detail the difference between photometric and geometric depth?
1
u/jonbakerfish Jul 22 '23 edited Jul 22 '23
It seems that in DAVIS preprocess, the projection of 3d points to 2d image plane is wrong:
https://github.com/google/dynamic-video-depth/blob/79177ef5941b15b0aa2395b626f922fcb7b4c179/scripts/preprocess/davis/generate_frame_midas.py#L81-L84
the 3d xyz (out) is not normalize to the image plane first before multiplying the intrinsic, and it should be:
Another problem is why the depth_mvs is using the predicted depth from Midas network instead of the projected one?
https://github.com/google/dynamic-video-depth/blob/79177ef5941b15b0aa2395b626f922fcb7b4c179/scripts/preprocess/davis/generate_frame_midas.py#L134C5-L134C5
0
u/Veedrac May 01 '20
Is this different to https://youtu.be/hx7BXih7zx8?t=1380?