睿铂相机同步性控制技术解析

news2024/11/10 14:57:25

极客睿铂

前几期睿铂给大家分享了一些倾斜相机背后的技术,主要都是的关于镜头光学方面的。但实际上倾斜摄影相机还有很多其他关键性技术有待突破,任何技术的发展都不能一蹴而就,需要根据客户的问题反馈,发现新的问题并解决问题,然后不断迭代优化,最终才能开发出贴合用户实际生产生活的核心技术。这是睿铂研发人员痛并快乐的事情,当然也是研发的乐趣所在。

睿铂旗舰产品DG4pros是睿铂目前综合性能最好,技术含量最高的一款相机,出色的性能离不开一项未列入参数列表的“隐藏参数”——拍照同步性时间。在0.6s极值曝光频率下,DG4pros的拍照时间同步性仍可达到2毫秒,这表明相机任意两个镜头之间的拍照间隔时差不会超过2毫秒。意味着当无人机按10m/s速度飞行时,任意两个镜头的位置差均不会超过1cm下面为大家正式介绍DG4pros关键性技术之一:同步性控制技术。

为什么需要同步性控制

我们都知道作业时,无人机将一个触发信号给倾斜相机的五个镜头,五个镜头理论上应该是绝对同步曝光的,然后同步记录一个pos信息。但是实际作业过程中我们发现,无人机发出一个触发信号之后,五个镜头并不能同步曝光,为什么会出现这个现象呢?

作业完后,我们会发现五个镜头中,不同镜头采集航片的总容量一般都不一样,有的会大一些,有的会小一些。这是因为使用同一种压缩算法时,地物纹理特征的复杂程度对航片的大小造成了影响。而航片的大小,最终影响相机的曝光同步性。

不同环境的纹理

地物纹理越复杂,相机解算、压缩、存储的数据相对都会大一些,也就需要越多的时间完成这些步骤。如果存储时间到达临界点,相机就无法及时地响应快门信号,曝光动作出现滞后。

如拍照触发信号时间比相机完成拍照周期所需时间短,相机因为无法及时完成曝光动作,就会造成丢片现象。所以在作业过程中,必须要相机同步性控制技术来统一相机的拍照动作。

关于相机同步性研发

早期我们发现,无人机挂载倾斜相机工作时,五个镜头在空中的位置误差有时会很大,相机之间的位置差居然能达到60~100cm!

但我们在地面测试时,却发现相机的同步性相对还是非常高,响应及时性很好。研发人员很困惑,为什么空三解算姿态位置误差会那么大?由于当时技术条件的限制,此问题被暂时搁置。

后来,我们内业同事在研究莱卡RCD30的数据时,发现相机的空间位置十分精确,镜头位置差基本都在20cm~25cm区间范围之内,和相机的安装位置基本一致。这时,研发同事才开始怀疑相机在空中的工作情况,也许相机的拍照动作并不是同步的?

为了检验这个猜想,在DG4pros研发之初,我们在DG4pros相机上增加一个反馈计时器,记录飞机触发与相机曝光的时间差。并分别在以下四个场景中进行了测试。

A图板:颜色、纹理一致,低频数据图像

B图板:颜色不一致,纹理一致,低频数据图像

C图板:颜色一致,纹理不一致,高频数据图像

D图板:颜色、纹理都不一致,高频数据图像

多次测试结果统计表:

对于颜色丰富的场景,相机拜耳解算和存储的工作量会增加;而线条多的场景,图像高频信息太多,相机压缩的工作也会增加。

可以看到,如果相机采样频率较低,纹理简单时,相机响应及时性较好;但当相机采样频率较高,纹理复杂时,相机的响应时间差就会大幅度增加。并且随着拍照频率进一步提高,相机最终会发生丢片现象。

相机同步性控制原理

针对上述问题,睿铂为了提高相机同步性,引入反馈控制系统。该系统可测量出无人机发出触发信号的时间与每个相机曝光时间的差值“T”,如果五个镜头时间差“T”都在一个允许范围内,我们就认为五个镜头是同步工作的;若五个镜头中某个反馈值大于标准值,控制模块就会判定相机出现时间同步差,并在下一次曝光时,根据差值对该镜头进行补偿,最终控制五个镜头的拍照同步差都在标准范围内波动。

五镜头同步性控制原理

无法绝对控制补偿

可能客户朋友会有疑问,为什么不能实现绝对精准的控制,让五个镜头绝对同步曝光?

前文提到过相机在感光、拜耳运算、压缩、存储的时间都不固定,所以我们无法确定相机同步性的补偿逻辑该是前置补偿还是后置补偿?每次补偿的值该是多少?

确定这些问题需要充分考虑相机内部的工作情况,若简单粗暴的补偿很大概率会导致相机丢片。相机的工作场景千变万化,而补偿还无法准确根据相机的工况去实现镜头时间的精确控制。

睿铂倾斜相机同步性控制器

同步性控制在ppk方面的应用

