CodedStereo:大尺度景深双目视觉的相位掩模学习(CVPR2021)

article/2025/10/1 2:43:41

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

b7af315a9a1d052df13c61c095830d07.png

来源丨泡泡机器人SLAM

作者丨泡泡机器人

标题:CodedStereo: Learned Phase Masks for LargeDepth-of-Field Stereo

作者:Shiyu Tan, Yicheng Wu, Shoou-I Yu, Ashok Veeraraghavan

机构:Rice University,Facebook Reality Labs

来源:CVPR2021

编译 : 张海晗

审核:李璟

摘要

c439989f9e0171d724c1ccd10e93d361.png

大家好!今天要介绍的文章是来自美国莱斯大学和脸书实验室合作的一篇文章。对于大尺度景深双目视觉的学习相位掩模。由于孔径大小对双目视觉的成像体积和信噪比的影响相互矛盾,因此传统双目视觉需要在两个变量之间进行根本性的权衡。受现场相机扩展深度的启发,这篇文章是受扩展景深相机的启发,提出了一种新颖的基于端到端学习的技术来克服上述矛盾。方法是在立体成像系统中的相机孔径平面引入相位掩模。相位掩模创建了一个与深度相关但数值可逆的点扩散函数,使该系统能够在传统立体扩展景深相机(EDOF)上恢复更清晰的图像纹理和立体对应。相位掩模模式、EDOF 图像重建和立体视差估计都使用端到端学习的深度神经网络一起训练。本文对所提出的方法进行理论分析和表征,并显示可以在模拟中将成像的体积增加了 6 倍。除此之外,本文还构建了一个实验原型,并且使用该原型系统获得的实际结果来验证该方法。

背景与贡献

44bb4aabc3cec2405c4417e1f3c6e540.png

主要贡献:

传统双目视觉需要在光照水平、曝光时间、重建量和 SNR 之间进行权衡。由于特征不一致,传统的 EDOF 立体效果会导致 3D 重建伪影。CodedStereo 的关键思想是在立体相机的光圈中引入相位掩模,这使系统能够在不牺牲景深的情况下增加相机的光圈尺寸。

1.本文提出了一种编码双目技术,可以在光线有限的环境中重建大体积、高质量和高分辨率的三维模型。

2.本文开发了一个端到端的学习框架来联合优化相位掩码和算法,用于 RGB 图像和视差重建。

3.本文展示了CodedStereo 在模拟和使用原型系统中的显着性能优势。

算法流程

adc047309ccf981d6e432dfa00e35241.png

主要算法介绍

整个系统主要包含一个单独的优化相位掩模,并且可以将该相位掩模作为立体对插入到一对相机的光圈中。插入这些相位掩模后,这些相机的光圈可以保持大开,通过提高成像信噪比而获取更大的光收集。插入这些相位掩模引起的深度相关模糊与视差和图像重建一起得到优化。这里称之为“CodedStereo”技术。整个系统可同时在大景深中获得清晰的图像纹理和立体对应,而不会牺牲 SNR 或光通量。

b52c022a64992a63222487337e1c4386.png

如图 3 所示,端到端训练管道由三个不同的部分组成:(a) 渲染:一个 RGB-Disp 模拟器,使用纹理和深度作为输入渲染左/右编码图像(同时考虑深度相关的特定相位掩码的散焦效果)(b) 视差预测:基于 DispNet 的深度网络,用于从编码对估计视差,以及 (c) RGB 图像重建:用于重建清晰图像的 UNet。接下来将详细介绍下每个不同部分的原理。

A. 使用RGB-Disp模拟器的渲染

在传统双目视觉中,整个场景都被假设在景深内。然而,当其不在景深内时,在捕获的图像上的散焦模糊明显依赖于场景点的深度值,也可以看作两个相机视图的对应点之间的差异。此外,当相位掩模插入孔径平面时,视差相关点扩散函数 (PSF) 也取决于相位掩模图案。渲染层内的目标是在 CodedStereo 系统中准确模拟相位掩模图案和视差对捕获的左右图像的影响。RGB-Disp 渲染基于傅立叶光学理论,并且完全可微以实现端到端训练。每个相机的点扩散函数 (PSF) 模拟为瞳孔函数傅立叶变换的平方幅度(取决于相位掩模图案)。

