西河刘卡车医 发表于 2024-3-13 21:24:14

无人机影像的空间三维建模:Pix4Dmapper运动结构恢复法

  本文介绍基于Pix4Dmapper软件,实现由无人机影像建立研究区域空间三维模型的方法。

目录

[*]1 背景知识
[*]1.1 运动结构恢复方法原理

[*]1.2 运动结构恢复方法流程

[*]2 软件与数据准备

[*]2.1 软件准备
[*]2.2 数据准备

[*]3 研究区域模型建立

[*]3.1 数据导入与配置
[*]3.2 第一次模型建立
[*]3.3 第二次模型建立
[*]3.4 模型外观检查与调整
[*]3.5 模型量测

[*]4 建模部分问题与思考

[*]4.1 模型外观与组成分析
[*]4.2 模型部分外形与纹理错误分析
[*]4.3 模型质量报告分析
[*]4.4 模型边界缺失问题
[*]4.5 地物底面面积计算问题

[*]参考文献

  前面两篇博客分别基于不同软件、不同方法,详细讲解了空间三维模型建立的过程:物体三维模型的构建:3DSOM软件实现侧影轮廓方法介绍了基于3DSOM的侧影轮廓方法物体空间三维模型重建,空间三维模型的编码结构光方法实现:基于EinScan-S软件介绍了基于EinScan-S的编码结构光方法物体空间三维模型重建。
  那么本次,综合以上两篇博客所提到的方法与原理总结,我们就将进行更进一步的空间三维建模实践——基于若干无人机航拍影像,借助Pix4Dmapper软件,完整建立研究区域的空间三维模型。
  本文所用的软件:Pix4Dmapper 4.3.31软件、ArcMap 10.2软件、Microsoft照片2020软件。
1 背景知识

  通过上方提及的两篇博客,我们了解了空间三维模型重建的侧影轮廓方法与编码结构光方法,并对两种方法加以分析、比较;其中,侧影轮廓方法为一种被动方法,编码结构光方法则为主动方法。随着21世纪后全球城市化快速发展,针对城市或某一空间区域的室外大范围场景三维模型重建具有较大应用需求。由于主动方法成本相对较高,操作整体较为复杂,难以进行大规模复杂场景扫描,在城市或空间区域三维建模应用中将受到限制;而侧影轮廓方法则无法获取目标物体表面部分细节信息。
  本文中,我们将详细介绍一种新的被动方法——运动结构恢复(Structure From Motion,SFM)方法,其可较好地对自然地形、城市景观等大规模场景进行三维重建,目前已广泛应用于矿厂等大范围区域管理、农业、灾害治理,以及文物修复等多领域。
1.1 运动结构恢复方法原理

  运动结构恢复方法由整体观之,即利用运动相机(如处于飞行状态无人机所携带摄像机)所拍摄若干不同角度二维图像,解算相机参数,恢复得到三维点的空间位置。其中,这一方法的知识基础包括相机成像模型、相机标定与多视几何等。以下先分别对各知识基础所对应原理加以描述,并最终将各独立部分结合,得到运动结构恢复方法的完整原理。
  在计算机视觉中,最常用的相机成像模型即小孔成像模型。小孔成像原理如图1所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929361-1105089669.png
图1小孔成像原理示意图
  其中,obj为目标物体,H为小孔,W为成像屏,f为焦距。
  由图可知,小孔成像所得结果为倒像;若将成像屏置于小孔前侧(靠近目标物体一侧),且距离小孔距离依然为一个焦距长度,则可使得小孔成像结果与原物体方向一致,如图2所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929473-2084842446.png
图2小孔成像(正像)原理示意图
  与上述两篇博客类似,在运动结构恢复方法中,同样需要牵涉到目标物体真实三维空间与二维图像空间之间坐标系的转换;这一过程牵涉到如下四种坐标系:
  1)世界坐标系。世界坐标系即人类所处现实世界构成的坐标系,其中每一物体、每一位置都有唯一坐标表示。
  2)相机坐标系。相机坐标系依据相机位置定义,以相机光心为坐标原点,X轴与Y轴分别平行于像平面坐标系X轴与Y轴,将与光轴重合的直线作为相机坐标系Z轴。
  3)图像物理坐标系。图像物理坐标系即像平面坐标系,以相机坐标系Z轴与图像所在平面交点为原点,X轴与Y轴分别平行于图像两对应边缘;尽管与下方像素坐标系所表示均为图像上位置,但图像物理坐标系以物理单位表示这一位置。
  4)像素坐标系。像素坐标系以图像像素为单位,以矩阵形式表示图像像素位置。
  其中,图像物理坐标系与像素坐标系均表示图像上某一点的位置信息,因此可能较易混淆;针对二者的区别,如图3所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929433-1665146104.png
