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

the mask in rendering result #82

Open
blueFeather111 opened this issue Jun 24, 2024 · 5 comments
Open

the mask in rendering result #82

blueFeather111 opened this issue Jun 24, 2024 · 5 comments

Comments

@blueFeather111
Copy link

blueFeather111 commented Jun 24, 2024

I noticed in this function

res = render_func(view, gaussians, pipeline,...)

它的结果res包含了"mask", 也注意到在diff-gaussian-rasterization的forward.cu中有渲染mask.
但是这个mask画出来并不像mask, 而是一些稀疏的点。

请问在evaluate中,计算和ground truth mask的IOU时能用res['mask']吗?
还是需要用res['render']中>0的部分作为predicted mask?
期待回复

res["render"]
Screenshot from 2024-06-24 17-20-27

res['mask']
Screenshot from 2024-06-24 17-20-59

@Jumpat
Copy link
Owner

Jumpat commented Jun 25, 2024

你好,能否提供有关res['mask']更多的信息。这个渲染结果是不正常的,这是使用main branch还是v2 branch分割后的渲染结果?渲染时传入的参数具体是什么样的?

@blueFeather111
Copy link
Author

blueFeather111 commented Jun 26, 2024

你好,能否提供有关res['mask']更多的信息。这个渲染结果是不正常的,这是使用main branch还是v2 branch分割后的渲染结果?渲染时传入的参数具体是什么样的?

用的是main branch, 数据集用的是figurines, 提取特征的时候图像没有做resize, 原图大小。

参数:
以idx = 0为例,
view是读取的相机和图片信息,包括FoVX, FoVY,R,T, image_name="frame_00001"
feature_height=147,feature_width=200. image_height=728, image_width=986

gaussians: 用precomputed_mask分割后的点云,分割前点云数量为1981620, 分割后点云数量是3463, get_features:(3463,16,3), get_mask:(3463,1), max_radii2D=0, max_sh_degree=3

background:[0,0,0]

precomputed_mask: (1981620,1), 是3D分割保存的./segmentation_res/figurines.pt

    for idx, view in enumerate(tqdm(views, desc="Rendering progress")):
        res = render_func(view, gaussians, pipeline, background, override_mask=precomputed_mask.float())

        rendering = res["render"]
        mask = res["mask"]
        im_mask = mask.squeeze().detach().cpu().numpy()
        im_mask[im_mask > 0] =255  #这里阈值取0,上次的图阈值取的是0.3
        #cv2.imshow("mask", im_mask)

上次的res["mask"]是取阈值>0.3的为mask,
现在取阈值为0的效果:
感觉mask比较稀疏,是不是哪里有问题?期待您的回复。

Screenshot from 2024-06-26 10-54-04

@wangmiaowei
Copy link

效果不太好。说实话

@Jumpat
Copy link
Owner

Jumpat commented Aug 5, 2024

@blueFeather111 抱歉忘记回复这个issue了。这里点比较稀疏主要是因为物体内部和外部高斯特征不对齐导致的,使用v2 branch的代码效果应该会好。
@wangmiaowei 如果是v2 branch的代码中有什么效果不好的情况,可以发在issue里我看下是否是方法/代码还有可优化的地方。

@blueFeather111
Copy link
Author

blueFeather111 commented Aug 19, 2024

@blueFeather111 抱歉忘记回复这个issue了。这里点比较稀疏主要是因为物体内部和外部高斯特征不对齐导致的,使用v2 branch的代码效果应该会好。

我用了v2 branch的渲染mask, 效果还不错。谢谢你的回复。

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

3 participants