3D Photography using Context-aware Layered Depth Inpainting

本文提出了从单张RGB-D图像生成3D照片的新方法,采用分层深度图像表示并利用学习模型进行遮挡区域的颜色和深度结构修复。与现有技术相比,这种方法能减少伪影,适应图像的局部复杂度,无需预设固定层数,且适合资源有限的设备。通过空间上下文感知的修复模型,实现了更真实的3D视图合成。
部署运行你感兴趣的模型镜像

CVPR2020 3D Photography using Context-aware Layered Depth Inpainting 翻译

摘要

我们提供了一种将输入的单张RGB-D图片转化为3D图像的方法——一种新视图合成的多层表示方法,它包含原始视图中被遮挡区域的幻觉颜色和深度结构。我们使用具有显式像素连通性的分层深度图像作为底层表示,并提出了一种基于学习的修复模型,该模型以空间上下文感知的方式将新的局部颜色和深度内容合成到遮挡区域。使用标准的图形引擎,可以有效地使用运动视差来呈现3D照片。我们在一系列具有挑战性的日常场景中验证了我们的方法的有效性,与现有技术相比,显示的伪影更少。

1.介绍

三维摄影通过相机捕捉世界的景色,并使用基于图像的渲染技术进行新颖的视图合成,是记录和再现视觉感受的一种迷人的方式。它提供了一个比旧的2D摄影更具沉浸感的体验:几乎逼真的虚拟现实,甚至在某种程度上在正常的平板显示器上显示视差。然而,传统的基于图像的重建和渲染技术需要复杂的捕捉设置,涉及许多具有高基准线的图像[17、64、27、47、19、12]或特殊硬件(例如Lytro Immerge、Facebook Manifold camera1)。

最近,我们看到了通过使用手机相机和降低基线要求,使三维摄影更轻松的拍摄工作[17,18]。在最极端的情况下,像Facebook 3D Pho-tos2这样的新技术现在只需要用双镜头照相手机拍摄一张快照,这实际上提供了RGB-D(颜色和深度)输入图像。在这项工作中,我们感兴趣的是从这样一个RGB-D输入绘制新的视图。在渲染的新视图中,最显著的特征是由于视差造成的不一致:基于底层的矮化技术在这里产生了间隙(图1a)或延伸的内容(1b)。最近的方法试图提供更好的推断。

立体放大[77]和最近邻变体[56,40]使用了fronto-parallel多平面表示(MPI),它是由小型基线双摄像头立体声输入合成的。但是,MPI会在倾斜曲面上生成瑕疵。此外,多平面表示中的过多冗余使得内存和存储效率低下,渲染成本高。

Facebook 3D照片使用分层深度图像(LDI)表示法[51],由于其稀疏性,这种表示更紧凑,可以转换为轻型网格表示进行渲染。遮挡区域的颜色和深度是使用启发式合成的,这些启发式算法针对移动设备上的快速运行进行了优化。特别是它使用各向同性扩散算法来绘制颜色,这会产生过于平滑的结果,并且无法推断纹理和结构(图1c)。

最近一些基于学习的方法也使用类似的多层图像表示[7,60]。然而,这些方法使用“刚性”层结构,即图像中的每个像素具有相同(固定和预定)层数。在每个像素处,它们在第一层存储最近的表面,在下一层中存储第二个最近的表面,等等。这是有问题的,因为跨深度不连续,层内的内容会突然改变,这会破坏卷积核的感受域的局部性。

在这项工作中,我们提出了一种新的基于学习的方法,从RGB-D输入生成3D照片。深度既可以来自双摄像头手机立体声,也可以通过单个RGB图像进行估计[31,29,13]。我们使用LDI表示(类似于Facebook的3D照片),因为它非常紧凑,允许我们处理任意深度复杂的情况。与上面描述的“刚性”层结构不同,我们在表示中显式地存储像素之间的连接性。然而,由于我们的拓扑结构比标准张量更为复杂,因此将全局CNN应用于该问题就变得更加困难。相反,我们将问题分解成许多局部的子问题,迭代地解决这些子问题。每个问题都是局部的,所以我们可以应用标准CNN。使用一个以空间自适应上下文区域为条件的绘画模型,这些区域是从本地设计院(LDI)的本地连接性中提取的。在合成之后,我们将绘制的区域重新融合到LDI中,从而得到一个递归算法,直到所有深度边缘都得到处理。

我们的算法的结果是在闭塞区域合成纹理和结构的三维照片(图1d)。与以前的大多数方法不同,我们不需要预先确定固定数量的层。我们的算法通过改变输入层的深度来适应图像的局部复杂度。我们已经在不同情况下拍摄的各种照片上验证了我们的方法。

2.相关工作

新颖视图合成的表示