控制好相机控制同步性后,在1:500、1:1000地形的测量项目中,可结合ppk降低一部分控制点的数量,提高外业作业效率。目前市面倾斜摄影相机与ppk触发有三种连接方案:

1

五镜头其中某一个镜头触发信号与ppk链接

2

五个镜头ppk打标,目前睿铂为纵横定制的JR503倾斜相机就是该工作模式

3

使用相机同步性控制技术,把求得的同步性均值反馈给ppk触发

三个方案各有优缺点:

1

优点是简单,缺点是ppk只表示某一个相机的空间位置,如果五镜头没有做同步性控制,会导致另外几个镜头位置误差比较大

2

优点也是简单,定位准确,缺点是只能针对特定的差分模块

3

优点是定位准确,通用性高,支持各种型号的差分模块,缺点是控制比较复杂,成本相对更高

同时市面目前有一种使用100HZ RTK/PPK板卡的无人机,该板卡挂载正射相机可以实现1:500地形免像控,但是该技术对于倾斜摄影是无法实现绝对的免像控。

因为五个镜头自身的拍照同步性误差已经大于差分的定位精度,所以如果没有高同步性的倾斜摄影相机,再高频率的差分也没有意义。

DG4pros同步性

可以看到中心正射相机距离倾斜相机主点距离分别为:1.63cm、4.02cm、4.68cm、7.99cm,减去实际位置差,误差值为分别为:-4.37cm、-1.98cm、-1.32cm、1.99cm,位置最大差值4.37cm。

此时无人机的飞行速度为9.8m/s,相机同步性误差4.45ms,虽然软件在进行空三运算时存在RMS误差,不可能绝对精确地解算出相机的空间位置,但通过空三解算出相机姿态信息,并以此为基础求得的同步性均值仍具有较高的参考价值。该项目在之前文章有分享,感兴趣的客户可以查看DG4pros高楼区地籍建模项目报告。

后记

2019年7月,北京地理信息开发者大会上,刘先林院士在做技术分享会时,也着重强调:五个镜头高精度的同步曝光,也有利于空三解算。

目前这种控制方式属于被动控制,只有当相机同步性误差大于逻辑阈值之后才会进行补偿。所以对于纹理变化比较大的场景,肯定会有个别点误差大于阈值,影响同步性时间。

在下一代Rie系列产品中,睿铂研发了一种全新的主动控制方式,相比现在的被动控制,相机同步性精度至少可以再提高一个数量级。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/714726.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自定义MVC架构【下】

目录 一、前言 二、导出自定义MVC架包 三、使用自定义MVC架包 四、优化增删改查Dao层及Servlet 1.优化增删改查Dao层 2.优化增删改查Servlet代码 五、案例实操 1.将PageTag自定义标签进行配置 2.jsp页面环境搭建 3.案例演示 一、前言 在上篇中,我们已经优化…

ARM架构(寄存器点灯)

文章目录 前言一、LED原理图二、使用寄存器点灯的步骤三、如何操作寄存器四、实际操作1.使能GPIO端口2.将引脚设置为输出模式3.设置输出状态 五、全部代码总结 前言 本篇文章我们来讲解一下如何使用寄存器点亮一个LED灯,一般对于新人来说都是使用HAL库或者标准库来…

SpringBoot3【④ 基础特性】

1. SpringApplication 1.1. 自定义 banner 类路径添加banner.txt或设置spring.banner.location就可以定制 banner推荐网站:Spring Boot banner 在线生成工具,制作下载英文 banner.txt,修改替换 banner.txt 文字实现自定义,个性化…

操作系统面试知识点

1、进程、线程和协程的区别和联系 1、进程是资源调度的基本单位,运行一个可执行程序会创建一个或多个进程,进程就是运行起来的可执行程序 2、线程是程序执行的基本单位,是轻量级的进程。每个进程中都有唯一的主线程,且只能有一个…

机器学习第三课(sklearn接口)

一、sklearn基本知识 中文官网 英文官网 注意:sklearn第三方模块的安装 要用pip install scikit-learn from sklearn.neighbors import KNeighborsClassifier # 1 准备数据 # 训练集的特征数据 2维 x [[-2],[-1],[2],[3],[4]] # 训练集的目标数据 1维 y [0,0,1,…

HTML培训心得体会五篇(合集)

HTML5培训心得一 关于html5培训心得总结? 一:了解HTML5前端开发技术? ?? HTML?指的是超文本标记语言?(Hyper?Text?Markup?Language),标记语言是一套标记标签?(markup?tag),HTML?使用标记标签来描述网页。HTML5区别于HTML的标…

北京大学2015计算机学科夏令营上机考试(未完)

A:整数的个数 #include<iostream> using namespace std; int main(){int k,a;cin>>k;int sum10,sum20,sum30;for(int i0;i<k;i){cin>>a;if(a1) sum1;if(a5) sum2;if(a10) sum3;}cout<<sum1<<endl<<sum2<<endl<<sum3;retur…

quiche编译

