无人机低空数字摄影测量系统
一、 系统概述
系统完全基于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一致性随机采样算法能够得到较为精确的双线性变换参数。基于双线线性变换参数建立的变换模型能够快速地转换同名点在左右影像中的像素坐标,进而利用前方交会就可反算出影像中任意一点的三维物方坐标。利用此法可标定影像的空间图幅范围并自动滤去错误的三维点。同时利用双线性变换模型还可以计算出同名点的匹配残差,综合考量匹配残差和匹配测度后可以大大的提高影像匹配的准确性进而也增加了三维点的精度。
- 方便快捷的输入与输出
系统在输入、输出模块中采用了实时更新存储设计,并允许用户链接数据库进行实时备份,保证了中间处理数据的完整性、安全性。在导入环节采用模块化引入设计。提供一键导入功能。
- 提供了全航带影像拼接功能
这样可以使用户告别手动拼接航带影像的历史。全自动的航带影像拼接不仅大大缩短了用户进行野外测量前准备工作的时间,还能使用户直观的把握整个测区的情况。
相关文章:

无人机低空数字摄影测量系统
一、 系统概述 系统完全基于IDL设计实现,包括界面布局到人机交互再到底层核心函数功能。整体设计框架基于数字摄影测量的专业处理流程,实现了数据输入、数据预处理、影像信息检测、空间定向、地形三维建模、专题信息提取、成果输出与更新等功能。同时为…...

Disk Drill Enterprise for Mac v5.5.1515数据恢复软件中文版
Disk Drill 是 Mac 操作系统固有的Mac数据恢复软件:使用 Recovery Vault 轻松保护文件免遭意外删除,并从 Mac 磁盘恢复丢失的数据。支持大多数存储设备,文件类型和文件系统。 软件下载:Disk Drill Enterprise for Mac v5.5.1515激…...

