每周总结(十一)

本文总结了2021年第11周的学习,重点关注2.5D Sketch在单视图重建中的作用,分析了MarrNet论文,该网络通过2.5D草图预测实现3D形状重建。讨论了数据集对支持向量回归(SVR)的影响,并介绍了ShapeHD项目的实践,包括环境配置和重建过程。
摘要由CSDN通过智能技术生成

2021年第11周学习小结:

数据集对SVR的影响

单视图重建中常用的数据集包括Pascal 3D+、ObjectNet3D、IKEA、ShapeNet、Pix3D等。

对于ShapeNet这类数据集,由于没有匹配三维形状的二维图像,因此往往使用软件合成出对应的视图。
而Pascal 3D+这类数据集中图像与三维形状并不匹配,多种类型的椅子可能都是用同一个形状表示。

且这些数据集的图像与形状数量不够多。往往许多SVR网络都使用人工合成的图像数据对模型进行训练。由于合成数据集与真实数据集之间存在许多差异,导致这些网络在使用真实图像作为输入时无法得到较好的重建效果。

2.5D Sketch 在单视图重建中的作用

David Marr 认为人对三维形状的感知依赖于2.5D草图(深度、轮廓、表面法向信息)。我们可以通过下面的这张图来理解这一点:
2.5D草图的应用
图1(a)包含了很多椅子图像,每幅图像中光照角度,椅子的材质,纹理以及背景部分都存在巨大的差异,但我们能够很轻松的辨认出他们具有相似的三维形状。从这一点可以看出我们判断一个物体的三维形状,并不需要了解光照条件,色彩等信息。那么可以考虑三维形状的信息是否有很大一部分来源于这些图像的共性。

如(b)所示,图中的椅子都具有相似的表面法线图以及深度图,如果只使用2.5D草图,而非原始RGB图像来预测重建形状。首先能够忽略数据集的差异性问题,因为真实图像与合成的图像在2.5D草图上的差异很小;其次剔除了色彩纹理信息,相当于删除了对形状没有贡献的特征;最后图像到图像的预测相比2D到3D的预测要简单许多。

论文阅读 MarrNet: 3D Shape Reconstruction via 2.5D Sketches

方法

文章提出了MarrNet,其重建步骤分为两步:先从RGB图像预测出深度图、表面法线图、轮廓图;再通过这些2.5D草图重建出3D形状。

这种分步重建的方法有以下几点优势:

  • 由2D图像预测得到2.5D草图较简单,且合成图像与真实图像之间的差异对预测得到的2.5D草图并无太大影响。
  • 由2.5D草图重建得到3D形状的网络可以直接使用合成数据集进行训练,因为网络的输入仅仅使用了深度、表面法向与轮廓信息。

网络的具体结构如下:
MarrNet
包含两个部分:
Ⅰ 2.5D sketch estimator:用于预测图像的深度、法向等信息。
Ⅱ 3D shape estimator:根据前面的2.5D图像生成对应的三维形状。
同时还根据2.5D草图与3D形状的对应关系引入了一致性损失。

2.5D sketch estimation network

使用编码器-解码器结构进行2.5D草图的预测,编码器部分使用了ResNet-18。

将一张256*256的RGB图像输入网络后以相同的分辨率输出深度图、表面法线图以及轮廓图共三张图像。

3D shape completion network

使用编码器-解码器结构进行3D形状的预测,

将前面网络得到的轮廓图作为法线图以及深度图的mask,将处理好的深度图与法线图作为网络的输入,最终得到 12 8 3 128^3 1283的体素。

Reprojection Consistency

网络引入了形状与图像之间的一致性损失,但并不针对3D与2D之间的对应关系,而是3D与2.5D之间的关系。
一致性损失
值得注意的是作者后续的工作中并没有再次使用过重投影一致性损失,可能是效果不好。在后续的ShapeHD与GenRe中都用到了2.5D草图,可以看出这种方法相比直接对RGB图像进行重建还是有一定的优势的。

ShapeHD单视图重建实例

项目地址:https://github.com/xiumingzhang/GenRe-ShapeHD
数据集地址:(训练集总共144G)http://genre.csail.mit.edu/downloads/shapenet_cars_chairs_planes_20views.tar
训练好的模型:http://genre.csail.mit.edu/downloads/genre_shapehd_models.tar

代码中提供了几张RGB图像以及对应的Mask作为测试集,也可以从Pix3D数据集中中获取其他的图片用于输入

Pix3D数据集下载地址:http://pix3d.csail.mit.edu/data/pix3d.zip

环境配置

代码中包含环境配置文件: environment.yml
需要注意的toolbox路径下有些文件需要编译,要求pytorch的版本为0.4.1,版本过高会引发许多问题。

toolbox文件编译

#error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

在编译文件时,报错:

error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

网上给出的解决方案都是针对诸如gcc编译c++程序时发生的错误,按照提示在g++后添加参数: -std=c++11 。

而我的命令行是这样的:

cmd="nvcc -c -o back_projection_kernel.cu.o back_projection_kernel.cu -x cu -Xcompiler -fPIC -I ${TORCH}/lib/include/TH -I ${TORCH}/lib/include -I ${TORCH}/lib/include/THC -I ${HERE} -I ${TORCH}/lib/include\
    -gencode 
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值