416ad600f7553956c16d6146e1f7d220.png

λ是波长。在瞳函数中,A为孔径的圆形振幅函数,φM为相位掩模引起的相移(与掩模高度图成正比),φDF为离焦相位。离焦相位可以进一步推导为视差d的函数

b79403a9fe282c67e0ee3400e058f7ee.png

其中kλ = 2π/λ为波数,f为焦距,b为两个视图之间的基线。(x1, y1)为掩模平面上的空间坐标,d0为对焦深度处的视差值。然后,通过将地面真实RGB纹理与视差和波长依赖的PSF进行卷积来渲染编码图像。

B. RGB及视差重建

本文使用两个独立的网络来重建视差图和清晰的纹理图像。纹理重建网络基于改进的残差U-Net,其中学习了编码图像和基准真相图像(即残差图像)之间的差异。学习残差图像的优点是鼓励高频信息恢复,如边缘和细节纹理,因此这种残差学习技术被广泛用于逐像素估计问题,如去模糊。对于视差预测,本文采用了DispNetc结构。这里通过添加额外的反卷积层对视差图进行上采样来对其进行修改,以便最终输出与输入的左/右编码图像大小相同。由于在 DispNetC 之前的额外的编码器-解码器模块可以有利于立体对的特征提取,尤其是在具有大量离焦模糊的图像区域。因此,本文通过共享加权的编码器 - 解码器层和两个卷积层分别处理编码的左/右图像以提取特征,然后水平关联特征。本文考虑了 64 个像素的最大位移,这对应于原始编码图像中的 192 个像素。这里将视差预测网络称为 DispSharpNet,因为它可以使用额外的细节和更清晰的边界进行视差估计。

C.损失函数

在训练过程中,损失函数被定义为视差预测误差和RGB重建误差的组合。本文对估计的 RGB 图像I和不同分辨率i下的预测视差di都使用了均方根误差。

febe86f9278996b8df689a33493926e9.png

其中αi、γ是相应的权重,M、N分别是RGB图像和视差图中的像素数。l 表示左边,r 表示右边。对于稳定的特征匹配,类似于 DispNet,本文采用了一个损失权重,仅以最低分辨率损失开始训练,并逐渐增加分辨率更高的损失权重。

实验结果

f82c89964447e33160a876d53870945b.png

e4bcabb19b07881a7be5fb4dc0482795.png

图1. 与传统基线的比较(在模拟中)。(a) 使用小孔径常规 F32 镜头。(b) 使用openaperture 常规F8 镜头。(c) 我们的优化掩码。为了进行比较,我们将相同的重建网络应用于 F32 和 F8 系统,即用于 RGB 图像估计的 U-Net 和用于视差预测的 DispSharpNet。结果表明,我们的设计在具有清晰细节和锐利边缘的高质量、高分辨率重建方面优于传统设计。

8d0f935803c94332d0d4e48412b069e5.png

图2,与传统镜片比较。上图:重建的PSNR和EPE(归一化到视差地面真实值)随视差的变化。我们的方法明显优于传统的基线,特别是在离焦范围,导致景深增加6(黑色虚线表示PSNR阈值在30dB)。底部:纹理重建评价采用平均PSNR和SSIM(越高越好),视差预测评价采用平均EPE和3像素错误率(越低越好)。

4561a03b188b55db9067c924504abdaa.png

图3,仿真中与其他掩模的比较。e2eEDOF掩模采用端到端训练,直接从EDOF图像对

e268387d3318060aec82cb409ae3a030.png

图4. 用我们的CodedStereo原型的各种真实场景的实验结果。重建结果显示了真实场景的均匀背景和非均匀背景(最后一列,纹理/深度变化)。

点击阅读原文, 即可获取本文下载链接。

本文仅做学术分享,如有侵权,请联系删文。

