一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

动态图像分辨率评估的制作方法

2022-02-22 08:11:01 来源:中国专利 TAG:


1.本发明涉及图像数据的深度神经网络(deep neural network,dnn)处理之前的动态图像分辨率评估。所述图像数据可以是实时流媒体视频中的图像数据等。


背景技术:

2.深度神经网络(deep neural network,dnn)在专用数据集上训练,以执行特定的图像处理任务,例如,图像识别。除训练数据之外,dnn通常还在测试数据集上运行良好。但是,当在移动设备(例如,智能手机)上部署相同的dnn模型时,会发现dnn的准确性明显降低。这个问题的根源在于,测试数据集(以及dnn训练数据集)中的高质量样例视频和通常与移动设备的使用相关的低质量流媒体视频之间存在差异。在所有因素之中,视频帧的真实低分辨率是影响dnn性能的一个主要原因,这个低分辨率是根据数字图像可以表示的最高频率来定义的。
3.当分辨率低时,图像看起来模糊且无法激活dnn的低级卷积核,这些低级卷积核在清晰图像上训练以进行特征提取,例如,用于确定边缘和角落。低级卷积核的弱激活则导致高级内核的推理无效,从而导致连锁反应,最终降低了部署在移动设备上的dnn的准确性。低分辨率通常与使用旧设备和低端摄像机拍摄的流媒体视频、过度压缩(特别是在低带宽设置中)以及互联网用户通过上采样故意创建的假高分辨率(high resolution,hr)视频相关。因此,为了使用dnn而在移动设备侧评估图像分辨率是提高dnn性能的一项重要任务。


技术实现要素:

