最近一段时间有接触”从2D图片中重建物体3D形状“的技术问题,这里做一点梳理。
1.技术上解决从2D图片生成3D形状,首先要解决3D形状怎么表示的问题,有以下方法:
主要方法 | 代表模型 | 模型特点 | 开源代码 |
---|---|---|---|
体素表示方法 | 3D-R2N2 | 3D循环卷积网络 | 有 |
点云表示方法 | PSGN | CD,EMD评价指标 | 有 |
mesh表示方法 | Pix2Mesh | 图卷积网络 | 有 |
体素方法可以很容易的表示3D形状,但比较粗糙;点云方法更易于计算,但不好表示3D形状;mesh方法能获得较光滑的物体表面。推荐mesh+图卷积的方法作为单图片3D重建的技术方向。
2.了解技术方法后,最关心的问题是,”训练模型需要什么样的数据“?收集了常用的几个公开数据集
数据集 | 描述 | 大小 |
---|---|---|
Pascal 3D+ | 12类3D标注,每类超过3000个图片实例 | 7.5G |
Pix3D | 提供了2D-3D像素级的标注联系 | 3.6G |
ShapeNet | 55类,51300个3D模型,包含Pascal 3D+ | 28G |
其中ShapeNet使用CAD模型,图片实例背景干净;Pix3D使用真实场景的图片。数据集的特征:
1)需要提供图片对应的3D模型作为标注信息,一个3D模型对应数量不定的图片
2)需要大量2D图片数据,从模型的不同角度获得图片,再混合其他图片进行扩充
目前这些数据集都没有包含物体的纹理信息,如颜色,表面纹理等等;另外都是人造物体,其形状和大小容易控制,如果在自然物体上应用,如食材等可能存在挑战。单图3D重建的算法比分类,检测算法更复杂,要在嵌入式端落地在算力上有困难。
原文:https://www.cnblogs.com/QJuse/p/12302630.html