netty http3使用了rust语言的quiche&#xff0c;quiche使用了c语言的boringssl&#xff0c; 网上没有找到编译好的quiche&#xff0c;只能自己搭建rust环境编译 1、rust安装 见官网https://www.rust-lang.org/tools/install 我是用的是windows的ubuntu&#xff0c;所以直接使…

苹果市值再度突破3万亿美元

KlipC报道&#xff1a;当地时间周五&#xff0c;苹果市值再度突破3万亿美元&#xff0c;这是近43年来&#xff0c;苹果第二次市值达到3万亿。 KlipC的合伙人Andi Duan表示&#xff1a;“得益于苹果股价上涨&#xff0c;以及硅谷银行引发的金融市场动荡&#xff0c;再加上高端IP…

【嵌入式Qt开发入门】如何创建并连接信号与槽

创建信号 我们先新建一个项目&#xff0c;命名为 signal_slot_example&#xff0c;如果还不会新建项目&#xff0c;请回到 【嵌入式Qt开发入门】初识信号与槽查看项目如何建立的。取消勾选*ui 文件&#xff0c;其他步骤不变。 由于信号只需声明&#xff0c;无需定义。所以我们只…

Mac端显示服务器上show的内容

Mac端显示服务器上show的内容 1. 需求描述 在Mac端&#xff08;终端和PyCharm中&#xff09;编写代码&#xff0c;在服务器端运行程序。需要在Mac端显示服务器端运行的内容&#xff0c;比如&#xff0c;运行的视频等。 2. 常见报错 SSH 运行命令时报错示例。 (cv) czjing…

旋转链表:给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。

解题思路&#xff1a; 1.找到原链表的最后一个节点 2.计算链表长度n 3.将原链表的尾节点指向链表的头节点&#xff0c;使链表形成环 4.新链表根据画图可知&#xff0c;会在环的&#xff08;n-k%n&#xff09;的地方断开&#xff0c;这个节点newtail是新链表的尾节点 5.将新…

Ubuntu 20.04 LTS x86_64 安装 stable-diffusion-webui

官网 Stable Diffusion官网 Stability AI 官方github GitHub - Stability-AI/stablediffusion: High-Resolution Image Synthesis with Latent Diffusion Models stable-diffusion-webui github https://github.com/AUTOMATIC1111/stable-diffusion-webui 安装 下载sta…

ruoyi页面切换查询条件保留

场景描述 业务遇到需求&#xff0c;管理平台的页面打开后输入的查询条件、已经点击的页码、已经查询的数据要求保留下来&#xff0c;在tab菜单切换时保留&#xff0c;在关闭菜单时重置清空。 解决方案 1.使用cookie、localStorage或者sessionStorage 这个方式能解决部分需求…

windows10或者Ubuntu20.04内启动USB外接摄像头并拍照

1. windows10系统内启动摄像头并拍照 1.1 把带摄像头的USB接口插到电脑的USB接口上。 1.2 左下角搜索“设备管理器”&#xff0c;并点击&#xff0c;主要是确保笔记本自带的摄像头被禁用&#xff0c;和usb连接的外部摄像头被起用。 1.3 左下角搜索“相机”&#xff0c;并点击拍…

读《effective modern c++》笔记总结

文章目录 一、类型推导与auto模板类型推导ParamType是一个指针或引用&#xff0c;但不是通用引用ParamType是一个通用引用ParamType即不是指针也不是引用数组实参函数实参 auto类型推导 二、decltype的理解三、优先考虑auto而非显示类型声明四、区别使用&#xff08;&#xff0…

大华 海康 宇视 摄像头 onvif协议 调整时间 开发过程 整理

1、onvif官网 查看SetSystemDateAndTime 方法。 2、下载 ONVIF Device Test Tool 工具&#xff0c;使用教程可以 在这查看。 3、根据Test Tool 工具生成的request进行 Send request 测试。 有了这个本质就是http请求了&#xff0c;我认为可以自己写http请求尝试&#xff0c;我…

大地200C

8芯网线 【24&#xff0c;M03&#xff0c;冷却&#xff0c; m35&#xff0c;m34&#xff0c;m33&#xff0c;m32&#xff0c;24】 冷却【m08开&#xff0c;m09关】 M10夹紧M11松开 M18润滑【m127开&#xff0c;m227关】 X轴&#xff1a;5000 3.0A Y轴&#xff1…

Mybatis-Plus学习4 Page分页

ctrl P 查看可填的属性类型 alt 回车 自动填充数据类型 1、使用Page分页需要先配置config类&#xff0c;加上拦截器 Configuration MapperScan("com/learn/mybatisplus/mapper") public class MybatisPlusConfig {Beanpublic MybatisPlusInterceptor mybatisP…

TiDB 升级利器(参数对比)——TiDBA

作者&#xff1a; 啦啦啦啦啦 原文来源&#xff1a; https://tidb.net/blog/299f0bdc 一.背景 针对 LTS 版本&#xff0c;PingCAP 会提供最多至 3 年时间的常规版本更新&#xff0c;以解决版本运行过程中遇到的问题&#xff0c;以及安全相关的漏洞修复。而对于已经结束维护…