使用图像分析算法以给神经网络提供训练数据的制作方法

文档序号:14136539阅读:197来源:国知局
使用图像分析算法以给神经网络提供训练数据的制作方法

本申请大体涉及对神经网络进行训练的方法、计算机程序、计算机及系统,该神经网络接收多个输入数字图像,并且针对每个特定输入数字图像输出用于确定特定输入数字图像中的像素组的相关度的数据。

发明技术

图像处理中的许多应用需要向不同的图像区域可变地分配资源。例如,能够基于图像的特定特性选择压缩参数,或图像区域能够遭受可变的纠错度,以实现传输可靠性与效率等之间的优化权衡等等。对图像区域的相关度自动进行标识以确定应该向特定的图像区域分配多少资源具有重大意义,而运行此类算法还可能需要宝贵的cpu时间。这可能导致问题,例如,如果许多程序对诸如监控相机的嵌入式平台上的有限资源进行竞争。



技术实现要素:

鉴于上述情况,本发明的目的是解决或至少降低以上所讨论的一个或几个缺陷。大体上通过所附的独立专利权利要求来实现以上目的。

根据第一方面,本发明由一种用于对神经网络进行训练的方法来实现,该神经网络接收多个输入数字图像,并且针对每个特定输入数字图像输出用于确定特定输入数字图像中的像素组的相关度的数据。该方法包括通过以下步骤确定训练数据集:针对多个数字训练图像,通过使用被配置为自动地利用相关度对像素组进行标记的第一图像分析算法来确定多个数字训练图像中的每个特定数字训练图像中的像素组的相关度,将多个数字训练图像和标记纳为训练数据集,并将训练数据集用于神经网络的训练。

在本说明书的上下文中,术语“神经网络”应当理解为互连的节点组,类似于大脑中庞大的神经元网络。神经网络还可被称作“人工神经网络”(ann)。此上下文中可以使用的一种特定类型的神经网络为卷积神经网络(cnn)。术语“深度学习”也被普遍使用。

在本说明书的上下文中,术语“相关度”应当理解为图像中对应区域的图像内容的兴趣(例如对于用户)等级。换言之,相关度与图像中的区域(像素组)相对应,且相关度定义图像的观看者对那一区域的图像内容有多感兴趣。这可以有利地用于分布关于图像的比特率预算。例如,相关度可以用于控制相应区域的压缩程度,例如,通过设置压缩度或确定编码器应该对那一区域进行怎样程度的跳过编码(skipcoding)等。相关度可以进一步用于错误编码的目的,例如,确定传输被编码的图像时的纠错程度。图像的特定区域的相对较高的相关度意味着:相较于相关度较低的另一图像区域,可以对那一特定区域耗费较大部分的比特率预算。

现有技术中可以代替相关度而使用的其它术语包括“兴趣区域”或“roi”。

在本发明的上下文中,术语“被配置为自动地利用相关度对像素组进行标记的图像分析算法”应当理解为能够用于基于那一部分的图像特性(即,图像分析)、对图像中的相应区域(例如,宏块)的图像内容的兴趣(例如对于用户)自动地(例如,通过计算机,无人工辅助)进行分级的任意合适的算法。图像特性可以是空域的,例如,存在于数字图像的部分中的边缘、噪声的存在、重复变形(repetitivelytextured)的部分、面部识别、物体检测等。图像特性还可以是时域的,例如动作检测。合适的图像分析算法的示例为安讯士网络通讯有限公司所提供的压缩流算法。例如,在编号为ep3021583的欧洲专利申请中描述了此算法的部分。

发明人已意识到采用使用如上所述的现有图像分析算法训练的神经网络具有数个优点。例如,神经网络的设计非常简单,使得其本身易于硬件实现,这是因为神经网络通过巨量的非常重复但非常简单的计算来运行。此外,在模型压缩领域内完成的正在进行的工作使得神经网络用于诸如监控相机的嵌入式平台逐步更为可行。照此,将神经网络用于例如监控相机的嵌入式平台可以优于在相机中运行实际的图像分析算法。

