【发布时间】:2015-07-09 08:22:47
【问题描述】:
对于一个爱好项目,我正在尝试对齐照片并创建 3D 图片。我基本上有两个相机在一个钻机上,我用来拍照。我会自动尝试对齐图像,以便您获得 3D SBS 图像。
它们是高分辨率图像,这意味着要处理大量像素。因为我对计算机不是很耐心,所以我希望事情进展得快。
最初我使用基于图像拼接和特征提取的代码。在实践中,我发现这些算法太不准确而且太慢了。主要原因是你这里有不同的深度级别,所以你不能做一对一的特征匹配。大多数代码已经可以正常工作,包括垂直对齐。
对于这个问题,您可以假设图像的不同 ISO 曝光级别/颜色校正和垂直对齐都得到了处理。
现在还缺少一个很好的算法来校正图片的角度。我注意到左右图片的角度通常会变化很小的度数(想想 +/- 1.2 度的差异),这足以引起轻微的头痛。作为人类,您可以通过查看颜色的明显差异并将它们排列起来轻松发现这一点。
这里具有讽刺意味的是,如果它正确与否,您会立即将其识别为人类,但不知何故,我无法向机器学习这一点。 :-)
我已经尝试过边缘检测器、霍夫变换和各种自制算法,但到目前为止,我发现所有这些算法对于我的目的来说都太慢而且太不准确。我还尝试在稍微改变角度的同时迭代地垂直对齐,到目前为止没有任何运气。
请注意:在这里,准确性可能比速度更重要。
我在此处添加了示例图片。它实际上是左右眼,阿尔法混合。如果您仔细观察,您会看到顶部的羔羊有两个椭圆,并且您可以看到椅子在顶部并没有完全对齐。这似乎可以忽略不计,但在使用投影仪的全屏分辨率下,您会很容易看到差异。这也显示了所需的准确度;很多。
“x”方向的移动会产生 3D 效果。基本上,如果 shift 为 0,它在屏幕上,如果它是 0,它在屏幕前面。这也使匹配变得更加困难,因为您不是在寻找“缝合”。
基本上两个摄像头的“看”方向相同(与此处的第二张图片垂直:http://www.triplespark.net/render/stereo/create.html)。
差异源于相机的角度略有不同。这意味着整个图片的旋转是均匀的。
【问题讨论】:
-
这些角度差异难道不是创建 3D 模型的关键吗?那么你为什么要尝试“纠正”这些角度呢?
-
@DrKoch,不,3D 的关键是 x 坐标差异。也就是说,如果某个片段在一张图片上是水平的,那么它在另一张图片上应该是水平的,只有当它的末端在 3D 中应该处于不同的深度时,它才可能具有不同的长度。
-
这些垂直方向的“错误”是否会在您的图片中有所不同?还是它们只是由“倾斜”的相机引起的?
-
我添加了一些关于我的问题的更多细节。误差小而均匀:它们是安装在三脚架上的 2 个完全相同的相机。