图3图像物理坐标系与像素坐标系对比
  图中,O_1为图像物理坐标系原点,x与y为图像物理坐标系坐标轴;O_0为像素坐标系原点,u与v为像素坐标系坐标轴;黑色与红色线段组成区域为图像区域。其中,图像物理坐标系单位为毫米,像素坐标系单位为像素。由此即可看出,二者为图像中各位置的不同表达方式。
  上述各坐标之间均具有一定转换关系,目标物体表面点位置的确定即为上述各坐标间相互转换的过程。
  在坐标系转换过程中,需涉及投影矩阵;而投影矩阵则由相机外部参数与相机内部参数组成。其中,相机内部参数由相机内部结构决定,包括相机焦距、像主点坐标、像素大小等。一般地,相机内部参数由相机定标得出——即找到图像二维坐标与空间三维坐标的映射关系,亦即计算得出各图像对应相机参数;相机定标技术可分为传统标定法与相机自标定法,在上述两篇博客中我们对相机定标已有接触。
  相机外部参数指相机在拍摄过程中的运动参数,用以描述相机位置、姿态信息;通过其可以恢复图像拍摄时相机的运动轨迹与姿态信息。一般地,分别利用特征点提取与匹配算法与对极几何原理获取匹配点像素坐标与相机旋转矩阵、相机平移向量。
  基于上述匹配点像素坐标与相机旋转矩阵、相机平移向量,再结合前述由相机标定获取的相机内部参数矩阵,即可组成投影矩阵,从而将全部二维像素坐标映射至三维空间坐标,生成三维点云,恢复研究区域空间三维场景模型。此外,为缓解噪声或误差带来的影响,可对上述生成的空间三维坐标加以优化,提升其精度。
  传统运动结构恢复方法所选用优化方法为光束平差法(Bundle Adjustment,BA),以其计算重投影误差,并最小化重投影误差函数,从而优化相机参数与目标物体各点空间三维坐标。光束平差法认为,空间内部任意物体点,其所对应不同视图的像素点与相机光心连线都相交于一点,且这一点即该物体点;基于此,对于空间内部全部物体点,应具有大量光束。而由于噪声的存在,使得应相交于一点的光线往往未相交于一点。因此,不断调整相应参数,选择不同待求信息取值,以使得光线相交于一点,从而实现降低重投影点与实际像素点之间的距离误差。
  综上所述,可将各独立原理综合,得到三维模型重建运动结构恢复方法的较为完整机理——运动结构恢复方法首先利用小孔成像等相机成像模型,获得目标区域一定数量的二维图像;随后利用相机定标以及其它算法,获取相机内部参数与外部参数;基于相机内部参数与外部参数所组成的投影矩阵,借助四种坐标系之间的转换规则,将二维图像中特征点映射至三维空间坐标系,形成三维点云;最终利用优化后的三维点云,对区域空间三维场景特征加以描述,实现目标区域的空间三维模型重建。
1.2 运动结构恢复方法流程

  其实,前述部分针对运动结构恢复方法的原理探讨,已将这一空间三维模型重建方法的大致流程展示出来。在此,对上述流程加以具体归纳,展示如图4所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929514-1791282801.png
图4运动结构恢复方法流程
2 软件与数据准备

  本文需要借助Pix4Dmapper软件,对大量无人机航拍影像所组成的空间系统进行三维模型重建。因此,在正式开始本次操作部分前,需完成初始数据与软件的准备。
  本部分结合Pix4Dmapper 4.3.31软件安装与目标研究区域选取、无人机影像数据获取等,对本文操作的前期准备工作,所遇到的问题以及相应解决方案加以总结。
  需要注意的是,Pix4Dmapper软件的安装并不是本文的重点,这里也只是大概记录了我在安装软件时出现的一点问题,而非详细的软件安装教程;详细的安装方法大家百度即可。另一方面,本文的数据由于并不是我的,因此本部分对数据的介绍亦比较模糊,且数据也不能够一并提供给大家,还请大家见谅。但是依据本篇博客的思想与对操作步骤的详细解释,大家用自己手头的无人机航拍图片,可以将相关操作与分析过程加以完整重现。
