Pixel2Mesh: Generating 3D Mesh Models from Single RGB Images

论文:Pixel2Mesh: Generating 3D Mesh Models from Single RGB Images

背景

  • 从单一角度来推断三维形状对于计算机说具有挑战,值得研究。

  • 现有技术:

    基于体素单一角度来推断三维形状,计算量大,精度与分辨率之间难以平衡。

    基于点云单一角度推断三维形状,点云之间缺少连接,重建之后表面不光滑

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zLYiAjjk-1659582541609)(C:\Users\pro\AppData\Roaming\Typora\typora-user-images\1659343627176.png)]

提出问题:
  • 能否用三角网格来根据单张RGB图像信息进行三维重建
可行性分析:
  • 网格是轻量级的
  • 网格可以对三维形状细节进行建模

挑战:
  • 如何在神经网络中表示一个网络模型(不规则的图),而且要从二维规则网络给定颜色图像中提取形状细节
  • 如何让更新顶点的位置,让越来越与图像中的形状靠近
贡献:
  • 第一次提出了端到端的从单张RGB图像到三维模型的神经网络
  • 设计了投影层,将感知的图像特征融入以GCN为代表的三维几何中
  • 网络从粗到细进行学习,更可靠。
解决方案:
  • 对于挑战一:

如何在网络中表示一个网格模型?如何从颜色图像中提取形状细节?

作者采用GCN网络,将网格看出点与边连接的拓扑结构,GCN模型可以用来训练拓扑结构。对于单张图片,作者采用了VGG-16模型从颜色图像中提取基于形状特征。

  • 对于挑战二:

如何更新顶点的位置,让3d模型越来越与图像中的形状靠近?

提出了 Perceptual Feature Pooling层,采用了VGG-16 conv5_3层的结构作为图像特征网络。给定一个顶点的三维坐标,利用相机本征计算其在输入图像平面上的二维投影,然后利用双线性插值从附近的四个像素汇集特征。将conv3_3层、conv4_3层和conv5_3层提取的特征进行级联,得到的总维数为1280。然后,这个感知特征与输入网格的128-dim 3D特征连接起来,得到1408的总维数。然后将每个顶点的特征输入到G-ResNet(GCN模型)中,预测每个顶点的位置和三维形状。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iiwqKn7i-1659582541613)(C:\Users\pro\AppData\Roaming\Typora\typora-user-images\1659537053525.png)]

具体实现细节:

​ 首先先初始化一个椭圆三维模型,三维模型具有156个顶点。三维模型的每个点的初始特征只是每个点的三维坐标。
在这里插入图片描述

​ 通过 Perceptual Feature Pooling计算三维模型每一个顶点的特征,然后与上一次的特征进行拼接。输入到G-ResNet模型中,对顶点的位置与模型的三维形状进行更新。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9mcOb8Jy-1659582541614)(C:\Users\pro\AppData\Roaming\Typora\typora-user-images\1659575626753.png)]

​ 将G-ResNet模型的输出结果再通过Graph unpooling 层,这一层主要的目的是对三维模型进行插值,使更具有细节。具体的思路使对将在每个三角形三边的中点再取顶点,让这些顶点连接起来。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eIYUNFmh-1659582541614)(C:\Users\pro\AppData\Roaming\Typora\typora-user-images\1659575683454.png)]

​ 整个系统实质的想法是通过图像的特征去不断调整整个三维模型的形状。这是系统的整个架构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Zaj66L9-1659582541614)(C:\Users\pro\AppData\Roaming\Typora\typora-user-images\1659575749667.png)]

Loss:

在模型的迭代过程中,采用四种Loss去约束模型形状

  • Chamfer loss–倒角距离。约束三维模型顶点位置

​	[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3JOLhoBV-1659582541615)(C:\Users\pro\AppData\Roaming\Typora\typora-user-images\1659577469339.png)]

