一种面向移动端的高动态范围成像方法及系统与流程

文档序号:21361960发布日期:2020-07-04 04:35阅读:312来源:国知局
一种面向移动端的高动态范围成像方法及系统与流程

本公开属于成像技术领域,涉及一种面向移动端的高动态范围成像方法及系统。



背景技术:

本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。

高动态范围成像是一种能够捕捉记录场景中真实亮度信息的成像技术。动态范围是指场景中最大亮度与最小亮度的比值,真实场景通常具有很宽的动态范围。例如自然环境的动态范围高达108:1,而人们生活中最常用的拍摄设备,即智能手机能捕获的动态范围仅为102:1这导致拍摄的图像不能记录真实场景的全部动态范围,使得场景中亮部和暗部区域表现为过曝光和欠曝光,极大地降低图像的可见性和后期处理空间。

目前,国内外对高动态范围成像的算法研究主要包括多帧合成算法和单帧重建算法。单帧重建算法利用映射函数对单帧图像的动态范围进行扩展。这种方法只需拍摄单帧图像,具有不易出现伪影,使用方便等优点。显然,映射函数是单帧高动态范围成像算法性能的关键因素,因此,寻找性能更好的映射函数成为了研究的热点。

深度神经网络具备良好的函数模型拟合能力,在监督训练的方式下,能够从复杂的图像输入中学习复杂的函数映射关系,因此,深度神经网络成为了提高单帧重建算法性能的有效手段。然而,传统深度神经网络往往规模很大,对算力要求高,难以部署在计算资源受限的移动设备上。



技术实现要素:

本公开为了解决上述问题,提出了一种面向移动端的高动态范围成像方法及系统,本公开有效的简化了网络的规模,能够使网络模型在移动设备上运行,有效的提高了成像效果与实用性。

根据一些实施例,本公开采用如下技术方案:

一种面向移动端的高动态范围成像方法,包括以下步骤:

对高动态范围图像进行处理,生成相应的低动态范围图像,将低动态范围图像输入到基于编码器-解码器结构的神经网络模型中,神经网络模型的输入与相应的高动态范围图像在对数域求损失,使用梯度下降法优化神经网络模型,将优化后的神经网络模型移植到移动端,将其视为一个高次映射函数,完成低动态范围图像到高动态范围图像的端到端映射。

作为可选择的实施方案,对高动态范围图像进行处理的过程中,获取高动态范围图像,在相机响应曲线集中运行聚类算法选出最具代表性的多条响应曲线,把这些响应曲线应用在高动态范围图像上同时剪辑饱和像素值得到低动态范围图像。

作为可选择的实施方案,获取高动态范围图像的方法包括下载公开的高动态范围图像或利用相机拍摄或者通过包围曝光合成的高动态范围图像。

作为可选择的实施方案,在应用相机响应曲线之前,确定一个比例系数,将高动态范围图像除以所述比例系数使得一定百分比的像素值饱和,此时随机选取一条取得的相机响应曲线应用到处理过后的高动态范围图像,剪辑结果中的饱和像素,即可得到相应的低动态范围图像。

作为可选择的实施方案,所述神经网络模型包括编码器-解码器两大部分,输入图像进入到编码器,随着深度的提升,编码器提取出输入图像从低维到高维的不同层次的特征,同一层次的特征作为编码器的下一层输入,并通过短链接到解码器的同一层次以保存特征的位置信息,从而避免图像模糊。

作为进一步的实施方案,编码器被配置为实现特征提取和下采样,在特征提取时,输入经过步长为1的3x3深度可分离卷积提取特征,然后通过1x1卷积交互通道之间的特征,最后采用残差链接从而缓解梯度消失现象,同时加强已习得特征的复用;在下采样时,先通过1x1conv提升特征的深度,避免relu函数对低维特征的损害,然后通过步长为2的3x3dwconv略过一些像素来扩大感受野,最后通过1x1conv降低特征的深度,直接输出到下一层和解码器的对应部分。

作为可选择的实施方式,所述解码器被配置为将输入的特征图通过最邻近域插值的方法上采样,然后通过步长为1的dwconv完成特征提取,其结果与上采样后的结果在深度维上连接在一起,最终使用1x1卷积把2*n深度的特征图学习组合深度为n的特征图,从而避免在图像的边缘部分出现伪影。

作为可选择的实施方式,所述神经网络模型在从低动态范围图像到高动态范围图像的过程中,只对低动态范围图像的过曝的部分进行动态范围扩展。

作为可选择的实施方式,采用在对数域中求损失,使用梯度下降法优化神经网络模型。

一种面向移动端的高动态范围成像系统,包括:

低动态范围图像采集模块,该模块用于采集靠右曝光的低动态范围图像,输出至神经网络前向推理模块;

