photoscan支持什么相机畸变相机模型?

    在摄影测量和计算机视觉中都需偠对含有畸变相机的影像进行改正操作常用到的模型是对透视影像改正的Brown模型,在很多资料和软件中都可以看到该模型的畸变相机改正公式比如PhotoScan和Context Capture中,在很多开源库中也有该畸变相机的改正函数比如openCV和openMVG。虽然可以通过简单的函数调用便可以实现对影像的畸变相机改正但是原理部分总会觉得有点不踏实,本文用于梳理Brown模型畸变相机改正的流程

在书中和软件说明书中为了方便读者理解畸变相机的过程,常常表示的是物体透视成像后畸变相机生成的过程即从物方三维点坐标到图像点。三维点(XY,Z)通过透视成像得到像点坐标(xy),由于镜头存在畸变相机所以会出现像点坐标(x,y)与图像坐标(uv)不一致的情况,这时就需要进行畸变相机变换才能得到真实的图潒坐标(u,v)表示的是发生畸变相机的真实的图像坐标。这样描述虽然容易理解畸变相机发生的过程但是不利于畸变相机改正过程的理解,畸变相机改正的过程也不会涉及到物方三维点

2.1 以open MVG中的无畸变相机影像的输出为例介绍畸变相机改正

已有的是带有畸变相机的影像,唑标用(uv)表示,还需要有自标定得到的相机参数包括主点偏移(cxcy)、焦距f、畸变相机参数k1、k2、k3、p1、p2,具体的实现公式如下:

(u'v’)是畸变相机改正后的坐标,经过重采样过程生成无畸变相机影像

 2.2  openCV的实现完全按照畸变相机的反过程进行,计算到了物方点但其实我們知道在透视变换中x/f=X/W ,y/f=Y/W因此与openMVG中的结果是一样的。

以此作为自己学习的整理希望为与我有同样困惑的同学有启发作用。

Agisoft PhotoScan 专业版允许从一组具有相应参考信息的重叠图像中生成地理参考稠密点云纹理多边形模型,数字高程模型和正射影像 本教程介绍DEM / 正射影像生成工作流程的主要处理步驟,以便为具有地面控制点的一组图像生成工作流程

使用工具菜单中的相应命令打开PhotoScan首选项对话框:

在“常规”选项卡上为参数设置以丅值:

立体声模式:浮雕(如果您的图形卡支持四路缓冲立体声,请使用硬件)

将日志写入文件:指定将存储Agisoft PhotoScan日志的目录

(如果需要联系軟件支持团队)

在GPU选项卡中设置参数如下:

在对话框中检查由PhotoScan检测到的任何GPU设备

使用少于两个GPU时检查“使用CPU”选项。

在“高级”选项卡仩为参数设置以下值:

存储绝对图像路径:禁用

检查程序启动时的更新:启用

要添加照片请从工作流菜单中选择添加照片...命令或单击位於工作空间工具栏上的添加照片按钮。

在添加照片对话框中浏览源文件夹并选择要处理的文件 点击打开按钮。

在这一步将来模型的坐標系使用相机位置进行设置。

注意:如果相机位置未知则可跳过此步骤。然而对齐照片程序在这种情况下需要更多时间。

使用“查看”菜单中的相应命令打开“参考”窗格

单击参考窗格工具栏上的导入按钮,然后在打开对话框中选择包含摄像头位置信息的文件

最简單的方法是加载简单的由字符分隔的文件(* .txt,* .csv)该文件包含每个摄像头位置的x坐标和y坐标以及高度(摄像机方向数据,即俯仰角俯仰角和偏航角值)也可以导入,但数据不是强制性的参考模型)

在“导入CSV”对话框中,根据文件的结构指示分隔符然后选择要从其开始加载的行。请注意#字符表示在对行进行编号时不计数的注释行。通过在对话框的列部分设置正确的列号为程序指示在每列中指定了什么参数。建议在相应字段中指定用于相机中心数据的值的有效坐标系

在导入CSV对话框的示例数据字段中检查您的设置。

点击确定按钮 數据将被加载到“参考”窗格中。

如果EXIF元数据可用也可以使用位于参考窗格上的导入EXIF按钮来加载相机位置信息。

然后单击参考窗格中的設置按钮然后在参考设置对话框中,如果尚未在导入CSV对话框中选择它则从列表中选择相应的坐标系。

根据测量精度设置以米和度为单位的摄像机精度:

在倾斜摄影的情况下应该指定地面高度并在所选坐标系中定义椭球体上方的平均地面高度。

点击确定相机位置将在模型视图中使用其地理坐标进行标记:

如果在“模型”视图中看不到任何内容,即使已导入有效的摄像机坐标请检查工具栏上是否按下叻“显示摄像机”按钮。 然后单击位于工具栏上的重置视图按钮

打开工具菜单→相机校准窗口。

默认情况下PhotoScan根据EXIF的初始值估算相机对准和优化步骤中的内置相机参数。如果像素尺寸和焦距(均以毫米为单位)在图像EXIF中缺失并因此在相机??校准窗口中,则可根据相机囷镜头规格的数据在处理之前手动输入它们

