关于计算机视觉(CV),我总是听说这三个术语几乎可以互换使用:
然而,从我所读到的,这些是相似的,但不同的,但我找不到一个通用的定义,它们是如何不同的。
根据维基百科:
可持续森林管理:
二维图像序列三维结构估计过程的...refers方法
三维重建:
...is捕捉真实物体的形状和外观的过程
立体处理:
双目视觉( ...is )一词,最常用于指根据正常发育的双眼视觉信息而获得的深度和三维结构的知觉。
这个舞台上最好的开源库似乎是邦德勒和PMVS/CMVS。
邦德勒被宣传为Sfm软件,而PMVS/CMVS则被吹捧为3D重构器。这些工具似乎是为了相互使用,但在技术上可以单独使用。所以很明显,Sfm和3D重建是有区别的,但我只是没有看到森林穿过这里的树木。
所以我问:这三个概念之间有什么区别,它们之间有什么联系,它们是如何互补的?
发布于 2016-08-26 17:11:17
想象一下,50台静止相机排列成一个圆圈(类似于这,尽管这些相机都是围棋)。你有一只狗跳进圆圈的中间,所有50个相机同时拍摄一张二维照片。现在你有50张狗的照片,一直到狗的周围。
SFM将拍摄这50张照片,并允许您在3d打印机上打印狗的物理重构。这种信息对机器人是有用的,因为它允许机器人对重建物体的三维形式进行推理。
运动结构是三维重建的一种形式。
立体处理是指当你用两只眼睛观察一个物体并感知深度时所发生的事情。因为你的两只眼睛的图像略有不同,所以你(或一个机器人)可以做一些事情,比如估计离物体的距离。
发布于 2018-05-11 02:41:29
立体视觉(或称双目视觉)基本上是人类(和其他双目动物)感知深度的方法。一个物体在X轴上的位置在两个照相机上的差异称为视差。观察到的物体距离越远,视差就越小。这种特性使我们能够感知深度,并从视觉线索中更好地估计距离和对象结构。
一般来说,只要你有2张(或更多)静止物体的照片,假设你知道拍摄这2张照片的2部相机的位置和属性,你就可以计算出每个像素到其中一个摄像机的距离,这将使你能够重建视图中任何物体的三维形状。
与立体视觉(多视图立体),你通常有控制你的相机钻机。例如,你可以选择两个或更多的相机,其内在特性与你所知道的(焦距、孔径、分辨率等)相同。然后对它们进行校准,以便估计它们的位置和相对于彼此的旋转。一旦你校准了相机,你基本上固定了其中的一些变量,现在你可以计算视差了。该算法基本上是在第一幅图像中选择一个像素,并试图在第二幅图像中找到它的等效点,以知道它移动了多少。在现实中,像素沿极线移动,这是根据每个摄像机的内在特性和立体声对的外部配置来计算的。
对于来自运动的结构(SFM),也适用同样的原理。除了,现在我们没有一个可控制的和校准的相机对。我们有多张照片,从不同的相机,可能从网上拍摄。我们也不知道这些摄像机的位置。第一种复杂性是,与校准对不同的是,我们没有极坐标约束,我们需要对图像中的每个像素进行彻底搜索。这个过程比较慢,容易出错。我们通常使用边缘和特征检测器来完成这项任务,例如冲浪、SIFT和ORB。一旦我们有了匹配的特征,我们尝试估计基本矩阵,它模型的位置和旋转相机相对于彼此。这也容易出错。只有在两个摄像机之间有一个良好的基线时,估计矩阵才能工作,并且通常使用RANSAC或类似的优化算法进行计算,这些算法可能会或不可能返回好的结果。一旦我们有了相机外部,我们可以继续我们将与MVS提取点云和估计形状。
其他允许您获得3d结构的技术包括(并非详尽无遗):
https://softwareengineering.stackexchange.com/questions/329432
复制相似问题