基于OpenCL的直接多曝光融合并行加速方法技术

技术编号:16458146 阅读:54 留言:0更新日期:2017-10-25 22:45
本发明专利技术公开了一种基于OpenCL的直接多曝光融合并行加速方法,本发明专利技术的方法基于CPU+GPU的异构并行架构,利用GPU强大的浮点计算能力,在OpenCL开发环境下,通过合并内核、缓存高斯核到常量存储器、缓存复用数据到局部存储器、增大每个工作项的工作量等方式,缩短了访存和计算时间,实现了更快速多曝光融合,较传统的串行处理方法,本发明专利技术的方法取得的最大加速比达11.19,有效地减少了多曝光融合算法运行时间,为多曝光融合算法的进一步应用提供了有力保障;另外,在空间频率和平均梯度方面,本发明专利技术的方法都有较为明显的改善,有效解决了电子成像和显示设备动态范围不足导致的场景细节信息丢失问题。

Parallel acceleration method of direct multi exposure fusion based on OpenCL

The invention discloses a OpenCL direct multi exposure fusion parallel acceleration method based on the method of the invention of the CPU+GPU based heterogeneous parallel architecture, using GPU powerful floating-point computation ability, in the OpenCL development environment, through a combination of kernel, cache memory, constant to the Gauss kernel cache reuse data to local memory, each increase of work the workload, shorten the memory and computation time, to achieve a more rapid multi exposure fusion, serial processing compared with the traditional method, the method of the invention has the maximum acceleration ratio of 11.19, effectively reduce the running time of the algorithm of multi exposure fusion, provides a strong guarantee for the further application of multi exposure fusion algorithm; in addition, in the spatial frequency and average gradient, the method of the invention has obvious improvement, effective solution to the electronic imaging and display Scene detail information loss caused by insufficient dynamic range of equipment.

【技术实现步骤摘要】
基于OpenCL的直接多曝光融合并行加速方法
本专利技术涉及一种图像处理并行加速方法,具体涉及一种基于OpenCL的直接多曝光融合并行加速方法,属于图像处理的异构并行加速

