CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源

Stella981
• 阅读 481

点击我爱计算机视觉置顶,更快获取CVML新技术


导读:图像增强是一个历久弥新的研究方向,大多数计算机视觉学习者最开始接触的图像平滑、去噪、锐化是增强,现在研究比较多的去雾、去雨雪、暗光图像恢复也是增强。

图像增强往往是和应用场景强相关的,比如自动驾驶场景下的去雨雪,遥感图像的去云雾,前几天还有52CV的群友在讨论水下图像增强。因为不同场景里传感器、外在环境、退化模型不同,所使用的方法也不同。

随着家用投影仪的普及,与之相关也出现了很多新问题,今天的文章为亮风台公司投稿,让我们一起来看看来自应用一线的工业界如何用深度学习解决光照补偿问题。

近日,国内AR产品与服务提供商亮风台公布了投影AR算法研究最新成果,主要用于解决投影仪光学补偿问题,即当投影幕布不是理想的白色漫反射时,尽可能消除投影面上的图案。

相关论文《End-to-end Projector Photometric Compensation》已经入选CVPR 2019的oral presentation环节,代码已开源。

以下为作者信息:

CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源

与之前提出的传统的方法相比,新成果在量化数值和视觉效果上都大幅提升,可以预见,该成果将成为投影AR技术应用落地提供重要的技术基础。

《End-to-end Projector Photometric Compensation》的重要贡献主要在以下几点:

1. 首次将投影仪光学补偿问题阐述为一个端到端的深度学习问题,然后构造一个新颖的名为CompenNet的卷积神经网络(CNN)来隐式的学习这个复杂的补偿函数。

2. 首次提出一个独立于设备和实际投影的数据库和评价基准,今后类似的工作可以在这个评价基准上统一比较,而不需要复现该研究中使用的设备和实际投影,以前的工作是没有这样的评价基准的。

3. 提供了一个预训练的方法,将预训练好的CompenNet迁移到新的投影屏幕和硬件设置上,只需要拍摄少量的采样图片就可以媲美甚至超过从零开始训练CompenNet和传统方法,这样可以大量的节省采样图拍摄时间和训练时间。

4. 在亮风台提出的评价基准上比较了CompenNet和其他传统的方法,以及一个通用的图到图迁移的深度学习框架pix2pix,实验结果显示在数值和质量效果上新方法都大幅度优于其他参与比较的方法。

背景介绍

这篇工作主要解决投影仪光学补偿问题,即当投影仪屏幕不是理想的白色漫反射时,屏幕的颜色和纹理会导致用户看到失真的效果,如下图1所示。

CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源

图1. (a) 正常光照下的具有纹理和颜色的投影屏幕。(b) 投影仪投射的图片(也是我们想要看到的效果)。(c) 相机拍摄到的,没有补偿的投影结果,即将(b)直接投影到(a)上。(d) 我们模型计算出的补偿图。(e) 相机拍到的补偿后的效果,即将(d)投影到(a)上。比较(c)和(e),可以看到明显提升的效果和细节。

为了解决投影仪光学补偿问题,一般是用一个相机来拍摄大量的投影仪投射的图片,然后从这些拍到的和投射的图片对中拟合出一个光学补偿函数,再将要投射的图片经过这个光学补偿函数补偿,最后由投影仪投射,这样投射的补偿正好可以抵消非理想屏幕的颜色和纹理和投影仪本身的非线性光学特性。

但是以上的光学过程过于复杂,所以很多传统方法以及目前效果较好的算法,都是将这个过程简化为投影仪像素与相机拍到的像素只是一一对应,然后独立地对每个像素拟合一个光学补偿函数。

这样的假设,往往忽略了很多重要信息,比如由于投影仪和相机跟屏幕的距离,投影仪相机轻微失焦和屏幕表面相互反射等因素,每一个投影仪的像素并不是跟每个相机像素一一对应,很可能一个投影仪像素覆盖了几个相机的像素,这样的简化势必影响投影仪光学补偿的效果,实验的结果也印证了这一点。