神经网络前向推理模块,该模块提供:输入数据与神经网络的所需输入的接口,神经网络前向推理的接口,输出至图像显示模块;

图像显示模块,用于将输出进行色调映射,使得输出可以显示。

一种计算机可读存储介质,其中存储有多条指令,所述指令适于由终端设备的处理器加载并执行所述的一种面向移动端的高动态范围成像方法。

一种终端设备,包括处理器和计算机可读存储介质,处理器用于实现各指令;计算机可读存储介质用于存储多条指令,所述指令适于由处理器加载并执行所述的一种面向移动端的高动态范围成像方法。

与现有技术相比,本公开的有益效果为:

本公开的神经网络模型包括编码器和解码器两大部分,编码器作用是对输入图像提取不同尺度的特征,解码器利用所得特征进行图像重建,两者之间具有相当特征大小的部分采用短链接,可以实现训练速度和精度的提升;同时分别对编码器解码器两大部分进行轻量化优化,使该神经网络可以在移动终端设备上运行,并取得与大型神经网络相媲美的效果,有效地提高了单帧高动态范围成像方法的实用性。

附图说明

构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。

图1为本实施例的流程图;

图2为轻量化神经网络模型总体结构;

图3(a)、图3(b)为网络模型的编码器单元;

图4为网络模型的解码器单元。

具体实施方式:

下面结合附图与实施例对本公开作进一步说明。

应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

一种或多种实施例,提供一种轻量化神经网络的移动端单帧高动态范围成像方法,将采集的高动态范围(highdynamicrange,hdr)图像通过已知的相机响应函数(cameraresponsefunction,crf)生成局部过曝的低动态范围(lowdynamicrange,ldr)图像,ldr-hdr图像对分别作为神经网络的输入和参考真值(groundtrue)来训练神经网络。训练完成后,当输入一张靠右曝光(局部过曝)的ldr图像时,可以得到一张动态范围被扩展、过曝区域被修复的hdr图像。

请参阅附图1,该单帧高动态范围成像方法包括以下步骤:

s101,收集hdr图像,在相机响应曲线集中运行聚类算法选出最具代表性的五条响应曲线,把这些响应曲线应用在hdr图像上同时剪辑饱和像素值得到ldr图像。

具体地,在互联网上搜索下载公开的hdr图像,这些图像亦可以由具备高宽容度的相机拍摄或者通过包围曝光合成来获取,其典型的特征是以32位浮点数存储的hdr文件;然后是选取典型的相机响应曲线,其方法是在一个公开的相机响应曲线数据集中运行k-means聚类算法,最终选出五条最有代表性的曲线备用;为了保证本方法的效果和加快训练收敛速度,从hdr图像生成的ldr图像不宜包含超量的过曝区域,因此,在应用相机响应曲线之前,需要确定一个比例系数,hdr图像除以这个系数使得一定百分比的像素值饱和。

在本实施例中,收集得到3372张不同分辨率的hdr图像,通过图像直方图来统计不同像素值的计数,当计数总数达到图像总像素的85%~90%时,记录此时的像素值即为上述的比例系数,把hdr图像除以这个系数,可以使0-1之间的像素值总量占图像像素值总量的85%~90%,此时随机选取一条上述取得的相机响应曲线应用到处理过后的hdr图像,剪辑结果中的饱和像素,即可得到相应的ldr图像。

s102,设计训练轻量化神经网络,网络采用编码器-解码器结构,该网络可以视作一个ldrtohdr的高次映射函数。

请参阅附图2,所述轻量化神经网络包括编码器-解码器两大部分。输入图像进入到编码器,随着深度的提升,编码器提取出输入图像从低维到高维的不同层次的特征,同一层次的特征用处有二:其一是作为编码器的下一层输入,其二是通过短链接(skipconnections)到解码器的同一层次以保存特征的位置信息,从而避免图像模糊。

编码器部分主要由两个模块组成,分别负责同特征图大小下的特征提取,请参阅附图3(a),和下采样,请参阅附图3(b)。在特征提取部分,输入经过步长为1的3x3逐通道卷积(depthwiseconvolution,dwconv)提取特征,然后通过1x1卷积交互通道之间的特征,最后采用残差链接从而缓解梯度消失现象,同时加强已习得特征的复用。在下采样部分,先通过1x1conv提升特征的深度,避免relu函数对低维特征的损害,然后通过步长为2的3x3dwconv略过一些像素来扩大感受野,与步长为1同时使用池化的方式相比,这种方式的计算量仅为1/4,最后通过1x1conv降低特征的深度,直接输出到下一层和解码器的对应部分。