研究了不同类型的表示方法,包括光场、多平面图像和分层深度图像。光场可以实现新颖视图的照片真实感渲染,但通常需要许多输入图像才能获得良好的效果。多平面图像表示以固定深度存储多层RGB-α图像。这种表示法的主要优点是能够捕捉半反射或半透明表面。然而,由于固定深度的离散化,斜坡表面通常不能很好地再现,除非使用过多的平面。随着时间的推移,已经使用了许多不同的分层深度图像表示法。最近,到处都使用了固定层数的表示法,但它们不能很好地保留局部性,如前一节所述。其他最近的工作扩展了Shade等的原始工作,以显式地存储连接信息。这种表示可以局部地适应任何深度复杂度,并且可以很容易地转换为纹理网格以进行有效的渲染。我们的工作也使用这种表示法。

基于图像的渲染

基于图像的渲染技术可以从一组姿势图像中合成新的视图。当图像具有足够大的基线(以便多视点立体算法能够很好地工作)或使用深度传感器捕捉图像时,这些方法效果最好。最近的进展包括基于学习的混合,软三维重建,处理反射,重新照明,重建镜子和玻璃表面。我们在这项工作的重点在于从一个单一的图像合成新颖的视图。

基于学习的视图合成

基于CNN的方法已被应用于从稀疏光场数据或两个或多个姿态图像合成新视图。最近有几种方法探索从单个图像合成视图。然而,这些方法通常集中在一个特定的领域,即合成的3D场景/物体,只产生一个特定的幻觉,或者假设是分段的平面场景。许多基于学习的视图合成方法都需要运行预先训练的网络的前向传递来合成给定视点的图像。这使得这些方法不太适用于在资源受限的设备上显示。另一方面,我们的表示可以很容易地转换成有纹理的网格,并使用标准图形引擎高效地渲染。

图像修复

图像修复的任务是用合理的内容来填补图像中的缺失区域。受纹理合成成功的启发,基于实例的方法通过从图像的已知区域转移内容来完成缺失区域,或者通过基于非参数面片的合成,或者使用置信传播或图切割来求解马尔可夫随机场模型。在卷积神经网络发展的推动下,基于CNN的方法因其能够预测已知区域中不存在的语义意义内容而备受关注。最近的工作包括设计CNN结构以更好地处理不规则形状的孔,以及结构内容分离的两阶段方法,例如预测结构(例如。,缺失区域的轮廓/边缘),然后根据预测的内容完成内容结构。我们的在绘画模型建立在最近的两个阶段的方法,但有两个关键的区别。首先,与现有的图像绘制算法不同,该算法中孔和可用上下文是静态的(例如,整个输入图像中的已知区域),我们使用自适应的孔和上下文区域在每个深度不连续处局部应用内绘制。其次,除了在绘制彩色图像外,我们还绘制了深度值以及缺失区域的深度不连续性。

深度修复

深度修复可用于填充商品级深度相机故障时缺失的深度值,或执行图像编辑任务,如立体图像上的对象移除。然而,这些算法的目标是绘制可见表面的深度。相比之下,我们的重点是恢复隐藏表面的深度。

基于CNN的单深度估计

最近,基于CNN的方法已经证明了从单个图像。用于在只有一幅单色图像的情况下,我们通过预先训练的深度估计模型得到深度估计。消除了对立体或多幅图像作为输入的依赖,使我们的方法更广泛地适用于所有现有的照片。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