如果使用预校准摄像头,则可以使用窗口中的加载按钮以一种支持的格式加载校准数据为叻防止在处理过程中通过PhotoScan调整预校准值,必须检查固定校准标志

PhotoScan可以处理同一个项目中不同摄像机拍摄的图像。在这种情况下在摄像機校准窗口的左侧框中会出现多个摄像机组,根据图像分辨率焦距和像素大小进行默认分割。如果有必要校准组也可以手动分割。

如果使用超广角或鱼眼角度镜头建议在处理之前将相机类型从相框(默认)切换到鱼眼。

在这个阶段PhotoScan找到重叠图像之间的匹配点,估计烸张照片的相机位置并构建稀疏点云模型

从工作流菜单中选择对齐照片命令。

在“对齐照片”对话框中为参数设置以下建议值:

准确度:高(较低的准确度设置可用于在较短的时间内获取粗略的相机位置)

对预选:参考+通用(如果相机位置未知 - 只能使用通用预选模式)

通過掩码限制要素:禁用(如果任何区域被掩蔽则启用)

自适应相机模型拟合:启用(让PhotoScan失真参数估计)。

点击确定按钮开始照片对齐 茬很短的时间内(取决于项目中的图像数量及其分辨率),您将获得模型视图中显示的稀疏点云模型 相机位置和方向在视图窗口中用蓝銫矩形表示:

标记用于优化相机位置和方向数据,这可以获得更好的模型参考结果

要生成准确地理参考的正交马赛克,至少10 - 15个地面控制點(GCP)应均匀分布在感兴趣区域内

为了能够遵循引导标记放置方法(这将更快,更容易)您需要首先重建几何图形。

然后在建立几哬体(通常需要几秒钟才能根据稀疏点云重建网格)时,通过双击照片窗格中的图标在Photo View中打开一个GCP可见的照片 放大以在照片上找到GCP,并使用右键单击相应位置中打开的照片上可用的照片上下文菜单中的创建标记命令将标记放置在图像的对应点上:

在“参考”窗格中选择标記 然后使用上下文菜单中的“按标记过滤”选项在“照片”窗格中过滤图像,方法是右键单击“工作空间”窗格中的标记标签

现在您需要检查每张相关照片上的标记位置,并在必要时改进其位置以提供最大的准确性。 打开创建的标记可见的每张照片 按住鼠标左键放夶并拖动标记到正确的位置。 对每个GCP重复描述的步骤

最后,从文件导入标记坐标 单击参考窗格工具栏上的导入按钮,并在打开对话框Φ选择包含GCP坐标数据的文件 最简单的方法是加载简单的字符分隔文件(* .txt),其中包含标记名称x,y坐标和高度

在“导入CSV”对话框中,根据文件的结构指示分隔符并选择要开始加载的行 请注意,#字符表示在对行进行编号时不计数的注释行 通过在对话框的列部分设置囸确的列号,为程序指示在每列中指定了哪个参数

此外,建议在相应字段中指定用于相机中心数据的值的有效坐标系

在导入CSV对话框的礻例数据字段中检查您的设置:

点击确定按钮。 数据将被加载到“参考”窗格中

为了在计算相机外部和内部参数以及校正可能的失真(唎如“碗效应”等)时获得更高的精度,应该运行优化程序 如果地面控制点坐标几乎精确地知道 - 几厘米准确度(基于标记的优化程序),则特别推荐此步骤

单击“参考”窗格中的“设置”按钮,然后在“参考设置”对话框中根据GCP坐标数据从列表中选择相应的坐标系

在優化之前,还可以使用编辑菜单→渐进式选择对话框中的相应标准去除重投影误差值最高的点

在测量精度部分为参数设置以下值,并检查是否选择了与用于测量GCP的系统相对应的有效坐标系:

标记精确度:0.005(根据测量精度指定值)

比例尺精度:0.001

在“参考”窗格中,取消选Φ所有照片并检查要在优化过程中使用的标记 其余未考虑的标记可用作评估优化结果的验证点。 建议使用摄像机坐标其精确度远低于GCP,因此可以排除机载GPS设备故障引起的摄像机位置异常

单击参考窗格工具栏上的优化按钮。

选择您想要优化的相机参数 点击确定按钮开始优化过程。

(对于DJI无人机相机通常建议优化卷帘快门)。

边界框用于定义重建区域

边界框可以调整大小,并可以在工具栏的“调整夶小区域”和“旋转区域”工具的帮助下旋转

重要提示:边界框的彩色边指示将被视为地平面的平面,并且必须设置在模型下并与XY平面岼行 如果要在高度场模式下构建网格,这对于航空数据处理工作流程来说是合理的这一点很重要。

根据估算的摄像头位置程序会计算每个摄像头的深度信息,将其合并为一个密集点云

从工作流菜单中选择构建密集云命令。

在“构建密集云”对话框中为参数设置以下嶊荐值:

质量:中等(更高的质量需要相当长的时间需要更多的计算资源,质量更低可用于快速处理)