2.1 软件准备

  依据网上一位大佬博客的内容,首先开始直接安装软件,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929472-348094876.png
  随后发现,Pix4Dmapper软件开始安装一段时间后,将出现系统“用户账户控制”报错,单击“关闭”后将自动停止软件安装,此外无其他选项。多次重复,这一问题依然存在。
  其中,报错情况如下首图所示;报错后软件自动停止安装,如下第二幅图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929515-135064355.png
  针对这一问题,结合相关博客,尝试关闭专用网络防火墙、调整用户账户控制设置(如下图所示)等,但均无效果。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929380-669882762.png
  随后查阅更多博客内容得知,这一问题可用本地组策略编辑器加以解决。然而,发现个人电脑并无这一编辑器所对应文件(即“gpedit.msc”文件),因此无法打开组策略编辑器。进一步查阅资料后得知,由于个人电脑为Windows 10 家庭中文版,默认状态下无(或未激活)组策略编辑器。
  因此,在网络中下载Windows 10 “gpedit.msc”文件资源,并放置于C盘对应路径下,发现依然无法正常打开编辑器(打开后为空,此处未及时截图);进一步对比发现,可能是由于个人所下载文件仅适用于Windows 10 专业版,与自己电脑系统不匹配导致。
  由此继续探索,由另一博客中找到可以使用的、用以激活Windows 10 家庭中文版组策略编辑器的链接器配置文件代码,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929492-2103840312.png
  保存后将其转换为“.cmd”格式,右键“以管理员身份运行”,稍等片刻即可完成。随后,即可正常打开编辑器,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929475-166076521.png
  随后,在本地组策略编辑器中调整用户账户控制规则,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929478-771328044.png
  随后再次安装软件,即可成功,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929554-1155178734.png
  安装后打开“硬件获取.exe”,配置计算机名称并生成HWID,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929581-643920510.png
  其中,计算机名称由“系统”界面获取,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929472-911390842.png
  打开“4D-Permit-4X.exe”,将HWID复制,并调整软件期限(单位为天),如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929471-1800497630.png
  随后,双击所生成的注册表编辑器,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929535-1942327252.png
  以上完成全部安装操作。最后,打开“Pix4DTool.exe”,点击“Auto Start”,随后打开软件即可;但有时这一操作会导致电脑其他软件(如浏览器)连接互联网较慢,因此亦可在打开软件时直接将WLAN禁用。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929591-1327717067.png
  软件打开后如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929612-534458936.png
2.2 数据准备

  本文中,初始数据为某学校千余个图像获取点,每点各对应一幅无人机航拍影像。其中,多数影像大致按照西南-东北方向的标准网格模式(Regular Grid Pattern)拍摄;在校园主干大道沿线,增设西北-东南的拍摄路径,与前者组成双重网格图像(Double Grid Image)。
  全部图像获取点位置如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125931350-1011787715.png
  其中,考虑到计算机性能、用时等条件限制,由上述图像获取点中选取100个左右作为研究对象,所选纳入计算区域如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929845-1081650184.png
  其中,红色边框内部为纳入计算区域,呈现蓝色的点则为落入这一区域内部的图像获取点,共108个。上述区域详细信息如下图所示。其中,为提高后期拼图效果,研究区域应较小于纳入计算区域。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929759-1957461281.png
  获得研究区域内点后,将其信息导出,并依据点编号下载对应数据。
  至此,完成全部数据准备工作。
3 研究区域模型建立

  经过上述数据与软件准备,即可开始研究区域的建模工作。本文操作过程所遇问题以及值得思考的问题除部分直接附于本部分外,其它附于本文第四部分。
