社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

基于深度学习的单视图三维重建算法学习路线

3D视觉工坊 • 3 年前 • 354 次点击  

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者丨Longway
来源丨 三维重建学习笔记
本人从2018年开始接触基于深度学习的单视图三维重建算法,中间因为考研等原因休息了一年,毕业设计也是关于这方面的内容。在学习的过程中,我踩过很多坑,也学到了很多东西。现在把我的学习路线记录如下,也算是对本科学习的一个总结。 
一 基础知识
1.英语:下面给出的论文是全英文,可以培养阅读能力,建议少用翻译软件。
2.高等数学:非常重要,例如梯度下降公式涉及求导。
3.线性代数:非常重要,例如图像就是以矩阵的形式表示。
4.算法分析与设计:要有基本的算法思想,例如怎么减少时间复杂度和空间复杂度。
5.Python:这个不用说,基础的语法要会。推荐小甲鱼的python视频,B站搜:小甲鱼,P54之后的可以不用看。书籍推荐《Python编程 从入门到实践》。
6.Pytorch:大部分三维重建算法都是利用pytorch实现,推荐莫烦的pytorchB站搜:莫烦python。书籍推荐《深度学习框架PyTorch:入门与实践》。 
二 进阶知识
1.Linux基本操作:大部分代码涉及到编译的过程,需要在Linux系统上面运行。同时这类算法的网络结构都比较大,代码基本上都是在服务器上面跑,需要了解如何使用服务器。书籍推荐《鸟哥的Linux私房菜》。
2.计算机图形学:主要是渲染相关知识,如何从三维模型得到二维图像是三维重建算法的一个重要问题,后面列举的论文基本上都涉及到这个过程。视频推荐B站:GAMES101,看评论就知道老师有多厉害,暂时只看到了P9,感兴趣的可以往后面看。
3.基于深度学习的最新三维重建算法综述:这篇论文对近几年三维重建相关工作做了详细的总结,例如网络结构、输入输出、数据集等。在阅读下面的论文之前,可以先看看这个,对所有的三维重建算法有一个大致的了解。论文链接:https://arxiv.org/pdf/1906.06543v3.pdf
4.数据集:后续算法使用了两个数据集,一个是ShapeNet,这个数据集很大,只有三维模型,需要经过渲染才能够得到二维图像。第二个是PASCAL3D+,这也是一个比较出名的数据集。
5.打开三维模型的软件:后续三维模型基本上都是使用网格的表示方法。可以用Windows系统自带的3D查看器和Print 3DLinux系统需要安装meshlab,也可以使用pythonvtk库进行查看。用text打开obj文件时,可以看到网格模型具体是怎么表示的。
6.三维重建涉及的一些基本概念:例如相机坐标系和世界坐标系、旋转矩阵、透视变换等,这些都需要慢慢了解。视频推荐B站:计算机视觉之三维重建篇,书籍推荐张广军老师的《机器视觉》。 
三 学习路线
1.Neural 3D Mesh Renderer
论文地址:https://arxiv.org/pdf/1711.07566.pdf
代码地址:https://github.com/hiroharu-kato/neural_renderer 
可以把它列为基于深度学习的单视图三维重建算法里程碑之作,后续很多算法都由此展开。标准的渲染过程中涉及光栅化这种离散操作,阻止了反向传播,这就不能使用深度学习的方法进行训练。因此这篇文章提出了一种可微的渲染方法,能够在特定的视角渲染三维模型得到二维图像。
2.Learning Category-Specific Mesh Reconstruction from Image Collections(CMR)
论文地址:https://arxiv.org/pdf/1803.07549.pdf
代码地址:https://github.com/akanazawa/cmr
这篇文章是对上一个算法的应用,也算是这类算法更完整的实现。作者提出了一种从单个图像中恢复物体三维形状、相机和纹理的学习框架,输入的数据集需要标注关键点,但是不需要真实的3D数据集或者单个物体的多张图像进行监督,最后的输出是带有纹理的网格模型。
3.Soft Rasterizer: A Differentiable Renderer for Image-based 3D Reasoning
论文地址:https://arxiv.org/pdf/1904.01786.pdf
代码地址:https://github.com/ShichenLiu/SoftRas
  这篇文章提出了另外一个可微渲染器,和第一篇不同的是,它将覆盖的所有三角形都考虑在内,能够使用可微函数直接渲染彩色网格。 
4.Shape and Viewpoints without Keypoints(UCMR)
论文地址:https://arxiv.org/pdf/2007.10982.pdf
代码地址:https://github.com/shubham-goel/ucmr
这篇文章是对第二篇的改进,也是对第一、第三篇文章所提到的渲染器的综合应用。总的来说,数据集更加简单,只需要原始图像和掩膜即可,但是达到的效果更好。
四 后续论文推荐
1.Self-supervised Single-view 3D Reconstruction via Semantic Consistency(UMR)
论文地址:https://arxiv.org/pdf/2003.06473.pdf
2.Using Adaptive Gradient for Texture Learning in Single-View 3D Reconstruction
论文地址:https://arxiv.org/pdf/2104.14169.pdf
本文与另外三篇的重建效果对比如下表所示:
Metric
Mask IOU
SSIM
CMR
0.704
0.782
UCMR
0.6369
0.756
UMR
0.734
0.812
Ours
0.7691
0.8294


五 相关论文推荐
1.Learning to Predict 3D Objects with an Interpolation-based Differentiable Renderer
论文地址:https://nv-tlabs.github.io/DIB-R/files/diff_shader.pdf
代码地址:https://github.com/nv-tlabs/DIB-R
2.Occupancy Networks: Learning 3D Reconstruction in Function Space
论文地址:http://www.cvlibs.net/publications/Mescheder2019CVPR.pdf
代码地址:https://github.com/autonomousvision/occupancy_networks
本文仅做学术分享,如有侵权,请联系删文。

3D视觉精品课程推荐:

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现
11.自动驾驶中的深度学习模型部署实战
12.相机模型与标定(单目+双目+鱼眼)
13.重磅!四旋翼飞行器:算法与实战

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。


一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列手眼标定相机标定激光/视觉SLAM自动驾驶)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
 圈里有高质量教程资料、答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~  

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/125909
 
354 次点击