技术介绍
真实世界场景的动态范围可以高达十几个数量级,但是目前通用的拍摄和显示设备的动态范围远不能与之匹配。即使通过调节光圈和快门速度调整曝光度,获得的单张图像仍然会存在曝光过度的亮区和曝光不足的暗区,由于亮区和暗区的细节丢失导致不能完整表达场景的真实信息。高动态范围技术则可利用同一场景不同曝光度的图像序列获取动态范围扩展、信息表达完整的结果图像。高动态范围技术有两种:曝光融合色调映射方法和直接多曝光融合方法。曝光融合色调映射方法利用多帧不同曝光度的低动态范围图像得到一帧高动态范围图像,然后对高动态范围图像利用色调映射进行动态范围压缩。得到高动态范围图像的过程中,需要知道每幅图像的曝光时间以及相机的响应曲线,效率较低。直接多曝光融合方法根据不同曝光度的低动态范围图像融合成一幅场景各部分细节都保留较为完整的动态范围得到扩展的图像,效率较高。高动态范围技术的实现方式有两种:软件和硬件。相较而言,硬件实现高动态范围技术更为复杂。硬件实现方面,北京交通大学的贾琦在其硕士学位论文“基于FPGA的多曝光图像分块融合设计与验证”中,应用VerilogHDL语言基于DE2开发平台,利用ALTERA公司的CycloneIV系列芯片仿真验证了多曝光融合算法中的部分模块,但是没有完成整个算法在FPGA上实现的目标。软件实现方面,西南科技大学的朱恩弘等人在“朱恩弘,张红英,吴亚东,等.单幅图像的高动态范围图像生成方法[J].计算机辅助设计与图形学学报,2016,28(10):1713-1722.”中,基于人类视觉系统模型,对亮度和色度分量分开处理,利用单帧图片获取动态范围得到扩展的图片,但是该方法会丢失大面积高光区域的细节信息。Mertens等人在“MertensT,KautzJ,VanReethF.ExposureFusion:ASimpleandPracticalAlternativetoHighDynamicRangePhotography[J].ComputerGraphicsForum,2009,28(1):161-171.”中,基于金字塔原理,根据输入图像序列的饱和度、对比度好曝光量构建权重图,并在不同分辨率下对输入图像根据权重图加权融合,该方法可以取得较好的融合效果,但是算法复杂度较高,运行时间较长。
技术实现思路
为解决现有技术的不足,本专利技术的目的在于提供一种既能有效解决电子成像时动态范围不足导致的场景细节信息丢失问题,又能缩短处理时间的基于OpenCL的直接多曝光融合并行加速方法。为了实现上述目标,本专利技术采用如下的技术方案:基于OpenCL的直接多曝光融合并行加速方法,其特征在于,包括以下步骤:1、开发环境初始化:明确OpenCL平台的主机和设备,依次创建上下文、命令队列、内核对象和程序对象;2、通过PCI-e传递低动态范围图像到显存,具体如下:2a、读取同一场景多帧不同曝光度的低动态范围图像到CPU内存;2b、创建内存对象;2c、传递内存的低动态范围图像到显存;3、在GPU上进行RGB到HIS的色域转换:亮度和色度独立表示的HIS色域空间相较于RGB色域空间更易于表示图像特征,按照下式,在GPU上进行RGB到HIS的色域转换,假设多曝光图像序列中共有N张图片,每张图片的分辨率为W×H,则共有N×W×H个待处理像素点,一个工作项处理2×1个像素点:其中,R、G、B是红、绿、蓝三原色,H、S、I分别表示色调、饱和度、亮度,π表示圆周率,min表示求最小值;4、计算决定多曝光融合权重的特征因子,具体如下:4a、不合适的曝光度会影响图像饱和度,按照下式,在GPU上筛选出饱和度适中的部分:其中,n表示不同曝光度的图像序列的序号,T是最佳曝光度可取的最小值,In表示多曝光图像序列中第n张图像的亮度,Sn表示多曝光图像序列中第n张图像的饱和度,一个工作项处理一个像素点;4b、按照下式,在GPU上计算对比度:Cn=L*In其中,Cn表示第n张图片的对比度,L表示拉普拉斯算子,在计算对比度的过程中,拉普拉斯算子始终保持不变,将拉普拉斯算子存储在显存的常量存储器区域以加快对它的访问速度,计算对比度时存在一定的数据复用,缓存复用数据到局部存储器,一个工作组分配16×16个工作项,一个工作项处理2×1个像素点;4c、按照下式,对每个像素位置选择多曝光图像序列中对比度的最大值参与权值计算:其中,表示最终参与权值计算的对比度值,一个工作项处理一个像素点;5、计算归一化的权重图,具体如下:5a、根据步骤4a和步骤4c得到的特征因子,按照下式计算权重图:其中,Wn表示第n张图片的权重图;5b、对步骤5a得到的权重图按照下式进行归一化:其中,是归一化因子,权重计算和归一化同步实现,如果则归一化后的权重Wn=0,如果则归一化后的一个工作项处理一个像素点;6、同时对权重图和亮度图进行高斯下采样得到权重图高斯金字塔和亮度图高斯金字塔:以IG和WG作为高斯金字塔输入图像,则高斯金字塔第i层图像WGi和IGi按照下式计算:其中,WGi-1和IGi-1表示第i-1层图像,第i-1层是第i层的下一层,gauss表示高斯核表示卷积运算,down表示取偶数行和偶数列的下采样,n=0时,WG0=W,IG0=I,权重图和亮度图与高斯核卷积时均存在20个复用数据,权重图和亮度图分别缓存高斯核尺寸大小的邻域到局部存储器,将卷积过程中保持不变的高斯核缓存到常量存储器,一个工作组分配16×16个工作项,一个工作项处理2×1个像素点;7、构建亮度图拉普拉斯金字塔:直接根据高斯金字塔下采样的逆过程上采样会丢失部分信息,为了还原高斯下采样后偶数行和偶数列的信息,按照下式,用亮度图高斯金字塔每一层图像减去其上一层图像上采样并高斯卷积后的预测图像,得到的残差图像构成亮度图拉普拉斯金字塔:其中,IGi+1表示亮度图第i+1层金字塔,up表示行列均扩展两倍的上采样,上采样结果的高斯卷积存在数据复用,缓存上采样图像高斯核尺寸大小的邻域到局部存储器,缓存高斯核到常量存储器,一个工作组分配16×16个工作项,一个工作项处理2×1个像素点;8、亮度图在不同尺度下加权融合得到融合金字塔:对于金字塔的第l层,图像序列的每张亮度图片根据权重图按照下式加权融合得到融合金字塔的第l层pyr(l):融合时一个工作项处理一个像素点;9、重构亮度金字塔:根据金字塔生成的逆过程从融合金字塔最顶层开始重构亮度金字塔,第i层亮度图上采样后和第i-1层合并成新的第i-1层,重构后的亮度金字塔最底层就是多曝光融合后得到的结果亮度图,重构过程一个工作项处理一个像素点;10、确定结果图像的饱和度和色调,具体如下:10a、饱和度越大,图像色彩越鲜艳,按照下式,选择最大的饱和度值作为结果图像的饱和度值:S=max(Sn),n=1,2,3,...,N10b、选择饱和度值最大的图像序列所对应的色调值作为结果图像的色调值;11、将H、S、I转换到RGB色域空间,具体按照下式进行转换:12、显示并保存结果图像:将步骤11的R、G、B分量传输到主机本文档来自技高网
...
基于OpenCL的直接多曝光融合并行加速方法