3.1 数据导入与配置

  打开Pix4Dmapper软件,选择“新项目”,并配置项目对应名称与路径;如下图所示。
  这里需要注意,不要将项目直接创建在C盘,否则很可能由于存储空间不足出现程序运行问题。在本文第一次执行建模操作时,就因只考虑到路径需要简洁(不得过长且不含中文),而疏忽了所得模型可能所占用的大量空间,将新项目创建在C盘,从而导致第一次程序运行接近尾声时由于无法写入结果文件出错。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929565-1316898858.png
  随后,将前述下载好的图像文件导入项目中。其中,可以将全部整理好的图像放置于同一文件夹下,并通过“添加路径…”的方式将多张图像批量导入新项目中。
  “选择图像”过程如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929589-554949829.png
  随后,对图像坐标系、相机属性等参数加以配置,其中程序亦会给出默认参数;这些参数需要根据图像拍摄时无人机摄像机所处的状态、所选用的坐标系决定。同时还可浏览各图像对应经纬度、高度、位置精度、方向角度等信息,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929539-118161472.png
  随后,对输出结果与地面控制点(Ground Control Point,GCP)坐标系加以配置。默认条件下,二者对应坐标系一致,以此使得建模结果与GCP同处于同一坐标系中;如二者不一致,而若其对应坐标系分别均存在于软件坐标系数据库中,软件亦将自动实现两种坐标系的转换。
  此外,还可对坐标系单位(默认为米)等加以调整。其中,若图像自身含有空间位置信息,则可选择自动检测。
  此处配置如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929561-1549771447.png
  随后,对处理选项模板加以配置。在左侧选择“标准”→“3D Maps”,软件将自动以“3D地图”模板进行应用处理。如下所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929698-233566190.png
  其中,选择“3D Maps”模板将得到3D地图(包括点云与3D纹理网格)、数字地表模型(Digital Surface Model,DSM)与正射拼影像(Orthomosaic)等结果;选择“3D Models”模板将仅得到点云与3D纹理网格结果。各类不同模板适用于不同应用。
  点击“Finish”按钮。若此时个人电脑内存或磁盘空间较小,软件会弹出相应警告提示。在我第一次执行操作时,内存空间与磁盘空间均弹出警告信息,但点击“OK”后,警告信息均消失且可继续下一步;其中内存不足提示信息如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929566-622780115.png
3.2 第一次模型建立

  随后进入地图视图。如前所述,在打开软件时需要关闭网络连接,而在随后即可恢复网络连接;若此时网络恢复,则可在地图视图中看到研究区域及其附近的卫星影像。如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125930114-585806802.png
  打开“处理选项”,需要选中三个选项,并配置相关属性,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929562-900705681.png
  配置全部属性完毕后,即可开始运行程序,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929581-643920510.png
  可以看到,在程序运行一段时间后(约20分钟左右),即可自动弹出质量报告界面。如下图所示。由此可知,此时程序已完成部分工作。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929847-1655607511.png
  尽管已弹出质量报告,但程序依然在运行,且报告中内容会逐步添加。由此可以看出,Pix4Dmapper软件的质量报告是随着程序运行而实时产生的;每完成一步骤,若这一步骤对应有需要写入质量报告的内容,此报告均会自动更新。这样的方式极大方便用户实时跟踪程序运行情况。
  而在另一方面,可以明显感受到Pix4Dmapper建模程序在运行过程中(尤其是软件运行中后期),电脑性能受到较大影响——甚至有时鼠标移动都会产生延迟。由此亦可以看到,依据无人机拍摄影像进行空间三维模型重建,是一项十分复杂的过程。
  经过两个小时左右的等待,发现在程序界面中下方出现类似于操作日志的内容,其中出现“ERROR”字样英文提示,大意为一些结果文件无法写入我所设置的保存路径内。
  此时才意识到,如前所述,在前期设定项目保存路径时,为保证路径的简洁,自己直接将其放置于C盘,而未考虑到C盘空间大小可能无法放置结果文件。
  因此,在不断的卡顿中艰难打开资源管理器,发现电脑C盘甚至仅剩余90 MB左右空间。随后立即切回Pix4Dmapper软件,准备取消程序运行。而此时电脑已完全无法操作;随后,电脑即开始重启。
3.3 第二次模型建立

  电脑重新开启后,Pix4Dmapper软件自然已是关闭状态。此时发现,在结果保存路径中依然留有3 GB左右的剩余结果文件。而考虑到上一次操作在软件运行途中强制关闭,不确定这一结果文件是否完全,是否还可进一步利用并最终得到研究区域的正确空间三维模型重建结果;因此选择重新建立项目,更换保存路径至其它空间充裕磁盘后开始执行程序。
  此处值得一提的是,电脑重启后,可以看到C盘自动清空了10 GB左右的空间。
  其中,除项目保存路径外,其它属性配置与前述第一次模型建立过程所述一致。随后即开始第二次建模程序运行。在本次运行过程中发现,程序的“总进度条”与已运行时间或剩余运行时间之间并无直接关系——如第二次运行开始于当日21:00左右,至当日23:00左右已达“20/23”状态;而最终运行完毕时已是次日01:20左右。由此或许可以说明,DSM、正射影像与指数生成环节所需时间应明显较多于初始化处理与点云与纹理处理过程。此外,在质量报告中亦有各部分运行时间;这一讨论附于本文第四部分。
