立体像对DEM提取——基于PCI Geomatics
以前上学的时候,学校里面老师遥感授课、实验都是Erdas Image、ENVI为主,这两个软件对于地信以及遥感专业的学生来说,最熟悉不过了。尤其后来国内ENVI与ESRI关系,Erdas image在课堂中的身影也慢慢减少,像我们实验课都是以ENVI完成。
去年十一月以来,工作上要求利用立体像对提取DSM,以及DEM编辑,搜索引擎毫不犹豫的指向了ENVI,尝试了好久,新版本可以生成DSM,若涉及到DEM编辑(滤波),第一印象就是矢量面值填充这样的简单操作,对于想要达成的效果相差甚远。后来使用了PCI Geoamtica软件,时间越长,才发现这软件相较于ENVI,Erdas毫不逊色,可能只是在国内投放的广告少,缺少高校合作,埋没了这款实力强劲、功能强大的遥感综合图像处理软件。
PCI Geomatics成立于1982年,总部位于加拿大,是地理影像产品和解决方案的全球领导者。集成桌面软件,具有用于遥感,数字摄影测量,地理空间分析,地图制作,镶嵌等的工具。
目前PCI软件暂不支持密集匹配的点云结果导出,后续可能会加入,拭目以待吧!
那么废话不多说,就主要说说用到的DEM提取模块,内容搬运自PCI官网https://support.pcigeomatics.com/hc/en-us/sections/200826019-DEM-Extraction
我手头上用到的是法国Pleiades卫星的三线阵影像,所以主要说说从光学卫星提取DEM模块。
搬砖开始!
DEM提取
DEM提取-光学卫星
以下是简短的教程,显示了从立体图像中提取数字表面模型(DSM)过程。在本教程中,使用了Pleiades 1A 图像,从所有立体光学数据提取DEM的工作流程相似。
从立体图像中提取的DSM(也称为DEM)代表地球表面,并且包括地球上的所有对象,例如建筑物和树木。许多应用都要求DTM代表没有任何物体的裸露地面。通过手动编辑将DSM转换为DTM是非常耗时的过程。PCI Geomatics开发了自动DSM到DTM的转换程序,但最终效果要看具体场景,并不是现在重点讲解内容。
本次使用的数据是澳大利亚墨尔本的全色,多光谱,PMS和三立体图像组成的样本Pleiades原始数据集:https://www.intelligence-airbusds.com/en/23-sample-imagery Pleiades系统的一项重大创新是提供高分辨率的立体覆盖功能。立体覆盖仅通过该区域的一次飞越即可实现,从而可以快速收集同类产品。除了“经典”的前视和后视立体成像外,Pleiades还可以获得额外的准垂直图像(三立体),从而使用户能够获得图像及其立体环境。通常,前向和后向立体声对可产生最高的精度,但此组合的使用仅限于地形平缓的区域。天底和前向/后向立体声对可以用于大多数类型的地形。
软件版本:Geomatica Banff及更早版本
初始项目设置
-
打开Geomatica OrthoEngine应用程序。
-
单击文件 > 新建
-
填写项目文件名,名称和描述
• 选择光学卫星建模作为数学建模方法
• 在选项下选择有理函数(从图像中提取)
• 点击确定 -
输入适合您的项目的输出投影和GCP投影信息
Tips:这里选择了UTM WGS84投影,高程参考为海平面。
数据输入
-
选择数据输入作为处理步骤
输入的数据将是后扫描图像和前扫描图像(前视和后视)。在“Foces”中查看时,图像如下。• 单击打开新的或现有的图像
• 点击新图像
• 找到文件位置。在图像文件夹中选择DIM_PHR1A_XXXXXXXXXX.xml文件
• 当询问您是否要将数据文件导入到.pix文件以进行优化处理时,请选择是。
Tips:简单的理解.pix格式是PCI软件自己的数据存储方式。
• 选择输出.pix文件的文件名和位置
• 当询问是否要立即创建概述时,请选择是。
• 重复上述步骤,加载所有图像到项目中 -
要查看输出图像,从“打开图像”窗 口中选择图像,然后单击“ 快速打开”。关闭两个窗口,然后继续执行步骤
GCP/TP平差
选择为项目收集GCP和TP,以改善数学模型。实际就是平差的过程,GCP就是有控平差,如果没有GCP只有连接点,根据rpc已有精度,就是无控平差(*网平差)。光学矫正教程中概述了有关如何收集GCP和TP的更多信息:https://support.pcigeomatics.com/hc/en-us/articles/209885893-Satellite-Orthorectification-Workflow#h_52968271361535391309828
对于DEM提取,使得立体图像彼此之间很好地对齐,以确保最高质量的DEM。因此,强烈建议至少收集TP以将图像绑定在一起。
这里我将如何收集控制点GCP以及连接点TP,写在一起。
一. GCP/TP精度
在收集GCP和TP之前,您需要验证和调整项目的GCP / TP准确性设置。设置正确的精度值非常重要。如果您的项目由接受调查的GCP组成,则输入的精度应为亚米级。
- 在OrthoEngine工具栏上,展开“ 工具”菜单,然后单击“ GCP / TP精度 …”。
出现“ GCP / TP精度”窗口
或者在OrthoEngine工具栏上,单击“ GCP / TP精度”按钮
- 根据要设置GCP,TP或两者的精度,在像素,线,高程(Z),东向(X)中输入用于设置GCP和TP精度的值。 ,以及“北向(Y)”框(如果适用)。
- 单击应用。
二. 收集控制点(GCP)
现在已导入图像,可以收集GCP和TP。Geomatica帮助的以下部分概述了每种OrthoEngine数学模型可收集的GCP的最小数量:
https://www.pcigeomatics.com/geomatica-help/concepts/orthoengine_c/Chapter_55.html
PCI提供两种方式GCP刺点,自动收集GCP和手动刺点。在使用的过程中根据实际情况选择,例如我野外实际打的控制点,就直接手动输入啦。
注意:控制点应尽量选择在地面、且容易辨识、角点。
自动收集GCP
-
在OrthoEngine工具栏上,单击“ 自动收集GCP”按钮。
-
将控制源更改为地理参考图像,然后浏览到参考图像(已带有实际坐标)。
-
浏览到DEM文件。
-
单击匹配GCP。
-
对于此示例,“搜索选项”将保留为默认值。但是,对于其他数据集,可能需要更改这些设置。您可以单击帮助按钮以弹出Geomatica帮助。本文档概述了每个选项。
Tips:
a. dem files可以选择PCI自带世界数据,路径在安装目录x:…\PCI Geomatics\Geomatica Banff\etc中,分别是demworld.pix和demworld_ell.pix。
b. Matching method:
(1) FFTP(快速傅立叶变换相位匹配):当两个图像之间有相对位移时,结果是傅立叶域中的相位差。 FFTP使用此相位差确定图像之间的偏移。
(2) NCC(归一化互相关):此方法通过找到产生图像中灰度值的最大互相关系数的偏移来查找两个图像之间的相对偏移。这是默认方法。
如果没有为此参数指定值,则使用默认方法NCC。当匹配的两个图像具有相似的灰度值和外观时,NCC通常会产生可接受的结果。当初始数学模型中出现旋转或图像大小错误时,NCC可能会比FFTP产生更好的匹配结果。因为NCC使用的模板大小小于FFTP使用的模板大小,所以此方法通常还会产生更快的结果。
为了获得更一致的准确结果,建议使用FFTP。此方法使用的模板尺寸大于NCC,并且因为它在频域中工作,所以它查看图像中细节的图案,而不是NCC使用的小邻域中的灰度值。在图像之间存在较大的亮度差异或图像之间发生重大土地用途变化的情况下,这使得FFTP比NCC更健壮,并使其能够更好地匹配来自不同传感器或光谱带的同一区域的图像。 -
该过程完成后,将在“收集的GCP”面板中列出收集的GCP。
-
单击计算模型以查看每个GCP的残差
-
如果需要可以更改搜索选项并重新收集GCP。还可以从收集的GCP列表中选择要使用的GCP。
-
要从模型计算中删除GCP,只需单击“ 用作GCP”列中的复选标记。
-
对列表中的GCP满意后,点击添加GCP到项目。添加到项目中以收集更多GCP后,您可以重新运行GCP集合。
-
关闭“ GCP收集”窗口。
手动收集GCP
-
在OrthoEngine工具栏上,单击“ 手动收集GCP”按钮。
-
打开需要刺点的影像。
-
在手动收集窗口,选择合适的方式进行刺点。如已经进行了自动收集步骤,这里的列表中会呈现出已经采集的GCP点。
Ground control source包括这几个来源:
• Manual entry:手动录入
• Geocode image:地理编码的影像文件
• Geocode vector:地理编码的矢量文件
• Chip database: PCI chip 数据库
• PIX/text files:保存的控制点PIX/text文件
Tips: Ground control source根据实际情况选择,如有现场控制点,那么只需要刺像方点,然后手动输入实际物坐标点即可。
上述为随意选择控制点,残差较大。如影像分辨率为0.5米,那最后的残差也尽量控制在0.5m以内 -
刺点。当前输入窗口为working(下图右),选点后,点击use point。再从另外一个reference中找到同名点,点击use point完成一个点。
上步确定像方点后手动输入物方点,然后在窗口中点击accept表示完成一个点保存。循环继续下一个。 -
重新计算,删除残差大的点以满足条件。
三. 收集连接点(TP)
与控制点步骤类似,有自动和手动两种方式。确保两个图像相互匹配,将同名特征点连接起来,进行加密,进一步改进模型。
自动收集TP
-
在OrthoEngine工具栏上,打开“ 自动系点收集”窗口。
-
浏览到DEM文件。
-
将其他参数保留为默认值。与GCP收集类似,可能必须根据数据集更改收集选项。
-
单击收集联系点。
-
将会出现一个弹出窗口,提示收集连接点个数。根据数据集中可用的重叠量,收集或多或少的联系点。
-
可以更改选项,需要时可以收集更多联系点。
-
关闭“领带点收集”窗口。
注意:根据经验,自动收取的连接点质量不齐,在去除掉残差较大的点后,还是建议手动检查一遍。
手动收集TP
同控制点手动收集,不需要物方坐标
四. GCP和TP结果检查
在收集GCP和TP之后,可以根据残差报告需要进一步优化
-
在OrthoEngine工具栏上,打开“ 残差 错误”窗口。
-
收集的GCP和TP显示在此窗口中。窗口中有很多选项。帮助中提供了每个选项的说明。
-
可以切换以查看GCP,TP或两者。
-
单击表中的一个点时,可以看到每个图像的剩余摘要。
-
如果您有任何残留误差很高的点,可以使用“删除点”按钮将它们从模型中删除 .
-
符合精度要求后,单击计算模型 ,然后关闭窗口。
DEM提取
-
在OrthoEngine工具栏上,选择“DEM from stereo”
(1) 单击创建对极图像(2) 选择左右图像
三线阵影像可以选择至少两种组合为左右图形。(3) 选择两个图像后,单击“add Epipolar Pairs To Table”按钮
(4) 单击“generate pairs”
(5) 单击“ok”,对极图像成功完成
-
在OrthoEngine工具栏中,选择“Extract DEM automatically”。
在DEM提取窗口
(1) 提取方法(Extraction method):选择SGM(Semi-global matching)作为提取方法。
Tips:NCC(归一化互相关)和SGM(半全局匹配)。SGM基于更新的技术,可产生质量更高的结果,错误更少,细节更多,处理时间却增加了。但是,如果分辨率较低的DSM足够,并且较可取的处理时间是可取的,请考虑选择NCC方法。
SGM提取方法在geomatica 2018版本及以上才有,通过对比,个人认为SGM效果比NCC出色。
(2) 检查Ouput DEM vetical datum。缺省情况下,对于Rational Functions项目,它设置为Ellipsoid。如果希望自动将输出DEM转换为MSL,则可以将垂直基准更改为MSL。
(3) 选择Pixel sampling interval(像素采样间隔)为1
(4) 复选标记Epipolar tracking
• DSM提取的质量高度依赖于立体图像之间的对极线对齐的准确性。极线对准中的误差在立体声对之间可能会有所不同,从而导致DSM中存在质量不佳的标高值较大的斑块。当以全分辨率生成DSM时尤其如此。即使对极线移动了一条线,也会发生错误。
• Epipolar Tracking选项可跟踪立体声对上对极线的变化,并可以自动补偿较小的渐进误差。
• 对极跟踪增加了处理时间(通常增加了20%到30%),并且在原本不错的DSM中引入错误的可能性很小。
(5) 选择 Create Geocoded DEM
(6) 选择output file name和位置
(7) 设置X and Y Resolution,最大与影像分辨率相同,我这里是0.5m
(8) 点击 Extract DEM
注意:由于这些图像具有高分辨率,因此创建DEM会花费很长时间。 另外该算法使用较小的图块处理DEM,所以会在水体中出现伪影或跳跃值,这是正常现象。这些工作需要使用我们的DEM编辑工具进行编辑。
3. Pleiades提取的DEM(DSM)结果
放大后局部(PCI动态级别渲染显示)
提取DEM(DSM)后,需要将DEM(DSM转换为数字地形模型(DTM)。DTM仅包括去除植被,建筑物和其他人造特征的“裸露土地”的标高(尽管通常保留道路和桥梁)。DTM是在矫正工作流程中使用的首选产品。
注意:根据像对提取的DEM实际上就是DSM,只是软件中称作DEM。对于结果需要进行编辑滤波,去除非地面要素,从而得到真正的DEM。