根据一些实施方式,第一图像分析算法被配置为通过以下步骤自动地利用相关度对像素组进行标记:计算像素组的空域统计度量,并且通过对多个数字训练图像的图像序列施加时域滤波来计算像素组的时域统计度量,图像序列包括特定数字训练图像。

两个统计度量然后可以用于通过加权像素组的时域统计度量和空域统计度量来计算加权后的统计度量,并且基于该加权后的统计度量用相关度对像素组进行标记。所使用的权重可以是静态权重,例如0.5、0.3、0.7等,或其可以基于关心的图像区域的图像特性而变化。

根据一些实施方式,确定训练数据集包括:针对第二多个数字训练图像,通过使用被配置为自动地利用相关度对像素组进行标记的第二图像分析算法,确定第二多个数字训练图像中的每个特定数字训练图像中的像素组的相关度,其中第二图像分析算法不同于第一图像分析算法。

例如,针对(较少的)多个图像,可以采用更复杂或更专用的图像分析算法,以给神经网络提供与例如数字图像的特定内容相关的训练数据。此类特定内容的示例可以是显示交通状况或显示许多人从相机旁走过的入口的图像内容。

本实施方式的优点在于:如果对神经网络进行正确的训练,相比较于诸如第一图像分析算法之类的手工算法,它们具有具有优越得多的性能的潜力。本实施方式的优点在于:能够根据第一图像分析算法生成巨大数量的训练数据,以快速得到与那一算法表现相当的算法。此后,可以用诸如第二多个图像及其度(由第二图像分析算法确定)之类的其它更为“高级”的训练数据对神经网络进行精调。而且精调一般所需的数据比初始训练(即使用第一多个图像)少得多。换言之,进行第二训练的目的是提供用户特有的相关度。一些图像区域对于一些用户很重要,但对其它类型的使用情况不感兴趣。增加此第二训练(使用第二多个图像和第二图像分析算法)可以便于辅助用户关于相关区域花费比特率预算。

第二多个数字训练图像可以包括作为第一多个数字训练图像的一部分的至少一个数字训练图像。第二多个数字训练图像可以例如由第一多个训练图像的子集组成。第二多个数字训练图像还可以包括不是第一多个数字训练图像的一部分的至少一个数字训练图像,即,第二多个数字训练图像不是第一多个数字训练图像的子集。

根据一些实施方式,通过手动地利用相关度对第一多个数字训练图像中的至少一个数字训练图像中的像素组进行标记来进一步确定训练数据集。根据一些实施方式,通过手动地利用相关度对第二多个数字训练图像中的至少一个数字训练图像中的像素组进行标记来进一步确定训练数据集。手动地对训练数据集的图像中的像素组进行标记可被用于对训练数据集进行精调。使用以上讨论的论据结合第二多个图像和第二图像分析方法的使用,此实施方式可以辅助用户便于为用户关于相关区域花费比特率预算。

在第二方面,本发明提供了一种计算机程序产品,包括具有适配为当由具有处理能力的设备执行时实现第一方面的方法的指令的计算机可读存储介质。

在第三方面,本发明提供计算机,包括被布置为用于对神经网络进行训练的处理器,该神经网络接收多个输入数字图像,并且针对于每个特定的输入数字图像输出用于确定特定输入数字图像中的像素组的相关度的数据,其中神经网络的训练包括通过以下步骤确定训练数据集:针对多个数字训练图像,通过使用被配置为自动地利用相关度对像素组进行标记的第一图像分析算法来确定多个数字训练图像中的每个特定数字训练图像中的像素组的相关度,将多个数字训练图像和标记纳为训练数据集,且将训练数据集用于神经网络的训练。