3D视觉精品课程推荐:

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

161b39e6c0f0c20f13fbe102e83554d5.png

▲长按加微信群或投稿

ca606d319a7d3c31586822db360d1d7c.png

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列手眼标定相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

9136a581270f6759309641a23b0b0db2.png

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  


http://chatgpt.dhexx.cn/article/6CnqLDaJ.shtml

相关文章

OpenCV笔记整理【直方图和掩模】

1. 直方图: 直方图统计图像中各个灰度级出现的次数,横坐标为各个像素点的灰度级,纵坐标是具有该灰度级的像素个数。 上面这个九宫格我们可以想象成一张图像,里面的数字代表当前像素的灰度等级。 用图表显示:X轴代表…

数字图像处理 掩模

将logo叠加在图片上 将logo图片进行灰度化阈值处理得到掩模 (需要的部分是置非0 不需要的黑色的部分置0) 然后需要利用掩模对logo图像和人物图像分别进行处理 对logo图: 需要把黑色部分去掉-----与掩模进行与操作把黑色部分置0 Ps:黑色部分用add叠加时相当于没有…

OpenCV基本功 之 图像的掩模、运算 合并专题 -小啾带学【Python-Open_CV系列(七)】

OpenCV图像的掩模、运算 与 合并专题 【Python-Open_CV系列(七)】 文章目录 1.图像的掩模2.图像的运算2.1 图像的加法运算2.1.1 “”方法2.1.2 cv2.add()方法2.1.3 使用掩模遮盖相加结果 2.2 图像的位运算2.2.1 按位与 cv2.bitwise_and()2.2.2 按位或 c…

空间掩模matlab,浅谈基于SLM的非相干全息系统掩模设计及成像处理

宋冲 摘要:基于空间光调制器(Spatial Light Modulator,SLM)的菲涅尔非相干相关数字全息系统,无需对物体在空间或时间上进行扫描,可以快速获取真实三维物体的全息图,在荧光生物样品显微成像、彩色全息显示、以及自适应光学等领域展示了极大应用潜力。通过本项目的研究,为S…

matlab 掩模,用于图像中的与脸部有关的选择和处理的图像掩模制造技术

【技术实现步骤摘要】 【国外来华专利技术】【专利说明】用于图像中的与脸部有关的选择和处理的图像掩模相关串请的交叉引用本申请要求对通过完全引用而结合于此、提交于2013年5月14日的第13/894,384号美国专利申请的优先权。 技术介绍 数字相机的流行和便利以及因特…

图像掩模matlab,图像掩模_matlab_图像掩模

光学图像处理中,掩模可以足胶片、滤光片等。数字图像处理中,掩模为二维矩阵数组,有时也用多值图像。数字图像处理中,图像掩模主要用于:①提取感兴趣区,用预先制作的感兴 未来手机触摸屏要靠无掩模光刻技术_多点触摸 337x396 - 29KB - JPEG 5.4.3 选择式掩模平滑 - 51CTO.COM 53…

图像中的掩膜(Mask)是什么

项目github地址:bitcarmanlee easy-algorithm-interview-and-practice 欢迎大家star,留言,一起学习进步 在图像处理中,经常会碰到掩膜(Mask)这个词。那么这个词到底是什么意思呢?下面来简单解释一下。 1.什么是掩膜 …

第三章-OpenCV基础-4-掩模

基本概念 掩模,又称为掩膜,掩码,模板。图像掩模是指,用特定的图像/图形/物体遮挡代处理的图像(全部或局部),从而控制图像处理的区域,在数字图像处理中,掩模就是一个指定的数组,毕竟,图像也是数组。 左边图为原图,中间图为掩模(白色区域为透明区域,黑色区域为黑色遮挡区域),经过…

在微信小程序中如何引入iconfont

在微信小程序如何引用iconfont? 1.首先进入iconfont 选择自己喜欢的图标 iconfont-阿里巴巴矢量图标库 2.选择自己喜欢的图标加入购物车 3.将图标添加至项目(如果没有项目就随便新建一个项目) 4.打开个人主页 找到自己的项目,点…

