【前沿】成像“跨界”测量——扫焦光场成像

01 背景 

眼睛是人类认识世界的重要“窗口”,而相机作为眼睛的“延伸”,已经成为生产生活中最常见的工具之一,广泛应用于工业检测、医疗诊断与影音娱乐等领域。传统相机通常以“所见即所得”的方式记录场景,传感器捕捉到的二维图像实际上是高维光信号的强度投影信息,丢失了光信号中实际蕴含的深度、角度与相位等维度信息。

光场成像技术则突破了传统成像的维度局限,能够同时记录光的空间和角度信息,发展出了新型计算光学成像模式。然而,光场信息的获取也面临着"鱼和熊掌不可兼得"的难题。例如:目前常用的光场相机借助微透镜阵列将光信号的空间与角度信息同时记录在传感器上,这也意味着传感器的像素总容量需要部分分配给角度信息,故只能得到较低空间分辨率成像结果;虽然利用光场空间-角度信息能够进一步估计观测场景的深度信息,但是只能反映场景的相对位置分布,无法得到真实的物理尺度。

如何获得高空间分辨率光场信息并实现光场测量是拓展光场成像技术应用领域范围亟待解决的问题深圳大学刘晓利教授团队提出一种扫焦一致性光场成像方法,通过相机成像标定建立焦点扫描空间中精确的物像空间转换关系,实现了空间一致性光场重建。在此基础上,在度量空间中将重建物光场的深度感知转化为深度测量,实现了扫焦光场成像与测量。

02 一致性光场成像与测量

2.1 一致性光场成像分析

计算光场成像技术借助光场传输特性对入射光场进行先调制、后解调,无需增加额外的光学器件即可获取高空间分辨率光场信号,为传统相机赋予了光场成像能力。图1展示了基于焦点堆栈的光场重建过程。利用相机与物体的相对移动或调节成像焦面,采集不同焦面上的图像来构建焦点堆栈。每幅图像对应特定传播距离处的光场空间-角度重采样,即携带了部分光场信息,进而利用光场传输特性可以从焦点堆栈中反演全像素分辨率光场信号。

图片

图1  基于焦点堆栈的光场重建

光场信息复原源自于具有特定焦点位置关系的图像堆栈,其重建精度依赖于传输距离先验的准确性与光学系统的成像特性。根据相机成像关系,物空间的传播距离与像空间的像面位置并不是线性关系,破坏了物像空间中光场传输信息的一致性。此外,使用相机镜头不可避免地会引起桶形、枕形畸变等非线性图像变形。这些物像空间的非线性因素最终影响了光场重建精度。

为解决上述问题,研究团队提出了一种一致性光场成像方法。首先,对扫焦光场成像的空间一致性问题展开研究。使用光场相机采集的光场数据作为参考光场,进行数字重聚焦后生成不同焦面的图像作为像空间图像堆栈,该过程等价于传统相机的堆栈采集过程。随后,分别使用物空间和像空间的传输距离从原始图像堆栈中重建光场信息。其中,像空间光场重建满足空间一致性条件,而物空间光场重建不满足空间一致性条件,结果如图2所示。图2(a)展示了对光场数据进行重新排列而得到的多视角图像,等效于不同视角下的拍摄效果,反映了场景光场的角度信息,可以对光场重建结果进行可视化和对比分析。图2(b)展示了重建的像空间光场和物空间光场相对于参考光场的误差对比结果,可以看出:相较于物空间光场,满足空间一致性的像空间光场具有更低的重建误差,可以准确恢复光场不同观察视角的结果。通过对光场多视角成像和不同扫焦深度范围的光场重建进行实验对比和分析可知,满足空间一致性条件是高精度光场重建的必要条件。

图2 光场重建对比分析。 (a) 光场多视角成像; (b) 空间一致性问题的光场重建误差对比

2.2 一致性光场深度测量

在实际应用过程中,除了物像空间的非线性深度映射,使用相机镜头还会引入成像畸变、图像缩放等非线性因素,这同样会降低光场重建精度。相机成像通常可以使用针孔成像模型结合成像畸变模型来描述,如图3(a)所示。通过标定技术可以确定相机的焦距、光心与畸变等光学参数。据此,研究团队进一步提出了一种一致性光场测量方法,通过相机预标定建立了精确的物像空间转换关系,并校正了镜头畸变引起的图像变形。实验结果表明,该方法能够有效消除空间不一致性、成像畸变等非线性因素对光场重建的影响,准确恢复物光场的多视角信息[图3(b)],并且在度量空间中实现了对目标物体的光场深度测量[图3(c)],将光场成像推广至光场测量,实现了扫焦一致性光场成像与测量。