day55 最长递增子序列 最长连续递增子序列 最长重复子数组
题目1 300 最长递增子序列 题目链接 300 最长递增子序列 题意 找到整数数组nums的最长严格递增子序列的长度(子序列并不改变原始的顺序,但是可以删除元素) 动态规划 动规五部曲 1)dp数组及下标i的含义 dp[i] 表示以nums[i…...

使用Springboot配置生产者、消费者RabbitMQ?
生产者服务 1、引入依赖以及配置rabbitmq 此时我们通过使用springboot来快速搭建一个生产者服务 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> applica…...
代码随想录算法训练营第46天|139.单词拆分、多重背包问题
139.单词拆分 题目链接:单词拆分 题目描述:给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 **注意:**不要求字典中出现的单词全部都使用,并且字典中的单词…...

数组与伪数组的区别
大家都知道,在js中使用 document.querySelectorAll(选择器)获取到的为该选择器能选择到的所有元素组成的伪数组,所谓伪数组,就是外表和数组一样,能够使用索引遍历,但本质是对象。 数组与伪数组之间的区别&…...

Java集合List
List特有方法 经典多态写法 // 经典的多态写法 List<String> list new ArrayList<>();常用API:增删改查 // 添加元素 list.add("Java"); // 添加元素到指定位置 list.add(0, "Python");// 获取元素 String s list.get(0);// 修改…...
elasticsearch基础命令
1 字段分词分析: GET /store_info_data/_analyze {"field": "storeName","text":"20pilapala0" }2 精确查找,去除评分 GET /store_info_data/_search {"query": {"constant_score": {"filter": {&quo…...

Capture One 23 Enterprise for Mac中文版 全面的图像处理工具
Capture One 23 Enterprise for Mac中文版一款专业的图像编辑和管理软件,具备强大的功能和工具,适用于摄影师、摄影工作室和专业用户。 软件下载:Capture One 23 Enterprise for Mac中文版下载 该软件为用户提供了全面的图像处理工具…...

Qt案例 通过调用Setupapi.h库实现对设备管理器中设备默认驱动的备份
参考腾讯电脑管家-软件市场中的驱动备份专家写的一个驱动备份软件案例,学习Setupapi.h库中的函数使用.通过Setupapi.h库读取设备管理器中安装的设备获取安装的驱动列表,通过bit7z库备份驱动目录下的所有文件. 目录导读 实现效果相关内容示例获取SP_DRVIN…...
如何理解JVM
JVM(Java虚拟机)是Java程序的运行环境,它是Java技术的核心组成部分之一。理解JVM涉及到以下几个方面的内容: 1. **虚拟机概念**:虚拟机是一种软件实体,它在物理计算机上模拟出一个计算机系统,使…...

第十四讲:C语言字符函数和字符串函数
目录 1. 字符分类函数 2、字符转换函数 3. strlen的使⽤和模拟实现 4. strcpy 的使⽤和模拟实现 5. strcat 的使⽤和模拟实现 6. strcmp 的使⽤和模拟实现 7. strncpy 函数的使⽤ 8. strncat 函数的使⽤ 9. strncmp函数的使⽤ 10. strstr 的使⽤和模拟实现 11. strt…...

华为海思2024春招数字芯片岗机试题(共9套)
huawei海思2024春招数字芯片岗机试题(共9套,有答案和解析,答案非官方,未仔细校正,仅供参考)(WX:didadidadidida313,加我备注:CSDN huawei数字题目,谢绝白嫖哈)…...

分类预测 | Matlab实现KPCA-IDBO-LSSVM基于核主成分分析和改进蜣螂优化算法优化最小二乘支持向量机分类预测
分类预测 | Matlab实现KPCA-IDBO-LSSVM基于核主成分分析和改进蜣螂优化算法优化最小二乘支持向量机分类预测 目录 分类预测 | Matlab实现KPCA-IDBO-LSSVM基于核主成分分析和改进蜣螂优化算法优化最小二乘支持向量机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述…...

与机器对话:ChatGPT 和 AI 语言模型的奇妙故事
原文:Talking to Machines: The Fascinating Story of ChatGPT and AI Language Models 译者:飞龙 协议:CC BY-NC-SA 4.0 从 ELIZA 到 ChatGPT:会话式人工智能的简史 会话式人工智能是人工智能(AI)的一个分…...

概率论基础——拉格朗日乘数法
概率论基础——拉格朗日乘数法 概率论是机器学习和优化领域的重要基础之一,而拉格朗日乘数法与KKT条件是解决优化问题中约束条件的重要工具。本文将简单介绍拉格朗日乘数法的基本概念、应用以及如何用Python实现算法。 1. 基本概念 拉格朗日乘数法是一种用来求解…...
[xboard]real6410-6.2 移植kernel网络驱动
文章目录 硬件电路软件配置问题1问题2问题3问题4功能测试硬件电路 核心板,使用DM9000A [图片] 软件配置 问题1 / # / # ifconfig ifconfig: /proc/net/dev: No such file or directory ifconfig: socket: Fun...
Quarkus初探
Quarkus初探 背景安装Quarkus安装Quarkus CLI 创建Quarkus项目运行Quarkus初探代码修改一下代码 数据持久化创建PanacheEntiry写入数据读取数据 Dev Service使用外部数据库区分dev和prod 构建native应用(依赖Graalvm) 背景 最早是在Infoq上了解到Quarku…...

90天玩转Python-02-基础知识篇:初识Python与PyCharm
90天玩转Python系列文章目录 90天玩转Python—01—基础知识篇:C站最全Python标准库总结 90天玩转Python--02--基础知识篇:初识Python与PyCharm 90天玩转Python—03—基础知识篇:Python和PyCharm(语言特点、学习方法、工具安装&…...

List操作的一些常见问题
1. Arrays.asList转换基本类型数组 在实际的业务开发中,我们通常会进行数组转List的操作,通常我们会使用Arrays.asList来进行转换,但是在转换基本类型的数组的时候,却出现转换的结果和我们想象的不一致。 import java.util.Arra…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...