使用 gps 进行摄影测量以生成 3d 纹理云

photogrammetry with gps to generate 3d textured cloud

由于使用 2d 图像进行 3d 重建是一个非常困难的话题,编写自己的应用程序来做到这一点不仅是一个挑战,而且是浪费时间(根据我正在阅读的内容)我想问一下怎么样带有 GPS 数据的图像?

想象一架无人机围绕一个物体飞行拍摄照片进行 3d 重建,让我们在 3d 中制作点云。

这会有帮助吗?知道 2d 图像的位置和路线 - 这是否会更容易编写将这些信息与 RGB 数据一起转换为 3d model/cloud 点的应用程序?

像往常一样,一切都是为了您的目标。如果您想玩得开心,您可以毫不费力地轻松获得 cm/m 准确的结果,如果您的目标是获得准确的结果,那么您需要处理和实施的信息量会随着您的期望呈指数级增长。

这里的大多数人都没有任何摄影测量经验,这意味着您必须将他们的回答更像是个人意见,而不是值得依赖的东西。

此时将摄影测量和计算机视觉分开。

如果你做计算机视觉,将2d图像转换成3d点云是很容易的。所有必要的算法都已写入 OpenCV 等库中。如果你想从头开始,这会花费你更多的时间,但或多或​​少你最终会在 OpenCV 中复制这些东西。

OpenCV 中的例程速度快但不准确。就现实世界的准确性而言,您可能不会超过(mm/m 到 cm/m)。它们更像是数学优化,这意味着:"Fit something somewhere. If the in-sample error result is okay, everything is fine." 这对于有趣的应用程序来说是可以的,但它们从未像在专业领域中那样被使用。所以永远不要试图将 OpenCV 结果作为真实世界的准确性来出售,你会犯下欺诈行为。

编写好的摄影测量应用程序非常困难,因为突然间您必须考虑温度梯度和外部精度,这与反向投影误差无关。您还需要根据您的任务设计目标,因为 SIFT 目标在摄影测量中没有用处,它们太不准确。镜头必须用物理参数来描述,整个优化过程需要分多个步骤进行,以避免一定的系统误差。

因此,如果您不需要准确,请选择 CV 算法并使用现有的库(如 OpenCV),如果您有扎实的编程背景,这应该很容易。对于旨在实现小于 50µm/m 的真实世界精度的摄影测量任务,您需要投入更多时间。

那么 GPS 有帮助吗? 如果你想让你的 3D 模型像 ERTS89 一样在某个参考框架中并且没有办法找到某些点的一些现有坐标,那么是的。

另一种用途是,如果您想检查图像之间的位移作为控制值以避免严重错误,或者作为共线性方程的泰勒级数的初始值,它们可能会有所帮助。

另一方面,对于无人机来说足够轻的标准非差分 GPS 接收器在 3D 位置的 15m 精度非常差,所以你必须飞得高才能使误差足够小才能有用。

如果您可以从无人机收集视频及其 GIS 信息,则可以使用像 Pix4d 这样的摄影测量 3d 重建软件 (https://pix4d.com)

苏黎世大学在 2017 年已经完成了您提到的确切事情。请参阅下面的视频

https://www.youtube.com/watch?v=7hTvWbxxmY0

及其研究论文

http://rpg.ifi.uzh.ch/docs/IJRR17_Majdik.pdf