图片

图3 计算光场重建与测量。 (a) 针孔相机成像模型; (b) 物光场的多视角图像; (c) 度量深度图

03 总结与展望

本文基于焦点堆栈的高分辨率计算光场成像与测量技术,分析了高精度光场重建的空间一致性条件。在此基础上,通过相机预标定为目标物体的图像堆栈建立了精确的空间转换关系和度量基准,将传统相机转变为一种光场成像设备,实现了从光场深度估计到深度测量的跨越,为计算光场成像与测量的实际应用提供了新思路、新方法。在未来的工作中,研究团队将进一步探索扫焦光场精密测量机理和技术,充分发挥高维光场信号的角度分辨在测量信息获取中的潜力和优势。

文章转自:中国激光杂志社;  

声明:转载此文目的在于传递更多信息,仅供读者学习、 交流之目的。文章版权归原作者所有,如有侵权,请联系删除。

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

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

相关文章

TM1640学习手册及示例代码

数据手册 TM1640数据手册 数据手册解读 这里我们看管脚定义DIN和SCLK,一个数据线一个时钟线 SEG1~SEG8为段码,GRID1~GRID16为位码(共阴极情况下) 这里VDD给5V 数据指令 数据命令设置 地址命令设置 显示控制命令 共阴极硬件连接图…

uni-app 开发企业级小程序课程

课程大小:7.7G 课程下载:https://download.csdn.net/download/m0_66047725/90616393 更多资源下载:关注我 备注:缺少两个视频5-14 tabs组件进行基本的数据展示和搜索历史 处理searchData的删除操作 1-1导学.mp4 2-10小程序内…

判断点是否在多边形内

代码段解析: const intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi); 第一部分:(yi > y) !== (yj > y) 作用:检查点 (x,y) 的垂直位置是否跨越多边形的当前边。 yi > y 和 yj > y 分别检查边的两个端…

【redis】集群 如何搭建集群详解

文章目录 集群搭建1. 创建目录和配置2. 编写 docker-compose.yml完整配置文件 3. 启动容器4. 构建集群超时 集群搭建 基于 docker 在我们云服务器上搭建出一个 redis 集群出来 当前节点&#xff0c;主要是因为我们只有一个云服务器&#xff0c;搞分布式系统&#xff0c;就比较…

[langchain教程]langchain03——用langchain构建RAG应用

RAG RAG过程 离线过程&#xff1a; 加载文档将文档按一定条件切割成片段将切割的文本片段转为向量&#xff0c;存入检索引擎&#xff08;向量库&#xff09; 在线过程&#xff1a; 用户输入Query&#xff0c;将Query转为向量从向量库检索&#xff0c;获得相似度TopN信息将…

C语言复习笔记--字符函数和字符串函数(下)

在上篇我们了解了部分字符函数及字符串函数,下面我们来看剩下的字符串函数. strstr 的使用和模拟实现 老规矩,我们先了解一下strstr这个函数,下面看下这个函数的函数原型. char * strstr ( const char * str1, const char * str2); 如果没找到就返回NULL指针. 下面我们看下它的…

FreeRTOS中的优先级翻转问题及其解决方案:互斥信号量详解

FreeRTOS中的优先级翻转问题及其解决方案&#xff1a;互斥信号量详解 在实时操作系统中&#xff0c;任务调度是基于优先级的&#xff0c;高优先级任务应该优先于低优先级任务执行。但在实际应用中&#xff0c;有时会出现"优先级翻转"的现象&#xff0c;严重影响系统…

深度学习-全连接神经网络

四、参数初始化 神经网络的参数初始化是训练深度学习模型的关键步骤之一。初始化参数&#xff08;通常是权重和偏置&#xff09;会对模型的训练速度、收敛性以及最终的性能产生重要影响。下面是关于神经网络参数初始化的一些常见方法及其相关知识点。 官方文档参考&#xff1…

GIS开发笔记(9)结合osg及osgEarth实现三维球经纬网格绘制及显隐

一、实现效果 二、实现原理 按照5的间隔分别创建经纬线的节点,挂在到组合节点,组合节点挂接到根节点。可以根据需要设置间隔度数和线宽、线的颜色。 三、参考代码 //创建经纬线的节点 osg::Node *GlobeWidget::createGraticuleGeometry(float interval, const osg::Vec4 …

