图像模糊程度确定方法、数据集构建方法与去模糊方法
技术领域
本公开涉及图像与视频处理
技术领域
,尤其涉及一种图像模糊程度确定方法、模糊图像数据集构建方法、图像去模糊方法、图像模糊程度确定装置、模糊图像数据集构建装置、图像去模糊装置、计算机可读存储介质与电子设备。背景技术
在图像拍摄过程中,由于抖动、失焦或其他原因导致图像模糊不清,是较为常见的情况。在进行图像去模糊时,通常需要先计算图像的模糊程度,以便采用与之匹配的标准实施具体的去模糊处理。
相关技术中,模糊程度计算方法大多是针对整张图像计算一个整体的模糊程度,无法体现出图像中不同区域的模糊程度差异,进而,在去模糊处理时对整张图像采用同一标准,导致去模糊效果较差。
发明内容
本公开提供了一种图像模糊程度确定方法、模糊图像数据集构建方法、图像去模糊方法、图像模糊程度确定装置、模糊图像数据集构建装置、图像去模糊装置、计算机可读存储介质与电子设备,进而至少在一定程度上解决相关技术中无法对图像中不同区域分别确定模糊程度、以及图像去模糊效果较差的问题。
根据本公开的第一方面,提供一种图像模糊程度确定方法,包括:获取连续n帧原始图像以及由所述连续n帧原始图像中相同位置像素点进行加权融合所合成的目标图像,n为不小于2的正整数;获取所述目标图像中每个像素点在每一帧所述原始图像中对应的相同位置像素点的像素值;根据所述每个像素点在所述n帧原始图像中对应的n个所述像素值之间的偏差程度,确定所述目标图像的模糊程度数据,所述目标图像的模糊程度数据包括所述目标图像中每个像素点的模糊程度值。
根据本公开的第二方面,提供一种模糊图像数据集构建方法,包括:获取目标图像以及根据上述第一方面的图像模糊程度确定方法所确定的所述目标图像的模糊程度数据;将所述目标图像作为样本图像,所述目标图像的模糊程度数据作为第一标签,构建模糊图像数据集;所述模糊图像数据集用于训练模糊程度感知网络,所述模糊程度感知网络用于对输入所述模糊程度感知网络的图像确定其模糊程度数据。
根据本公开的第三方面,提供一种图像去模糊方法,包括:获取待处理图像;根据上述第一方面的图像模糊程度确定方法,以所述待处理图像为目标图像,确定所述待处理图像的模糊程度数据;基于所述待处理图像的模糊程度数据,对所述待处理图像进行去模糊处理,得到所述待处理图像对应的去模糊图像。
根据本公开的第四方面,提供一种图像去模糊方法,包括:获取待处理图像;利用模糊程度感知网络对所述待处理图像进行处理,得到所述待处理图像的模糊程度数据;基于所述待处理图像的模糊程度数据,对所述待处理图像进行去模糊处理,得到所述待处理图像对应的去模糊图像;其中,所述模糊程度感知网络是利用上述第二方面的模糊图像数据集构建方法所构建的模糊图像数据集而训练得到的。
根据本公开的第五方面,提供一种图像模糊程度确定装置,包括:图像获取模块,被配置为获取连续n帧原始图像以及由所述连续n帧原始图像中相同位置像素点进行加权融合所合成的目标图像,n为不小于2的正整数;像素值获取模块,被配置为获取所述目标图像中每个像素点在每一帧所述原始图像中对应的相同位置像素点的像素值;模糊程度数据确定模块,被配置为根据所述每个像素点在所述n帧原始图像中对应的n个所述像素值之间的偏差程度,确定所述目标图像的模糊程度数据,所述目标图像的模糊程度数据包括所述目标图像中每个像素点的模糊程度值。
根据本公开的第六方面,提供一种模糊图像数据集构建装置,包括:数据获取模块,被配置为获取目标图像以及根据上述第一方面的图像模糊程度确定方法所确定的所述目标图像的模糊程度数据;数据集构建模块,被配置为将所述目标图像作为样本图像,所述目标图像的模糊程度数据作为第一标签,构建模糊图像数据集;所述模糊图像数据集用于训练模糊程度感知网络,所述模糊程度感知网络用于对输入所述模糊程度感知网络的图像确定其模糊程度数据。
根据本公开的第七方面,提供一种图像去模糊装置,包括:图像获取模块,被配置为获取待处理图像;模糊程度数据确定模块,被配置为根据上述第一方面的图像模糊程度确定方法,以所述待处理图像为目标图像,确定所述待处理图像的模糊程度数据;去模糊处理模块,被配置为基于所述待处理图像的模糊程度数据,对所述待处理图像进行去模糊处理,得到所述待处理图像对应的去模糊图像。
根据本公开的第八方面,提供一种图像去模糊装置,包括:图像获取模块,被配置为获取待处理图像;模糊程度数据确定模块,被配置为利用模糊程度感知网络对所述待处理图像进行处理,得到所述待处理图像的模糊程度数据;去模糊处理模块,被配置为基于所述待处理图像的模糊程度数据,对所述待处理图像进行去模糊处理,得到所述待处理图像对应的去模糊图像;其中,所述模糊程度感知网络是利用上述第二方面的模糊图像数据集构建方法所构建的模糊图像数据集而训练得到的。
根据本公开的第九方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的图像模糊程度确定方法、第二方面的模糊图像数据集构建方法、第三方面的图像去模糊方法或者第四方面的图像去模糊方法。
根据本公开的第十方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述第一方面的图像模糊程度确定方法、第二方面的模糊图像数据集构建方法、第三方面的图像去模糊方法或者第四方面的图像去模糊方法。
本公开的技术方案具有以下有益效果:
本公开提供了一种确定图像中每个像素点模糊程度值的技术方案。一方面,与相关技术中计算图像整体模糊程度值的方案相比,本方案能够更加精细地表示图像中不同区域的模糊程度,体现不同区域间的模糊程度差异,以便于针对每个区域采用合适的方法与参数做进一步的优化,如可以对图像中的不同区域采用差异化的参数进行去模糊,有利于改善去模糊效果。另一方面,本方案基于原始图像间的像素值偏差程度确定模糊程度数据,计算过程较为简单,具有较低的实现成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
图1示出本示例性实施方式中一种系统架构的示意图;
图2示出本示例性实施方式中一种电子设备的结构示意图;
图3示出本示例性实施方式中一种图像模糊程度确定方法的流程图;
图4示出本示例性实施方式中一种合成目标图像的流程图;
图5示出本示例性实施方式中一种生成目标图像与模糊程度图像的示意图;
图6示出本示例性实施方式中一种模糊图像数据集构建方法的流程图;
图7示出本示例性实施方式中一种模糊程度感知网络的结构示意图;
图8示出本示例性实施方式中一种去模糊网络与特征感知网络的结构示意图;
图9示出本示例性实施方式中一种图像去模糊方法的流程图;
图10示出本示例性实施方式中另一种图像去模糊方法的流程图;
图11示出本示例性实施方式中一种图像去模糊的示意性流程图;
图12示出本示例性实施方式中一种训练网络的流程图;
图13示出本示例性实施方式中一种图像模糊程度确定装置的结构示意图;
图14示出本示例性实施方式中一种模糊图像数据集构建装置的结构示意图;
图15示出本示例性实施方式中一种图像去模糊装置的结构示意图;
图16示出本示例性实施方式中另一种图像去模糊装置的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
相关技术的一种方案中,对整张图像计算整体的模糊程度,然后生成对应的一个模糊核,利用该模糊核对整张图像进行去模糊处理。然而,图像中不同区域的场景深度差异、纹理稀疏差异等会导致不同区域的模糊程度差异。采用一个模糊核对不同区域进行去模糊处理,无法实现对每个区域的最优化去模糊,导致去模糊后图像中存在大量缺陷,例如部分区域中出现噪点,部分区域中仍然存在模糊,甚至出现伪影、振铃等不良现象。
鉴于上述问题,本公开的示例性实施方式提供一种图像模糊程度确定方法。下面先对该图像模糊程度确定方法运行环境的系统架构进行介绍。
图1示出了系统架构的示意图,该系统架构100可以包括终端110与服务器120。其中,终端110可以是台式电脑、笔记本电脑、智能手机、平板电脑等终端设备,服务器120可以是提供图像处理相关服务的一台服务器,或者多台服务器形成的集群。终端110与服务器120之间可以通过有线或无线的通信链路形成连接,以进行数据交互。终端110可以拍摄或者通过其他方式接收或提取连续多帧原始图像。在一种实施方式中,终端110可以将连续多帧原始图像发送至服务器120,服务器120基于连续多帧原始图像合成目标图像,并通过执行本示例性实施方式中的图像模糊程度确定方法,输出目标图像的模糊程度数据,将目标图像与模糊程度数据返回终端110。在一种实施方式中,终端110可以执行由连续多帧原始图像合成目标图像,并将原始图像与目标图像发送至服务器120,服务器120通过执行本示例性实施方式中的图像模糊程度确定方法,输出目标图像的模糊程度数据,将该模糊程度数据返回终端110。在一种实施方式中,终端110在执行由连续多帧原始图像合成目标图像后,可以继续在本地执行本示例性实施方式中的图像模糊程度确定方法,以得到目标图像的模糊程度数据。
由上可知,本示例性实施方式中,图像模糊程度确定方法的执行主体可以是上述终端110,也可以是上述服务器120。本公开的示例性实施方式还提供一种用于执行图像模糊程度确定方法的电子设备,该电子设备可以是终端110或服务器120。下面以图2中的移动终端200为例,对上述电子设备的构造进行示例性说明。本领域技术人员应当理解,除了特别用于移动目的的部件之外,图2中的构造也能够应用于固定类型的设备。
如图2所示,移动终端200具体可以包括:处理器210、内部存储器221、外部存储器接口222、USB(Universal Serial Bus,通用串行总线)接口230、充电管理模块240、电源管理模块241、电池242、天线1、天线2、移动通信模块250、无线通信模块260、音频模块270、扬声器271、受话器272、麦克风273、耳机接口274、传感器模块280、显示屏290、摄像模组291、指示器292、马达293、按键294以及SIM(Subscriber Identification Module,用户标识模块)卡接口295等。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括AP(Application Processor,应用处理器)、调制解调处理器、GPU(Graphics ProcessingUnit,图形处理器)、ISP(Image Signal Processor,图像信号处理器)、控制器、编码器、解码器、DSP(Digital Signal Processor,数字信号处理器)、基带处理器和/或NPU(Neural-Network Processing Unit,神经网络处理器)等。
编码器可以对图像或视频进行编码(即压缩),例如对当前图像进行编码,得到码流数据;解码器可以对图像或视频的码流数据进行解码(即解压缩),以还原出图像或视频数据。移动终端200可以支持一种或多种编码器和解码器。这样,移动终端200可以处理多种编码格式的图像或视频,例如:JPEG(Joint Photographic Experts Group,联合图像专家组)、PNG(Portable Network Graphics,便携式网络图形)、BMP(Bitmap,位图)等图像格式,MPEG(Moving Picture Experts Group,动态图像专家组)1、MPEG2、H.263、H.264、HEVC(High Efficiency Video Coding,高效率视频编码)等视频格式。
在一种实施方式中,处理器210可以包括一个或多个接口,通过不同的接口和移动终端200的其他部件形成连接。
内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器221可以包括易失性存储器与非易失性存储器。处理器210通过运行存储在内部存储器221的指令,执行移动终端200的各种功能应用以及数据处理。
外部存储器接口222可以用于连接外部存储器,例如Micro SD卡,实现扩展移动终端200的存储能力。外部存储器通过外部存储器接口222与处理器210通信,实现数据存储功能,例如存储图像,视频等文件。
USB接口230是符合USB标准规范的接口,可以用于连接充电器为移动终端200充电,也可以连接耳机或其他电子设备。
充电管理模块240用于从充电器接收充电输入。充电管理模块240为电池242充电的同时,还可以通过电源管理模块241为设备供电;电源管理模块241还可以监测电池的状态。
移动终端200的无线通信功能可以通过天线1、天线2、移动通信模块250、无线通信模块260、调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。移动通信模块250可以提供应用在移动终端200上2G、3G、4G、5G等移动通信解决方案。无线通信模块260可以提供应用在移动终端200上的WLAN(Wireless Local Area Networks,无线局域网)(如Wi-Fi(Wireless Fidelity,无线保真)网络)、BT(Bluetooth,蓝牙)、GNSS(Global Navigation Satellite System,全球导航卫星系统)、FM(FrequencyModulation,调频)、NFC(Near Field Communication,近距离无线通信技术)、IR(Infrared,红外技术)等无线通信解决方案。
移动终端200可以通过GPU、显示屏290及AP等实现显示功能,显示用户界面。例如,当用户进行摄像头检测时,移动终端200可以在显示屏290中显示摄像头检测App(Application,应用程序)的界面。
移动终端200可以通过ISP、摄像模组291、编码器、解码器、GPU、显示屏290及AP等实现拍摄功能。例如,用户可以在隐藏摄像头检测App中开启图像或视频拍摄功能,此时可以通过摄像模组291采集待检测空间的图像。
移动终端200可以通过音频模块270、扬声器271、受话器272、麦克风273、耳机接口274及AP等实现音频功能。
传感器模块280可以包括深度传感器2801、压力传感器2802、陀螺仪传感器2803、气压传感器2804等,以实现相应的感应检测功能。
指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。马达293可以产生振动提示,也可以用于触摸振动反馈等。按键294包括开机键,音量键等。
移动终端200可以支持一个或多个SIM卡接口295,用于连接SIM卡,以实现通话与移动通信等功能。
图3示出了上述图像模糊程度确定方法的示例性流程,可以包括:
步骤S310,获取连续n帧原始图像以及由该连续n帧原始图像中相同位置像素点进行加权融合所合成的目标图像,n为不小于2的正整数;
步骤S320,获取目标图像中每个像素点在每一帧原始图像中对应的相同位置像素点的像素值;
步骤S330,根据目标图像中每个像素点在n帧原始图像中对应的n个像素值之间的偏差程度,确定目标图像的模糊程度数据,包括目标图像中每个像素点的模糊程度值。
通过上述方法,提供了一种确定图像中每个像素点模糊程度值的技术方案。一方面,与相关技术中计算图像整体模糊程度值的方案相比,本方案能够更加精细地表示图像中不同区域的模糊程度,体现不同区域间的模糊程度差异,以便于针对每个区域采用合适的方法与参数做进一步的优化,如可以对图像中的不同区域采用差异化的参数进行去模糊,有利于改善去模糊效果。另一方面,本方案基于原始图像间的像素值偏差程度确定模糊程度数据,计算过程较为简单,具有较低的实现成本。
下面分别对图3中的每个步骤进行具体说明。
参考图3,在步骤S310中,获取连续n帧原始图像以及由该连续n帧原始图像中相同位置像素点进行加权融合所合成的目标图像,n为不小于2的正整数。
其中,连续n帧原始图像可以是拍摄时连续采集的n帧图像,也可以是视频中的连续n帧图像,该n帧原始图像为针对相同拍摄对象或场景所采集的图像。在连续n帧原始图像中,一般存在运动物体,或者拍摄连续n帧原始图像时相机发生运动,因此,在由该连续n帧原始图像合成的目标图像中,存在一定程度的模糊情况,即可以将目标图像视为模糊图像。
连续n帧原始图像的像素数可以相同,在合成目标图像时可以采用像素级合成,即将n帧原始图像中相同位置像素点进行加权融合,得到一个像素值,作为目标图像中对应位置的像素值。或者,连续n帧原始图像的像素数不相同时,可以先对其中一部分原始图像进行上采样或下采样,使全部n帧原始图像的像素数达到相同,再进行像素级合成。
在一种实施方式中,参考图4所示,步骤S310可以包括以下步骤S410与S420:
步骤S410,获取连续n帧原始图像。
其中,n可以为固定值,也可以为可变值。一般的,n的值越大,即参与合成目标图像的原始图像数量越多,其中运动物体的运动程度越高,或者拍摄这些原始图像时相机的运动程度越高,则合成的目标图像越模糊。在一种实施方式中,图像模糊程度确定方法还可以包括以下步骤:
在获取连续n帧原始图像前,基于目标图像的预期全局模糊程度值,确定n的值。
全局模糊程度值是表征图像整体模糊程度的量化参数,可以采用自定义的参数,例如将一张图像中每个像素点的模糊程度值的平均值作为图像全局模糊程度,也可以采用业界常用的模糊程度参数,例如基于图像中像素值梯度的模糊程度值。本示例性实施方式中,根据目标图像的实际应用需求,确定其预期全局模糊程度值,即预期目标图像所达到的全局模糊程度值。
需要说明的是,目标图像的模糊程度与n的值正相关,主要指全局模糊程度值与n的值正相关,并非目标图像中每个区域的模糊程度均与n正相关,例如连续多帧原始图像中的纯色背景区域均相同,随着n的值增加,所合成的目标图像中纯色背景区域的模糊程度无变化,则该纯色背景区域的模糊程度与n无关。
通过预先统计大量合成图像的全局模糊程度值与参与合成的原始图像数量,可以得到全局模糊程度值与n的对应关系,例如两个参数为线性关系等。由此,在确定目标图像的预期全局模糊程度值后,可以基于该对应关系确定对应的n的值。
在一种实施方式中,可以获取连续nmax帧原始图像,nmax为n可能取到的最大值,可以根据经验或实际场景需求确定。在确定n的值后,从连续nmax帧原始图像中选取连续n帧原始图像,可以从第1帧至第nmax-n+1帧中的任一帧开始选取,即所选取的连续n帧原始图像可以位于连续nmax帧原始图像中的任意位置。
在一种实施方式中,考虑到在拍摄连续n帧原始图像的过程中,相机可能存在一定的位移或抖动,导致连续n帧原始图像对应的拍摄位置与视角存在偏差。为了便于后续实现精准融合,可以对n帧原始图像进行配准,例如依次将前一帧向后一帧配准,或者在n帧原始图像中选取一基准帧,将其他帧均向该基准帧进行配准。本公开对于配准的具体算法不做限定,例如可以分别在待配准的两帧原始图像中提取特征点,匹配两帧原始图像之间的特征点,得到特征点匹配对,再利用特征点匹配对求解两帧原始图像间的位姿变换关系,从而对其中任一帧进行变换,以实现配准。
步骤S420,对上述连续n帧原始图像中相同位置像素点进行加权融合,以将该连续n帧原始图像合成为一张目标图像。
举例来说,连续n帧原始图像的像素数均为W*H,从某一位置开始,选取每帧原始图像中位于该位置的像素点并进行加权融合。例如从左上角像素坐标(1,1)的位置开始,选取每帧原始图像中(1,1)位置的像素点(简称为(1,1)像素点),得到n个(1,1)像素点,进行像素值的加权融合,得到(1,1)融合像素值。本示例性实施方式可以分别对n个像素点在每个颜色通道上进行加权融合,例如分别对R、G、B通道的数值加权融合,也可以将RGB等颜色模式的像素值转换为灰度值,对灰度值进行加权融合。本公开对于加权融合所用的权重值不做限定,例如:可以对n帧原始图像设置等权重,则加权融合相当于对n个像素点计算平均像素值。也可以根据实际场景需求为n帧原始图像设置不同的权重,如按照n帧原始图像的拍摄时间顺序,设置n帧原始图像的权重递增或递减。还可以针对每个位置的像素点,为n帧原始图像设置不同的权重,如分别在n帧原始图像中计算(1,1)像素点的梯度值,根据n个梯度值的大小关系设置n帧原始图像中(1,1)像素点的权重;一般的,梯度值越大,说明在该帧原始图像中(1,1)像素点越清晰,其权重越大;示例性的,对n帧原始图像中(1,1)像素点的梯度值进行归一化,得到n帧原始图像中(1,1)像素点的权重。采用像素值加权融合的方法,按照一定的顺序遍历每个位置的像素点,例如从(1,1)位置开始,按照从左到右、从上到下的顺序遍历至(W,H)位置,采用与上述(1,1)像素点相同的方式,对每个位置的n个像素点进行加权融合,得到每个位置的融合像素值。由此将所有位置的融合像素值形成一张目标图像。
继续参考图3,在步骤S320中,获取目标图像中每个像素点在每一帧原始图像中对应的相同位置像素点的像素值。
由上可知,目标图像是n帧原始图像中每个位置的像素点融合而成的,则目标图像中的每个像素点在每一帧原始图像中均具有对应的相同位置像素点,获取这些像素点的像素值,可以得到目标图像中每个像素点在n帧原始图像中对应的n个像素值。例如,对于目标图像中的(1,1)像素点,其在每一帧原始图像中对应(1,1)位置的像素值,因此可以获取该(1,1)像素点对应的n个像素值。基于同样的方式,可以得到目标图像中每个像素点对应的n个像素值。
继续参考图3,在步骤S330中,根据目标图像中每个像素点在n帧原始图像中对应的n个像素值之间的偏差程度,确定目标图像的模糊程度数据,包括目标图像中每个像素点的模糊程度值。
其中,n个像素值之间的偏差程度可以通过n个像素值之间的方差或标准差来定量表示。一般的,目标图像中某一像素点对应的n个像素值之间的偏差程度越高,该像素点的模糊程度值越高,两者之间可以满足线性或非线性的正相关。示例性的,可以将每个像素点对应的n个像素值之间的标准差作为每个像素点的模糊程度值,如下所示:
其中,(x,y)表示像素点的位置坐标,D(x,y)表示目标图像中(x,y)像素点的模糊程度值,Li(x,y)表示第i帧原始图像中(x,y)像素点的像素值。公式(1)表示对n帧原始图像中(x,y)像素点的像素值计算标准差,作为目标图像中(x,y)像素点的模糊程度值。标准差越大,说明n帧原始图像中关于(x,y)这一点的图像信息差异越大,合成为一张目标图像时,在(x,y)这一点上损失的图像信息越多,因此模糊程度值越高。
需要说明的是,公式(1)直接采用标准差作为模糊程度值,D(x,y)的数值大小与Li(x,y)的数值大小有关,如Li(x,y)为0~1时,D(x,y)一般也处于0~1内,Li(x,y)为0~255时,D(x,y)一般也处于0~255内。在一种实施方式中,可以根据模糊程度值的预设数值区间(与实际场景需求相关,如可以是0~1、0~100等),对D(x,y)进行映射,使D(x,y)的值转换至预设数值区间内,例如预设数值区间为0~1时,可以对D(x,y)进行归一化。
在计算像素值之间的偏差程度时,可以将像素值转换为灰度值并进行计算,如公式(1)中的Li(x,y)可以是第i帧原始图像中(x,y)像素点的灰度值,也可以分别在每个颜色通道上进行计算,如在公式(1)中分别以Li(x,y)R、G、B通道的数值,计算三个通道的D(x,y),再对三个通道的D(x,y)进行融合,如计算平均值或加权平均值等,得到(x,y)像素点的模糊程度值。
在一种实施方式中,图像模糊程度确定方法还可以包括以下步骤:
根据目标图像的模糊程度数据,生成目标图像对应的模糊程度图像。
其中,模糊程度图像中每个像素点的像素值为每个像素点在目标图像中的模糊程度值。即,模糊程度图像是将目标图像中每个像素点的模糊程度值表示为像素值,以可视化的形式所展示的目标图像的模糊程度数据。模糊程度图像与目标图像的像素数相同,便于进行保存与处理。
图5示出了由连续n帧原始图像生成目标图像及模糊程度图像的示意性过程。在n帧原始图像中,提取相同位置的像素点,对像素值计算平均值,得到目标图像中对应位置的像素值,对像素值计算标准差,得到模糊程度图像中对应位置的像素值。
本公开的示例性实施方式还提供一种模糊图像数据集构建方法。图6示出了该模糊图像数据集构建方法的示例性流程,包括以下步骤S610与S620:
步骤S610,获取目标图像以及根据上述图像模糊程度确定方法所确定的目标图像的模糊程度数据;
步骤S620,将目标图像作为样本图像,目标图像的模糊程度数据作为第一标签,构建模糊图像数据集。
示例性的,将通过图3的图像模糊程度确定方法所得到的目标图像视为模糊图像,其可以作为样本图像,目标图像的模糊程度数据作为对应的标签(Ground Truth),为便于区分其他形式的标签,此处记为第一标签,将样本图像-第一标签形成训练数组,通过获取大量的训练数组,可以构建模糊图像数据集。
模糊图像数据集可以用于训练模糊程度感知网络,模糊程度感知网络用于对输入模糊程度感知网络的图像确定其模糊程度数据。模糊程度感知网络可以是端到端(End-to-End)结构的网络。图7示出了模糊程度感知网络的示意性结构图,可以采用U-Net结构。示例性的,将样本图像输入模糊程度感知网络后,由卷积层1进行一次或多次卷积操作(图6中示出卷积层1进行两次卷积操作,本公开对于每个卷积层中具体的卷积操作次数不做限定),然后经过池化操作,得到尺寸减小的特征图像;由卷积层2再进行一轮卷积与池化操作,得到尺寸进一步减小的特征图像;由卷积层3再进行一轮卷积与池化操作,得到尺寸更小的特征图像;在卷积层4中进行卷积操作,但不进行池化操作;之后进入转置卷积层1,先进行转置卷积操作,再与卷积层3中的特征图像进行拼接,然后进行一次或多次卷积操作,得到尺寸增大的特征图像;由转置卷积层2再进行一轮转置卷积操作、与卷积层2中的特征图像的拼接、以及卷积操作,得到尺寸进一步增大的特征图像;最后由转置卷积层3再进行一轮上述操作,输出模糊程度数据。需要说明的是,本公开对于模糊程度感知网络中卷积层、转置卷积层的数量不做限定,根据实际场景需求,还可以在模糊程度感知网络中增加其他类型的中间层,如Dropout层(丢弃层)、全连接层等。
根据模糊程度感知网络输出的样本模糊程度数据(此处输出的是样本图像的模糊程度数据,故称为样本模糊程度数据)与作为第一标签的模糊程度数据之间的差别,计算损失函数值,例如可以基于样本模糊程度数据与第一标签之间的MSE(Mean Square Error,均方误差)建立损失函数,代入样本模糊程度数据与第一标签后得到损失函数值。利用损失函数值更新模糊程度感知网络的参数,如可以对网络的参数进行梯度下降更新。通过多次迭代使网络达到一定的准确率,或者损失函数值收敛,从而完成对模糊程度感知网络的训练。
在一种实施方式中,模糊图像数据集构建方法还可以包括以下步骤:
获取用于合成目标图像的n帧原始图像中的一帧原始图像,将该一帧原始图像作为第二标签,添加至模糊图像数据集中。
其中,原始图像可视为样本图像(即目标图像)对应的清晰图像,将其作为样本图像对应的另一类型标签,为便于区分上述第一标签,此处记为第二标签。将第二标签添加至模糊图像数据集中,可以与样本图像形成二元的训练数组,也可以与样本图像、第一标签形成三元的训练数组。
本示例性实施方式可以采用上述连续n帧原始图像中的任一帧原始图像作为第二标签,也可以对原始图像进行模糊程度评价后,选取其中模糊程度值最低的一帧原始图像作为第二标签。例如,采用上述模糊程度感知网络对每一帧原始图像进行处理,得到每一帧原始图像的模糊程度数据,基于模糊程度数据计算每一帧原始图像的平均模糊程度值,选取平均模糊程度值最低的一帧原始图像作为第二标签。
包含有第二标签的模糊图像数据集还可以用于训练去模糊网络,去模糊网络用于对输入去模糊网络的图像进行去模糊处理,输出该图像对应的去模糊图像。
在一种实施方式中,去模糊网络可以是端到端结构的网络,例如可以是U-Net结构的网络。示例性的,去模糊网络也可以采用图7的网络结构,其中具体的卷积层、转置卷积层或其他类型的中间层的设置可以与图7有所差别。根据去模糊网络输出的去模糊图像与第二标签的差别,更新去模糊网络的参数,从而实现对去模糊网络的训练。应当理解,本示例性实施方式中,模糊程度感知网络与去模糊网络均可以采用U-Net结构的网络,但是在网络的细节结构方面可以不同,且经过训练后两个网络的参数不同,使得两个网络所实现的功能不同。
在一种实施方式中,可以将模糊程度数据整合到去模糊网络中。一般的,可以将模糊程度数据经过处理后,输入去模糊网络的中间层,与图像信息进行融合。图8示出了去模糊网络与特征感知网络的示意性结构图,特征感知网络用于对模糊程度数据进行处理,其输出与去模糊网络的中间层相连接。示例性的,将样本图像输入去模糊网络,经过卷积层1~卷积层3中的卷积与池化操作,得到尺寸不断减小的特征图像,并进入卷积层4。将样本图像的模糊程度数据(通常是模糊程度图像的形式,可以采用第一标签或模糊程度感知网络输出的模糊程度数据)输入特征感知网络,先经过卷积层1’(图8中示出卷积层1’包括四次卷积操作,本公开对此不做特别限定)的处理,得到表示模糊程度特征的多通道特征ψ;再将ψ输入多组不同的卷积层,如图8所示的卷积层2’与卷积层3’(图8中示出卷积层2’与卷积层3’均包括两次卷积操作,本公开对此不做特别限定);将卷积层2’输出的特征图像输入全连接层1,得到样本调制参数α,将卷积层3’输出的特征图像输入全连接层2,得到样本调制参数β(此处的α与β是样本图像对应的调制参数,故称为样本调制参数)。调制是指将模糊程度信息与图像信息进行融合。在一种实施方式中,调制可以是对图像进行仿射变换,α与β可以是不同类型的变换操作参数,例如仿射变换通常包括旋转、平移、缩放等操作,例如α可以是缩放参数,β可以是平移参数。可以将全连接层1和2连接至去模糊网络中的任意中间层,例如在图8中连接至卷积层4,表示对卷积层4中的特征图像进行仿射变换,如下所示:
其中,F是特征图像,α、β的维数与F相同。是经过仿射变换的特征图像,表示逐个元素相乘。经过仿射变换的特征图像再经过转置卷积层1~转置卷积层3的处理,输出样本去模糊图像(此处的去模糊图像是样本图像对应的去模糊图像,故称为样本去模糊图像)。
在图8中,利用特征感知网络将模糊程度数据表征为调制参数,并对样本图像的特征图像进行调制,由此实现了图像与模糊程度两种信息的融合,有利于改善去模糊网络的去模糊质量。
应当理解,图8中的特征感知网络采用了SFT(Spatial Feature Transformation,空间特征变换)层的结构,该结构仅是示意性的。在其他实施方式中,可以采用其他结构的特征感知网络,例如可以采用U-Net结构的特征感知网络,将模糊程度图像输入特征感知网络后,经过多个卷积层与转置卷积层的处理,其中的一个或多个卷积层或转置卷积层可以连接至去模糊网络中对应的卷积层或转置卷积层,使特征感知网络中的特征图像输入至去模糊网络中,与去模糊网络中的特征图像进行拼接等操作,同样可以实现图像与模糊程度两种信息的融合。
在上述去模糊网络与特征感知网络的结构中,可以采用样本图像-第一标签-第二标签这样的三元训练数组进行训练,其中样本图像与第一标签分别输入去模糊网络的两个通道,经过处理,输出样本去模糊图像,根据样本去模糊图像与第二标签的差别(如MSE等损失函数值),更新去模糊网络的参数,或者同时更新去模糊网络与特征感知网络的参数,以实现训练。
现有的公共模糊图像数据集(如GoPro数据集等)通常是对连续多帧清晰图像计算平均值以获得模糊图像。利用本示例性实施方式中的图像模糊程度确定方法,可以对公共模糊图像数据集中的模糊图像确定模糊程度数据,从而实现公共模糊图像数据集的扩展,构建更全面的模糊图像数据集,以便于将其应用于上述模糊程度感知网络与去模糊网络的训练。
本公开的示例性实施方式还提供一种图像去模糊方法。图9示出了该图像去模糊方法的示例性流程,包括以下步骤S910至S930:
步骤S910,获取由连续n帧原始图像中相同位置像素点进行加权融合所合成的待处理图像,n为不小于2的正整数。
其中,待处理图像是需要进行去模糊处理的图像,其是通过连续n帧原始图像合成的图像,例如在某些动态拍摄模式下,相机在短时间内连续拍摄多帧原始图像,将其合称为一张图像进行输出,该图像可能存在运动模糊的情况,可作为此处的待处理图像。
关于由连续n帧原始图像合成待处理图像的具体实施方式,请参考上述图4部分的内容。
步骤S920,根据上述图像模糊程度确定方法,以待处理图像为目标图像,确定待处理图像的模糊程度数据。
示例性的,以待处理图像为目标图像,获取用于合成待处理图像的连续n帧原始图像,执行图3的图像模糊程度确定方法,得到待处理图像的模糊程度数据,包括待处理图像中每个像素点的模糊程度值。
步骤S930,基于待处理图像的模糊程度数据,对待处理图像进行去模糊处理,得到待处理图像对应的去模糊图像。
待处理图像的模糊程度数据可以对待处理图像的去模糊处理提供辅助或参考信息。例如,基于待处理图像的模糊程度数据,可以对待处理图像中的不同区域设置不同的模糊核,然后通过模糊核对不同区域进行去模糊处理,得到去模糊图像,相比于采用一个模糊核,可以对不同区域进行针对性地去模糊处理,改善去模糊效果。
在一种实施方式中,步骤S930可以包括以下步骤:
利用特征感知网络对待处理图像的模糊程度数据进行处理,得到调制参数;
根据调制参数对待处理图像进行去模糊处理,得到待处理图像对应的去模糊图像。
其中,特征感知网络用于将模糊程度数据转换为特定形式的调制参数,以便于与待处理图像本身的图像信息进行融合。特征感知网络与调制参数可以参考图8所示,当然也可以是其他形式,例如特征感知网络为U-Net结构的网络,调制参数为模糊程度数据的特征图像。本公开对此不做限定。
根据调制参数可以将模糊程度信息与图像信息进行融合,使得待处理图像的信息维度更加全面,便于实现高质量的图像去模糊。
在一种实施方式中,可以利用上述去模糊网络进行去模糊处理。示例性的,上述根据调制参数对待处理图像进行去模糊处理,得到待处理图像对应的去模糊图像,可以包括以下步骤:
将待处理图像输入去模糊网络的输入层,调制参数输入去模糊网络的中间层,通过去模糊网络输出待处理图像对应的去模糊图像。
其中,去模糊网络的具体处理过程可以参考上述图8部分的内容。图8部分的内容为去模糊网络对样本图像及其模糊程度数据进行处理的过程,即训练过程。而在待处理图像的去模糊处理中,去模糊网络的处理过程相同,区别在于网络已经经过充分训练,可以直接输出质量较高的去模糊图像。
本公开的示例性实施方式还提供另一种图像去模糊方法。图10示出了该图像去模糊方法的示例性流程,包括以下步骤S1010至S1030:
步骤S1010,获取待处理图像。
其中,待处理图像是需要进行去模糊处理的图像,可以是通过任意途径获取的图像,例如可以是当前拍摄的图像,或者用户选取的图像。步骤S1010与步骤S910相比,无需限定待处理图像是由连续n帧原始图像合成的图像,例如待处理图像可以是单独拍摄的一帧图像,在拍摄时由于手部抖动等原因导致待处理图像中存在模糊。
步骤S1020,利用模糊程度感知网络对待处理图像进行处理,得到待处理图像的模糊程度数据。
其中,模糊程度感知网络是利用上述模糊图像数据集构建方法所构建的模糊图像数据集而训练得到的,如可以是图7所示的网络。示例性的,通过图6的模糊图像数据集构建方法构建模糊图像数据集,并利用该数据集训练模糊程度感知网络。在步骤S1020中,将待处理图像输入经过训练的模糊程度感知网络中,输出待处理图像的模糊程度数据。待处理图像的模糊程度数据可以是待处理图像对应的模糊程度图像。
需要说明的是,通过模糊程度感知网络,可以学习目标图像与其模糊程度数据之间的特征关联,而这种特征关联对于所有场景下的模糊图像都是相通的。经过训练后,模糊程度感知网络可以将学习到的特征关联应用于任意场景下的模糊图像,即可用于处理任意场景下的模糊图像。基于该原因,本示例性实施方式对于待处理图像不做具体限定,特别是无需限定待处理图像是由连续n帧原始图像合成的图像。
步骤S1030,基于待处理图像的模糊程度数据,对待处理图像进行去模糊处理,得到待处理图像对应的去模糊图像。
待处理图像的模糊程度数据可以对待处理图像的去模糊处理提供辅助或参考信息。例如,基于待处理图像的模糊程度数据,可以对待处理图像中的不同区域设置不同的模糊核,然后通过模糊核对不同区域进行去模糊处理,得到去模糊图像,相比于采用一个模糊核,可以对不同区域进行针对性地去模糊处理,改善去模糊效果。
在一种实施方式中,步骤S1030可以包括以下步骤:
利用特征感知网络对待处理图像的模糊程度数据进行处理,得到调制参数;
根据调制参数对待处理图像进行去模糊处理,得到待处理图像对应的去模糊图像。
其中,特征感知网络用于将模糊程度数据转换为特定形式的调制参数,以便于与待处理图像本身的图像信息进行融合。特征感知网络与调制参数可以参考图8所示,当然也可以是其他形式,例如特征感知网络为U-Net结构的网络,调制参数为模糊程度数据的特征图像。本公开对此不做限定。
根据调制参数可以将模糊程度信息与图像信息进行融合,使得待处理图像的信息维度更加全面,便于实现高质量的图像去模糊。
在一种实施方式中,可以利用上述去模糊网络进行去模糊处理。示例性的,上述根据调制参数对待处理图像进行去模糊处理,得到待处理图像对应的去模糊图像,可以包括以下步骤:
将待处理图像输入去模糊网络的输入层,调制参数输入去模糊网络的中间层,通过去模糊网络输出待处理图像对应的去模糊图像。
其中,去模糊网络的具体处理过程可以参考上述图8部分的内容。图8部分的内容为去模糊网络对样本图像及其模糊程度数据进行处理的过程,即训练过程。而在待处理图像的去模糊处理中,去模糊网络的处理过程相同,区别在于网络已经经过充分训练,可以直接输出质量较高的去模糊图像。
图11示出了通过模糊程度感知网络、特征感知网络与去模糊网络对待处理图像进行去模糊处理的示意图。将待处理图像先输入模糊程度感知网络,由模糊程度感知网络输出待处理图像对应的模糊程度图像;再将模糊程度图像输入特征感知网络,由特征感知网络输出调制参数;将待处理图像输入去模糊网络,并将调制参数输入去模糊网络的中间层,由去模糊网络输出待处理图像对应的去模糊图像。在图11的流程中,融入待处理图像本身的图像信息与图像的像素级模糊程度信息,由此可以实现对待处理图像不同区域的针对性去模糊处理,得到高质量的去模糊图像。
在上述网络训练过程中,利用样本图像-第一标签训练模糊程度感知网络,利用样本图像-第一标签-第二标签训练去模糊网络,或者训练去模糊网络与特征感知网络,两部分训练是分别进行的。而基于图11可知,三个网络之间具有输入、输出之间的连接关系,由此可以对模糊程度感知网络、去模糊网络与特征感知网络共同进行训练。下面对完整的训练过程进行示例性说明。参考图12所示,图像去模糊方法还可以包括以下步骤S1210至S1240:
步骤S1210,获取模糊图像数据集,包括样本图像、第一标签与第二标签;样本图像为目标图像,第一标签为目标图像的模糊程度数据,第二标签为合成目标图像的连续n帧原始图像中的一帧原始图像;
步骤S1220,利用样本图像与第一标签对模糊程度感知网络进行预训练;
步骤S1230,利用样本图像、第一标签与第二标签对去模糊网络进行预训练,或者对去模糊网络与特征感知网络进行预训练;
步骤S1240,将样本图像分别输入模糊程度感知网络与去模糊网络,将模糊程度感知网络输出的样本模糊程度数据输入特征感知网络,并将特征感知网络输出的样本调制参数输入去模糊网络的中间层,根据去模糊网络输出的样本去模糊图像与第二标签的差别,对模糊程度感知网络、去模糊网络与特征感知网络进行参数微调。
其中,将整个训练过程划分为预训练(Pre-training)与参数微调(Fine-tuning)两个阶段。在预训练中,对模糊程度感知网络单独进行训练,对去模糊网络单独进行训练,或者将去模糊网络与特征感知网络作为一个整体单独进行训练,每部分所训练的网络结构相对较小,易于对网络中的参数进行快速调整,以得到初步的训练结果。在参数微调阶段,将三个网络作为一个大的网络结构,具体地,将样本图像输入模糊程度感知网络与去模糊网络,模糊程度感知网络输出样本模糊程度数据,其经过特征感知网络的处理输出样本调制参数,输入去模糊网络的中间层,最后由去模糊网络输出样本去模糊图像,作为整个网络结构输出的结果,根据其与第二标签的差别,如MSE损失函数值等,对三个网络的参数共同进行更新,由此实现全局的充分训练,在预训练的基础上对三个网络的参数进行更加精细化的调整,从而得到准确度更高的网络,有利于进一步提高图像去模糊质量。
本公开的示例性实施方式还提供一种图像模糊程度确定装置。参考图13所示,该图像模糊程度确定装置1300可以包括:
图像获取模块1310,被配置为获取连续n帧原始图像以及由连续n帧原始图像中相同位置像素点进行加权融合所合成的目标图像,n为不小于2的正整数;
像素值获取模块1320,被配置为获取目标图像中每个像素点在每一帧原始图像中对应的相同位置像素点的像素值;
模糊程度数据确定模块1330,被配置为根据目标图像中每个像素点在n帧原始图像中对应的n个像素值之间的偏差程度,确定目标图像的模糊程度数据,目标图像的模糊程度数据包括目标图像中每个像素点的模糊程度值。
在一种实施方式中,模糊程度数据确定模块1330,还被配置为:
根据目标图像的模糊程度数据,生成目标图像对应的模糊程度图像,模糊程度图像中每个像素点的像素值为每个像素点在目标图像中的模糊程度值。
在一种实施方式中,图像获取模块1310,被配置为:
获取连续n帧原始图像;
对连续n帧原始图像中相同位置像素点进行加权融合,以将该连续n帧原始图像合成为一张目标图像。
在一种实施方式中,图像获取模块1310,还被配置为:
在获取连续n帧原始图像前,基于目标图像的预期全局模糊程度值,确定n的值。
本公开的示例性实施方式还提供一种模糊图像数据集构建装置。参考图14所示,该模糊图像数据集构建装置1400可以包括:
数据获取模块1410,被配置为获取目标图像以及根据上述图像模糊程度确定方法所确定的目标图像的模糊程度数据;
数据集构建模块1420,被配置为将目标图像作为样本图像,目标图像的模糊程度数据作为第一标签,构建模糊图像数据集;模糊图像数据集用于训练模糊程度感知网络,模糊程度感知网络用于对输入模糊程度感知网络的图像确定其模糊程度数据。
在一种实施方式中,数据获取模块1410,还被配置为获取用于合成目标图像的连续n帧原始图像中的一帧原始图像;
数据集构建模块1420,还被配置为将上述一帧原始图像作为第二标签,添加至模糊图像数据集中;模糊图像数据集还用于训练去模糊网络,去模糊网络用于对输入去模糊网络的图像进行去模糊处理。
本公开的示例性实施方式还提供一种图像去模糊确定装置。参考图15所示,该图像去模糊装置1500可以包括:
图像获取模块1510,被配置为获取由连续n帧原始图像中相同位置像素点进行加权融合所合成的待处理图像,n为不小于2的正整数;
模糊程度数据确定模块1520,被配置为根据上述图像模糊程度确定方法,以待处理图像为目标图像,确定待处理图像的模糊程度数据;
去模糊处理模块1530,被配置为基于待处理图像的模糊程度数据,对待处理图像进行去模糊处理,得到待处理图像对应的去模糊图像。
本公开的示例性实施方式还提供另一种图像去模糊确定装置。参考图16所示,该图像去模糊装置1600可以包括:
图像获取模块1610,被配置为获取待处理图像;
模糊程度数据确定模块1620,被配置为利用模糊程度感知网络对待处理图像进行处理,得到待处理图像的模糊程度数据;
去模糊处理模块1630,被配置为基于待处理图像的模糊程度数据,对待处理图像进行去模糊处理,得到待处理图像对应的去模糊图像;
其中,模糊程度感知网络是利用上述模糊图像数据集构建方法所构建的模糊图像数据集而训练得到的。
在一种实施方式中,去模糊处理模块1630,被配置为:
利用特征感知网络对待处理图像的模糊程度数据进行处理,得到调制参数;
根据调制参数对待处理图像进行去模糊处理,得到待处理图像对应的去模糊图像。
在一种实施方式中,去模糊处理模块1630,被配置为:
将待处理图像输入去模糊网络的输入层,调制参数输入去模糊网络的中间层,通过去模糊网络输出去模糊图像。
在一种实施方式中,图像去模糊装置1600还可以包括网络训练模块,被配置为:
获取模糊图像数据集,模糊图像数据集包括样本图像、第一标签与第二标签,样本图像为目标图像,第一标签为目标图像的模糊程度数据,第二标签为合成目标图像的连续n帧原始图像中的一帧原始图像;
利用样本图像与第一标签对模糊程度感知网络进行预训练;
利用样本图像、第一标签与第二标签对去模糊网络进行预训练,或者对去模糊网络与特征感知网络进行预训练;
将样本图像分别输入模糊程度感知网络与去模糊网络,将模糊程度感知网络输出的样本模糊程度数据输入特征感知网络,并将特征感知网络输出的样本调制参数输入去模糊网络的中间层,根据去模糊网络输出的样本去模糊图像与第二标签的差别,对模糊程度感知网络、去模糊网络与特征感知网络进行参数微调。
上述装置中各部分的细节在方法部分实施方式中已经详细说明,因而不再赘述。
本公开的示例性实施方式还提供了一种计算机可读存储介质,可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。在一种实施方式中,该程序产品可以实现为便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限定。