# 3D Cinemagraphy from a Single Image (CVPR 2023) [Xingyi Li](https://scholar.google.com/citations?user=XDKQsvUAAAAJ&hl)<sup>1,3</sup>, [Zhiguo Cao](http://english.aia.hust.edu.cn/info/1085/1528.htm)<sup>1</sup>, [Huiqiang Sun](https://huiqiang-sun.github.io/)<sup>1</sup>, [Jianming Zhang](https://jimmie33.github.io/)<sup>2</sup>, [Ke Xian](https://kexianhust.github.io/)<sup>3*</sup>, [Guosheng Lin](https://guosheng.github.io/)<sup>3</sup> <sup>1</sup>Huazhong University of Science and Technology, <sup>2</sup>Adobe Research, <sup>3</sup>S-Lab, Nanyang Technological University [Project](https://xingyi-li.github.io/3d-cinemagraphy/) | [Paper](https://github.com/xingyi-li/3d-cinemagraphy/blob/main/pdf/3d-cinemagraphy-paper.pdf) | [arXiv](https://arxiv.org/abs/2303.05724) | [Video](https://youtu.be/sqCy7ffTEEY) | [Supp](https://github.com/xingyi-li/3d-cinemagraphy/blob/main/pdf/3d-cinemagraphy-supp.pdf) | [Poster](https://github.com/xingyi-li/3d-cinemagraphy/blob/main/pdf/3d-cinemagraphy-poster.pdf) This repository contains the official PyTorch implementation of our CVPR 2023 paper "3D Cinemagraphy from a Single Image". ## Installation ``` git clone https://github.com/xingyi-li/3d-cinemagraphy.git cd 3d-cinemagraphy bash requirements.sh ``` ## Usage Download pretrained models from [Google Drive](https://drive.google.com/file/d/1ROxvB7D-vNYl4eYmIzZ5Gitg84amMd19/view?usp=sharing), then unzip and put them in the directory `ckpts`. To achieve better motion estimation results and controllable animation, here we provide the controllable version. Firstly, use [labelme](https://github.com/wkentaro/labelme) to specify the target regions (masks) and desired movement directions (hints): ```shell conda activate 3d-cinemagraphy cd demo/0/ labelme image.png ``` A screenshot here: ![labelme](assets/labelme.png) It is recommended to specify **short** hints rather than long hints to avoid artifacts. Please follow [labelme](https://github.com/wkentaro/labelme) for detailed instructions if needed. After that, we can obtain an image.json file. Our next step is to convert the annotations stored in JSON format into datasets that can be used by our method: ```shell labelme_json_to_dataset image.json # this will generate a folder image_json cd ../../ python scripts/generate_mask.py --inputdir demo/0/image_json ``` We now can create 3D cinemagraphs according to your preference: ```shell python demo.py -c configs/config.yaml --input_dir demo/0/ --ckpt_path ckpts/model_150000.pth --flow_scale 1.0 --ds_factor 1.0 ``` - `input_dir`: input folder that contains src images. - `ckpt_path`: checkpoint path. - `flow_scale`: scale that used to control the speed of fluid, > 1.0 will slow down the fluid. - `ds_factor`: downsample factor for the input images. Results will be saved to the `input_dir/output`. ## Known issues - Due to the limited size of the training dataset, the intermediate frame may occasionally experience flickering. - The utilization of a fixed distance threshold in agglomerative clustering within the disparity space can occasionally result in the presence of visible boundaries between different layers. - We may sometimes see artifacts when the fluid is moving very fast. You can either slow down the fluid by increasing the `flow_scale` or try to specify short hints rather than long hints, to avoid artifacts. - The motion estimation module occasionally generates motion fields that do not perfectly align with the desired preferences. ## Citation If you find our work useful in your research, please consider to cite our paper: ``` @InProceedings{li2023_3dcinemagraphy, author = {Li, Xingyi and Cao, Zhiguo and Sun, Huiqiang and Zhang, Jianming and Xian, Ke and Lin, Guosheng}, title = {3D Cinemagraphy From a Single Image}, booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)}, month = {June}, year = {2023}, pages = {4595-4605} } ``` ## Relevant works - [Animating Pictures with Eulerian Motion Fields](https://openaccess.thecvf.com/content/CVPR2021/papers/Holynski_Animating_Pictures_With_Eulerian_Motion_Fields_CVPR_2021_paper.pdf), CVPR 2021 - [Controllable Animation of Fluid Elements in Still Images](https://openaccess.thecvf.com/content/CVPR2022/papers/Mahapatra_Controllable_Animation_of_Fluid_Elements_in_Still_Images_CVPR_2022_paper.pdf), CVPR 2022 - [Simulating Fluids in Real-World Still Images](https://arxiv.org/pdf/2204.11335), arXiv 2022 - [3D Photography using Context-aware Layered Depth Inpainting](https://openaccess.thecvf.com/content_CVPR_2020/papers/Shih_3D_Photography_Using_Context-Aware_Layered_Depth_Inpainting_CVPR_2020_paper.pdf), CVPR 2020 - [3D Photo Stylization: Learning to Generate Stylized Novel Views from a Single Image](https://openaccess.thecvf.com/content/CVPR2022/papers/Mu_3D_Photo_Stylization_Learning_To_Generate_Stylized_Novel_Views_From_CVPR_2022_paper.pdf), CVPR 2022 - [3D Moments from Near-Duplicate Photos](https://openaccess.thecvf.com/content/CVPR2022/papers/Wang_3D_Moments_From_Near-Duplicate_Photos_CVPR_2022_paper.pdf), CVPR 2022 - [3D Video Loops from Asynchronous Input](https://openaccess.thecvf.com/content/CVPR2023/papers/Ma_3D_Video_Loops_From_Asynchronous_Input_CVPR_2023_paper.pdf), CVPR 2023 ## Acknowledgement This code borrows heavily from [3D Moments](https://github.com/google-research/3d-moments) and [SLR-SFS](https://github.com/simon3dv/SLR-SFS). We thank the respective authors for open sourcing their methods.
最新发布
06-02
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值