无人机低空数字摄影测量系统

2024-04-10 17:20

本文主要是介绍无人机低空数字摄影测量系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、 系统概述

系统完全基于IDL设计实现,包括界面布局到人机交互再到底层核心函数功能。整体设计框架基于数字摄影测量的专业处理流程,实现了数据输入、数据预处理、影像信息检测、空间定向、地形三维建模、专题信息提取、成果输出与更新等功能。同时为了使系统更具实用性和操作舒适性,系统借鉴了目前市场上主流数字摄影测量软件的组织架构。

二、 系统设计框架

系统设计框架如图1所示,主要分为输入输出、显示控制、影像拼接、影像匹配、三维点生成、产品生成、产品显示和专题图提取等功能模块。

图1 系统设计框架图

三、 系统功能设计

(1) 数据输入与输出

数据输入模块中一共包含了建立测区、建立模型、引入模型和多影像打包引入功能。通过建立测区和模型,用户可以自定义系统处理过程中所产生中间数据的存储路径,这样系统在整个运行过程中都会将产生的数据实时的进行保存与更新。如用户需要查看已有的处理成果,可直接通过引入模型功能,将以往的处理成果全部导入系统。多影像打包输入功能,主要是为了配合条带影像拼接而开发的。此功能允许用户一次性导入航带中的所有影像。

图2 建立测区和建立模型

图3 影像打包输入

(2) 显示控制

显示控制功能模块中主要包含了点层显示控制、点层编辑、对象选取、刺点和链接等功能。点层显示控制,允许用户对已经生成的点图层进行隐藏和显示控制。点层编辑和对象选取功能可以组合使用,允许用户删除不满意的点(这里只开放了加密点层和控制点层的编辑权限,因为只有这两个点层会对后面的操作产生直接的影响)。刺点操作则使用户可以在图中感兴趣的地方增加控制点或是加密点。链接功能使用户通过移动鼠标的方式来查看影像中各区域在Ransac处理后所获取双线性变换参数的精度。链接功能同时还是解锁刺点功能的先决条件,在没有解锁链接功能前,系统是不会开放刺点权限的。

图4 系统主控界面

(3) 全航带影像拼接

在此功能模块中共有拼接预处理和条带影像拼接两个功能。拼接预处理就是利用影像匹配模块中的影像初匹配函数包,依次对每个像对进行初匹配,而后得到每个像对的双线性变换模型。预处理结束后,利用得到各个像对的双线性模型来对全航带影像进行影像拼接,最终形成一张覆盖整个测区范围的航带影像拼接图。

图5 拼接预处理

图6 全航带拼接图

(4) 影像匹配

影像匹配模块中包含了两个功能,分别是影像初匹配和影像精匹配。其中影像初匹配算法是整个系统的核心。影像初匹配是先对目标影像进行分块处理,在每一个子块中进行Harris角点提取,基于相关系数的灰度匹配,最终再用Ransac一致性随机抽样鲁棒分析算法进行整体平差处理。处理后可获取高精度的匹配点和相应的双线性变换模型。影像精匹配则是根据初匹配中所获得的双线性方程模型,在对影像进行格网化加密匹配。

图7 同名点集

(5) 三维点生成

三维点的生成功能主要依赖于两个算法,分别是单像后方交会和双像前方交会。用户需先利用刺点功能,对照控制点的缩略图在影像上选取控制点。再利用单像后方交会,就可得到一个像对中两张影像的外方位元素。再利用双像前方交会,就能生成三维点。

图8 外方位元素及三维点列表

(6) 产品生成

用户可以生成DOM正射影像、DEM数字高程模型、空间等高线、坡度坡向表、土方计算报告和表面积计算报告等产品。并可定制最终的质量报告。用户可自定义输出路径输出产品。

(7) 产品显示

在此模块中,用户可以使用全景跟踪球模型和全景漫游模式来观看三维DEM模型。而对于平面产品,如DOM正射影像和等高线等,则提供了放缩、漫游、重置等功能,方便用户查看。

图9 三维DEM显示

图10 全景漫游DEM

图11 正射影像

(8) 专题图提取

将提取出的专题信息通过IDL中的特定规则保存为shape格式,如果用户需要重新导入,只需在本模块中导入一个已有图层即可。

图12 专题图提取窗口

(9) 数据处理流程

图13 重建三维模型流程

图 14 全航带影像拼接流程

四、 系统亮点

  • IDL独立编程

本系统中的所有功能,从界面布局到交互式操作再到底层核心功能,全部都是IDL独立编程实现的。本系统中所涉及到算法均由团队成员自行编程实现的,更有利于程序的发布。

  • 高效、快速的特征检测与边缘提取

系统采用了Harris角点提取算法来检测和提取特征点。该算法不仅可以在带有旋转、扭曲的影像上快速地进行点特征检测和提取,同时还能够按照不同点位的特征强度自定义输出点的数量。

  • 基于Ransac一致性随机采样算法的三维点纠错设计

利用Ransac一致性随机采样算法能够得到较为精确的双线性变换参数。基于双线线性变换参数建立的变换模型能够快速地转换同名点在左右影像中的像素坐标,进而利用前方交会就可反算出影像中任意一点的三维物方坐标。利用此法可标定影像的空间图幅范围并自动滤去错误的三维点。同时利用双线性变换模型还可以计算出同名点的匹配残差,综合考量匹配残差和匹配测度后可以大大的提高影像匹配的准确性进而也增加了三维点的精度。

  • 方便快捷的输入与输出

系统在输入、输出模块中采用了实时更新存储设计,并允许用户链接数据库进行实时备份,保证了中间处理数据的完整性、安全性。在导入环节采用模块化引入设计。提供一键导入功能。

  • 提供了全航带影像拼接功能

这样可以使用户告别手动拼接航带影像的历史。全自动的航带影像拼接不仅大大缩短了用户进行野外测量前准备工作的时间,还能使用户直观的把握整个测区的情况。

这篇关于无人机低空数字摄影测量系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/891675

相关文章

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

基于Python实现数字限制在指定范围内的五种方式

《基于Python实现数字限制在指定范围内的五种方式》在编程中,数字范围限制是常见需求,无论是游戏开发中的角色属性值、金融计算中的利率调整,还是传感器数据处理中的异常值过滤,都需要将数字控制在合理范围... 目录引言一、基础条件判断法二、数学运算巧解法三、装饰器模式法四、自定义类封装法五、NumPy数组处理

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方