【问题标题】:Algorithm for ortho-rectification; mosaic-ing aerial images [closed]正射校正算法;马赛克航拍图像[关闭]
【发布时间】:2014-03-04 18:56:42
【问题描述】:

我正在研究收集农场航拍图像(从直升机以垂直方式收集的图像)的方法,我想将它们拼接在一起以构建被覆盖区域的整个照片,然后我想运行分析。 我假设图像将带有 [纬度,经度] 坐标,以帮助我确定放置图像的位置。

为了了解这项技术的问题,我尝试手动拼接从我的手机拍摄的我后院某个样本区域的照片。我体验到边缘通常看起来不一样,因为相机从不同的侧面或角度看到它们。我猜这是图像的失真,可能会通过正射校正(不完全确定)来修复。 我快速创建了以下图片来帮助解释我的问题。

我的问题:

用于进行正射校正的算法/技术是什么?

哪些工具最适合我的需求:opencv、处理或 matlab 或任何其他可以轻松帮助校正图像和创建马赛克照片的工具?

在进行航空影像拼接和分析时还应考虑哪些其他问题?

谢谢!

【问题讨论】:

标签: matlab opencv image-processing computer-vision orthographic


【解决方案1】:

图像拼接通常假设相机中心在所有照片上都是固定的,并使用单应性来转换图像,使它们看起来是连续的。当固定相机中心假设不严格有效时,由于场景的 3D,可能会出现伪影/失真。如果相机中心与场景的浮雕相比移动了一小段距离,“无缝图像混合”技术可能足以模糊失真。

在更极端的情况下,需要进行正射校正。 正射校正 (Wikipedia entry) 是将给定透视 相机观察到的图像转换为正交 (Wikipedia entry) 的任务并且通常是垂直的观点。正交属性很有趣,因为它使多个图像的拼接变得更加容易。下面这张来自维基百科的图特别清晰(左边是正交或定向投影,右边是透视或中心投影):

正射校正任务通常需要场景的 3D 模型,以便将透视相机观察到的强度适当地映射到它们相对于正射相机的位置。在航空/卫星图像的背景下,数字高程模型 (DEM) 通常用于此目的,但通常具有不包括人造结构(仅地球地形)的严重缺点。 NASA免费提供SRTM missionsDEM link)获取的DEM。

另一种方法,如果您在不同位置采集了两张图像,您可以尝试使用其中一种立体匹配技术进行 3D 重建,然后通过映射这两个图像来生成正射校正图像,如第三个正交和垂直相机。

为此,OpenCV 有几个有趣的功能(例如立体重建、图像映射功能等),可能更适合密集使用。 Matlab 可能也有有趣的功能,可能更适合快速测试。

【讨论】:

  • OpenCV 的拼接器假定真正的旋转(相机不平移,只绕其轴旋转),如果图像之间发生平移,它会自动使其无法使用。我知道这不仅来自个人经验,还来自检查这个库中stitcher类的源代码。必须针对此类情况开发自定义例程。
【解决方案2】:

首先,矫正是一种扭曲,但不是你需要的。立体声中使用常规校正以确保匹配点位于同一行 - 而不是您的情况。正射校正将透视投影扭曲为正射投影 - 再次不是您的情况。不仅您缺少用于计算这种翘曲的 3D 模型,而且您也不需要它,因为您的透视失真可以忽略不计,并且您已经拥有非常接近正交的图像(也就是说,与观看距离透视相比,对象的大小很小影响很小)。

对齐两张图像时出现的问题源于镜头之间的小相机旋转。要开始解决问题,您需要确保您的图像实际上重叠了 30%。要了解这一点,请参阅book. 的第 9 章

您需要查看使用单应性映射两个图像的常规图像拼接技术。请注意,这样做假定图像基本上是平坦的。要查找单应性,您可以首先手动选择一张图像中的 4 个点和另一张图像中的 4 个匹配点,然后运行 ​​openCV 函数 findHomography()。请注意,找到匹配项需要重叠(在您的图片中没有重叠)。 warpPerspective() 可以在找到同形异体后为您扭曲图像。

【讨论】:

  • 如果提供足够的图像数据,现在可以使用诸如运动结构 (SfM) 等技术来获取 DEM(数字高程模型)。除此之外,有些可以在网上找到。
  • SFM 是一种超级昂贵的算法,对准确性没有可靠的保证,对于这种情况似乎有点过头了。它还解决了 3D 结构而不是平面对象的一般情况。此外,它根本不适用于平面图像,因为基本矩阵(SFM 的第一步)不会使用代表点进行采样。
【解决方案3】:

“用于进行正射校正的算法/技术是什么?

如果您想全面了解这些技术,那么 Hartley & Zisserman 的《计算机视觉中的多视图几何》一书可能是一个不错的起点:http://www.robots.ox.ac.uk:5000/~vgg/hzbook/

Andrew Zisserman 还在 www.robots.ox.ac.uk/~az/tutorials/ 上提供了一些教程,这些教程可能更易于访问/让您更容易找到您想要使用的特定技术。

“哪些工具最适合我的需求:opencv、处理或 matlab 或任何其他可以轻松帮助校正图像和创建马赛克照片的工具?”

OpenCV 有很多可用的工具 - 初学者请查看 Images stitching。还有很多可用于校正失真。但是,它不一定是您使用的工具,还有其他的!

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-10-27
  • 1970-01-01
  • 1970-01-01
  • 2014-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-11
相关资源
最近更新 更多