研究方法

为了避免过于简化,我们采用一个新思路,即用CNN网络来端到端隐式地学习这个复杂的光学补偿函数。这样的好处主要是:

  1. CNN有足够的模型复杂度来拟合复杂的光学过程。

  2. CNN滤波器本身就对领域像素采样,这样我们不需要像传统方法那样进行像素一一对应的简化。

  3. 根据我们的数学推导,发现可以用一张相机拍到的屏幕照片CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源 来表示投影屏幕本身的光学特性,然后将这张照片作为CompenNet的第二个输入,指导CompenNet学习相机拍摄的失真图CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源 和屏幕光学特性CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源 的关系, 如下图2所示。

CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源

图2. CompenNet的结构。比较训练(左)和补偿(右)过程,我们发现学习从相机拍摄的未补偿图到投影仪输入图片的反映射CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源 ->CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源 ,就是学习从投影仪输入图片(想要用户看到的效果)到补偿图片的映射CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源 ->CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源

网络训练和光学补偿的流程如下图3所示:

CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源

图3. 网络训练和光学补偿的流程图。(a) 投影然后拍摄一张投影表面的图和一系列具有纹理的采样图。(b) 用拍摄到和投射的图片对训练CompenNet CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源 。(c) 用训练好的CompenNetCVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源 补偿输入的图片(也是想要用户看到效果)CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源 , 然后将补偿后的图片CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源 投影。

实验结果

CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源

CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源

图4. 相机拍摄的补偿效果比较。第一列:投影仪屏幕表面纹理。第二列:相机拍摄的未补偿效果。第三到第六列,相机拍摄的不同补偿方法补偿后的效果。第七列,投影仪的输入,即想要用户看到的效果。

表1. 不同补偿方法的数值量化比较,以下数值是平均了来自于24个不同环境设置,即光照,投影仪、相机姿态和投影仪表面纹理的结果。每个环境设置有500张训练图,200张测试图。可以明显看到在投影仪光学补偿任务上,我们的方法优于传统方法和pix2pix。

CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源

表2. CompenNet预训练与从新训练的比较。我们只采用32个训练样本并只训练500个循环,总共耗时170秒。可以明显看到,微调预训练模型的结果优于从新训练CompenNet,而且因为只需要少量样本和训练时间,在实际使用中也更便捷。

CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源

事实上,这不是亮风台第一次在投影AR算法上取得重要研发突破。

去年,亮风台和美国两所科研单位联合研发出一套新的投影仪-相机联合标定方法,对于一个相机姿态仅仅需要一次投影采样,使标定效率和实用性大大优于之前的大部分标定系统,其成果发布于增强现实领域顶会ISMAR。

论文地址:

https://arxiv.org/abs/1904.04335v1

论文补充材料:

http://www.dabi.temple.edu/~hbling/publication/CompenNet\_sup.pdf

开源地址:

https://github.com/BingyaoHuang/compennet

加群交流

关注各种神奇的图像增强技术,欢迎加入52CV-图像增强专业讨论群,扫码添加52CV君拉你入群,

(请务必注明:增强)

CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源

喜欢在QQ交流的童鞋,可以加52CV官方QQ群:702781905。

(不会时时在线,如果没能及时通过验证还请见谅)


CVPR 2019 Oral 亮风台提出端到端投影光学补偿算法,代码已开源

长按关注我爱计算机视觉

本文分享自微信公众号 - 我爱计算机视觉(aicvml)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
2年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
双十一预售活动分析
2022年双十一促销活动已经开始,大家应该都提前开始关注今年双十一活动的时间表了吧?2022年10月24日晚8:00天猫双11预售时间,第一波销售时间10月31日晚8:0,第二波销售时间11月10日晚8:00;天猫双11的优惠力度是跨店每满30050
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这