Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

在自己的数据集上使用,请问bounds是什么? #15

Open
rexainn opened this issue Jan 11, 2024 · 14 comments
Open

在自己的数据集上使用,请问bounds是什么? #15

rexainn opened this issue Jan 11, 2024 · 14 comments

Comments

@rexainn
Copy link

rexainn commented Jan 11, 2024

按照https://github.com/zju3dv/EasyVolcap/blob/main/docs/misc/static.md 教程进行,复制粘贴cfg之后看到需要改变bounds,但我根本不知道他是啥,又该怎么改变呢?

@rexainn
Copy link
Author

rexainn commented Jan 11, 2024

请问对于bounds这个参数的定义是什么?这是在custom dataset上运行必须修改的吗?

@dendenxu
Copy link
Member

dendenxu commented Jan 11, 2024

Hi @rexainn 。欢迎使用我们的代码! 在easyvolcap里 bounds是当前数据集的粗略包围盒(bounding box),默认的sampler会控制算法在这个包围盒里进行sample。我默认的bounding box设置的比较大,除非是在大规模数据集上跑算法,用默认的即可(删掉复制出来的config里的bounds条目用的就是默认的bounds了)

@rexainn
Copy link
Author

rexainn commented Jan 11, 2024

感谢您的及时回复@dendenxu 。尝试之后,报了很多这种错误:
截屏2024-01-11 18 41 08

@dendenxu
Copy link
Member

这个报错是因为python版本太低了,我没有特意支持过python3.7及以下的版本。推荐使用3.9或更高。当然这个位置的报错应该可以通过把这句话改成return [K] + list_of_imgs解决,您可以试一下

@rexainn
Copy link
Author

rexainn commented Jan 11, 2024

@dendenxu 感谢!!还有几个小问题:

  1. 现在对于每一个视频我都需要先train再render吗?
  2. 有没有预训练模型可以用来直接render呢?因为在另一个issue中看到train的时间好像是24h起,每个视频都这样的话时间太长了。

@dendenxu
Copy link
Member

我们有pretrained enerf模型,可以用于泛化的看novel view。

具体例子可以参考下面两个链接:
https://github.com/zju3dv/EasyVolcap#inferencing-with-enerfi

https://github.com/zju3dv/EasyVolcap/blob/main/docs/misc/static.md#our-improved-enerf-implementation-and-generalization

这个文档里也有更详细的描述:
https://github.com/zju3dv/EasyVolcap/blob/main/docs/projects/enerf.md

@rexainn
Copy link
Author

rexainn commented Jan 22, 2024

您好!

  1. 如果想要在我自己的多视角动态数据集上使用,我的每个视角也就是每个摄像机是固定的,对于每个摄像机有一个视频,这样的一个多视频数据集是不是该按照https://github.com/zju3dv/EasyVolcap/blob/main/docs/misc/custom_dataset.md 这个文档来准备数据集呢?
  2. 这里面的多种校准方法是只要使用一种成功获取intri.yml和extri.yml之后就可以进行Video to Images->Segmentation->Space Carving这些流程了吗?
  3. 这样操作后的数据集直接evc -c configs/exps/l3mhet/l3mhet_${expname}.yaml进行训练就可以了吧?还需要对数据集进行后续的修改吗?

@dendenxu
Copy link
Member

dendenxu commented Jan 22, 2024

对于1和2,只要能有标定结果就可以进行下面的流程了,您粘贴的文档里我们介绍了几种标定方法,当然您也可以通过其他方式获得相机参数,我们的相机参数文件里只有R T(外参)和K D(内参)是硬性要求。

对于3,您需要为自己的数据集创建一个对应的实验yaml文件,最好同时再创建一个dataset文件来分别管理他们。您粘贴的文档里有介绍相关的流程。

@rexainn
Copy link
Author

rexainn commented Jan 23, 2024

您好,我现在的理解是在我自己的数据集上使用,对于从头训练和直接使用预训练模型渲染,vhulls、surfs、masks、bkgd都不是必须的?只要有images和intri、extri就可以进行对吧?额外增加这些步骤只是为了提高性能?

@rexainn
Copy link
Author

rexainn commented Jan 23, 2024

以及python scripts/segmentation/inference_bkgdmattev2.py --data_root ${datadir}需要使用的torchscript_resnet101_fp32.pth并未上传

@dendenxu
Copy link
Member

以及python scripts/segmentation/inference_bkgdmattev2.py --data_root ${datadir}需要使用的torchscript_resnet101_fp32.pth并未上传

分割网络需要去BackgroundMattingV2这里单独下载的。我们会在doc里把这点说的更清楚。

@dendenxu
Copy link
Member

您好,我现在的理解是在我自己的数据集上使用,对于从头训练和直接使用预训练模型渲染,vhulls、surfs、masks、bkgd都不是必须的?只要有images和intri、extri就可以进行对吧?额外增加这些步骤只是为了提高性能?

是的,对于ngp和enerf这类算法,只有相机参数和图像是必须的。
对于只需要前景的数据,提供mask并加入mask loss可以获得更好更稳定的效果(您粘贴的文档里有介绍如何使用mask)。
获得mask之后,可以计算visual hull以获得更好的bounding box估计(use_vhulls=True),对于基于点云的方法visual hull也是一种初始化(例如4K4D和3DGS,其中3DGS在本仓库的main readme和static.md里都有介绍使用方式)。

@rexainn
Copy link
Author

rexainn commented Jan 23, 2024

感谢您的回复!以及这两个yaml也找不到了。这个是用来计算vhull的那部分。
image

@dendenxu
Copy link
Member

您好,我更新了doc,现在的example config的路径应该已经修复了。

感谢您的回复!以及这两个yaml也找不到了。这个是用来计算vhull的那部分。 image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants