From 5899261abcf773aff652d71bf32ab62298d70add Mon Sep 17 00:00:00 2001 From: Lahav Lipson Date: Fri, 29 Apr 2022 16:38:48 -0400 Subject: [PATCH] Update README.md --- README.md | 9 +++++---- depth_eq.png | Bin 4764 -> 11042 bytes 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3a5c453..46793e2 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,14 @@ This repository contains the source code for our paper: [RAFT-Stereo: Multilevel Recurrent Field Transforms for Stereo Matching](https://arxiv.org/pdf/2109.07547.pdf)
+3DV 2021, Best Student Paper Award
Lahav Lipson, Zachary Teed and Jia Deng
``` -@article{lipson2021raft, - title={{RAFT-Stereo: Multilevel Recurrent Field Transforms for Stereo Matching}}, +@inproceedings{lipson2021raft, + title={RAFT-Stereo: Multilevel Recurrent Field Transforms for Stereo Matching}, author={Lipson, Lahav and Teed, Zachary and Deng, Jia}, - journal={arXiv preprint arXiv:2109.07547}, + booktitle={International Conference on 3D Vision (3DV)}, year={2021} } ``` @@ -112,7 +113,7 @@ To train using significantly less memory, change `--n_downsample 2` to `--n_down ## (Optional) Faster Implementation -We provide a faster CUDA implementation of the correlation volume which works with mixed precision feature maps. +We provide a faster CUDA implementation of the correlation sampler which works with mixed precision feature maps. ```Shell cd sampler && python setup.py install && cd .. ``` diff --git a/depth_eq.png b/depth_eq.png index 89ef6f1add3a09032ebb8f215da7bd9c0ff18e44..9f0540981e458c09700eda04b7943e69f581b1eb 100644 GIT binary patch literal 11042 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 dZ%(rB8EAy29h&rV+Wz;!q$H;