在本实施例中,编码器部分是一个经过修改的mobilenetv2网络,与原网络相比:本编码器去掉了所有的batchnormalization层,从而避免特征重标准化对网络的负面影响;本编码器使用relu激活函数而非relu6激活函数,允许更大的特征范围,提高生成图像质量;本编码器在第一卷积层使用dwconv而非传统conv以进一步降低计算力,同时一个增加全分辨率的卷积层以更好地保存图像的高频信息,避免生成图像边缘模糊的问题;本编码器去掉了mobilenetv2中的全连接层,取而代之的是一个新建的卷积层,这个卷积层负责编码器与解码器之间的特征过渡。

解码器部分由单一模块组成,请参阅附图4,先把输入的特征图通过最邻近域插值(nearestneighborinterpolation)的方法上采样,然后通过步长为1的dwconv完成特征提取,其结果与上采样后的结果在深度维上连接(concatenate)在一起,最终使用1x1卷积把2*n深度的特征图学习组合深度为n的特征图,从而避免在图像的边缘部分出现伪影(artifacts)。

在本实施例中,传统先插值后卷积的方式需要在卷积中使用特别的padding操作,具体地,需要使用reflectionpadding(或称mirrorpadding)才能避免在图像的边缘部分出现伪影,然而在移动端的场景下,与传统的zeropadding相比,reflectionpadding需要更长的时间,一个直观的解释是reflectionpadding需要先读取特征图边缘内的值,然后把值填充到边缘外,而zeropadding只需要把零值直接填充到边缘外。为了解决边缘伪影问题,同时使用耗时更短的zeropadding操作,本实施例首先提出如附图4的解码器模块,其主要思想是通过1x1卷积对上采样后无伪影的特征图和经过3x3dwconv卷积后有伪影的特征图的学习组合,从而解决边缘伪影问题。

在本实施例中,轻量化神经网络为了减少计算量,全部采用3x3dwconv和卷积核大小为1的普通卷积,网络的输入为s101中的ldr图像,网络的输出为hdr图像。由于从ldr直接到hdr是一个典型的病态问题,网络将难以收敛,因此,本网络只负责对ldr图像中过曝的部分进行动态范围扩展,这可以通过使用mask来实现,其中mask的数学表达式为:

式中,maski代表第i张输入图像的mask,αi代表第i张输入图像在每个位置上rgb三通道中最大的像素值,thd是一个阈值,当输入图像被归一化到[0,1]时,图像中像素值>=1-thd的像素将被视为过曝,在本实施例中,thd被设为0.05。最终的处理结果表示如下:

final=(1-maski)*ldr+maski*f(ldr)

式中f(ldr)代表将ldr图像输入到本轻量化神经网络后得到的结果,将其与原ldr图像非过曝的部分混合得到最终结果。

s103,在对数域上求损失,采用梯度下降法优化神经网络。

具体地,根据周围光照条件的不同,hdr图像的像素值从零到数百上千不等,如果直接把网络输出和hdr图像求损失,比如常用的l2损失,将会产生波动极大的结果,反向传播时会造成震荡,使得网络难以收敛。为了解决这个问题,采用在对数域中求损失的策略。

在本实施例中,所述方法的数学表达式为:

loss=mask*|log(predict+ε)-log(gt+ε)|

式中,mask如s102所述,predict为输入ldr图像时神经网络的输出,gt为输入ldr图像对应的hdr图像,ε为一极小值,避免像素值为零时出现数学错误。

s104,将该神经网络部署到移动设备上,输入一张靠右曝光的图像,即可完成端到端的ldrtohdr重建,最后将输出结果进行色调映射,保存显示到设备上。

具体地,训练完成后得到网络权重和拓扑图,当部署到移动端设备上时,需要将权重和拓扑图转化为移动端可解析的的格式。因为手机cmos的宽容度是一定的,靠右曝光的图像意味着在暗处的可见性被提高,而亮处则可能出现过曝,过曝的部分则由本神经网络进行修复,最后通过mask得到最终hdr图像,因为当前移动设备的显示屏不支持直接显示hdr图像,所以还需要把最终hdr图像进行色调映射。

在本实施例中,在桌面端加载最终网络权重,使用tensorflow中的tfliteconverter.from_session工具直接从对话(session)中转换到移动端所需的格式,避免固化等繁琐的操作。为了适应用户习惯,本实施例采用原相机程序拍摄的方式,允许用户控制曝光时间和增益使图像靠右曝光,然后在app中集成本实施例所述的移动端单帧高动态范围成像方法,使用时在app中加载图像,经过本实施例所述方法处理后保存显示在设备上。

所形成的移动端的高动态范围成像系统,包括:

低动态范围图像采集模块,该模块用于采集靠右曝光的低动态范围图像,输出至神经网络前向推理模块;

神经网络前向推理模块,该模块提供:输入数据与神经网络的所需输入的接口,神经网络前向推理的接口,输出至图像显示模块;

图像显示模块,用于将输出进行色调映射,使得输出可以显示。

本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1