3.4 模型外观检查与调整

  经过四个半小时左右的漫长等待,程序最终成功运行,并得到最终版质量报告,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929649-123831925.png
  得到空间三维模型如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929881-1306852964.png
  随后,对所得研究区域空间三维模型加以细致浏览,并尝试对其中所具有的问题加以分析。通过检查得知,所得模型除部分地物侧面形状具有偏差、部分建筑物纹理出现混乱外,并无其它明显问题;模型在整体地势、建筑物位置与大致形状等方面均整体较为良好。
  其中,关于上述所得模型外观问题、模型组成与质量报告等详细分析附于本文第四部分。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125930173-1158303768.png
  其中,可能会出现一些与模型其他位置相独立等错误的点云,我们可以将其删除。选择“Edit Densified Point Cloud”选项,用鼠标左键将其圈画,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125930841-2074340720.png
  圈画完毕后,点击鼠标右键,即可实现对圈画区域内点的选取。所选中的点呈现红色,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929833-1851310399.png
  随后,将其归类为“Disabled”,点击“Assign”,所选择的点即可消除,如以下两幅图所示(此后我将软件语言更换为了英文,因此视图会有一些变化)。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125931129-1172155273.png
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125931530-1734463030.png
  当然,上述这些点并非真正完全删除,而仅仅是没有在视图中展示而已——若在左侧图层中选中“Point Groups”→“Disabled”选项,即可看到此类点重现出现。
  通过上述步骤,即可将所得空间三维模型中效果较差的点或点云加以选择与去除。在去除过程中,发现出现这一问题的点往往集中于模型边缘区域——这或许是由于边缘区域点所对应无人机影像数量较少,从而其在建模过程中容易出现空间位置问题。
  完成后,退出编辑状态,重新生成纹理,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125930179-1784420538.png
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929711-1340266029.png
  本次运行只生成3D纹理表面,因此运行所消耗时长较之整个模型生成时所耗时长短。
  随后,可对点云与3D网格模型加以保存。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929663-1484495507.png
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929671-370562449.png
3.5 模型量测

  得到模型后,可以对模型中具有代表性的地物加以量测。可量测的指标包括地物长度、面积、体积等;通过量测,可以对模型加以定量角度的检验,同时可由模型中获取更多信息。
  首先,对新体育馆占地面积加以量测。利用“New Surface”功能将其基部包围,从而得到其底面周长(二维与三维)以及占地面积(二维与三维)。量测过程如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929797-958065800.png
  基于上述同样操作,对第一教学楼底面周长与占地面积加以测量,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125930754-330073176.png
  此外,还可借助“Volume”模块对地物体积加以测量;但体积测量时较易卡顿,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125930192-727892160.png
  随后发现,体积测量的卡顿是由于左侧“Objects”窗口拖动导致;但若不拖动,体积数据无法显示完全。随后想到,可以直接将体积数据复制到剪切板,从而得到完整体积数据,如下图。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125930445-1332740335.png
  继续测量其他地物,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125931496-1658378472.png
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125931936-911058149.png
  其中,选取上述所得测量效果较好的地物,对其测量值加以归纳,如表1所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929834-265003849.png
  其中,各地物长度与宽度相加并不一定为底面周长一半,是由于各次测量之间误差、地物并非标准长方体等导致。
  上述底面面积与DSM面积均由依据地物底面划定的面决定,但二者具有较大差距;关于二者的差异对比附于本文第四部分。
4 建模部分问题与思考

  前述操作部分已列举部分操作过程中的思考与理解,本部分则对前述未提及的问题加以探讨。
