Projective Urban Texturing 阅读+编译笔记

Projective Urban Texturing(Yiangos Georgiou)

  • 概述
  • 算法实现
  • 网络简述
  • 编译

概述

我们提出了一种神经结构来生成城市环境中的照片级真实感纹理。 我们的投影城市纹理(PUT)系统迭代地生成目标纹理风格和细节, 输出是一个纹理图集,应用到输入的三维城市模型上。 PUT是以先前相邻的纹理为条件的,以确保连续生成的纹理之间的一致性。

算法实现

Projective Urban Texturing 阅读+编译笔记_第1张图片
初始输入只有mesh,纹理图集为空 ,第一步是渲染(第一次是空纹理,所以实际上没有渲染纹理);第二步是将渲染后的图片传入网络(描述在下面),该网络的作用是纹理生成,根据输入的mesh,自动预测并生成相应纹理;第三步是纹理传播模块,将第二步生成的纹理扣下来,放到纹理图集中。最后根据当前纹理图集和mesh,循环回第一步,渲染出有部分纹理的图片再传入网络。

网络简述

Projective Urban Texturing 阅读+编译笔记_第2张图片
神经网络使用了Johnson等人的体系结构 [Justin Johnson, Alexandre Alahi, and Fei fei Li. Perceptual losses for real-time style transfer and super-resolution. In ECCV, 2016. 3] 。该网络包含三个卷积,9个残差块,两个步幅为1/2的分数步幅卷积,以及一个将特征映射到RGB图像(3x512x256)的卷积层。
一共使用了三个Loss。
Multi-layer Patch-wise Contrastive Loss
Adversarial losses
Inter-frame consistency loss
总目标函数是上述损失的加权组合
注:三维几何和真实世界的全景照片这两个集合是不配对的,即没有几何或语义对应。

编译

github地址: https://github.com/ygeorg01/PUT
环境:
win10
blender3.3.1
pycharm2022
cudatoolkit 11.3.1
cudnn 8.2.1
eigen 3.4.0
opencv 4.6.0
numpy 1.23.1
python 3.10.6
pytorch 1.10.2

–scene_path …/scenes/005 --model_name consistency --blend custom
记得将上述参数预置好(可以在pycharm中设置)
注意:如果使用windows,将/改为\,可以使用.replace方法。

然后主要是用到了命令行(os.system)启动blender软件,如果这一步失败,可能得到全黑图像hh。
注意:blender里面的scriping的路径是hard-code,可能需要修改。
他的相机在Curve下面,作者论文里说到采用全局光照,但是blender里没有全局光照,需要装插件。
也可以用点光源或者把背景调成白色,只是网络预测出的纹理结果不同而已,摆两张不同光照对应的纹理,如下。

Projective Urban Texturing 阅读+编译笔记_第3张图片
Projective Urban Texturing 阅读+编译笔记_第4张图片
![请添加图片描述](https://img-blog.csdnimg.cn/403e087bf69d417396ef48980127afb2.pngProjective Urban Texturing 阅读+编译笔记_第5张图片

Projective Urban Texturing 阅读+编译笔记_第6张图片
可以看到背景不同,生成结果不同。

再贴一对纹理的中间结果和最后结果,如下。


如果编译有什么问题可以评论或私信,请将问题尽量描述详细。

最后欢迎三连。

你可能感兴趣的:(深度学习,人工智能,python)