Agisoft PhotoScan-使用手册-第7章 自动化
使用块
在处理典型的数据集时,通用处理工作流的自动化可以有效地执行日常操作。由于批量处理功能,PhotoScan允许分配多个处理步骤,无需用户干预即可逐个运行。由于“多块项目”的概念,手动用户干预可以进一步减少,每个块包括一个典型的数据集。对于具有多个相同性质块的项目,可以在批处理对话框中使用的常用操作分别应用于每个选定块,从而允许按照预定义的工作流程模式设置多个数据集以进行自动处理。
此外,多块项目可能是有用的,当它变得很难甚至不可能一次生成整个场景的三维模型。例如,如果照片的总量太大而无法一次处理,则可能发生这种情况。为了克服这个困难,PhotoScan提供了在同一个项目中将照片分成几个独立的块的可能性。照片对齐,构建密集点云,构建网格,以及形成纹理图集操作可以分别针对每个块执行,然后可以将生成的三维模型组合在一起。
使用块不会比使用PhotoScan遵循一般工作流程更困难。事实上,在PhotoScan中总是至少存在一个活动块,并且所有的三维模型处理工作流操作都应用于这个块。
要使用多个块,您需要知道如何创建块,以及如何将生成的三维模型从单独的块合并到一个模型中。
创建区块
要创建新块,请单击“工作空间”窗口上的 “添加块”工具栏按钮,或者从“工作空间”上下文菜单(通过右键单击“工作空间”窗口上的根元素)中选择“添加块”命令。
创建块后,可以加载照片,对齐它们,生成密集的点云,生成网格曲面模型,创建纹理图集,在任何阶段导出模型等等。块中的模型不相互关联。
当前项目中创建的所有块的列表以及反映其状态的标志显示在“工作区”窗口中。
以下标志可以出现在块名称旁边:
R(参考)
表示块中的三维模型已被引用。当两个或两个以上的块相互对齐时也会出现。请参阅设置坐标系中有关如何参考模型的信息。
S(缩放)
表示块中的三维模型仅基于比例尺信息进行缩放,不存在参考坐标数据。请参阅“优化”部分中的比例尺放置信息。
要将照片从一个块移到另一个块,只需在“工作空间”窗口的照片列表中选择它们,然后拖放到目标块。
T(转换)
表示使用以下至少一种工具手动修改了三维模型:旋转对象,移动对象或缩放对象。
块内操作
块内的所有操作都是按照常规的工作流程进行的:加载照片,对齐它们,生成密集点云,构建网格,构建纹理图集,导出三维模型等等。
请注意,所有这些操作都应用于活动块。当一个新的块创建时,它会自动激活。保存项目操作保存所有块的内容。要将选定的块保存为单独的项目,请使用块上下文菜单中的“保存块”命令。
将另一个块设置为活动
1. 右键单击“工作区”窗口上的块标题。
2. 从上下文菜单中选择设置活动命令。
删除块
1. 右键单击“工作区”窗口上的块标题。
2. 从上下文菜单中选择“删除块”命令。
要重新排列“工作区”窗口中区块的顺序,只需将窗口中的区块拖放即可。
对齐块
在“部分”三维模型以几个块建成之后,它们可以合并在一起。合并之前,他们需要对齐。
对齐单独的块
1. 从“工作流程”菜单中选择“对齐块”命令。
2. 在“对齐块”对话框中,选择要对齐的块,用双击指示参考块。设置所需的对齐选项。完成后点击确定按钮。
3. 进度对话框将显示当前处理状态。要取消处理,请单击取消按钮。
对齐块参数
以下参数控制块对齐过程,并可在“对齐块”对话框中进行修改:
方法
定义块对齐方法。基于点的方法通过在所有块上匹配照片来对齐块。基于标记的方法使用标记作为不同块的公共点。有关使用标记的详细信息,请参见设置坐标系部分。基于相机的方法用于根据估计的相机位置对齐块。相应的相机应该有相同的标签。
精度(仅基于点对齐)
更高的准确性设置有助于获得更准确的块对齐结果。较低的精确度设置可用于在较短的时间内获得粗糙的块对齐。
点限制(仅限基于点的对齐)
数字表示在基于点的块对齐期间要考虑的每个图像上的特征点的上限。
解决规模
如果在不同块中的模型的比例尺被精确地设置,并且在块对齐过程中应该保持不变,则选项被启用。
预选图像对(仅限基于点的对齐)
许多块的对齐过程可能需要很长时间。这段时间的很大一部分时间用于在照片上匹配检测到的特征。图像对预选选项可以通过选择要匹配的图像对子集来加速这个过程。
通过掩码限制要素(仅限基于点的对齐)
启用此选项时,会丢弃掩盖的图像区域中检测到的功能。有关使用掩码的更多信息,请参阅使用掩码部分。
注意
块对齐只能对包含对齐照片的块进行。
没有必要为地理参照块执行块对齐,因为它们已经在同一个坐标系中。
合并块
对齐完成后,单独的块可以合并为一个块。
合并块
1. 从工作流菜单中选择合并块命令。
2. 在“合并块”对话框中,选择要合并的块和所需的合并选项。完成后点击确定按钮。
3. PhotoScan会将单独的块合并为一个。合并的块将显示在“工作区”窗口上的项目内容列表中。
以下参数控制块合并过程,并可以在“合并块”对话框中进行修改:
合并密集点云
定义是否将所选块的密集点云组合起来。
合并模型
定义是否将所选块的模型组合在一起。
合并标记
定义是否合并所选块中的标记(只有具有相同标签的标记才会被合并)。
块合并结果(即,照片,点云和几何图形)将被存储在新块中,并且其可以被视为普通块(例如,模型可以被纹理化和/或导出)。
批量处理
PhotoScan允许自动执行一般工作流程操作与多个块。在处理大量的块时,这是非常有用的。
可以将批处理应用于工作空间中的所有块,仅应用于未处理的块或应用于用户选择的块。在批次处理对话框中选择的每个操作都将应用于每个选定的块,然后处理将转到下一步。
对齐照片对齐/合并块保存/加载项目
优化对齐消除网格导出/导入相机
建立密集点云平滑模型导出点
构建网格关闭孔导出模型
构建纹理导入蒙版导出纹理
构建平铺模型重置区域导出平铺模型
构建DEM对地面点进行分类导出DEM
建立正射镶嵌导入形状导出正射镶嵌
生成报告检测标记运行脚本
细化网格重置区域
1. 从工作流菜单中选择批处理...命令。
2. 单击添加以添加所需的处理阶段。
3. 在“添加作业”对话框中,选择要执行的操作类型,应该应用的区块列表以及所需的处理参数。完成后点击确定按钮。
4. 重复以上步骤,根据需要添加其他处理步骤。
5. 通过单击批处理...对话框右侧的向上和向下箭头来排列作业。
6. 单击确定按钮开始处理。
7. 进度对话框将出现,显示批处理作业的列表和当前操作进度的状态。要取消处理,请单击取消按钮。
批处理过程包括应用于多个块的导入/导出功能时,在导入/导出作业的“路径”字段中使用以下模板是合理的:
{filename} - 文件名(不带扩展名),
{fileext} - 文件扩展名,
{camera} - 相机标签,
{frame} - 帧索引,
{chunklabel} - 块标签,
{imagefolder} - 包含活动块的图像的文件夹,
{projectfolder} - 包含活动项目的文件夹的路径,
{projectname} - 活动项目文件名.
可以使用批处理对话框中的保存按钮将批处理任务列表导出到XML结构化文件,并使用打开按钮将其导入到不同的项目中。
4D处理
概述
PhotoScan支持重建由一组静态安装的同步相机捕获的动态场景。为此,可以为每个摄像机位置加载在不同时刻拍摄的多个图像帧,形成多帧组块。事实上,获取静态场景的正常块是仅加载单个帧的多帧块。使用“时间线”窗口执行通过帧序列的导航。
尽管可以使用单独的静态块来处理每个时刻的照片,但是聚合多帧块实现有以下几个优点:
个别框架的坐标系统保证匹配。处理后不需要将块对齐。
每个处理步骤可以应用于整个序列,并具有用户可选的帧范围。没有必要使用批处理,这简化了工作流程。
由于整个序列的照片的联合处理,照片对齐的准确性更好。
可以通过序列自动跟踪标记。
直观的界面让序列的导航非常简单快捷。
如果摄像机在整个序列中保持静态,那么多帧块也可以有效(有一些限制)用于处理同一对象或甚至不同对象的无序照片集。
管理多帧块
将照片添加到块时形成多帧布局。它将反映用于存储图像文件的数据布局。因此有必要提前适当地在磁盘上组织文件。以下数据布局可与PhotoScan一起使用:
a. 来自相应相机的所有帧被包含在单独的子文件夹中。子文件夹的数量等于摄像机的数量。
b. 来自所有相机的对应帧被包含在一个单独的子文件夹中。子文件夹的数量等于帧的数量。
c. 来自相应相机的所有帧被包含在单独的多层图像中。多层图像的数量等于摄像机的数量。
d. 来自所有相机的对应帧被包含在单独的多层图像中。多层图像的数量等于帧的数量。
数据正确组织后,可以将其加载到PhotoScan中以形成多帧组块。确切的程序将取决于是否使用多文件夹布局(变体a和b)或多层(变体c和d)布局。
从多文件夹布局创建块
1. 从工作流菜单中选择添加文件夹...命令。
2. 在“添加文件夹”对话框中,浏览到包含具有图像的子文件夹的父文件夹。然后点击选择文件夹按钮。
3. 在“添加照片”对话框中,选择合适的数据布局。对于上面的布局a),选择“从文件夹创建多帧相机作为相机”。对于布局b)选择“从文件夹创建多帧相机作为帧”。
4. 创建的多帧大块将出现在“工作区”窗口上。
从多层图像创建块
1. 从工作流程菜单中选择添加照片...命令或点击添加照片工具栏按钮。
2. 在“添加照片”对话框中,浏览至包含多层图像的文件夹,然后选择要处理的文件。然后点击打开按钮。
3. 在“添加照片”对话框中,选择合适的数据布局。对于上面的布局c),选择“从文件创建多帧摄像机作为摄像机”。对于布局d)选择“从文件创建多帧相机作为帧”。
4. 创建的多帧大块将出现在“工作区”窗口上。
建议检查加载的帧序列是否有错误。这可以通过滚动时间轴窗口中的帧选择器并在滚动期间检查照片窗口中的缩略图来完成。
创建多帧组块后,可以像处理正常组块一样处理。对于多帧组块,将在适当的地方提供允许选择要处理的帧范围的附加处理参数。
跟踪标记
PhotoScan允许通过帧序列自动跟踪标记投影,前提是帧之间的对象位置没有明显变化。如果帧数很大,这大大简化了移动点标记的任务。
通过帧序列跟踪标记
1. 将时间轴窗口中的帧选框滚动到第一帧。按照“设置坐标系”部分所述添加第一帧的标记。
2. 从“工具”菜单中选择“轨迹标记...”命令。
3. 必要时调整开始和结束帧索引。默认值对应于从当前帧到序列结束的跟踪。点击确定按钮开始跟踪。
4. 检查跟踪的标记位置。自动跟踪的标记将用图标表示。如果某帧出现放置错误,请在发生故障的帧内调整错误的标记位置。一旦标记位置被用户细化,标记图标将变为
5. 再次使用跟踪标记 ...命令从该帧重新启动跟踪。
注意
如果结束帧索引小于起始索引,则将向后执行跟踪。
当使用结构光将纹理细节添加到物体表面时,自动标记跟踪很可能失败,因为相对于移动的物体表面,光线图案不会是静态的。
Python脚本
PhotoScan支持Python API,使用Python 3.5作为脚本引擎。
Python命令和脚本可以通过以下选项之一在PhotoScan中执行:
PhotoScan控制台窗口可用作Python丰富的控制台;
在“控制台”窗口工具栏上单击 “运行脚本”按钮,或使用“工具”菜单中的 “运行脚本...”命令运行Python脚本。
从命令行使用-r参数。
在Windows:
photoscan.exe -r
在Linux:
./photoscan.sh -r
在Mac OS X:
./PhotoScanPro.app/Contents/MacOS/PhotoScanPro -r
从自动运行文件夹。
在Windows: C:/users//AppData/Local/AgiSoft/PhotoScan Pro/scripts/
在Linux:/home//.local/share/data/Agisoft/PhotoScan Pro/scripts/
在Mac OS X: /Users//Library/ApplicationSupport/Agisoft/PhotoScan Pro/scripts/
有关PhotoScan功能可通过Python脚本访问的详细信息,请参阅Agisoft官方网站上提供的Python API参考文档
示例Python脚本的集合在Agisoft GitHub存储库上可用