4.1 模型外观与组成分析

  在经过前述漫长等待后,所得到研究区域的初步模型如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929800-1187787156.png
  其中,可以看到此时未显示出真正的完全模型外观,而是由较为稀疏的点云所组成的表面。将其放大后可以看到高低不同、错落有致的点云所组成的简化模型外观,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125930325-89506748.png
  随后添加点云组,得到结果如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125930435-1415592205.png
  对比上述二者结果,可以发现前者以稀疏点云表示了平面信息(如地面、楼房顶面等),且表示得并不是很充分,仅可以大致刻画出某平面所处在的位置,而无法展示其具体外观与纹理;而后者则将各类物体表面的一些凸出细节(如地面的汽车与树木、楼房顶面的设备与侧面凸出的窗檐等)展示出来,并进一步突出了不同地物的颜色与部分纹理特征(如操场跑道与足球场、汽车颜色、远处东运动场不同颜色的观众席等)。
  随后,添加三角纹理,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125931578-1697532122.png
  由此即显示出完整模型,同样由此可以看出模型所存在的问题——侧面的外形与纹理与实际地物相差较大。
  首先,结合添加三角纹理后的上图与未添加纹理的上上图可以看到,在上图中出现外形或纹理弯曲、变形的部分均为上上图中点云未覆盖的区域——如楼南侧墙体、西北侧墙体与房顶、“逸夫教”三字处等位置变形严重,而上上图中这些部分点云几乎为空;反之则反,在上图中较为正常、符合实际的部分均为上上图中点云分布较为密集区域——如楼西南侧墙体、南侧花坛、南侧房顶与“学楼”两字处模型效果较好,而上上图中这些部分点云则十分密集、丰富。
  由此可以进一步说明:
  1)与本文开头所提到的第二篇博客中编码结构光方法类似,运动结构恢复方法所得空间三维模型同样由点云所组成;点云质量将对最终所得模型质量具有重要影响。
  2)模型结构仅由点云决定,其纹理则在模型搭建完毕后贴于地物表面,即模型重点依然为点云。
  3)点云亦有重要程度之分,稀疏点云作为模型的初始状态,具有决定平面与位置的作用,或许可视作模型的骨架;而点云组中点在稀疏点云确定位置后,对模型细节加以优化。
4.2 模型部分外形与纹理错误分析

  得到模型后,可以看到部分地物在外形或纹理方面具有明显的扭曲、模糊等错误,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125931113-1231275911.png
  但是,若由研究区域顶部俯视地物,则可看到各不同地物在外形、纹理等方面观之较为正常,效果较好,如下两幅图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125930493-1593953541.png
  即上述地物在外形、纹理等方面所具有的问题往往存在于其侧面被其他地物遮挡位置。由此可初步判断,外形偏差问题或许是由于其未被无人机航拍影像拍摄得到,从而在空间三维模型建立过程中点云位置出现一定偏离导致;并进一步使得贴合于其表面的纹理出现错误。
  随后,分别对外形、纹理均较为良好的位置与外形、纹理均存在一定问题位置加以分析。首先,用鼠标多次随机选中外形符合实际、纹理清晰位置的点,可以发现这些点与多张无人机航拍影像相连,即这些三维空间点是由多幅图像中不同像素点所对应信息得出;用鼠标多次随机选中外形出现错误、纹理模糊位置的点,可以发现这些点不与任何无人机航拍影像相连。由此猜测,这些外形或纹理异常位置或许正是由于未获取充足无人机影像,从而在建模过程中出现点云位置的错误确定。
  请教大佬后,确定了这一猜测。由于无人机飞行高度较高,地物侧面位置或被其它地物遮挡位置的信息获取不足;若需对上述异常问题加以修复,可以在后期对地物其它角度信息加以拍摄、获取。
4.3 模型质量报告分析

  得到模型后,同时会得到一篇内容丰富的模型质量报告(Quality Report)。结合相关网络资源,主要对质量报告中部分内容加以分析。
  首先,针对“Summary”部分,如下图所示。可以看到,所得结果的平均地面采样点距离(Average Ground Sampling Distance)为4.30 cm。同时,可以看到研究区域模型占地面积为0.540 km2。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929859-216652355.png
  其次,针对“Quality Check”部分,如下图所示。由“Datasat”部分可知,所选研究区域108张无人机航拍影像中有104张完成定标并参与后续操作;而有4张图像未完成定标。点击这些图像可以看到,其“Tie Points”数量为0,而其它正常完成定标的图像则均具有较多数量的“Tie Points”。由“Camera Optimization”部分可知,原始相机内部参数与优化后的相机内部参数具有0.8%的相对误差(这亦与本文第一部分原理所对应)。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929687-2028258386.png
  再次,通过“Calibration Details”可以得到无人机影像的位置信息,并直观地看到出现问题的影像在哪一部分,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929878-508788891.png
  随后,针对“Bundle Block Adjustment Details”模块,得到空中三角测量中误差(Mean Reprojection Error)为0.143,如下图所示。其中,需要注意的是这一误差的单位为像素(pixels),则其所代表的物理长度单位即为0.143乘以像素大小。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929773-273761081.png
  此外,质量报告中还将程序运行时各部分所需时间(如预处理时间、点云稠化时间、DSM生成时间等)列出,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125929840-762328192.png