在第四方面,本发明提供了包括视频相机和计算机的系统。该计算机具有被布置为对神经网络进行训练的处理器,该神经网络接收多个输入数字图像,并且针对每个特定的输入数字图像输出用于确定特定输入数字图像中的像素组的相关度的数据,其中神经网络的训练包括通过以下步骤确定训练数据集:针对多个数字训练图像,通过使用配置为自动地利用相关度对像素组进行标记的第一图像分析算法来确定多个数字训练图像中的每个特定数字训练图像中的像素组的相关度,将多个数字训练图像和标记纳为训练数据集,并将训练数据集用于神经网络的训练。该处理器进一步被布置为给相机提供产生的训练过的神经网络,该相机被布置为接收训练过的神经网络。该相机进一步被布置为捕获多个数字图像,提供多个数字图像中的图像数据给训练过的神经网络,并且针对多个数字图像中的每个特定数字图像获得多个相关度,每个相关度与特定数字图像中的像素组相对应。

在本说明书的上下文中,术语“训练过的神经网络”应当理解为例如规定神经网络中节点的设置(节点如何互联)以及神经网络中所用的权重(滤波、权重库等)的文本文件。在计算机和相机之间提供训练过的神经网络的其它方法也同样可能,例如通过二进制文件。

根据一些实施方式,相机进一步被布置为通过根据获得的相关度控制特定数字图像的压缩程度来对特定数字图像进行编码。

可以通过设置图像的特定部分(区域、面积等)的压缩率来控制压缩程度。压缩率可以由量化参数值体现,qp值,范围从例如0-51(h.264)、1-255(vp9)或1-100。应当注意的是,在此说明书中,广义上将术语“压缩程度”、“压缩率”和“压缩度”可互换地用于使用少于像素的原始的、未压缩的像素表示的比特来指示像素的编码。如上所述,诸如错误编码之类的编码过程的其它部分可以基于相关度,例如用于基于相关度确定传输编码的图像时的纠错程度。

第二、第三及第四方面大体可以具有与第一方面相同的特征及优点。

附图说明

通过以下本发明实施方式的说明性并且非限制性的详细描述,参考附图,将更好地理解本发明的以上目的及额外目的、特征及优点,相同的参考标记将用于类似的元件,其中

图1示意性地示出了卷积神经网络,

图2根据实施方式示出了如何训练神经网络,

图3根据实施方式示出了包括视频相机和计算机的系统

图4根据实施方式示出了用于训练神经网络的方法。

具体实施方式

图1以示例性方式示出了卷积神经网络(cnn)100。在此说明书的上下文中,应该注意到将cnn用于确定输入数字图像中的像素组的相关度仅是示例性的。出于此目的,可以运用任意合适的神经网络,例如另一类型的前馈神经网络(即除cnn之外的神经网络)、递归网络等。在cnn100中,可以存在两种类型的层,卷积层102和全连接层104。设想用具有多于一个的输出的层代替全连接层。在cnn100中,可以存在任意数目的两个不同层。在图1中,存在两个卷积层102a、102b。对于卷积层102,增加了两个回归头104。在此示例中,回归头104为全连接层集合104a-b;104c-d,对该全连接层集合馈送来自卷积层102的输出106。在此上下文中,cnn的优点可以是能够使用同一卷积层102(配置有滤波器以及滤波权重,以适配用于图像分析的目的)的集合以用于确定相关度的目的。对于此集合102,能够增加额外的回归头104(卷积层102的集合已连接到用于其它图像分析目的而训练的其它头)。然后可以对额外的回归头进行训练,以使用来自卷积层102的输出数据106来确定相关度。相较于卷积层102的集合,回归头104的计算复杂度较低,因此几乎没有对运行神经网络100的硬件的额外需求。