【技术保护点】
基于OpenCL的直接多曝光融合并行加速方法,其特征在于,包括以下步骤:1、开发环境初始化:明确OpenCL平台的主机和设备,依次创建上下文、命令队列、内核对象和程序对象;2、通过PCI‑e传递低动态范围图像到显存,具体如下:2a、读取同一场景多帧不同曝光度的低动态范围图像到CPU内存;2b、创建内存对象;2c、传递内存的低动态范围图像到显存;3、在GPU上进行RGB到HIS的色域转换:亮度和色度独立表示的HIS色域空间相较于RGB色域空间更易于表示图像特征,按照下式,在GPU上进行RGB到HIS的色域转换,假设多曝光图像序列中共有N张图片,每张图片的分辨率为W×H,则共有N×W×H个待处理像素点,一个工作项处理2×1个像素点:

【技术特征摘要】
1.基于OpenCL的直接多曝光融合并行加速方法,其特征在于,包括以下步骤:1、开发环境初始化:明确OpenCL平台的主机和设备,依次创建上下文、命令队列、内核对象和程序对象;2、通过PCI-e传递低动态范围图像到显存,具体如下:2a、读取同一场景多帧不同曝光度的低动态范围图像到CPU内存;2b、创建内存对象;2c、传递内存的低动态范围图像到显存;3、在GPU上进行RGB到HIS的色域转换:亮度和色度独立表示的HIS色域空间相较于RGB色域空间更易于表示图像特征,按照下式,在GPU上进行RGB到HIS的色域转换,假设多曝光图像序列中共有N张图片,每张图片的分辨率为W×H,则共有N×W×H个待处理像素点,一个工作项处理2×1个像素点:其中,R、G、B是红、绿、蓝三原色,H、S、I分别表示色调、饱和度、亮度,π表示圆周率,min表示求最小值;4、计算决定多曝光融合权重的特征因子,具体如下:4a、不合适的曝光度会影响图像饱和度,按照下式,在GPU上筛选出饱和度适中的部分:其中,n表示不同曝光度的图像序列的序号,T是最佳曝光度可取的最小值,In表示多曝光图像序列中第n张图像的亮度,Sn表示多曝光图像序列中第n张图像的饱和度,一个工作项处理一个像素点;4b、按照下式,在GPU上计算对比度:Cn=L*In其中,Cn表示第n张图片的对比度,L表示拉普拉斯算子,在计算对比度的过程中,拉普拉斯算子始终保持不变,将拉普拉斯算子存储在显存的常量存储器区域以加快对它的访问速度,计算对比度时存在一定的数据复用,缓存复用数据到局部存储器,一个工作组分配16×16个工作项,一个工作项处理2×1个像素点;4c、按照下式,对每个像素位置选择多曝光图像序列中对比度的最大值参与权值计算:其中,表示最终参与权值计算的对比度值,一个工作项处理一个像素点;5、计算归一化的权重图,具体如下:5a、根据步骤4a和步骤4c得到的特征因子,按照下式计算权重图:其中,Wn表示第n张图片的权重图;5b、对步骤5a得到的权重图按照下式进行归一化:其中,是归一化因子,权重计算和归一化同步实现,如果则归一化后的权重Wn=0,如果则归一化后的一个工作项处理一个像素点;6、同时对权重图和亮度图进行高斯下采样得到权重图高斯金字塔和亮度图高斯金字塔:以IG和WG作为高斯金字塔输入图像,则高斯金字塔第i层图像WGi和IGi按照下式计算:其中,WGi-1和IGi-1表示第i-1层图像,第i-1层是第i层的下一层,gauss表示高斯核表示卷积运算,down表示取偶数行和偶数列...

【专利技术属性】
技术研发人员:赖睿王维张剑贤孟灵非周慧鑫王炳建秦翰林
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1