4.现在描述各种示例,以简化的形式介绍下面在具体实施方式中进一步描述的一组概念。发明内容并非旨在确定请求保护的主题的关键或必要特征,也并非旨在用于限制请求保护的主题的范围。
5.根据本发明的第一方面,提供了一种用于数字图像的图像分辨率评估的计算机实现方法。所述方法包括:根据预定义采样模式,从所述数字图像中提取多个图像块。将高斯窗口应用于所述多个图像块中的每个图像块,以生成多个已处理图像块;通过离散傅里叶变换(discrete fourier transformation,dft),确定多个处理图像块中的每个处理图像块的二维(two-dimension,2d)能量谱;使用所述确定的2d能量谱,确定所述多个已处理图像块中的每个已处理图像块的一维(one-dimension,1d)能量谱;通过将一个阈值应用于所述确定的1d能量谱,获得所述多个已处理图像块中的每个已处理图像块的图像分辨率;根据为所述多个已处理图像块确定的多个图像分辨率中的最大图像分辨率,调整所述数字图像的视频特性。
6.根据所述第一方面,在所述方法的第一种实现方式中,根据接收到的输入,从多个预定义采样模式中选择所述预定义采样模式。
7.根据所述第一方面本身或所述第一方面的任一上述实现方式,在所述方法的第二种实现方式中,所述预定义采样模式为以下模式中的一种:五点菱形模式,其中,总共有5个
图像块从所述数字图像的3个纵轴与3个横轴的交点中被选择为所述多个图像块;九点菱形模式,其中,总共有9个图像块从所述数字图像的5个纵轴与5个横轴的交点中被选择为所述多个图像块;九点方形模式,其中,总共有9个图像块从所述数字图像的3个纵轴与3个横轴的交点中被选择为所述多个图像块;十三点方形模式,其中,总共有13个图像块从所述数字图像的5个纵轴与5个横轴的交点中被选择为所述多个图像块。
8.根据所述第一方面本身或所述第一方面的任一上述实现方式,在所述方法的第三种实现方式中,所述确定所述多个已处理图像块中的每个已处理图像块的1d能量谱包括:在每个已处理图像块内的多个像素之间,沿多个方向累积所述确定的2d能量谱。
9.根据所述第一方面本身或所述第一方面的任一上述实现方式,在所述方法的第四种实现方式中,所述确定所述多个已处理图像块中的每个已处理图像块的1d能量谱包括:沿坐标系的x轴垂直折叠所述已处理图像块的所述2d能量谱;对关于所述x轴对称的多个像素的2d能量值求和,以得到2d垂直折叠的能量谱。
10.根据所述第一方面本身或所述第一方面的任一上述实现方式,在所述方法的第五种实现方式中,所述确定所述多个已处理图像块中的每个已处理图像块的1d能量谱还包括:沿所述坐标系的y轴水平折叠所述已处理图像块的所述2d垂直折叠的能量谱;对关于所述y轴对称的多个像素的2d能量值求和,以得到2d水平折叠的能量谱;通过在所述多个已处理图像块中的所述已处理图像块内的多个像素之间,沿多个方向累积所述2d水平折叠的能量谱,确定所述已处理图像块的所述1d能量谱。
11.根据所述第一方面本身或所述第一方面的任一上述实现方式,在所述方法的第六种实现方式中,所述调整所述数字图像的视频特性包括:根据为所述多个已处理图像块确定的所述多个图像分辨率中的所述最大图像分辨率,对包括所述数字图像的视频流进行下采样。
12.根据所述第一方面本身或所述第一方面的任一上述实现方式,在所述方法的第七种实现方式中,对于所述多个已处理图像块中的每个已处理图像块,所述确定2d能量谱、所述确定1d能量谱以及所述将一个阈值应用于所述确定的1d能量谱以得到图像分辨率是并行执行的。
13.根据本发明的第二方面,提供了一种系统。所述系统包括存储指令的存储器和与所述存储器通信的一个或多个处理器。所述一个或多个处理器执行所述指令以:根据预定义采样模式,从数字图像中提取多个图像块;将高斯窗口应用于所述多个图像块中的每个图像块,以生成多个已处理图像块;通过离散傅里叶变换(discrete fourier transformation,dft),确定所述多个已处理图像块中的每个已处理图像块的2d能量谱;使用所述确定的2d能量谱,确定所述多个已处理图像块中的每个已处理图像块的1d能量谱;通过将一个阈值应用于所述确定的1d能量谱,获得所述多个已处理图像块中的每个已处理图像块的图像分辨率;根据为所述多个已处理图像块确定的多个图像分辨率中的最大图像分辨率,调整所述数字图像的视频特性。
14.根据所述第二方面,在所述系统的第一种实现方式中,所述一个或多个处理器还用于:根据接收到的输入,从多个预定义采样模式中选择所述预定义采样模式。
15.根据所述第二方面或所述第二方面的任一上述实现方式,在所述系统的第二种实现方式中,所述一个或多个处理器还用于确定所述多个已处理图像块中的每个已处理图像
块的1d能量谱包括:在每个已处理图像块内的多个像素之间,沿多个方向累积所述确定的2d能量谱。
16.根据所述第二方面或所述第二方面的任一上述实现方式,在所述系统的第三种实现方式中,为了确定所述多个已处理图像块中的每个已处理图像块的所述1d能量谱,所述一个或多个处理器还用于:沿坐标系的x轴垂直折叠所述已处理图像块的所述2d能量谱;对关于所述x轴对称的多个像素的2d能量值求和,以得到2d垂直折叠的能量谱。
17.根据所述第二方面或所述第二方面的任一上述实现方式,在所述系统的第四种实现方式中,为了确定所述多个已处理图像块中的每个已处理图像块的所述1d能量谱,所述一个或多个处理器还执行所述指令以:沿所述坐标系的y轴水平折叠所述已处理图像块的所述2d垂直折叠的能量谱;对关于所述y轴对称的多个像素的2d能量值求和,以得到2d水平折叠的能量谱;通过在所述多个已处理图像块中的所述已处理图像块内的多个像素之间,沿多个方向累积所述2d水平折叠的能量谱,确定所述已处理图像块的所述1d能量谱。
18.根据所述第二方面或所述第二方面的任一上述实现方式,在所述系统的第五种实现方式中,为了调整所述数字图像的所述视频特性,所述一个或多个处理器执行所述指令以:根据为所述多个已处理图像块确定的所述多个图像分辨率中的所述最大图像分辨率,对包括所述数字图像的视频流进行下采样。
19.根据所述第二方面或所述第二方面的任一上述实现方式,在所述系统的第六种实现方式中,所述一个或多个处理器还用于:对于所述多个已处理图像块中的每个已处理图像块,并行确定所述2d能量谱、所述1d能量谱和所述图像分辨率。
20.根据本发明的第三方面,提供了一种非瞬时性计算机可读介质,存储用于数字图像的图像分辨率评估的计算机指令。当一个或多个处理器执行所述指令时,所述指令使得所述一个或多个处理器执行多个操作。所述多个操作包括:根据预定义采样模式,从所述数字图像中提取多个图像块;将高斯窗口应用于所述多个图像块中的每个图像块,以生成多个已处理图像块;通过离散傅里叶变换(discrete fourier transformation,dft),确定所述多个已处理图像块中的每个已处理图像块的2d能量谱;使用所述确定的2d能量谱,确定所述多个已处理图像块中的每个已处理图像块的1d能量谱;通过将一个阈值应用于所述确定的1d能量谱,获得所述多个已处理图像块中的每个已处理图像块的图像分辨率;根据为所述多个已处理图像块确定的多个图像分辨率中的最大图像分辨率,调整所述数字图像的视频特性。
21.根据所述第三方面,在所述非瞬时性计算机可读介质的第一种实现方式中,所述多个操作还包括:根据接收到的输入,从多个预定义采样模式中选择所述预定义采样模式。
22.根据所述第三方面或所述第三方面的任一上述实现方式,在所述非瞬时性计算机可读介质的第二种实现方式中,为了确定所述多个已处理图像块中的每个已处理图像块的所述1d能量谱,所述指令还使得所述一个或多个处理器执行以下步骤:在每个已处理图像块内的多个像素之间,沿多个方向累积所述确定的2d能量谱。
23.根据所述第三方面或所述第三方面的任一上述实现方式,在所述非瞬时性计算机可读介质的第三种实现方式中,为了确定所述多个处理图像块中的每个处理图像块的所述1d能量谱,所述指令还使得所述一个或多个处理器执行以下步骤:沿坐标系的x轴垂直折叠所述已处理图像块的所述2d能量谱;对关于所述x轴对称的多个像素的2d能量值求和,以得
到2d垂直折叠的能量谱。
24.根据所述第三方面或所述第三方面的任一上述实现方式,在所述非瞬时性计算机可读介质的第三种实现方式中,为了确定所述多个已处理图像块中的每个已处理图像块的所述1d能量谱,所述指令还使得所述一个或多个处理器执行以下步骤:沿所述坐标系的y轴水平折叠所述已处理图像块的所述2d垂直折叠的能量谱;对关于所述y轴对称的多个像素的2d能量值求和,以得到2d水平折叠的能量谱;通过在所述多个已处理图像块中的所述已处理图像块内的多个像素之间,沿多个方向累积所述2d水平折叠的能量谱,确定所述已处理图像块的所述1d能量谱。
25.上述示例中的任一个可以与上述其它示例中的任何一个或多个组合以在本发明的范围内产生新的实施例。
附图说明
26.在不一定按比例绘制的附图中,相同的数字可以描述不同视图中的类似组件。附图通过示例而非限制的方式一般地示出了本文论述的各种实施例。
27.图1为一些示例性实施例提供的使用深度学习(deep learning,dl)训练架构(dl training architecture,dlta)训练dl程序以及基于图像分辨率的数据或神经网络模型调整的框图。
28.图2为一些示例性实施例提供的使用在dlta内训练的神经网络模型生成经过训练的dl程序的示意图。
29.图3为一些示例性实施例提供的通过多个图像块的并行处理进行图像分辨率评估的示意图。
30.图4为一些示例性实施例提供的与图像分辨率评估有关的高斯窗口在图像块上的稀疏应用的示意图。
31.图5为一些示例性实施例提供的与图像分辨率评估有关的可以用于选择图像内的图像块的不同采样模式的示意图。
32.图6示出了一些示例性实施例提供的与图像分辨率评估有关的离散傅里叶变换过程中的图像复制。
33.图7示出了一些示例性实施例提供的与图像分辨率评估有关的用于加速一维(one-dimension,1d)全向频谱计算的“折纸”技术。
34.图8为一些示例性实施例提供的图像分辨率评估的流程图。
35.图9为一些示例性实施例提供的代表性软件架构的框图,所述软件架构可以与本文描述的各种设备硬件结合使用。
36.图10为一些示例性实施例提供的一种实现算法和执行方法的设备的电路的框图。
具体实施方式
37.首先应当理解,虽然下文提供了一个或多个实施例的说明性实现方式,但结合图1至图10描述的公开系统和方法可以使用任意数量的技术来实现,无论这些技术是当前已知还是尚未存在的。本发明决不应限于下文所说明的说明性实现方式、附图和技术,包括本文所说明并描述的示例性设计和实现方式,而是可以在所附权利要求书的范围以及其等效物
的完整范围内修改。
38.在以下描述中,参考构成本发明一部分并以说明的方式示出可以实践的具体实施例的附图。这些实施例进行了足够详细的描述以使本领域技术人员能够实践本发明主题,应当理解,可以利用其它实施例,并且在不脱离本发明范围的情况下可以进行结构变化、逻辑变化和电气变化。因此,以下示例性实施例的描述不具有限定意义,本发明的范围由所附权利要求书界定。
39.图像分辨率评估以前曾在盲图像质量评估或无参考图像质量评估这一大主题中进行过研究。为了评估数字图像的分辨率,传统方法通过离散傅里叶变换(discrete fourier transform,dft)或离散余弦变换(discrete cosine transform,dct)计算该数字图像的频谱,然后检查频谱分布,以找到图像分辨率的定量指标。但是,dft和dct是应用于整个图像的全局变换,因此通过此类算法计算得到的图像分辨率通常是对图像所有部分进行平均得到的粗指标。这种粗指标对于具有大面积简单或模糊背景的图像,尤其不够精确。
40.为了提高准确性,一些现有算法使用小波变换进行图像分辨率评估。虽然小波变换可以评估每个位置上的多尺度频率特性,但小波变换的计算复杂度通常太高而无法用于实时应用中,例如,当dnn部署在移动设备上进行实时图像分析时。其它研究重点分析与人类感知一致的模糊指标。虽然这些研究主题吸引了许多用户,但感知一致性对与额外计算成本相关的dnn算法的帮助不大。在这方面,现有分辨率评估算法并没有提供快速分辨率评估的技术(例如,可以在移动设备上以毫秒执行的分辨率评估),也没有产生合理准确的分辨率评估指标。
41.本文公开的技术可以用于解决与现有分辨率评估算法相关的图像模糊产生的影响。更具体地,本文公开的技术可以用于在视频数据(例如,实时流媒体视频)进行dnn处理(例如,通过在计算设备上执行的dnn应用)之前动态评估图像分辨率。本文公开的图像分辨率评估技术使用稀疏加窗傅里叶变换来分析数字图像(例如,视频流中的图像)的局部频率特性。几种不同的图像采样模式可以用于对数字图像进行采样,并从该数字图像中选择固定大小的图像块(image chip)(例如,矩形图像部分)进行分析。本文所使用的术语“图像块”是指数字图像的图像部分(例如,矩形图像部分)。
42.将这些图像块与高斯窗口相乘,高斯窗口可以保持这些图像块的中心不变并使这些图像块远离其中心变模糊。应用高斯窗口避免了图像块边界产生的强高频信号带来的干扰。然后,将dft应用于各个图像块,以计算每个图像块的2d能量谱。2d能量谱表示沿各种方向的各种频率的能量分布。通过累积具有相同极半径的2d能量,将2d空间中的能量投射到1d全向频率空间上,以得到1d能量分布。这一过程通过以下方式得以加快:使用本文论述的“折纸”技术垂直折叠2d能量谱,然后水平折叠。接下来,通过对1d能量分布定限(thresholding),在每个采样位置上(即,对于每个图像块)获取图像分辨率的单个指标。将图像分辨率的最终指标计算为针对所有采样位置(或图像块)计算的多个图像分辨率指标中的最大值,其取值范围为[0,1)。由于dft可以在小尺度上计算,而且不同区域的光谱分析可以并行进行,因此所公开的技术可以对多个图像块同时执行(以更准确地评估图像分辨率),以捕获可能出现在图像各部分中的清晰特征,最终的图像分辨率评估可以在毫秒内执行,与图像大小无关。
[0043]
由于模糊视频和图像在互联网上很常见,因此开发图像分辨率评估技术非常重
要,以便dnn可以部署在移动设备上以有效处理实时数据流。以下是目前公开的图像分辨率评估技术的独特特征,而这些特征在目前(现有技术)技术中尚不存在:(a)基于并行稀疏加窗傅里叶变换的快速图像分辨率评估,其中,并行稀疏加窗傅里叶变换应用于通过一组独特采样模式中的一种模式而选择的多个图像块;(b)用于图像采样的四种采样模式,其中,这些采样模式可以用于图像分辨率评估;(c)用以确定1d全向能量谱的“折纸”技术,其中,2d能量谱被水平和垂直折叠,以显著减少1d能量谱计算量并提供高效图像分辨率确定方式来实现移动设备侧的dnn处理。
[0044]
图1为一些示例性实施例提供的使用深度学习(deep learning,dl)训练架构(dl training architecture,dlta)训练dl程序110或基于图像分辨率的数据或神经网络模型调整的框图100。在一些示例性实施例中,机器学习程序(machine-learning program,mlp),包括深度学习程序,也统称为机器学习算法或工具,用于执行与关联数据或其它基于人工智能(artificial intelligence,ai)的功能相关的操作。
[0045]
如图1所示,深度学习程序训练108可以根据训练数据102(可以包括特征)在深度学习训练架构(deep-learning training architecture,dlta)106内执行。在深度学习程序训练108的过程中,为了进一步训练dl程序,可以评估训练数据102中的特征。dl程序训练108产生经过训练的dl程序110,经过训练的dl程序110可以包括一个或多个分类器112,分类器112可以用于根据新数据114提供评估结果116。
[0046]
深度学习是机器学习的一部分,机器学习是使计算机有能力学习而不用显式被编程的研究领域。机器学习探索的是算法的研究和构建,算法在本文也称为工具,可以从现有数据中学习,使数据相互关联并对新数据做出预测。这类机器学习工具的工作方式是,根据示例性训练数据(例如,102)构建一种模型,以便做出以输出或深度学习程序评估结果116表示的数据驱动预测或决策。虽然示例性实施例是针对少数机器学习工具(例如,深度学习训练架构)提出的,但本文提出的原理也可以应用于其它机器学习工具。
[0047]
在一些示例性实施例中,可以使用不同的机器学习工具。例如,逻辑回归(logistic regression,lr)、朴素贝叶斯(naive-bayes)、随机森林(random forest,rf)、神经网络(neural network,nn)、矩阵分解(matrix factorization)和支持向量机(support vector machine,svm)工具可以在程序训练108的过程中使用(例如,用于使训练数据102相互关联)。
[0048]
机器学习中的两种常见问题为分类问题和回归问题。分类问题(classification/categorization problem)是将项目分类为若干类别值之一(例如,这个对象是苹果还是橙子?)。回归算法的目的是量化一些项目(例如,通过提供实数值)。在一些实施例中,dlta106可以用于使用机器学习算法,这些机器学算法利用训练数据102找出影响结果的已识别特征之间的相关性。
[0049]
机器学习算法利用训练数据102中的特征分析新数据114,以生成评估结果116。这些特征包括正被观察现象的用于训练ml程序的各个可测量属性。特征的概念与线性回归等统计技术中使用的说明变量的概念有关。选择信息性、鉴别性和独立特征对于mlp在模式识别、分类和回归中的有效操作非常重要。特征可以属于不同类型,例如,数字特征、字符串和图形。在一些方面,训练数据可以属于不同类型,具有数字特征,以供计算设备使用。
[0050]
在一些方面,在dl程序训练108的过程中使用的特征可以包括以下数据中的一个
或多个:来自多个传感器(例如,音频传感器、运动传感器、图像传感器)的传感器数据,来自多个致动器(例如,无线开关或其它致动器)的致动器事件数据,来自多个外部源的外部信息源,与传感器状态数据(例如,获取的是时间传感器数据)、致动器事件数据或外部信息源数据相关的定时器数据,用户通信信息,用户数据,用户行为数据等。
[0051]
机器学习算法利用训练数据102找出影响评估结果116的已识别特征之间的相关性。在一些示例性实施例中,训练数据102包括标记数据,该标记数据是一个或多个已识别特征和一个或多个结果的已知数据。根据训练数据102(可以包括已识别特征),使用dlta 106内的dl程序训练108来训练dl程序。训练结果是经过训练的dl程序110。当dl程序110用于执行评估时,将新数据114作为输入提供给经过训练的dl程序110,dl程序110生成评估结果116作为输出。
[0052]
在一些方面,新数据114(可以包括实时流数据)可以使用本文公开的一种或多种技术来处理,以执行图像分辨率评估118。图像数据或神经网络模型调整120可以根据评估出的图像分辨率执行。例如,如果评估出与新数据114相关的图像分辨率等于或小于分辨率阈值,则可以调整新数据114的一个或多个视频特性,以匹配训练dl程序110所使用的视频特性。在一些方面,视频特性调整可以包括对新数据114进行下采样,以产生更清晰的图像。在其它方面,dlta 106使用的神经网络模型可以使用低分辨率的训练数据进行重新训练,这一低分辨率与新数据的评估出的分辨率匹配,因此该模型更适合处理具有评估出的分辨率的视频数据。
[0053]
本文所使用的术语“图像分辨率”表示根据图像的采样频率确定的图像分辨率。根据奈奎斯特-香农(nyquist-shannon)采样定理,对于离散信号处理系统的给定采样率fs,如果原始信号在(或大于)奈奎斯特频率b=fs/2下不包括正弦分量,则可以保证准确的重建信号。因此,奈奎斯特频率b是数字图像可以表示的采样频率的上限。在最高图像采样频率f(其中,f=b)下从二维(two-dimension,2d)连续信号中采样出的数字图像称为“全分辨率图像”。在最高图像采样频率f=b/2下从2d连续信号中采样出的数字图像称为“半分辨率图像”。因此,数字图像的分辨率可以定义为r=f/b,其中,r∈[0,1),f表示图像采样频率,b表示奈奎斯特频率。在这种背景下,图像分辨率与图像大小区分开,图像大小由像素数量表示。
[0054]
图2为一些示例实施例提供的使用在dlta 106内训练的神经网络模型204生成经过训练的dl程序206的示意图200。参考图2,源数据202可以由神经网络模型204(或另一种机器学习算法或技术)分析,以生成经过训练的dl程序206(可以与经过训练的dl程序110相同)。源数据202可以包括训练数据集(例如,102),包括由一个或多个特征标识的数据。本文所使用的术语“神经网络”和“神经网络模型”可以互换。
[0055]
机器学习技术用于训练模型,以准确预测输入到这些模型中的数据(例如,用户在给定的话语中所说的话,名词是人、地点还是事物,明天的天气怎么样)。在学习阶段内,根据输入的训练数据集开发这些模型,以优化这些模型,从而正确预测给定输入对应的输出。通常,学习阶段可以是监督型的、半监督型的或无监督型的,说明了与训练输入相对应提供“正确”输出的水平的下降。在监督型学习阶段内,将所有输出都提供给模型,并引导该模型开发将输入映射到输出的通用规则或算法。相反,在无监督型学习阶段内,输入没有提供期望输出,这样模型可以开发自身的规则来发现训练数据集内的关系。在半监督型学习阶段
内,提供有一个不完全标记的训练集,训练数据集的一些输出已知,一些输出未知。
[0056]
模型可以在训练数据集上运行几个周期(epoch),其中,将训练数据集重复输入到模型中,以细化其结果(即,整个数据集在一个周期内处理)。在迭代的过程中,模型(例如,神经网络模型或另一种机器学习模型)在迷你批次的(一部分)整个数据集上运行。在监督型学习阶段内,开发一种模型来预测给定输入集(例如,源数据202)对应的输出,这个模型在几轮周期中被评估,以提供更可靠的指定与给定输入对应的输出,这需要训练数据集中的最大数量的输入满足训练集中的所有数据。在另一个示例中,对于无监督型学习阶段,开发一种模型将数据集聚类到n个组,并在几个周期内评估该模型将给定输入放置到给定组的一致性以及该模型在每个周期内产生n个期望集群的可靠性。
[0057]
在运行一个周期后评估这些模型,并调整这些模型的变量(例如,权重、偏差或其它参数)的值,以试图通过迭代方式更好地细化模型。本文所使用的术语“权重”是指机器学习模型使用的参数。在反向计算的过程中,模型可以输出梯度,这些梯度可以用于更新与前向计算相关的权重。本文所使用的术语“前向计算”和“反向计算”是指结合神经网络模型(或另一种模型)的训练而执行的计算。在前向计算和反向计算的过程中,当前迭代内执行的计算根据前几次迭代的结果(例如,根据前一次反向计算结束时生成的梯度)修改权重。在深度神经网络的分布式同步训练环境中,为了更新神经网络模型权重(即梯度同步),工作器之间的梯度聚合、平均和分布可以随着反向传播(即,反向计算过程中的神经网络模型层处理)按顺序运行。
[0058]
在各个方面,评估结果会向假阴性的方向偏置,向假阳性的方向偏置,或根据模型的整体准确性平均偏置。根据所使用的机器学习技术,可以通过多种方式调整各值。例如,在遗传算法或进化算法中,在预测期望输出方面最成功的模型的值用于开发模型在后续周期内使用的值,后续周期可以包括随机变化/突变,以提供额外的数据点。本领域普通技术人员熟悉可以适用于本发明的几种其它机器学习算法,包括线性回归(linear regression)、随机森林(random forest)、决策树学习(decision tree learning)、神经网络、深度神经网络等。
[0059]
通过改变影响输入的一个或多个变量的值来更接近地匹配期望结果,每个模型在几个周期内开发规则或算法,但由于训练数据集可能会变化,并且最好非常大,因此可能无法实现完美的准确性和精度。因此,构成学习阶段的多个周期可以被设置为给定数量的试验或固定的时间/计算预算,或者,当给定模型的准确度足够高或足够低或达到准确性平稳状态时,可以在达到给定数量/预算之前终止。例如,如果训练阶段设计为运行n个周期并生成至少95%准确度的模型,并且这种模型是在第n个周期之前生成的,则学习阶段可能会提前结束,并使用满足最终目标准确度阈值的生成模型。类似地,如果给定模型的准确度不足以满足随机机会阈值,则该模型的学习阶段可能会提前终止,尽管学习阶段内的其它模型可能会继续训练。类似地,当给定模型继续在多个周期内提供相似准确度或其结果摇摆不定(已经达到性能平稳状态)时,给定模型的学习阶段可能会在达到周期次数/计算预算之前终止。
[0060]
学习阶段完成后,模型就会最终确定。在一些示例性实施例中,根据测试标准评估最终确定的模型。在第一个示例中,将包括输入对应的已知输出的测试数据集输入到最终确定的模型中,以确定模型在处理尚未训练的数据时的准确度。在第二个示例中,假阳性率
或假阴性率可以用于评估最终确定的模型。在第三个示例中,每个模型中数据集群之间的界限(delineation)用于选择为其数据集群产生最清晰边界的模型。
[0061]
在一些示例性实施例中,dl程序206由神经网络204(例如,深度学习网络、深度卷积网络或递归神经网络)训练,神经网络204包括设置成网络的一系列“神经元(neuron)”,例如,长短期记忆(long short term memory,lstm)节点。神经元是用于数据处理和人工智能(特别是机器学习)的架构元素,这种架构元素包括记忆,而记忆可以根据提供给给定神经元的输入的权重确定何时“记住”和何时“忘记”该内存中保存的值。本文使用的每个神经元用于从网络中的其它神经元接收预定义数量的输入,以便为正被分析的各帧的内容提供相关输出和子相关输出。各个神经元可以在神经网络的各种配置中链接在一起和/或组织成树结构,以提供交互和关系学习建模,从而确定话语中的每个帧如何相互关联。
[0062]
例如,作为神经元的lstm包括几个门(gate),用于处理输入向量(例如,话语中的音素)、存储单元和输出向量(例如,上下文表示)。输入门和输出门分别控制流入和流出存储单元的信息,而遗忘门(forget gate)可选地根据神经网络前面的链接单元的输入从存储单元中删除信息。在训练阶段的过程中调整各种门的权重和偏差向量,一旦训练阶段完成,最终确定这些权重和偏置用于正常操作。本领域技术人员将理解,神经元和神经网络可以通过编程(例如,通过软件指令)的方式构建或通过链接每个神经元以形成神经网络的专用硬件构建。
[0063]
神经网络利用特征分析数据,以生成评估结果(例如,识别语音单位)。特征是正被观察的现象的独立可测量属性。特征的概念与线性回归等统计技术中使用的说明变量的概念有关。此外,深度特征表示深度神经网络的隐藏层上节点的输出。
[0064]
神经网络(例如,204)有时称为人工神经网络或神经网络模型,是一种以动物大脑的生物神经网络为基础的计算机系统。这些系统逐步提高性能(称为学习),以执行任务,通常不需要任务专用的编程。例如,在图像识别中,可以教一种神经网络通过分析示例性图像来识别包括一个对象的图像(这些示例性图像已经标记有该对象的名称),该神经网络在学习到该对象和名称之后,可以使用分析结果在未标记图像中识别该对象。神经网络以一组称为神经元的连接单元为基础,其中,神经元之间的每个连接,称为突触,可以传输单向信号,其激活强度随每个连接的强度而变化。接收神经元可以激活信号并将信号传播到与其连接的下游神经元,这通常基于来自潜在的许多传输神经元的组合输入信号是否具有足够的强度,其中,强度是一个参数。
[0065]
深度神经网络(deep neural network,dnn)是一种由多个层组成的堆叠神经网络。这些层由节点构成,这些节点是指计算发生的位置,散落在人脑的神经元上,神经元在受到足够的刺激时触发。节点将数据的输入与一组系数或权重组合在一起,这些系数或权重可以放大或抑制该输入,这将为算法正在试图学习的任务的输入分配重要性。对这些输入-权重乘积求和,并将总和通过节点的激活函数,以确定信号是否以及在多大程度上进一步通过网络以影响最终结果。dnn使用级联的多层非线性处理单元进行特征提取和转换。每个连续层使用上一层的输出作为输入。高级别特征从低级别特征派生,以形成分层表示。位于输入层之后的各层可以是卷积层,这些卷积层产生特征映射,这些特征映射是输入的过滤结果并由下一个卷积层使用。
[0066]
在dnn架构的训练中,回归被构造为一组用于估计各变量之间关系的统计过程,可
以包括成本函数的最小化。成本函数可以实现为一种返回表示神经网络在将训练示例映射到正确输出方面的性能的数字的函数。在训练中,如果成本函数值不在预定义范围内,则根据已知的训练图像使用反向传播,其中,反向传播是训练人工神经网络的一种常用方法,这些人工神经网络与随机梯度下降(stochastic gradient descent,sgd)方法等优化方法一起使用。
[0067]
反向传播的使用可以包括传播和权重更新。当将输入提供给神经网络时,将该输入逐层向前传播通过神经网络,直到该输入到达输出层。然后,使用成本函数将神经网络的输出与期望输出进行比较,并为输出层中的每个节点计算错误值。从输出开始,将这些错误值反向传播,直到每个节点都有一个关联错误值,这个错误值大致表示其对原始输出的贡献。反向传播可以使用这些错误值来计算成本函数相对于神经网络中权重的梯度。将计算得到的梯度输入到所选优化方法中以更新权重,从而试图最小化成本函数。
[0068]
即使训练架构106称为使用神经网络模型的深度学习训练架构(并且经过训练的程序称为经过训练的深度学习程序,例如110或206),本发明也不限于此,而且可以使用其它类型的机器学习训练架构进行模型训练。
[0069]
在一些方面,深度学习程序(例如,110或206)可以与视频数据处理(例如,包括人脸识别的目标识别)结合使用,并且可以根据实时评估出的图像分辨率数据,使用本文公开的一种或多种技术进行重新训练。在一些方面,深度学习程序的重新训练或输入视频数据的视频特性的调整(例如,下采样)可以根据与评估出的图像分辨率关联的不同阈值来执行。
[0070]
图3为一些示例性实施例提供的通过多个图像块的并行处理进行图像分辨率评估300的示意图。参考图3,图像分辨率评估300可以在移动设备上动态执行(例如,当所述移动设备正在接收实时视频数据时),以评估所述视频数据中的一个或多个图像的分辨率。所述图像分辨率评估可以包括处理链314至322,每个处理链将高斯窗口应用于输入图像块(例如304至312),以得到已处理图像块(例如324至332)、二维(two-dimension,2d)能量谱(例如334至342)和1d全向能量谱(例如344至352)。最终分辨率评估结果374是根据1d全向能量谱344至352而得到的,下文将提供详细内容。
[0071]
例如,图像302可以是由使用dnn执行图像处理的计算设备接收到的数据流的一部分。可以将一种采样模式应用于图像302,获得图像块304、306、308和310。在图3所示的特定示例中,应用了五点菱形采样模式,但也可以使用其它采样模式(例如,图5所示模式中的一种)。即使可以从彩色图像中获取图像块304至312,在一些方面,也可以在开始图像块对应的处理链314、316、318、320和322之前,将整个图像302(或图像块)转换为黑白图像(或图像块)。
[0072]
在一些方面,图像块304至312中的每个图像块的形状为预定义大小的矩形(例如,正方形)。在处理链314至322中的每个处理链的初始处理步骤中,逐个元素将图像块304至312中的每个图像块与高斯窗口相乘,分别得到已处理图像块324、326、328、330和332,其中,高斯窗口中间是1,远离中心数值越来越小。高斯窗口的应用保持图像块的中心不变,使图像块远离它们的中心,并避免图像块边界产生的强高频信号带来的干扰。另外,由于高斯窗口只能应用于数量有限的图像块,而不能应用于整个图像,因此这种应用可以称为高斯窗口的稀疏应用。
[0073]
图4为一些示例性实施例提供的与图像分辨率评估有关的高斯窗口在图像块上的稀疏应用的示意图400。参考图4,示出了高斯窗口在数字图像内的9个图像块上的稀疏应用,在高斯窗口应用之后得到已处理图像块的表示402。
[0074]
图5为一些示例性实施例提供的与图像分辨率评估有关的可以用于选择图像内的多个图像块的不同采样模式502、504、506和508的示意图。
[0075]
由于相机的光圈有限,图像通常在焦点区域很清晰,而在其它区域有不同程度的模糊。当拍摄照片/视频时,摄影师通常会将镜头聚焦在主体对象上,并将这些主体对象放在画面(frame)的中心区域。根据这些观察结果,采样模式502、504、506和508可以结合本文公开的图像分辨率评估技术使用。采样模式502至508被设计成使用最小数量的样本(或图像块)捕获重要的图像对象。根据流视频分析,图像对象最常出现的位置是图像中心周围以及图像左侧、右侧、上方和下方的1/3处。这些区域被九点菱形模式和十三点方形模式充分覆盖,如图像模式504(具有图像块512)和508(具有图像块516)所示。
[0076]
当计算预算极低时,图像采样方案可以减少到五点菱形和九点方形,如图像模式502(具有图像块510)和506(具有图像块514)所示。外围采样点不分布在中心和1/3(图像高度和宽度)位置处,而是放置在1/4(图像高度和宽度)位置周围。1/4方案相比于1/3方案,图像块更均匀地分布在图像上且覆盖更多的区域。另外,许多图像包括边缘、角落和1/4位置周围的其它清晰特征。
[0077]
在一些方面,图像块510、512、514和516的形状都一样,为正方形。在一些方面,图像块510、512、514和516中的每个图像块的位置可以根据图像高度(例如,h个像素)和图像宽度(例如,w个像素)确定,如图5所示。在一些方面,由于傅里叶变换可以结合图像分辨率评估使用,并且由于当输入图像大小是多个2、多个3、多个5以及相互组合相乘得到的乘积时,这种傅里叶变换的效率特别高,因此图像块大小可以根据实际应用设置为64、81、125、128等。在一些方面,一些图像块可以相互重叠。
[0078]
再次参考图3,在应用高斯窗口并在处理链314、316、318、320和322内分别生成已处理图像块324、326、328、330、332之后,将数字傅里叶变换(digital fourier transform,dft)(例如,快速傅里叶变换(fast fourier transform,fft))应用于这些已处理图像块,以分别计算得到2d能量谱334、336、338、340和342。2d能量谱表示各种频率在每个已处理图像块内沿不同方向的能量分布。
[0079]
dft应用假设:图像的尺寸无限大,而且图像由输入图像块沿垂直和水平方向的副本组成,如图6所示。
[0080]
图6示出了一些示例性实施例提供的与图像分辨率评估有关的离散傅里叶变换过程中的图像复制600。更具体地,在dft应用之前,图像块602可以在水平和垂直方向上多次复制,如图6所示。
[0081]
通过复制,沿图像块边界产生人工垂直和水平边缘。人工边缘会在频域的高频区域内产生强大的伪能量,在许多情况下,伪能量会淹没真实的图像能量。
[0082]
在一些方面,将高斯窗口应用于图像块304至312可以表示如下:
[0083]iwin
(i,j)=i(i,j)
·
g(i,j),其中,如果图像块大小为k
×
k个像素,则k个像素,则
[0084]
高斯窗口应用具有一个特性,即高斯函数的傅里叶变换是另一个高斯函数,它在频域作为低通滤波器,使频谱稍微模糊且不会干扰频谱分析。在将高斯窗口应用于每个图像块之后,对每个图像块执行2d fft以确定每个图像块的2d能量谱(例如,位置(u,v)上的f(u,v)),2d能量谱在每个像素处都有一个实数。2d能量谱f(u,v)的对数变换e(u,v)如下确定,以使高频信号变亮:e(u,v)=10
·
log
10
f(u,v)/0.00005
°
[0085]
通过累积具有相同极半径的能量,将图像块304至312的2d能量谱334至342投射到1d频率空间中,以分别得到图像块304至312的1d全向能量谱344、346、348、350和352。
[0086]
(u,v)上的能量谱e(u,v)中的一个点的值代表频率沿方向的能量。当涉及到图像分辨率时,方向并不重要。在这方面,通过累积不同方向的能量(即全向累积),将2d能量谱转换为1d全向能量谱(例如表示344至352),如下所示:其中,e(f)为表示344至352所示的1d全向能量谱。
[0087]
由于上述确定e(f)的等式涉及资源密集型乘法和平方根计算,所以使用“折纸”技术(例如,通过垂直折叠2d能量谱并对所有对应值求和),可以更快地执行e(f)确定过程。水平重复相同的“折纸”过程,如图7所示。最后,只能在2d能量谱的4个象限之一中高效地累积和确定e(f)。
[0088]
图7示出了一些示例性实施例提供的与图像分辨率评估有关的加速1d全向频谱计算的“折纸”技术700。参考图7,可以跨横轴(或x轴)704垂直折叠针对一个图像块计算得到的2d能量谱702,得到2d能量谱706。在折叠过程中,对沿x轴704对称的多个像素的2d能量值求和,求和得到的值表示在2d能量谱706内。“折纸”技术700继续跨纵轴(或y轴)708水平折叠2d能量谱706,得到2d能量谱701(大小为2d能量谱702大小的四分之一)。在沿着y轴708折叠的过程中,对沿y轴708对称的多个像素的2d能量值求和,求和得到的值表示在2d能量谱701内。然后,可以在大小缩小的2d能量谱701(而不是完整大小的2d能量谱702)上执行1d全向能量谱计算,使得图像分辨率评估的速度更快。
[0089]
再次参考图3,1d全向能量谱344至352都是以频域的图像能量(沿y轴以分贝(或db)测量)与图像分辨率(沿x轴以0到1之间的值表示)之间的关系为基础。通过图像能量为0db的情况下应用对应的阈值354、356、358、360和362,可以对1d全向能量谱分别定限。更具体地,阈值354至362都可以用于裁切全向能量频谱,切断的点对应于图像能量0db的位置点。图像块304至312对应的图像分辨率值364、366、368、370、372作为每个阈值与1d全向能量谱344至352的x轴的交点获得。将最终图像分辨率374确定为针对图像块304至312计算得到的所有图像分辨率值364至372中的最大值,其中,最终图像分辨率374的取值范围为[0,1)。
[0090]
在一些方面,处理链314至322可以在根据采样模式确定图像块之后并行执行。由于傅里叶分析是在不同区域进行的,因此所公开的图像分辨率技术是准确的。另外,由于dft在小尺度上计算的效果非常高,并且不同区域上的光谱分析是并行进行的(例如处理链314至322),因此本文公开的图像分辨率评估技术可以在毫秒内执行,与图像大小无关。
[0091]
在确定最终数据图像分辨率之后,可以通过重新训练神经网络模型或随图像改变视频流的一个或多个特性来优化图像的神经网络处理。例如,如果确定图像分辨率小于阈值,则可以对视频流进行下采样以产生更清晰的图像,以便仍然可以应用在高分辨率图像
上训练的神经网络。可选地,神经网络模型可以根据视频流中的图像得到的最终分辨率进行重新训练。
[0092]
在一些方面,如果使用本文公开的技术估计图像/视频的分辨率,则可以在没有信息丢失的情况下对图像/视频进行下采样,以节省存储空间并降低流成本。一些网络服务要求上传的图像/视频具有最低分辨率以进行质量控制。在这种情况下,本文公开的技术可以用于检测图像/视频的分辨率并过滤掉有意上采样的“假”高分辨率图像/视频(即,分辨率不高但已经上采样以产生高分辨率印象的图像/视频)。现有图像/视频也可以根据使用公开技术检测到的实际分辨率,在库/数据库中进行分类。
[0093]
图8为一些示例性实施例提供的图像分辨率评估的流程图。方法800包括操作802、804、806、808、810和812。通过举例而非限制,方法800被描述为由计算设备中的分辨率评估模块执行,例如,由图10的计算设备1000中的分辨率评估模块1060执行。
[0094]
在操作802中,根据预定义采样模式,从数字图像中提取多个图像块。例如,分辨率评估模块1060可以使用预定义的五点采样模式从图像302中提取图像块304至312。在操作804中,将高斯窗口应用于所述多个图像块中的每个图像块,以生成多个已处理图像块。例如,分辨率评估模块1060可以将高斯窗口应用于图像块304至312,以生成已处理图像块324至332,如图3所示。
[0095]
在操作806中,通过dft确定所述多个处理图像块中的每个处理图像块的2d能量谱。例如,通过dft确定已处理图像块324至332的2d能量谱334至342。在操作808中,使用所述确定的2d能量谱,确定所述多个已处理图像块中的每个已处理图像块的1d能量谱。例如,分辨率评估模块1060确定与图像块304-312关联的2d能量谱334至342对应的1d全向能量谱344至342。在操作810中,将所述1d能量谱与阈值进行比较,以得到所述多个处理图像块中的每个处理图像块的图像分辨率。例如,分辨率评估模块1060将阈值354至362应用于1d全向能量谱的0db图像能量,以确定对应图像块304至312的图像分辨率364至372。在操作812中,根据为所述多个已处理图像块确定的多个图像分辨率中的最大图像分辨率,调整所述数字图像的视频特性。例如,分辨率评估模块1060可以根据确定的图像分辨率374对图像302进行下采样或对神经网络模型重新训练。图像分辨率374为从图像分辨率364至372中选择的最大分辨率。
[0096]
图9为一些示例性实施例提供的代表性软件架构900的框图。软件架构900可以结合本文描述的各种设备硬件使用。图9仅仅是软件架构902的一个非限制性示例,应当理解,可以实现许多其它架构以促进本文描述的功能。软件架构902可以在图10的设备1000等硬件中执行,设备1000包括处理器1005、内存1010、存储器1015和1020以及i/o组件1025和1030等。
[0097]
示出了代表性硬件层904,其可以表示图10的设备1000等。代表性硬件层904包括具有相关可执行指令908的一个或多个处理单元906。可执行指令908表示软件架构902的可执行指令,包括实现图1至图8的方法、模块等。硬件层904还包括内存和/或存储器模块910,它们也具有可执行指令908。硬件层904还可以包括其它硬件912,它们表示硬件层904的任何其它硬件,例如,示为设备1000的一部分的其它硬件。
[0098]
在图9的示例性架构中,软件架构902可以概念化为各层的堆叠,其中,每个层提供特定功能。例如,软件架构902可以包括操作系统914、库916、框架/中间件918、应用920和表
示层944等各层。在操作上,各层内的应用920和/或其它组件可以通过软件堆栈调用应用编程接口(application programming interface,api)调用924,并响应api调用924接收以消息926示出的响应、返回值等。图9所示的各层本质上具有代表性,并不是所有软件架构902都具有所有层。例如,一些移动或专用操作系统可能不提供框架/中间件918,而其它操作系统可能提供这种层。其它软件结构可以包括其它层或不同的层。
[0099]
操作系统914可以管理硬件资源并提供公共服务。操作系统914可以包括内核928、服务930和驱动器932等。内核928可以作为硬件与其它软件层之间的抽象层。例如,内核928可以负责内存管理、处理器管理(例如,调度)、组件管理、组网、安全设置等。服务930可以为其它软件层提供其它公共服务。驱动器932可以负责控制底层硬件或与底层硬件连接。例如,根据硬件配置,驱动器932可以包括显示驱动器、摄像头驱动、驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(universal serial bus,usb)驱动器)、驱动器、音频驱动器、电源管理驱动器等。
[0100]
库916可以提供应用920和/或其它组件和/或各层可以使用的公共基础设施。库916的功能通常是允许其它软件模块通过比与底层操作系统914功能(例如,内核928、服务930和/或驱动器932)直接连接更容易的方式执行任务。库916可以包括系统库934(例如,c标准库),系统库934可以提供各种功能,例如,内存分配功能、字符串操作功能、数学功能。另外,库916可以包括api库936,例如,媒体库(例如,支持mpeg4、h.264、mp3、aac、amr、jpg、png等各种媒体格式的呈现和操作的库)、图形库(例如,可以用于在显示器上呈现2d和3d图形内容的opengl框架)、数据库库(例如,可以提供各种关系数据库功能的sqlite)、网页库(例如,可以提供网页浏览功能的webkit)等。库916还可以包括多种其它库938,以向应用920和其它软件组件/模块提供许多其它api。
[0101]
框架/中间件918(有时也称为中间件)可以提供应用920和/或其它软件组件/模块可以使用的高级公共基础设施。例如,框架/中间件918可以提供各种图形用户界面(graphic user interface,gui)功能、高级资源管理、高级位置服务等。框架/中间件918可以提供应用920和/或其它软件组件/模块可以使用的各种其它api,其中一些api可以是特定操作系统914或平台专用的。
[0102]
应用920包括内置应用940、第三方应用942和分辨率评估模块960。在一些方面,分辨率评估模块960包括适当的电路、逻辑、接口和/或代码,并且可以用于执行结合图3论述的一个或多个图像分辨率评估功能。例如,分辨率评估模块960可以并行执行处理链314至322中的每个处理链内的功能。即使分辨率评估模块960被示出为应用920的一部分,但本发明不限于此,分辨率评估模块960可以是软件架构902的操作系统914的一部分。
[0103]
代表性内置应用940的示例可以包括但不限于联系人应用、浏览器应用、阅读器应用、定位应用、媒体应用、通信应用和/或游戏类应用。第三方应用942可以包括任何内置应用940以及各种各样的其它应用。在具体示例中,第三方应用942(例如,由除特定平台的供应商以外的实体使用android
tm
或ios
tm
软件开发工具包(software development kit,sdk)开发的应用)可以是在ios
tm
、android
tm
、phone或其它移动操作系统等移动操作系统上运行的移动软件。在这个示例中,第三方应用942可以调用由操作系统914等移动操作系统提供的api调用924,以帮助实现本文描述的功能。
[0104]
应用920可以利用内置操作系统功能(例如,内核928、服务930和驱动器932)、库
(例如,系统库934、api库936和其它库938)以及框架/中间件918创建用户界面,从而与系统用户交互。可选地或另外,在一些系统中,可以通过表示层(例如,表示层944)与用户进行交互。在这些系统中,应用/模块“逻辑”可以独立于与用户交互的应用/模块的各方面。
[0105]
一些软件架构利用虚拟机。在图9的示例中,虚拟机由虚拟机948示出。虚拟机创建一种软件环境,在软件环境中,应用/模块可以如同在硬件机器(例如,图10的设备1000)中执行一样。虚拟机948由主机操作系统(例如,操作系统914)托管,并且通常(尽管并不总是)具有虚拟机监控器946。虚拟机监控器946用于管理虚拟机948的操作以及与主机操作系统(即操作系统914)的连接。软件架构902在操作系统950、库952、框架/中间件954、应用956和/或表示层958等虚拟机948内执行。在虚拟机948内执行的这些软件架构层可以与上述对应层相同,也可以不同。
[0106]
图10为一些示例性实施例提供的一种实现算法和执行方法的设备的电路的框图。在各种实施例中不需要使用所有组件。例如,客户端、服务器和基于云的网络设备可以各自使用不同的组件集,或者,例如在服务器的情况下,使用较大存储设备。
[0107]
以计算机1000(也称为计算设备1000、计算机系统1000或计算机1000)为形式的一种示例性计算设备可以包括处理器1005、内存存储器1010、可移动存储器1015、不可移动存储器1020、输入接口1025、输出接口1030和通信接口1035,它们均通过总线1040连接。虽然示出和描述示例性计算设备为计算机1000,但计算设备在不同实施例中可以具有不同形式。
[0108]
内存存储器1010可以包括易失性存储器1045和非易失性存储器1050,并且可以存储程序1055。计算设备1000可以包括或可以访问计算环境,该计算环境包括各种计算机可读介质,例如,易失性存储器1045、非易失性存储器1050、可移动存储器1015和不可移动存储器1020。计算机存储包括随机存取存储器(random-access memory,ram)、只读存储器(read-only memory,rom)、可擦除可编程只读存储器(erasable programmable read-only memory,eprom)、电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、闪存或其它存储技术、只读光盘(compact disc read-only memory,cd rom)、数字通用磁盘(digital versatile disk,dvd)或其它光盘存储器、磁盒、磁带、磁盘存储器或其它磁存储设备,或任何其它能够存储计算机可读指令的介质。
[0109]
存储在计算机可读介质中的计算机可读指令(例如,存储在内存1010中的程序1055)可由计算设备1000的处理器1005执行。硬盘驱动、cd-rom和ram是包括存储设备等非瞬时性计算机可读介质的制品的一些示例。术语“计算机可读介质”和“存储设备”不包括被认为过于瞬时的载波。“计算机可读非瞬时性介质”包括所有类型的计算机可读介质,包括磁性存储介质、光存储介质、闪存介质和固态存储介质。应当理解,软件可以安装在计算机中并随计算机一起出售。可选地,可以获取软件并将其装载到计算机中,包括通过物理介质或分配系统获取软件,包括(例如)从软件创作者拥有的服务器或从软件创作者未拥有但使用的服务器获取软件。例如,可以将软件存储在服务器中以通过互联网分配。本文所使用的术语“计算机可读介质”和“机器可读介质”可以互换。
[0110]
程序1055可以利用客户偏好结构,该客户偏好结构使用本文论述的模块,例如分辨率评估模块1060。在一些方面,分辨率评估模块1060包括适当的电路、逻辑、接口和/或代码,并且可以用于执行结合图3论述的一个或多个图像分辨率评估功能。例如,分辨率评估
模块1060可以并行执行处理链314至322中的每个处理链内的功能,以及执行结合图8论述的功能。
[0111]
本文描述的任何一个或多个模块可以使用硬件(例如,机器的处理器、专用集成电路(application-specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或其任意合适的组合)实现。而且,这些模块中的任意两个或更多个可以组合成单个模块,并且本文所述的单个模块的功能可以在多个模块之间细分。此外,根据各种示例性实施例,本文描述为在单个机器、数据库或设备内实现的模块可以分布到多个机器、数据库或设备中。
[0112]
在一些方面,程序1055中的模块1060和一个或多个其它模块可以集成为单个模块,执行集成模块的对应功能。
[0113]
虽然上文详细描述了几个实施例,但也可以进行其它修改。例如,在图中描述的逻辑流程不需要所示的特定顺序或连续顺序来达到期望的结果。可以提供其它步骤,也可以从所描述的流程中删除步骤,并可以在所描述的系统中添加或移除其它组件。其它实施例可以在所附权利要求书的范围内。
[0114]
还应当理解,可以在符合本发明的一个或多个计算设备中安装并与符合本发明的一个或多个计算设备一起出售包括一个或多个计算机可执行指令的软件,所述一个或多个计算机可执行指令有利于上文结合本发明的任何一个步骤或所有步骤所描述的处理和操作。可选地,可以获取软件并将其装载到一个或多个计算设备中,包括通过物理介质或分配系统获取软件,包括(例如)从软件创作者拥有的服务器或从软件创作者未拥有但使用的服务器获取软件。例如,可以将软件存储在服务器中以通过互联网分配。
[0115]
此外,本领域技术人员应当理解,本发明在其应用中不限于在说明书中阐述或附图中说明的组件的构造和设置细节。本文实施例能够具有其它实施例且能够以各种方式实践或执行。此外,应当理解,本文使用的措辞和术语是为了描述目的,不应视为限制性的。在本文中使用“包括”、“包含”或“具有”及其变体旨在涵盖其后列举的项目及其等效物以及其它项目。除非另有限制,否则术语“连接”、“耦合”和“安装”以及其变体在本文中广泛使用,并且涵盖直接连接和间接连接、耦合和安装。另外,术语“连接”和“耦合”及其变体不限于物理或机械连接或耦合。此外,“上”、“下”、“底部”和“顶部”等术语是相对的,用于帮助说明,但并不具有限制性。
[0116]
可以至少部分地在数字电子电路、模拟电子电路中,或计算机硬件、固件、软件或其组合中实现根据所说明的实施例使用的说明性设备、系统和方法的组件。例如,这些组件可以实现为有形地体现于信息载体中,或机器可读存储设备中的计算机程序产品(例如,计算机程序、程序代码或计算机指令),以由数据处理装置(例如,可编程处理器、计算机或多台计算机)执行,或用于控制数据处理装置的操作。
[0117]
计算机程序可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以部署成任何形式,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其它单元。可以将计算机程序部署成在一台计算机中或多台计算机中在一个站点处执行,也可以分布在多个站点处并通过通信网络互连。此外,用于实现本文描述的技术的功能程序、代码和代码段很容易被本文描述的技术所属领域的程序员理解为在权利要求书的范围内。与说明性实施例相关联的方法步骤可以由一个或多个可编程处理器执行,从而执行
计算机程序、代码或指令来执行功能(例如,对输入数据进行操作和/或生成输出)。例如,方法步骤也可以由专用逻辑电路(例如,现场可编程门阵列(field programmable gate array,fpga)或专用集成电路(application-specific integrated circuit,asic))执行,并且用于执行上述方法的装置可以实现为该专用逻辑电路。
[0118]
结合本文所公开实施例描述的各种说明性逻辑块、模块和电路可以利用通用处理器、数字信号处理器(digital signal processor,dsp)、asic、fpga或其它可编程逻辑设备、分立门或晶体管逻辑、分立硬件组件或其为执行本文描述的功能而设计的任何组合来实施或执行。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以实现为计算设备的组合,例如,dsp和微处理器、多个微处理器、一个或多个微处理器结合dsp核,或任何其它类似的配置的组合。
[0119]
例如,适合执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者中接收指令和数据。计算机的必需元件是用于执行指令的处理器和用于存储指令和数据的一个或多个内存设备。通常,计算机还包括一个或多个用于存储数据的大容量存储设备(例如磁盘、磁光盘或光盘),或与一个或多个用于存储数据的大容量存储设备可操作地耦合以从所述大容量存储设备接收数据和/或将数据传送给所述大容量存储设备。适于体现计算机程序指令和数据的信息载体包括各种形式的非易失性存储器,例如,包括半导体内存设备,例如,电可编程只读存储器或电可编程rom(electrically programmable read-only memory,eprom)、电可擦除可编程rom(electrically erasable programmable rom,eeprom)、闪存设备、数据存储盘(例如,磁盘、内部硬磁盘或可移动磁盘、磁光盘、cd-rom和dvd-rom盘)。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路。
[0120]
本领域技术人员应当理解,可以使用多种不同的技术和技术方法中的任意一种来表示信息和信号。例如,上文描述中可以引用的数据、指令、命令、信息、信号、比特、符号和图像块可以由电压、电流、电磁波、磁场或磁粒、光场或光粒、或者任何组合表示。
[0121]
本文所使用的“机器可读介质(或计算机可读介质)”是指能够暂时或永久存储指令和数据的设备,可以包括但不限于随机存取存储器(random-access memory,ram)、只读存储器(read-only memory,rom)、缓冲存储器、闪存、光学介质、磁性介质、高速缓存内存、其它类型的存储器(例如,可擦除可编程只读存储器(erasable programmable read-only memory,eeprom))和/或其任何合适的组合。术语“机器可读介质”应理解为包括能够存储处理器指令的单个介质或多个介质(例如,集中式或分布式数据库,或关联的高速缓存和服务器)。术语“机器可读介质”还应当理解为包括能够存储由一个或多个处理器1005执行的指令的任何介质或多种介质的组合,当一个或多个处理器1005执行所述指令时,这些指令使得一个或多个处理器1005执行本文描述的任何一种或多种方法。相应地,“机器可读介质”是指单个存储装置或设备,以及包括多个存储装置或设备的“基于云”的存储系统或存储网络。本文使用的术语“机器可读介质”不包括信号本身。
[0122]
另外,在不脱离本发明范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法组合或集成。展示或描述为彼此耦合或直接耦合或者通信的其它项也可以采用电方式、机械方式或其它方式经由某一接口、设备或中间组件间接地耦合或通信。变化、替换和变更相关的其它示例可由本领域技术
人员确定,并可以在不偏离本文公开的范围的情况下举例。
[0123]
虽然已经参考本发明的特定特征和实施例描述了本发明,但是明显在不脱离本发明的情况下可以制定本发明的各种修改和组合。例如,可以将其它组件添加到所描述的系统中或从所描述的系统中移除其它组件。因此,说明书和附图仅被视为所附权利要求书限定的对本发明的说明,并且预期覆盖落入本发明的范围内的任何和所有修改、变体、组合或等效物。其它方面可以在所附权利要求书的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献