《Relay IR的基石:expr.h 中的表达式类型系统剖析》

TVM Relay源码深度解读 文章目录 TVM Relay源码深度解读一 、从Constant看Relay表达式的设计哲学1. 类定义概述2. ConstantNode 详解1. 核心成员2. 关键方法3. 类型系统注册 3. Constant 详解1. 核心功能 二. 核心内容概述(1) Relay表达式基类1. RelayExprNode 和 RelayExpr 的…

自动驾驶地图数据传输协议ADASIS v2

ADASIS&#xff08;Advanced Driver Assistance Systems Interface Specification&#xff09;直译过来就是 ADAS 接口规格&#xff0c;它要负责的东西其实很简单&#xff0c;就是为自动驾驶车辆提供前方道路交通相关的数据&#xff0c;这些数据被抽象成一个标准化的概念&#…

Flutter 状态管理 Riverpod

Android Studio版本 Flutter SDK 版本 将依赖项添加到您的应用 flutter pub add flutter_riverpod flutter pub add riverpod_annotation flutter pub add dev:riverpod_generator flutter pub add dev:build_runner flutter pub add dev:custom_lint flutter pub add dev:riv…

【EasyPan】MySQL主键与索引核心作用解析

【EasyPan】项目常见问题解答&#xff08;自用&持续更新中…&#xff09;汇总版 MySQL主键与索引核心作用解析 一、主键&#xff08;PRIMARY KEY&#xff09;核心作用 1. 数据唯一标识 -- 创建表时定义主键 CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,use…

IcePlayer音乐播放器项目分析及学习指南

IcePlayer音乐播放器项目分析及学习指南 项目概述 IcePlayer是一个基于Qt5框架开发的音乐播放器应用程序&#xff0c;使用Visual Studio 2013作为开发环境。该项目实现了音乐播放、歌词显示、专辑图片获取等功能&#xff0c;展现了桌面应用程序开发的核心技术和设计思想。 技…

vscode 打开新页签

目录 vscode 打开新页签 完整settings.json内容&#xff1a; vscode 打开新页签 .vscode目录中 新建settings.json 在 settings.json 文件中&#xff0c;添加或修改以下行&#xff1a; json "workbench.editor.enablePreview": false 这将禁用预览模式&#xff0…

C语言高频面试题——常量指针与指针常量区别

1. 常量指针&#xff08;Pointer to Constant&#xff09; 定义&#xff1a; 常量指针是指向一个常量数据的指针&#xff0c;即指针指向的内容不能通过该指针被修改。 语法&#xff1a; const int* ptr;或者&#xff1a; int const* ptr;解释&#xff1a; const修饰的是指…

c++基础·列表初始化

目录 一、列表初始化的核心优势 二、基础数据类型与数组初始化 1. 基础类型初始化 2. 数组初始化 三、类与结构体初始化 1. 构造函数匹配规则 2. 注意事项 四、标准容器初始化 五、聚合类型&#xff08;Aggregate Types&#xff09;初始化 1. 聚合类型定义 2. 初始化…

数据分析与产品、运营、市场之间如何有效对齐

数据分析的重要性在于它能够将海量的原始信息转化为可操作的洞察。以产品开发为例,通过用户行为数据的分析,产品经理可以清晰了解哪些功能被频繁使用,哪些设计导致用户流失,从而优化迭代方向。运营团队则依靠数据分析来监控供应链效率、预测需求波动,甚至通过实时数据调整…

[C]基础11.深入理解指针(3)

博客主页&#xff1a;向不悔本篇专栏&#xff1a;[C]您的支持&#xff0c;是我的创作动力。 文章目录 0、总结1、字符指针变量2、数组指针变量2.1 数组指针变量是什么&#xff1f;2.2 数组指针变量怎么初始化&#xff1f; 3、二维数组传参的本质4、函数指针变量4.1 函数指针变量…

【漏洞复现】CVE-2024-38856(ApacheOfbiz RCE)

【漏洞复现】CVE-2024-38856&#xff08;ApacheOfbiz RCE&#xff09; 1. 漏洞描述 Apache OFBiz 是一个开源的企业资源规划&#xff08;ERP&#xff09;系统。它提供了一套企业应用程序&#xff0c;用于集成和自动化企业的许多业务流程。 这个漏洞是由于对 CVE-2023-51467 的…