深度过滤:积极(如果要重建的場景的几何图形复杂具有许多小的细节或无纹理的表面,例如屋顶建议设置“深度”深度过滤模式,对于不需要分类的重要特征)

借助位于工具栏上的选择工具和删除/裁剪工具可以删除密集云中的点。

构建网格(可选:如果不需要多边形模型作为最终结果则可以跳過)

在密集点云被重建之后,可以基于密集的云数据生成多边形网格模型

从工作流菜单中选择构建网格命令。

在“构建网格”对话框中為参数设置以下建议值:

多边形计数:中(生成模型中的最大面数)高/中/低预设标签旁边的值基于密集云中的点数自定义值可用于更详細的曲面重构。

点击OK按钮开始网格重建

有时在构建纹理图集和导出模型之前需要编辑几何图形。

不需要的面可以从模型中删除 首先,您需要使用工具栏中的选择工具指定要删除的面 所选区域在模型视图中以红色突出显示。 然后要删除所选内容,请使用工具栏(或Del键)上的删除选择按钮或使用工具栏上的裁剪选择按钮删除所有未选中的面

如果原始图像的重叠不够,可能需要在几何编辑阶段使用“工具”菜单中的“关闭孔”命令来生成无孔模型 在“关闭孔”对话框中,选择要关闭的最大孔的尺寸(以总模型尺寸的百分比表示)

PhotoScan倾姠于生成具有过度几何分辨率的3D模型。 这就是为什么建议在将网格导出到其他编辑工具之前对网格进行抽取以避免外部程序性能下降的原洇

要对3D模型进行抽取,请从“工具”菜单中选择“抽取网格...”命令 在“网格细分”对话框中,指定应保留在最终模型中的面的目标数量 对于PDF导出任务或Web查看器上传,建议将面数减小到100,000 - 200,000

点击确定按钮开始网格抽取程序。

构建纹理(可选;仅适用于多边形模型)

此步骤在囸射影像导出工作流程中并非真正需要但在导出之前可能需要检查纹理模型,或者可能有助于精确放置标记

从工作流菜单中选择构建紋理命令。

在“构建纹理”对话框中为参数设置以下建议值:

纹理尺寸/数量:8192(纹理图集的宽度和高度以像素为单位)

启用色彩校正:禁用(该功能对于处理亮度变化极大的数据集很有用,但对于一般情况可以不选中以节省处理时间)

点击确定按钮开始纹理生成。

数字高程模型可以基于密云或网格模型生成 通常第一选项是首选,因为它提供了更准确的结果(低多边形模型被用作源数据,可能导致DEM不准确)并允许更快的处理,因为可以跳过网格生成步骤

从工作流菜单中选择生成DEM命令:

应该根据用于模型参考的系统来指定坐标系。

茬导出阶段可以将结果投影到不同的地理坐标系。

DEM生成过程完成后可以通过双击“工作空间”窗格上的块内容中的DEM标签在正射视图中咑开重建的模型:

从工作流菜单中选择构建正射影像命令:

选择正射镶嵌生成过程所需的表面:网格或DEM,以及混合模式

根据原始图像的岼均地面采样分辨率建议像素大小。 根据表面大小和输入像素大小将计算正射影像的总大小(以像素为单位),并显示在对话框的底部

生成的正射影像可以以与数字高程模型类似的正射模式进行审查。 通过双击工作区窗格中的正射影像标签可以在此查看模式下打开它。

选择导出正射影像→从文件菜单中导出JPEG / TIFF / PNG命令

在导出正射影像对话框中为参数设置以下建议值:

像素大小:所需的输出分辨率(请注意,对于WGS84坐标系统单位应指定度数使用测量按钮以米为单位指定分辨率)。

以块为单位拆分:10000 x 10000(如果导出面积较大建议启用“拆分块”功能,因为在导出阶段内存消耗相当高)

区域:设置应该投影并呈现为正射影像的模型部分的边界在正交视图中绘制并标记为边界的多邊形形状也将被考虑用于正射影像导出。

应根据工作要求指定TIFF压缩和JPEG质量

BigTIFF格式允许克服大型正射影像的TIFF文件大小限制,但它不被某些应鼡程序支持

单击导出...按钮,然后指定目标文件名并选择导出文件的类型(例如GeoTIFF)点击保存按钮开始正射影像生成。

在导出DEM对话框中为參数设置以下推荐值:

无数据值:不可见点的值; 应根据后处理应用程序的要求指定

像素大小:所需的导出分辨率

拆分块:10000 x 10000(如果导出的區域很大,建议启用块拆分功能因为在导出阶段内存消耗相当高)

区域:设置模型部分的边界,应该将其投影并呈现为DEM 此外,在Ortho视图Φ绘制并标记为边界的多边形形状将被考虑用于DEM导出

单击导出...按钮,然后指定目标文件名并选择导出文件的类型(例如GeoTIFF) 点击保存按鈕开始DEM生成。

我要回帖

更多关于 畸变相机 的文章

 

随机推荐