xucao-42 / bilateral_normal_integration

Official implementation of "Bilateral Normal Integration" (BiNI), ECCV 2022.
GNU General Public License v3.0
182 stars 18 forks source link

关于输入 #3

Closed rlczddl closed 1 year ago

rlczddl commented 1 year ago

你好,想请教下,已知z关于u,v的梯度,怎么转化成代码中的nx, ny, nz法线图的形式

xucao-42 commented 1 year ago

如果是正交投影,将[z_u, z_v, -1] 正规化到单位长向量即得到法线图, 其中z_u和z_v是梯度图。 此外还要注意下坐标系的对应,u,v轴分别对应x,y轴。想得到偏蓝色系的法线图的话(即我代码里的输入形式),x轴朝右,y轴朝上,z轴朝屏幕外。对应到uv轴就是u轴朝右,v轴朝上。

如果还想把以上方法得到的法线图保存成rgb图,保存时还应注意一些坑。 以下代码可做参考。 保存为8位rgb图: cv2.imwrite(path/to/your/file, (255 * (normal_map+1)/2).astype(np.uint8)[..., ::-1]) 或者16位rgb图: cv2.imwrite(path/to/your/file, (65535 * (normal_map+1)/2).astype(np.uint16)[..., ::-1])

数学部分可以参考这篇文章的2.1节。注意我提到的坐标系系统和文章里的略有区别。 https://arxiv.org/pdf/1709.05940.pdf

rlczddl commented 1 year ago

了解了,感谢回复!

rlczddl commented 1 year ago

你好,请教下,算法对输入的噪声是不是非常敏感。我试了下我的数据,结果比较差。另外也想问下,这种情况不知道您有什么建议? image

xucao-42 commented 1 year ago

我倾向于在保存为法线图的时候没有处理好。人脸的中轴线位置有明显的颜色突变,但是颜色应该是平缓的变化, 不应该有这个突变。参考这个标准球的法线图。 sphere_bg_1024

rlczddl commented 1 year ago

了解了,感谢回复

rlczddl commented 1 year ago

你好,还想请教下,透视相机下法线图怎么转成梯度?感觉没有明确的公式。梯度转法线倒是比较容易推导出来。

xucao-42 commented 1 year ago

是的,透视相机下法线图转z的梯度图没有明确的解析公式。我们只能推到对数深度图(ln z)关于uv的梯度。 同样参考这篇文章的式(13), (16)和(17) https://arxiv.org/pdf/1709.05940.pdf

rlczddl commented 1 year ago

作者好,我又来了哈哈哈。继续请教下,什么时候采用正交相机,什么时候采用透视相机?我测试了带相机参数的数据,分别使用相机参数和不使用相机参数,肉眼看两种相机模型重建的结果差不多,只是位置大小变化了。

xucao-42 commented 1 year ago

如果你对depth的精度要求不高,只是看一下shape,用哪个都可以。用透视相机主要可以减少整体的bend,特别是在focal length比较小(比如35mm镜头)的情况下。比如实际上用透视相机拍了一个半球,但是用正交相机模型,可能结果的半球会显得有点扁。当focal length特别大的时候,比如180mm长焦镜头,其实用正交相机模型近似也没多大问题了。

另外两者的不同可以参考这个issue的回复 https://github.com/xucao-42/bilateral_normal_integration/issues/2#issuecomment-1473359556

xucao-42 commented 1 year ago

xd, 要不加个微信吧😂

rlczddl commented 1 year ago

好阿,我的wx是caitong94