4.4 模型边界缺失问题

  可以看到,在所得三维模型边缘位置,往往会出现不规则的模型缺失,如下图所示。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125931805-1581188511.png
  针对这一问题,个人认为是由于:在现实场景中,临近研究区域边界的点,所对应无人机影像数量较少(例如研究区域北侧的地物,其仅能由其南侧5张左右无人机影像所拍摄,而处于研究区域中心位置的地物则可由八个方位加中心的九张甚至更多影像所拍摄),即对其不同角度的描述信息较少,不足以依据这些信息对其空间三维位置加以恢复,导致部分地区无法建模。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125931644-768031982.png
  当然,我的这一想法依然具有一定不足:如上图所示,两个红色的框分别代表某栋宿舍在无人机影像与实际模型中的位置;而在其北侧,还有一栋宿舍,其被多张无人机影像所拍摄(如图中黄色框所示),但最终所得到的模型并无这一建筑。
  针对这一问题,猜测或许只有当某一实际地物被一定数量(如可能为5张)的无人机影像所拍摄到,才可以获得充足的信息并参与建模;而若实际所得图像数量少于这一数值,则其不可参与后续建模。
4.5 地物底面面积计算问题

  在进行地物底面面积量算过程中,发现具有类似意义的两个指标“Projected 2D area”与“Terrain 3D Area”;刚开始,以为二者仅仅是不同量测功能下对底面面积的不同表达。随后,发现二者数值相差较大,如表1(底面面积与DSM面积)。
  随后,为确定二者差异,先后结合实际情况(如大致回忆某栋楼实际占地面积)、利用其他地物信息(如测量广场某辆轿车占地面积)以及利用软件帮助等方式,尝试找出二者异同。
  最终,依据软件帮助信息对二者加以区分:“Projected 2D area”所代表即为某一地物底面所占面积(当然这一底面需要手动绘制,因而可能与实际情况具有一定误差),而“Terrain 3D Area”则表示其所代表的地物在所划定平面上各高度的面积之和。
  此处以某栋教学楼为例,“Projected 2D area”度量数值即为此楼所占据地表面积;而这一教学楼高低错落、层次有质,具有很多门檐、窗檐等设计,如下图所示,因此利用“Terrain 3D Area”计算得到的是教学楼这一“Volume”所有处于建筑外部的面积之和——亦即教学楼除去底面之外其它各面的表面积。
https://img2023.cnblogs.com/blog/3080295/202312/3080295-20231216125930846-1551949928.png
  通过上述讨论,即可解释“Projected 2D area”与“Terrain 3D Area”二者在数值方面所具有如此之大差异的原因。
参考文献

        李永露. 基于无人机影像的运动恢复结构技术(SfM)研究. 哈尔滨理工大学, 2017.
        徐超, 李乔. 基于计算机视觉的三维重建技术综述. 数字技术与应用, 2017(01):54-56.
        李明杰. 基于运动恢复结构的露天储煤场三维场景重建的研究与应用. 中国矿业大学, 2019.
        张艳超, 庄载椿, 肖宇钊, 等. 基于运动恢复结构算法的油菜NDVI三维分布. 农业工程学报, 2015,31(17):207-214.
        许志华, 吴立新, 刘军, 等. 顾及影像拓扑的SfM算法改进及其在灾场三维重建中的应用. 武汉大学学报(信息科学版), 2015,40(05):599-606.
        沈长浩, 徐伯庆. 基于运动恢复结构的雕塑的3D重建研究. 数据通信, 2017(04):48-51.
        Aipiano. OpenCV实现SfM(一):相机模型. .

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 无人机影像的空间三维建模:Pix4Dmapper运动结构恢复法