图2以示例性方式示出了布置为对神经网络100进行训练的设备200。现在将结合图2和图4解释该训练的实施方式。设备200可以是具有处理能力的任意设备,下文称作计算机200。计算机200可以通过首先接收多个数字训练图像208来确定训练数据集212。然后可以将数字训练图像208馈送给第一图像分析算法204,该第一图像分析算法204被配置为确定s402并且自动标记分组(labelgroups)数字训练图像208中的每个数字训练图像208中的像素组。根据一些实施方式,第一图像分析算法204可以聚焦于数字训练图像的空域统计度量。在此情况下,能够通过第一图像分析算法204分立地处理每个数字训练图像。典型的空域统计度量可以是边缘检测、色彩分布、面部检测和空域噪声检测。可代替换或额外地,第一图像分析算法204还可以考虑数字训练图像的时域特征,诸如数字训练图像序列中的物体的移动。出于这种原因,第一图像分析算法可被配置为通过对多个数字训练图像的图像序列施加时域滤波来针对每个特定数字训练图像中的像素组计算时域统计度量,图像序列包括特定数字训练图像。在此情况下,第一图像分析算法204需要在算法的一次运行中(即,当针对特定数字训练图像中的特定像素组计算时域统计度量时)考虑多个数字训练图像。时域统计度量的示例为动作检测、时域噪声检测、图像之间照明情况变化的检测等。

在针对特定像素组计算空域统计度量和时域统计度量两者的情况下,第一图像分析算法204可被配置为通过加权像素组的时域统计度量和空域统计度量来计算加权后的统计度量,并且基于加权后的统计度量用r对像素组进行标记。施加的权重可以是0和1之间的任意值(在时域统计度量和空域统计度量正则化的情况下是0和1之间的任意值,否则施加其它权重范围),并且取决于第一图像分析算法204的焦点区域。

例如,如果第一图像算法204被适配为对包括移动的人的图像的部分花费比特率预算,则算法应当将此类图像的部分标记为高相关度。在此实现方式中,第一图像分析算法需要计算相应的空域及时域统计度量,以确定图像中的像素组是否与移动的人相对应。另一示例可以是第一图像分析算法204布置为聚焦于以完整细节保存显示街道的区域(即对此类区域花费比特率预算),在此情况下可以仅需要计算空域统计度量。

总而言之,第一图像分析算法204被配置为自动地利用相关度对每个数字训练图像208中的特定像素组进行标记。对于仅有第一图像分析算法204用于此目的的实施方式,多个数字训练图像208和计算的标记将形成训练数据集212。

根据一些实施方式,训练数据集212的确定包括通过第二图像分析算法206运行第二多个数字训练图像。

第二多个数字训练图像可以是第一多个数字训练图像208的子集。

可替换地,第二多个数字训练图像不是第一多个数字训练图像208的子集。

例如,第二多个数字训练图像可以针对特定范围的关于神经网络的应用,例如交通状况、娱乐场所、零售、银行、飞机监视等。出于此原因,使用也可以针对这些特定情况的第二图像分析算法206来分析显示此类情况的图像210可能是有利的。换言之,根据一些实施方式,第一图像分析算法204可以是在所有类型的图像内容上表现良好的更为通用的算法,而第二图像分析算法206针对特定图像内容。根据一些实施方式,第一图像分析方法204的计算复杂度可能较小,因此可以关于非常多的图像(例如多于10000或多于1000000)运行,而第二图像分析算法206的计算复杂度可能更大。

针对第二多个数字训练图像,计算机200因此可被布置为通过使用被配置为自动地利用相关度对像素组进行标记的第二图像分析算法来确定s404第二多个数字训练图像的每个特定的数字训练图像中的像素组的相关度,其中第二图像分析算法不同于第一图像分析算法。如上所述,第一图像分析算法可以是在关于所有类型的输入图像同样表现良好的通用算法,而第二图像分析算法可以提供更加基于配置文件的分析(即,针对具有特定内容或显示特定情况的图像)。

