光场成像2.0——聚焦型光场相机

news2024/12/24 3:33:40

光场2.0

1. 发展历程

由于光场1.0从结构上子图像的分辨率严重依赖MLA子透镜的数量,因此分辨率一直受限,限制了光场1.0结构的广泛应用。针对此不足,在2008年,又一篇伟大的论文出现了,该论文提出了全分辨率光场渲染的概念,将光场1.0的图像渲染分辨率可以提高5*10倍左右。该论文的详细链接:全分辨率光场渲染,该文章仅仅是从现象提出了一种全分辨率光场渲染的方法,提出后的几年时间内,多篇针对该相机的进一步探索的论文又对该技术做了进一步探究,包括:The focused plenoptic camera,Focused plenoptic camera and rendering,Depth of Field in Plenoptic Cameras。

2. 结构介绍及原理说明

聚焦型光场相机根据MLA二次成像的虚实分为两种:伽利略型光场相机和开普勒型光场相机。

3. 参数设计

聚焦光场相机的单个透镜成像原理如下图所示:其中d为子透镜的直径,a为二次成像物距,b为二次成像的像距,三者满足单透镜成像共轭关系。

聚焦型光场相机的空间分辨率为探测器图像的分辨率乘以b/a。

每一个微图像对d/b的角度信息进行采样,并对d*a/b的位置信息进行采样,而每一个像素对d/a的角度信息进行采样。因此,聚焦型光场相机的角度分辨率为a/b。

在提取对应的子图像拼接时,子图像的图像块大小:

M = d*b/a

a. F 数匹配

\frac{B}{D} = \frac{B_{L}}{D_{L}}

 B 为微透镜阵列面到探测器面的距离,D 为微透镜的孔径,BL 为主透镜出瞳面到探测器面的距离,DL 为主透镜出瞳大小。

b. 虚深度

虚深度是指场景中一物点经过主透镜成像得到的中间像点在被微透镜二次成像时,微透镜的成像物像距之比,即a/B,用M表示。作为聚焦型光场相机的重要参数,虚深度的大小代表了角度分辨率的大小,图中有个固定的几何关系(注意:此处D‘是一个变量,表示单个物点被MLA平面成像的宽度):

