我对计算机视觉领域非常陌生,我很着迷。我仍然在学习这些概念,有一件真正引起我兴趣的是Point Clouds和使用图像进行3D重建。
我想知道从iPhone 6相机拍摄的图像是否能够生成点云。我了解PCL(Point Cloud Library)并且正在考虑开发一个可以使用它的iOS应用程序。
我运行了这个示例PCL应用程序:https://github.com/9gel/hellopcl 它基本上是一个使用提供给它的Point Cloud数据的渲染器。我希望制作一个能够实时使用相机生成点云的应用程序。
我的问题是,有可能吗?
由于
答案 0 :(得分:8)
答案是肯定的,有多种方法可以从多个图像生成pointcloud。从图像生成3D点云的一些常用方法是:
3D Reconstruction from Multiple images:
基于图像强度的变化,已知相机在6-DOF空间中的运动,可以使用标准立体对应算法来计算。但是使用陀螺仪,加速度计和磁力计无法精确估算相机的运动。
您可以在此处详细了解这些方法:General overview
如果6-DOF姿势未知,您仍然可以使用以下某些方法从图像中提取点云:
SLAM:
位置估计的不确定性可以通过考虑图像以及惯性传感器提供的运动信息来解决。 SLAM是鸡蛋问题。要估计深度,您需要精确的运动信息,要获得运动信息,您需要深度信息。为移动设备实施了不同版本的SLAM。
大规模直接单目SLAM用于从连续视频输入生成密集的深度图。该方法计算量很大。只能离线执行。同样为手机实施的版本。您可以找到here
传统束调整方法使用极线约束和特征匹配来估计来自多个图像的相机的结构和运动。它为全局优化消耗更多内存。使用这种方法可以实现高质量的场景3D重建。现在有这种方法的多种变体。
您可以根据相同的概念找到不同的方法。许多上述方法可用于离线生成3D点云。但是实时生成pointcloud对于像iPhone这样的移动平台来说是一件大事。
由于