微信小程序引入iconfont

第一种 在tabBar中使用 只能下载到本地,放在文件夹中使用 如下图: 第二种 在页面内使用iconfont图标 1:复制代码 2:粘贴到wxss文件里 3:在app.wxss中引入该文件 4:就可以在文件里面使用iconfont图…

微信小程序中使用tabBar

文章目录 前景知识小程序项目app.jsonpages/home/home.wxmlpages/camera/camera.wxmlpages/user/user.wxml 相关链接 前景知识 前面我们学习过:在app.json里对小程序进行全局配置,app.json的文件内容是一个JSON对象,包含很多属性&#xff0c…

微信小程序|icon列表跳转不同界面

效果&#xff1a; 包含图片、文字&#xff0c;分列布局&#xff0c;点击对应图标跳转到相应界面 WXML&#xff1a; <!-- 三个主要功能:文书服务&#xff0c;在线咨询&#xff0c;律师匹配跳转到对应页面&#xff0c;可以返回注意php后台和数据库搭建--><view class&…

微信小程序引入阿里巴巴icon步骤及报错解决

首先将选择好的图标加入购物车,点击右上角购物车图标&#xff0c;将其添加进项目中。(Add To Project) 添加进入项目后&#xff0c;会自动跳转到该项目&#xff0c;选择Download Code&#xff0c; 解压缩包&#xff0c;只会用到文件夹中的4个文件&#xff0c;将解压后的下面4个…

微信小程序引入iconfont图标

一、查看iconfont项目设置 二、生成在线链接 为什么要生成在线链接&#xff0c;因为微信小程序不能用静态文件 三、根据下载的iconfont.css配置app.wxss 下载的iconfont.css配置 自定义app.wxss配置 为什么不直接用iconfont.css&#xff0c;因为微信小程序不支持css只支持wxss…

《微信小程序-进阶篇》组件封装-Icon组件的实现(一)

大家好&#xff0c;这是小程序系列的第九篇文章&#xff0c;从这篇开始我们将进入提高篇&#xff0c;在这一个阶段&#xff0c;我们的目标是可以较为深入的了解组件化开发&#xff0c;并且实践积累一些后续项目也就是原神资料站中用得着的组件&#xff1a; 1.《微信小程序-基础…

uniapp与微信小程序引入iconfont

加入购物车&#xff0c;下载解压 引入 uniapp 微信小程序 使用 icon更新后更换线上url&#xff0c;就不用每次下载解压

微信小程序引入下载至本地的iconfont图标

在写小程序项目中遇到icon图标引入不起作用&#xff0c;原因是因为小程序必须先转为base64引入&#xff01; 第一步 选好自己要用的icon图标并下载至本地 下载后得到这样目录的文件 第二步 转换成base64 网址&#xff1a;https://transfonter.org/ 选择后缀为.ttf的文件 第…

《微信小程序-进阶篇》组件封装-Icon组件的实现(二)

大家好&#xff0c;这是小程序系列的第十篇文章&#xff0c;在这一个阶段&#xff0c;我们的目标是 由简单入手&#xff0c;逐渐的可以较为深入的了解组件化开发&#xff0c;并且实践积累一些后续项目也就是原神资料站中用得着的组件&#xff1a; 1.《微信小程序-基础篇》带你了…

黑马微信小程序入门

文章目录 1.环境准备1.1. 注册账号1.2 获取APPID1.3 下载开发工具 2第一个微信小程序2.1. 打开微信开发者⼯具2.2. 新建⼩程序项⽬2.3 填写项目信息 3.小程序的目录结构3.1. ⼩程序⽂件结构和传统web对⽐3.2. 基本的项⽬⽬录 4.⼩程序配置⽂件4.1. 全局配置app.json4.2 tabbar4…

【微信小程序】简洁好用的icon(94/100)

布局 <!--pages/icon/icon.wxml--> <icon class"icon-box-img" type"success" size"50"></icon> <view class"icon-box-title">成功</view> <icon class"icon-box-img" type"info&q…