任务:输入一堆已知相机位姿的图片,预测每张图的深度图以及深度图融合,输出融合后的点云
提出了一种节省显存和同时提升精度的cascaded cost volume。
多阶段的预测方式,通过前一阶段预测的深度值来缩小当前阶段的采样深度范围,能够建立离散采样值更少的cost volume,从而达到节省显存的目的。
通过这种方式,可以建立空间分辨率更高的cost volume,恢复出高分辨的深度图,提升精度。
该模型在DTU数据集上进行训练,可以用于multi-view stereo任务中。
本模型主要用于多视图深度估计。用户可以自行尝试各种输入的模型效果。具体调用方式请参考代码示例
在ModelScope里可以比较方便的使用
注意点:
目前只支持在GPU模式下使用
import os
from modelscope.outputs import OutputKeys
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from modelscope.hub.snapshot_download import snapshot_download
estimator = pipeline(task=Tasks.image_multi_view_depth_estimation, model='damo/cv_casmvs_multi-view-depth-estimation_general')
model_dir = snapshot_download('damo/cv_casmvs_multi-view-depth-estimation_general')
input_location = os.path.join(model_dir, "test_data") # download `test_data` from current repo
# input_location = "./casmvs_test_data"
result = estimator(input_location)
pcd = result[OutputKeys.OUTPUT]
pcd.write('./pcd_fusion.ply')
print("end")
注意点:
1、输入必须是文件夹,包含 images 和 sparse 两个子文件夹, images文件夹里面存放图片, sparse文件夹里面存放稀疏重建的结果(COLMAP格式)。可参考上述代码示例中的test data (存放在本仓库中test_data文件夹)
2、images 和 sparse文件夹,可以通过开源软件COLMAP生成,示例代码如下:
DATASET_PATH=$1
colmap feature_extractor \
--database_path $DATASET_PATH/database.db \
--image_path $DATASET_PATH/images
colmap exhaustive_matcher \
--database_path $DATASET_PATH/database.db
mkdir $DATASET_PATH/sparse
colmap mapper \
--database_path $DATASET_PATH/database.db \
--image_path $DATASET_PATH/images \
--output_path $DATASET_PATH/sparse
mkdir $DATASET_PATH/dense
colmap image_undistorter \
--image_path $DATASET_PATH/images \
--input_path $DATASET_PATH/sparse/0 \
--output_path $DATASET_PATH/dense \
--output_type COLMAP \
--max_image_size 2000
把DATASET_PATH/dense下面的 images 和 sparse 文件夹拿出来,再调用本接口,这里的images 和 sparse 两文件夹是存放undistort后的图片和稀疏重建结果,效果更好
该模型在DTU数据集上训练,有可能产生一些偏差,请用户自行评测后决定如何使用。
DTU是一个MVS数据集,由124个不同的场景组成,在7种不同的光照条件下在49或64个位置扫描,提供了图片、相应的相机位姿以及深度图。
暂时不支持通过ModelScope接口进行训练,敬请期待。
Acc. | Comp. | Overall. |
---|---|---|
0.325 | 0.385 | 0.355 |
Mean | Family | Francis | Horse | Lighthouse | M60 | Panther | Playground | Train |
---|---|---|---|---|---|---|---|---|
56.42 | 76.36 | 58.45 | 46.20 | 55.53 | 56.11 | 54.02 | 58.17 | 46.56 |
如果你觉得这个该模型对有所帮助,请考虑引用下面的相关的论文:
@inproceedings{gu2020cascade,
title={Cascade cost volume for high-resolution multi-view stereo and stereo matching},
author={Gu, Xiaodong and Fan, Zhiwen and Zhu, Siyu and Dai, Zuozhuo and Tan, Feitong and Tan, Ping},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={2495--2504},
year={2020}
}
该项目中一些代码来自于:MVSNet_pytorch和MVSNet,非常感谢他们开源了相关的工作。