图像获取
重叠 overl
主题的每个部分都应该从至少三个不同的视角拍摄——但不是完全不同的视角。连续照片之间的重叠部分通常应该超过三分之二。同一部位物体的不同视点间距应小于15度。
ContextCapture对于非结构化的获取非常健壮
相机模式
ContextCapture支持广泛的相机:手机,紧凑型数码,单反,鱼眼,摄影测量,和多相机系统。它可以处理静止的照片或从数码摄像机中提取视频帧。它不支持线性推杆式摄像机。它不支持快速运动下的滚动快门相机。
虽然ContextCapture不需要最低的相机分辨率,相比一个低分辨率的相机,一个更高的分辨率的相机允许在一个给定的精度与较少的照片,从而更快地获得一个主题。
ContextCapture需要知道相机传感器的宽度。如果您的相机型号没有列在我们的数据库中,您将被要求输入这些信息。
Projected PixelSize投影像素大小
生成的3D模型的分辨率和精度直接关系到在物体上的投影像素大小。为了达到预期的投影像素大小,你必须采用合适的焦距和距离组合,如下公式定义:
投影像素尺寸×焦距×照片最大尺寸=传感器宽度×到被摄体的距离
[m / pixel] [mm] [pixel] [mm] [m]
焦距Focal Length
Using a fixed focal length throughout the acquisitionprocess is recommended. 采集过程中建议使用定焦。
输入数据文件格式
定位数据
ContextCapture的一个突破性功能是它能够处理没有定位数据的照片。在这种情况下,ContextCapture生成了一个具有任意位置、旋转和缩放的3D模型,并且有一个可信的向上矢量。然而,ContextCapture本身也支持多种类型的定位数据,包括gps标签,控制点,并可以通过位置/旋转导入或完整块导入导入任何其他定位数据。
原则 Principle
ContextCapture以一组静态主题的数码照片作为输入,从不同的角度拍摄。可以提供各种额外的输入数据:相机属性(焦距,传感器大小,主点,镜头失真),照片位置(GPS),照片旋转(INS),控制点,…
在不需要人工干预的情况下,根据输入数据的大小,在几分钟/几小时的计算时间内,ContextCapture输出一个高分辨率的纹理三角形网格。 textured triangular mesh
输出的3D网格构成了被输入照片充分覆盖的主体部分的精确视觉和几何近似。
原则1 需要合适实验对象
ContextCapture最适合几何复杂的纹理哑光表面,包括但不限于建筑,地形和植被。
ContextCapture用于静态主题。移动的物体(人,车辆,动物),如果不是主要的,可以在生成的3D模型中以偶尔的人工制品为代价来处理。在采集过程中,人类和动物应保持静止,或应使用多个同步相机拍摄。
构成
两个主要的ContextCapture模块是ContextCapture Master和ContextCapture Engine。它们遵循一种主工模式:
- ContextCapture Master是ContextCapture的主模块。通过图形用户界面,它允许定义输入数据和处理设置,提交处理任务,监控这些任务的进度,可视化它们的结果,等等。主机不执行处理任务。相反,它将任务分解为基本作业,然后提交给作业队列。
- ContextCapture Engine是ContextCapture的工作模块。它在计算机后台运行,无需用户交互。当Engine不繁忙时,它会根据任务的优先级和提交日期接受队列中的待处理作业,并执行它。一项工作通常包括处理航空三角测量或三维重建,使用各种计算密集型算法(关键点提取、自动连接点匹配、束调整、密集图像匹配、鲁棒三维重建、无缝纹理映射、纹理图谱打包、层次分析)、
- 对于自动化需求,ContextCapture Master接口也可以通过调用Python API来替代。参见ContextCapture ContextCapture MasterKernel SDK。(看到这里是不是有点紧张和兴奋,这意味着我们可以python做一整套流程,比如点云处理后进行深度学习)
workflow