根据一些实施方式,通过手动地(由人214)利用相关度对第一多个数字训练图像中的至少一个数字训练图像中的像素组进行标记,进一步确定s406训练数据集212。可替换地或额外地,通过手动地利用相关度对第二多个数字训练图像中的至少一个数字训练图像中的像素组进行标记,进一步确定训练数据集212。在需要针对第一和/或第二图像分析算法204、206无法用相关度进行正确标记的数字训练图像中的一些特定特征来对训练数据集进行精调的情况下,此实施方式可能是有利的。根据一些实施方式,可以通过手动地利用相关度对至少一个另一数字训练图像(不是第一/或第二多个数字训练图像的一部分)中的像素组进行标记进一步确定训练数据集212,并且将至少一个另一数字训练图像和相应的标记纳入训练数据集。图2中不包括此实施方式。

训练数据集212因此包括已由第一和/或第二图像分析算法204、206分析后的多个数字训练图像以及标记,可能由人214精调。

然后将训练数据集212用于对神经网络100进行训练s408。使用训练数据集212的神经网络100的训练留给技术人员来实现,且根据所用的神经网络100的架构来进行。通常,对神经网络进行训练,以通过使用损失函数以及标记来调整神经网络的内部权重来针对每个数字图像提供相关度的映射,以作为训练数字图像中的像素组的地面实况。损失函数可以例如基于l2-范数,使得均方误差最小化。可以基于例如可能的相关度的数目、输入数据的大小等来定义函数。当已定义函数时,权重更新通常通过标准化的反向传播算法以及例如用于优化器的随机梯度下降法。如本领域技术人员所熟知的,随机梯度下降法是用于计算如何更新神经网络中的权重以在训练期间获得尽可能接近基于输入图像生成想要的输出的模型的最公知的方法。

应当注意的是,第二多个训练图像用于训练,且为第一多个训练图像的子集,然后第二多个数字训练图像及其对应的标记通常在已使用第一多个数字训练图像对神经网络进行训练后用于神经网络的训练。

训练期间,将例如数万个图像输入神经网络100中,调整神经网络100的内部权重,直至它能基于不是训练数字图像的一部分的数字图像以快得多、计算复杂度小得多的方式产生可与第一和/或第二图像分析算法204、206相比(或更好)的结果。

由于神经网络的设计,有利的使用领域是在诸如视频相机之类的可能具有很低的可用计算资源(例如,不足以运行第一/第二图像算法)但具有特别设计为运行神经网络的硬件(诸如特定用途集成电路(asic)之类)的设备中。出于此原因,设备200可被布置为提供训练过的神经网络给此类设备304,例如经无线网络302,因此利用训练过的神经网络对该设备进行配置s410。这在图3中示出。应当注意的是,可以以任意适当方式传递训练过的神经网络,诸如包括训练过的神经网络的内部过滤器和权重的文本文件之类。还应当注意的是,可以使用将训练过的神经网络传递给相机的任意其它方式,诸如计算机存储器(例如usb)或有线连接。然后相机被布置为将训练过的神经网络用于确定由相机304捕获的、然后据此编码的图像的相关度。出于此原因,相机304可被布置为:

-捕获多个数字图像,

-提供多个数字图像的图像数据给训练过的神经网络,并且针对多个数字图像中的每个特定数字图像获得多个相关度,每个相关度与特定数字图像中的像素组相对应。

根据一些实施方式,相机可被布置为通过根据获得的多个相关度来控制特定数字图像的压缩程度,对特定数字图像进行编码。相关度与压缩程度之间的映射可以是线性的,即,相比较于相对低的相关度,相对较高的相关度可以总是与对应的像素组的较低压缩程度相对应。根据其它实现方式,该映射是阶梯式的的,即,对一相关度范围映射同一压缩程度。该映射还需要考虑可用带宽,以使得在图像、或图像序列的许多区域包括视作相关的图像内容的情况下,映射不会超出带宽。

如上所述,根据一些实施方式,相机304可以包括用于运行神经网络的专有硬件。在其它实施方式中,神经网络的软件实施方式用于获得要使用的相关度。无论如何,相较于实际运行第一/第二图像分析算法204、206来获得相关度,通过使用如上所述的神经网络所实现的结果可被显著提升。

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