​ p是预测mesh顶点坐标,q是真实mesh顶点坐标。第一项计算p中任意一点到q中最小距离之和,第二项计算q中任意一点到p中最小距离之和。

  • Normal loss–法向损失。增强表面法向一致性。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Q3q98F8-1659582541615)(C:\Users\pro\AppData\Roaming\Typora\typora-user-images\1659577997380.png)]

​ q(真实mesh顶点坐标)距离p(预测mesh顶点坐标)最近距离的点。k是p的邻近节点,nq是真实mesh中q点对应平面法向量。<p-k,nq>代表两个向量的内积。当两个内积越小,表示它们越接近于垂直。因此可以是预测平面与真实平面越来越接近于平行。

  • Laplacian regularization–拉普拉斯正则化。保持相邻节点在变形过程中的相对位置。

在这里插入图片描述

公式1,计算顶点的拉普拉斯算子坐标。公式二计算坐标变化后与坐标变化前拉普拉斯算子坐标的变化,作为loss。

  • Edge length regulation–边缘长度正则化。防止边长异常化。
    在这里插入图片描述

最后总的loss是四种loss的加权和,比列分别是1,1.6e-4,0.3,0.1。

实验:
  • 数据集

​ shapeNet中13个对象类别50k模型的渲染图像。该数据集是根据WordNet层次结构组织的3D CAD模型的集合。从不同的摄像机视角对模型进行渲染,记录摄像机的内、外矩阵。

  • 评价指标

    ​ F1-score

    ​ Chamfer Distance

    ​ Earth Mover’s Distance

  • baseline

    ​ A unified approach for single and multi-view 3d object reconstruction.

    ​ Convolutional neural networks on graphs with fast localized spectral filtering

    与这两个论文中提出的方法相比。

  • 模型性能实验

    ​ 与多个三维重构方法相比

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BZMUw0hZ-1659582541616)(C:\Users\pro\AppData\Roaming\Typora\typora-user-images\1659580560661.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qyWI93JR-1659582541616)(C:\Users\pro\AppData\Roaming\Typora\typora-user-images\1659580595836.png)]

  • 模型结构功能实验

    针对模型每种结构进行消融实验,验证其功能。‘-’符号表示去除这一模块。F越大于好,CD与EMD越小越好。

    每一种实验都是对前面内容的呼应,去验证自己方法的正确性。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g4ItfDUM-1659582541616)(C:\Users\pro\AppData\Roaming\Typora\typora-user-images\1659580799839.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-minN2zPp-1659582541616)(C:\Users\pro\AppData\Roaming\Typora\typora-user-images\1659580906379.png)]

  • 对真实世界图像进行重建

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fPE9Ea2w-1659582541616)(C:\Users\pro\AppData\Roaming\Typora\typora-user-images\1659581169165.png)]

读完论文最大的困惑就是在3D模型形成的过程中,需要ground truth去计算loss。这个ground truth从何而来,是已有的点云数据吗,实际生活中随手拍一张图片如何重建?

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pixel2Mesh是一种通过单个RGB图像生成3D网格模型的方法。它使用了像素网和级联架构来实现。像素网是Pixel2Mesh在PyTorch中的实现,提供了重新训练的检查点和预训练模型。而级联架构下的mesh变形网络是Pixel2Mesh的核心部分,它包含了连续的三个mesh变形块,每个块都会增加网格的分辨率,并从2D CNN中提取图像特征用于下一个块的处理。Pixel2Mesh的详细信息可以在论文"Pixel2Mesh: Generating 3D Mesh Models from Single RGB Images"中找到。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Pixel2Mesh:PyTorch中完整的Pixel2Mesh实现](https://download.csdn.net/download/weixin_42165712/18315830)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Pixel2Mesh从单个RGB图像生成三维网格ECCV2018](https://blog.csdn.net/qq_40943760/article/details/125891582)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Pixel2Mesh: Generating 3D Mesh Models from Single RGB Images](https://blog.csdn.net/weixin_47442149/article/details/126155875)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值