\frac{D_{L}}{B_{L}-B+a} = \frac{D^{'}}{a}

在满足F数匹配的条件下,虚深度的值就等于一个物点可以被多少个不同的微透镜成像,每一个微透镜成的像都代表了一个独立的方向信息,因此虚深度的大小表示了光场图像中角度分辨率的大小。为了能够实现三维成像,场景中每一物点应至少被两个微透镜成像,这样才可以通过立体匹配的原理计算出深度,即满足:

M>2

又根据微透镜物像成像关系:

\frac{1}{a} + \frac{1}{B} = \frac{1}{f}

结合两者可得:

M = \frac{f}{(f-B)}

a<0伽利略型:\frac{f}{2} < B < f ;a>0开普勒型:f < B < \frac{3f}{2}。当B = f 时,系统结构转变为非聚焦型光场相机。


c. 景深

景深一般是物空间的参数,不过由于聚焦型光场相机是一个二次成像系统,因此对最终成像影响最大的是微透镜成像的景深,也对应着主透镜成像的像深。(景深在像空间的对应量)。

微透镜成像几何关系图:(a)削景深示意图,(b)后景深示意图

在考虑景深大小时,我们是将弥散斑大小作为决定量的,设s为探测器的像素大小,其中前后景深分别为:

a^{+}=(\frac{(d-s)}{d*B}-\frac{1}{f})^{-1}

a^{-}=(\frac{(d+s)}{d*B}-\frac{1}{f})^{-1}

微透镜景深范围为:

RDOF = [a^{-}, a^{+}]

景深大小可近似为:

DOF=(\frac{(d-s)}{d*B}-\frac{1}{f})^{-1}-(\frac{(d+s)}{d*B}-\frac{1}{f})^{-1}\approx 2*\frac{B}{d}*S*(\frac{a}{B}+\frac{a^{2}}{B^{2}})=2Ns(M+M^{2})

d. 深度分辨率

在允许的深度范围内,我们可以通过立体匹配的原理实现光场图像的深度估计。那么深度分辨率同样可以由立体匹配原理计算得到。

 (图片说明:d表示MLA的直径,B表示MLA距离CCD的距离,x表示像素距离该像素对应的MLA中心高度的距离,a表示该光线和光轴的交点距离MLA平面的距离。)

可知:

a/B = d/x

a(x) = (1/x)*B*d

将中间像面的深度关系转换到主透镜物空间,即可得到场景的深度信息,设被摄物体到主透镜距离为aL,主透镜焦距为fL,则有:

 aL(x) = [1/fL - 1/(l0+a(x))]^(-1)

……

 深度分辨率主要由微透镜成像关系(也即空间分辨率),微透镜工作F数,主透镜焦距,物距,以及探测器像素尺寸确定。其中,空间分辨率与深度分辨率相互约束,而空间分辨率和工作F数同时影响了微透镜的景深大小,也造成了对深度分辨率的约束。此外,由于衍射效应,工作F数又受到了像素尺寸的制约。

实际系统参数计算

实际系统参数计算详见下一篇博文内容。

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

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

相关文章

CS拒绝连接,Cobalt Strike连接失败,Cobalt Strike使用方法(一)

拒绝连接 connection refused:connect。 kali端&#xff08;服务器端&#xff09;和本地端win10。看看端口开启状态 先启动服务器端 查看端口开启状态&#xff0c;确定50050端口开启&#xff0c;可以参阅本文章点击跳转 没问题再往下看。 使用步骤 chmod 777 ./teamserver…

【运维工程师学习】Centos中MySQL替换MariaDB

【运维工程师学习】Centos8中MySQL替换MariaDB 1、查看已有的mysql2、MySQL官网tar包下载3、找到下载路径解压4、移动解压后的文件夹到/usr/local/mysql5、创建data文件夹&#xff0c;一般用于存放数据库文件数据6、创建用户组7、更改用户文件夹权限8、生成my.cnf文件9、编辑my…

排序子序列,倒置字符串讲解(图文并茂)

目录 1.排序子序列 2.倒置字符串 1.排序子序列 排序子序列_牛客笔试题_牛客网 (nowcoder.com) 首先题干中提到非递增序列和非递减序列&#xff0c;那么我们就要先弄明白什么是上述2种序列&#xff1a; 非递增序列&#xff1a;a[i] > a[i1] 如&#xff1a;3 2 1 或者 3 3 …

运动控制-达妙C#开源USB2CAN例程

C# Can总线资料不多, 达妙USB2CAN入口 http://www.dmbot.cn/forum.php?modviewthread&tid328&extrapage%3D1

怎么自学网络安全?遇到问题该怎么解决?

趁着今天下班&#xff0c;我花了几个小时整理了下&#xff0c;非常不易&#xff0c;希望大家可以点赞收藏支持一波&#xff0c;谢谢。 我的经历&#xff1a; 我 19 年毕业&#xff0c;大学专业是物联网工程&#xff0c;我相信很多人在象牙塔里都很迷茫&#xff0c;到了大三大…

帝国cms如何判断首页高亮显示

通过简单的代码判断当前页面是否为首页并且进行高亮的代码如下&#xff1a; 判断逻辑是获取当前栏目id&#xff0c;如果为空则为首页。 条件判断代码&#xff1a; <?php if(empty($GLOBALS[navclassid])){echo class"active";}?> 需要特别说明的此判断会…

二进制文件的Python写入与读取

二进制文件的Python编写 这么基础的东西&#xff0c;必然用内置的就好 二进制文件的Python读写 重要提示 p.s. 1 >>> bHello World.decode() "Hello World" True >>> example import struct with open(binary_file.bin, wb) as file:data b…

【华为机试】HJ17 坐标移动详解+完整源代码示例

忙碌了一周&#xff0c;一直没时间更新&#xff0c;趁着周末来更新第二个题目。 题目 题目解析 这个题目相比于上一个题目来说&#xff0c;会简单一些&#xff0c;不涉及到那些复杂的算法&#xff0c;就是对于字符串的处理。 算法步骤 输入一个字符串根据分号&#xff0c;将…

uniapp 集成七牛云,上传图片

1 创建项目 我是可视化创建项目的 &#xff0c;cli创建的项目可以直接使用npm安装七牛云。 2 拷贝qiniuUploader.js到项目&#xff0c;下面的回复 放了qiniuUploader.js百度云链接。 3 在需要使用qiniuUploader的vue文件 引入。 4 相册选择照片&#xff0c;或者拍照后&#xff…

Redis-持久化、主从集群、哨兵模式、分片集群、分布式缓存

文章目录 高级篇 - 分布式缓存 Redis集群0、单节点Redis的问题一、Redis持久化1.1 RDB 持久化1.1.1 基本介绍1.1.2 RDB的fork原理1.2.3 总结 1.2 AOF持久化1.3 RDB与AOF对比 二、Redis主从集群2.1 介绍2.2 搭建主从集群2.2.1 准备实例、配置2.2.2 启动2.2.3 开启主从关系2.2.4 …

快速而简单的视频格式转换方法

在数字时代&#xff0c;我们经常需要将视频文件从一种格式转换为另一种格式。无论是因为兼容性问题&#xff0c;还是为了在特定设备上播放视频&#xff0c;视频格式转换是一项非常常见的任务。本文将介绍视频格式转换的基本知识和步骤。 首先&#xff0c;了解不同的视频格式非常…

8.3 非正弦波发生电路

在实用电路中除了常见的正弦波外&#xff0c;还有矩形波、三角波、锯齿波、尖顶波和阶梯波&#xff0c;如图8.3.1所示。 一、矩形波发生电路 矩形波发生电路是其它非正弦波发生电路的基础&#xff0c;例如&#xff0c;若方波电压加在积分运算电路的输入端&#xff0c;则输出就…

数学建模-相关系数

excel基本操作&#xff1a;ctrl右&#xff0c;ctrl左&#xff0c;ctrlshift下/右&#xff0c;ctrlshift空格 题目里有数据&#xff0c;给出描述性统计是比较好的习惯 excel描述性统计&#xff1a;数据-数据分析-描述统计 MATLAB要做散点图C62个 SPSS可以直接画出两两之间的散…

华为OD机试真题 Java 实现【最小循环子数组】【2023 B卷 100分】,附详细解题思路

目录 专栏导读一、题目描述二、输入描述三、输出描述四、备注五、Java算法源码六、效果展示1、输入2、输出 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有…

koa初体验———swagger使用

学习完koa框架和mysql&#xff0c;写了一个小demo&#xff0c;选课管理系统&#xff0c;其中包含权限验证&#xff0c;登录注册&#xff0c;用户管理和选课管理。写这个项目目的一方面是为了自己练手&#xff0c;另一方面是为了我们在学习新技术的时候能够有接口供我们使用去测…

Cilium基础架构

Cilium作为一款Kubernetes CNI插件&#xff0c;从一开始就是为大规模和高度动态的容器环境而设计&#xff0c;并且带来了API级别感知的网络安全管理功能&#xff0c;通过使用基于Linux内核特性的新技术——BPF&#xff0c;提供了基于service/pod/container作为标识&#xff0c;…

树莓派-家庭健康监测-空气篇

树莓派-家庭健康监测-空气篇 最后编辑日期: 2023.7.16 1、背景和目标 室内空气中高浓度的二氧化碳会损害人类的认知能力和健康&#xff0c;良好室内空气质量的重要性和价值不言而喻。家庭健康监测-空气篇应运而生。 最后效果总览: 细节: 手机预览: 实现功能: 二氧化碳…

Redis数据类型的常用命令和应用场景

1. Redis数据类型概述 Redis 常见的数据类型有10 种&#xff0c;其中包括 5 种基本数据类型&#xff1a;Strings(字符串)、Lists(列表)、Sets(集合)、Hashes(散列)、Sorted sets(Zset有序集合)。除了基本数据类型外&#xff0c;还有 5 种常用数据类型&#xff1a;Bitmaps 、Hy…

《二叉搜索树OJ》

文章目录 1、 [根据二叉树创建字符串](https://leetcode.cn/problems/construct-string-from-binary-tree/)2、 [二叉树的层序遍历](https://leetcode.cn/problems/binary-tree-level-order-traversal/)3、 [二叉树的层序遍历 II](https://leetcode.cn/problems/binary-tree-le…

5.3 Python高级特性之-列表生成式、生成器、迭代器

一、 列表生成式 是Python内置的非常简单却强大的可以用来创建list的生成式 具体可根据如下案例理解&#xff0c;且代码也是可用的""" 1、 生成[0,1,2,3,4,5,6]这样列表 """ print(list(range(0, 7))) """ 2、 生成[0&#xff0…