图片处理方法及相关设备与流程

文档序号:14861602发布日期:2018-07-04 07:47阅读:245来源:国知局
图片处理方法及相关设备与流程

本申请涉及图片处理技术领域,更具体地,是图片处理方法及相关设备。



背景技术:

手机等终端,可以采集图片,并将采集到的图片发送至服务器,服务器可以根据实际需求,对图片进行处理。例如,手机拍摄一张衬衫照片,将该照片发送至服务器,服务器对图片进行处理后,查找与该衬衫样式类似的衣服图片。

终端向服务器发送的图片或者未经过处理,或者经过压缩处理。若未经过处理,则传输数据量较大,浪费网络通信资源,若经过压缩处理,则需要服务器解压缩操作,造成服务器的压力。



技术实现要素:

有鉴于此,本申请提供了一种图片处理系统,可以降低网络通信资源的浪费且减轻服务器的处理压力。

为实现所述目的,本申请提供的技术方案如下:

第一方面,本申请提供了一种图片处理系统,包括第一设备及第二设备,所述第一设备上设置有处理目标类型的图片的前端神经网络处理组件,第二设备上设置有处理所述目标类型的图片的后端神经网络处理组件;其中:

第一设备,用于接收到对目标类型的图片的处理指令后,获取属于所述目标类型的原始图片;使用所述前端神经网络处理组件对所述原始图片进行处理,获得中间图片;以及将所述中间图片向第二设备发送;其中所述中间图片的数据量小于所述原始图片的数据量;

第二设备,用于接收到所述中间图片后,使用所述后端神经网络处理组件对所述中间图片进行处理,获得目标图片。

第二方面,本申请提供了一种图片处理组件设置设备,包括:

图片数据量获得模块,用于获得神经网络模型中多层神经网络各自对应的输出图片数据量;

目标层神经网络选择模块,用于从所述多层神经网络中,选择输出图片数据量符合预设条件的目标层神经网络;

神经网络处理组件生成模块,用于组合所述多层神经网络中的首层神经网络至所述目标层神经网络,得到与所述神经网络模型对应的前端神经网络模型,并生成使用所述前端神经网络模型的前端神经网络处理组件。

第三方面,本申请提供了一种图片处理方法,应用在第一设备上,且第一设备上设置有处理目标类型的图片的前端神经网络处理组件,该方法包括:

接收到对目标类型的图片的处理指令后,获取属于所述目标类型的原始图片;

使用所述前端神经网络处理组件对所述原始图片进行处理,获得中间图片;其中所述中间图片的数据量小于所述原始图片的数据量;

将所述中间图片向第二设备发送。

第四方面,本申请提供了一种图片处理方法,应用在第二设备上,且第二设备上设置有处理目标类型的图片的后端神经网络处理组件,该方法包括:

接收第一设备发送的中间图片;其中所述中间图片是所述第一设备使用前端神经网络处理组件对属于所述目标类型的原始图片进行处理后得到的图片,且所述中间图片的数据量小于所述原始图片的数据量;

使用所述后端神经网络处理组件对所述中间图片进行处理,获得目标图片。

第五方面,本申请提供了一种图片处理组件设置方法,包括:

获得神经网络模型中多层神经网络各自对应的输出图片数据量;

从所述多层神经网络中,选择输出图片数据量符合预设条件的目标层神经网络;

组合所述多层神经网络中的首层神经网络至所述目标层神经网络,得到与所述神经网络模型对应的前端神经网络模型,并生成使用所述前端神经网络模型的前端神经网络处理组件。

现有技术中,神经网络模型全部设置在接收图片的服务器上,发送方设备向该服务器发送的是未经过处理或者经过压缩处理的图片,服务器接收到图片后,需要对图片进行解压缩或者缩放处理后,再使用神经网络模型对图片进行处理。该种方式不仅浪费通信资源,接收方的处理压力也较大。然而,本申请提供的图片处理系统,发送方设备在发送原始图片前,使用前端神经网络处理组件对原始图片提前进行处理获得中间图片,中间图片的数据量变小,从而减轻了网络传输过程中使用的通信资源。接收方设备接收到中间图片后,直接使用后端神经网络处理组件对中间图片进行后续处理,从而减轻了接收方设备的处理压力。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为现有的图片处理流程示意图;

图2为现有的神经网络模型的处理流程图;

图3为本申请提供的一种图片处理流程示意图;

图4为本申请提供的发送方设备设置前端神经网络处理组件的一种场景示意图;

图5为本申请提供的发送方设备设置前端神经网络处理组件的一种流程示意图;

图6为本申请提供的发送方设备设置前端神经网络处理组件的另一流程示意图;

图7为本申请提供的图片处理方法的流程图;

图8为本申请提供的图片处理组件设置设备的结构示意图;

图9为本申请提供的图片处理设备的结构示意图;

图10为本申请提供的另一种图片处理设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

手机等终端可以将采集到的图片发送至服务器,服务器上设置有图片处理组件,以实现对接收到的图片的处理。当然,图片的发送并非局限于终端与图片服务器之间,还可以是服务器与服务器之间,为了区分各个服务器,可以将接收图片的服务器称为图片服务器。或者,将发送图片的终端或服务器称为发送方设备(或第一设备),将接收图片的服务器称为接收方设备(或第二设备)。

为了实现对图片的深度处理,图片服务器中的图片处理组件对接收的图片的质量具有较高的需求,例如要求图片分辨率较高、尺寸较大等。为了适应图片服务器的需求,发送方设备采集到的图片的数据量比较大。

一般地,发送方设备会将采集的原始图片直接发送至图片服务器。如图1所示,手机等终端拍摄一张图片,并未对图片进行处理,直接发送至图片服务器。不仅手机等终端直接发送图片,在发送图片的设备为服务器的情况中,该服务器也是直接将图片发送至图片服务器。

这样,不仅耗费较多的通信资源,为手机用户带来了较高的通信费用,而且,在发送过程中,未经处理的图片安全性较低,容易被窃取从而造成用户隐私泄露。对于图片服务器而言,存储数据量较大的图片需要耗费较多的存储资源,且在图片深度处理过程中,处理压力也较大。

现有技术中,为了解决以上问题,发送方设备与接收方设备采取不同的解决方案。

手机等终端发送方设备在发送图片之前,会使用高压缩率的压缩算法对图片进行压缩处理。该种方式虽然能降低图片发送过程中的通信资源耗费,提高图片安全性及降低图片服务器的存储压力,但图片服务器在接收到经过压缩处理的图片后,需要引入用于解压的解码库,并且使用解码库对图片进行解压缩。可见,该种方式不仅不能降低图片服务器的处理压力,还会浪费图片服务器上的计算资源。

作为接收方设备的图片服务器,引入gpu(graphicsprocessingunit,图形处理器)作为辅助加速设备,图片服务器也由单台设备变为服务器集群,从而增加了较多的硬件成本。

需要说明的是,现有的服务器集群中包含存储资源及计算资源,存储资源即包含图片的服务器,计算资源即处理图片的图片服务器。解压缩等操作均需要在计算资源上执行,相较于存储资源来讲,计算资源较少,因此,包含图片的服务器通常并不会对图片进行压缩处理,而是将图片全量发送给图片服务器。可见,在图片服务器引入cpu变为服务器集群后,并不能降低图片的通信压力,而且,还会造成服务器集群中图片服务器等待图片传输的过程中,出现不必要的空闲状态。

综上所述,现有的方案均不能有效解决图片传输过程中的问题。对此,发明人在对图片服务器处理图片的组件进行研究后,根据该组件处理图片的特征,提供了一种图片处理系统。

具体地,发明人进行研究后发现,图片处理组件使用神经网络模型对图片进行处理。神经网络模型包含m(m为大于1的整数)层神经网络,同一神经网络模型中不同层的神经网络所使用的数学计算过程可能不同,例如,数学计算过程可以包括但不限定于卷积计算、矩阵乘法、激活函数等。

如图2所示,神经网络模型对图片的处理包括多层神经网络的计算过程,且该些神经网络计算过程按照顺序依次执行,即前一层神经网络的输出作为后一层神经网络的输入。因此,发明人想到可以将前m(1≤m≤n,且m为整数)层的神经网络的计算过程前置到发送方设备上执行。

需要说明的是,不同层的神经网络对图片的处理方式可能不同,但是,相较于处理前,所选择的m层神经网络对图片进行处理后,数据量能降低。这样,发送方设备使用神经网络处理后的图片数据量较小,进而减少图片发送过程使用的通信资源。虽然现有的压缩算法也可以减少图片数据量,但两者的实现原理不同。与压缩算法不同,神经网络模型可以删除图片中的某些信息,以减小数据量。

在实施中,为了实现发送方设备与接收方设备之间的协同配合,需要在发送方设备及接收方设备上各自设置用于通信的中间件。两个中间件定义相同的通信协议,使用相同的通信协议进行通信,从而作为发送方设备及接收方设备的通信通道,发送方设备将处理后的图片通过该通道发送至接收方设备。

为了便于理解本技术方案,使用图3对图片处理系统执行的图片处理流程进行解释说明。

如图3所示,发送方设备上设置有前端神经网络处理组件及前端中间件(或称为第一中间件),接收方设备上设置有后端神经网络处理组件及后端中间件(或称为第二中间件)。

其中,前端神经网络处理组件使用前端神经网络模型对图片进行前序处理。前端神经网络模型中包含某一神经网络模型中的第1至m层神经网络的模型定义,前端神经网络处理组件通过执行这些模型定义实现神经网络的处理算法。后端神经网络处理组件使用后端神经网络模型对图片进行后序处理,后端神经网络模型中包含该神经网络模型中的第m+1至n层神经网络的模型定义,后端神经网络处理组件通过执行这些模型定义实现神经网络的处理算法。

以上,该某一神经网络模型为处理某一种内容类型(或简称为类型)图片的神经网络模型,为了便于描述,可以将该某一种神经网络模型称为目标神经网络模型,该一种内容类型图片称为目标类型图片。

如图3所示,发送方设备确定待发送的原始图片后,前端神经网络处理组件对原始图片执行上述前m层神经网络的处理过程。为了便于与最终处理后的图片区分,经过前m层神经网络处理后的图片可以称为中间图片。

中间图片经过前端中间件及后端中间件构建的通信通道,被发送至接收方设备。接收方设备中的后端神经网络处理组件对中间图片执行第m+1至n层神经网络的处理过程,处理后的图片可以称为目标图片。

可见,上述的图片处理过程使用神经网络对原始图片进行处理,不仅降低了发送图片的数据量,减少了通信资源的使用,提高了用户体验。而且,接收方设备接收到经过处理的图片后,在使用神经网络模型对图片处理时,并不需要再经过前m层神经网络的处理,而是直接从第m+1层的神经网络处理即可,从而减轻了接收方设备的处理压力,缩短了接收方设备的处理时间。

通过以上说明可知,前端神经网络模型及后端神经网络模型可以协同处理目标类型的图片,即前端神经网络模型对图片进行前序处理后,处理后的图片可以作为后端神经网络模型的输入,由后端神经网络模型进行后序处理。中间图片的传输可以通过前端中间件与后端中间件形成的通信通道进行发送。另外,前端神经网络模型及后端神经网络模型可以以组件等形式设置在设备上。组件通过执行代码,实现神经神经网络模型的算法思想。另外,前端神经网络模型包含神经网络,即使用能体现神经网络的数学计算过程对图片进行处理。神经网络模型的具体形式并非局限于从第1层开始的神经网络,还可以是从其他层数开始的神经网络。神经网络模型包含的神经网络的总层数可以记录在前端中间件或后端中间件中,或者前端中间件或后端中间件中记录的也可以并非神经网络的总层数,而是最后一层神经网络所在的层数。

本申请的技术方案在实际应用中,具有较佳的应用效果。以下通过对比未使用及使用本申请技术方案的图片传输数据,来说明本申请的技术方案具有的技术效果。

若未使用本申请的技术方案,用户使用手机拍摄一张格式为jpeg(jointphotographicexpertsgroup,联合图像专家小组)、像素为800万、数据量为2mb的照片,该图片上传到图片服务器需要使用2mb的流量,耗费的时长为20(以800kps的蜂窝网络速度为计算标准)秒左右。若简单使用压缩算法对图片进行压缩,例如将2mb压缩到100kb,则可以在1秒内将图片发送至图片服务器。但是,压缩算法的不足之处是,手机需要将图片解码然后再将解码后的图片按照预设的算法压缩,压缩后的图片发送至图片服务器后,图片服务器还需要对图片进行解压缩,处理过程较为繁琐。

使用本申请的技术方案后,用户使用手机拍摄同样一张照片,可以首先进行预处理,将jpeg格式的图片解码(此过程耗时非常短),然后缩放为256x256(高x宽)大小,且以rgb颜色通道存储图片。经过预处理后,图片的数据量变为192kb左右。若仍以800kps的蜂窝网络速度上传图片,则耗费2秒就可以传送信息无损图片。

以上是仅仅经过预处理的图片处理过程,若图片服务器对图片的处理并不关心某些图片细节,则本申请中手机上设置的前端神经网络处理组件可以将这些图片细节删除,以使用另一种处理方式进一步较大地减小图片数据量。

例如,用户使用手机拍摄一张裙子的照片,上传到图片服务器以查找同样款式(但不要求裙子的颜色及材质等必须相同)的裙子。手机上设置的前端神经网络处理组件使用神经网络模型对图片进行处理后,图片将不再包含颜色信息及材质信息,2mb的图片数据量可以减小到10~50kb,处理后的图片在0.1~0.5秒左后便可以传输至图片服务器,并且处理后的图片并不会影响图片服务器使用处理后的图片查找同款裙子。可见,使用本申请提供的技术方案可以减小图片传输过程使用的通信流量,缩短上传时间,且对于图片服务器的后续图片处理并不会造成影响。

以下具体说明如何在发送方设备上设置前端神经网络处理组件。在实施中,可以通过至少以下两种方式设置前端神经网络处理组件。

第一种方式如图4所示,由接收方设备如图片服务器根据各个神经网络模型生成每个神经网络的前端神经网络处理组件,不同的前端神经网络处理组件用于处理不同内容类型的图片。发送方设备如终端若有处理某种内容类型图片的需求,则从接收方设备上下载处理该种内容类型图片的前端神经网络处理组件。

该种方式中,接收方设备需要为每个神经网络模型生成对应的前端神经网络处理组件,以供发送方设备下载。对于发送方设备来说,仅需直接下载安装即可,实现方式简单。

第二种方式中,发送方设备若有处理某种内容类型图片的需求,则自身根据服务器上处理该种内容类型图片的神经网络模型,生成前端神经网络处理组件。

相较于第一种方式,该种方式中,接收方设备无需为每个神经网络模型生成对应的前端神经网络处理组件,减轻处理压力并节省存储空间。在实际应用中,可以根据实际需求选择相应的设置方式。

对应第一种方式,本申请提供了接收方设备生成前端神经网络处理组件及发送方设备下载前端神经网络处理组件的流程。其中,生成前端神经网络处理组件的方法应用在接收方设备的中间件(后端中间件)上,以由接收方设备的中间件来生成前端神经网络处理组件。具体的流程可以参见图5,包括:

步骤s501:后端中间件获得神经网络模型中各层神经网络对应的输出图片数据量。

接收方设备上的神经网络模型包含多层神经网络,每层神经网络的数学计算过程是固定已知的,并且,每层神经网络的图片输入维度与输出维度也是固定已知的。图片输入某层神经网络经过处理后,会得到与该层神经网络对应处理后的图片维度。

例如,某神经网络模型包括10层神经网络,其中,第1层神经网络输出的图片维度为256*256,第2层神经网络输出的图片维度为16*16。根据处理后的图片维度可以确定输出图片数据量。

步骤s502:后端中间件在神经网络模型的各层神经网络中,将输出图片数据量符合预设条件的神经网络确定为目标层神经网络。

在实施前,可以配置预设条件,每层神经网络具有各自的输出图片数据量,根据预设条件及各层神经网络对应的输出图片数据量,在各层神经网络中,选择某层神经网络作为目标层神经网络。

一种预设条件可以是,将输出图片数据量最小的一层神经网络确定为目标层神经网络。

但是,在实际应用中,某些神经网络模型中神经网络的层数较多如100层,根据该预设条件选择的目标层可能较大如88层。由于生成的前端神经网络模型是首层至目标层的神经网络,因此,使用该预设条件可能导致,终端上需要配置较多层的神经网络,不仅占用终端较多的存储空间,且增加了终端的处理压力。

因此,可以使用另一种预设条件,即在前预设数量层的神经网络中,选择输出图片数据量最小的一层神经网络作为目标层神经网络。

具体地,可以预设数量值,在前预设数量个数的多层神经网络中选择数据量最小的层数。例如,预设数量值为10,因此,在前10层中选择输出图片数据量最小的层数。

或者,可以预设比例值,该比例值与神经网络模型的总层数相乘后,可以获得数量值,进而在前预设数量层的神经网络中,选择输出图片的数据量最小的层数。例如,预设比例值为1/2,某神经网络模型的总层数为100,则在1至50层中,选择输出图片的数据量最小的层数。

需要说明的是,发明人经过研究发现,神经网络模型的各层输出图片的数据量呈现由大变小再由小变大的特点,因此,预设比例值优选为中间值1/2,当然,也可以是中间值左右附近的值。

为了便于理解,以下使用实际数据对上述选择目标层神经网络的方案进行说明。

假设,某原始图片大小为1mb,经过预处理后,数据量为1073741824字节。经过某包含15层神经网络的神经网络模型处理后,第1~层神经网络输出的数据量(数据量的单位为字节byte)分别为:618348、1161600、279936、279936、746496、173056、173056…4000。

若最小值为4000,则选择的目标层神经网络为第15层神经网络。若设置在前5层中选择最小数据量的神经网络,则选择的目标层神经网络为第3层神经网络。若设置在前6层中选择最小数据量的神经网络,则选择的目标层神经网络为第6层神经网络。

需要说明的是,神经网络模型可以减小图片的数据量,并非要求每一层神经网络输出的数据量均比输入该层神经网络的数据量小,只要保证神经网络模型最后输出的数据量小于输入神经网络模型中首层神经网络的数据量即可。

若神经网络模型中存在某层神经网络输出的数据量比输入该层神经网络的数据量大的情况,则在选择目标层神经网络时,需要保证目标层神经网络输出的数据量要小于输入首层神经网络的数据量。

步骤s503:后端中间件将首层至目标层神经网络组合为前端神经网络模型,进而生成使用该前端神经网络模型的前端神经网络处理组件,并记录前端神经网络处理组件对应的模型参数。

上一步骤确定目标层神经网络后,获得首层至该目标层神经网络所使用的数学计算过程,从而获得前端神经网络模型。例如,确定出的目标层神经网络为第5层神经网络,则获得第1层至第5层的神经网络的数学计算过程,从而获得前端神经网络模型,进而生成使用该前端神经网络模型的处理组件,即前端神经网络处理组件。

另外,确定目标层神经网络后,便可以确定该目标层神经网络所在的层数,该层数也属于前端神经网络模型的模型参数之一,该层数可以表示前端神经网络模型的总层数,也即表示前端神经网络模型能够对图片进行多少层神经网络的处理。

该层数属于需要记录的模型参数之一,原因是发送方设备使用前端神经网络模型处理图片获得中间图片,并将中间图片发送至接收方设备后,接收方设备需要继续对该中间图片进行处理,处理时使用的是神经网络模型中该层数之后的神经网络。因此,接收方设备需要获知发送方设备已经处理到第几层,才能明确自身从哪一层开始处理。因此,中间件记录前端神经网络模型的模型参数,从下文可知,发送方设备在下载前端神经网络模型时,还下载前端神经网络模型的模型参数,并且在发送中间图片时,还发送该模型参数中的层数值,以通知接收方设备该中间图片已经经过了多少层神经网络的处理。

另外,若神经网络模型对输入至首层神经网络的图片的格式有要求,则还需要记录图片格式,用于表示输入至首层神经网络的图片格式,如尺寸大小、图片角度、灰度值等。图片在输入前端神经网络模型之前,还可以经过预处理过程,以使图片符合格式要求。其中预处理过程可以是裁剪、角度转换、空间变换及灰度变换等中的一种或多种。

综上所述,前端神经网络模型的模型参数需要包括:前端神经网络模型的总层数。在此基础上,还可以包括图片格式。

步骤s504:前端中间件向后端中间件发送下载指令,所述下载指令中包含原始图片的内容类型。

需要说明的是,后端中间件可以根据不同的神经网络模型生成不同的前端神经网络处理组件。不同的神经网络处理组件用于处理不同内容类型的图片,例如,一神经网络处理组件用于处理衬衫图片,另一神经网络处理组件用于处理裤子图片。从而,生成的不同前端神经网络处理组件也用于处理不同内容类型的图片。若发送方设备需要下载某种内容类型的图片对应的前端神经网络处理组件,则生成下载指令,下载指令中可以包含图片的内容类型。

例如,发送方设备为手机,用户使用手机拍摄一件衬衫的照片(2mb),想在淘宝(一个购物类应用)上查找与该衬衫相同款式的衬衫,则点击查找淘宝应用中的查找衬衫按钮后,手机上的前端中间件便接收到下载指令,且下载指令中包含内容类型参数,参数值为衬衫。

步骤s505:后端中间件接收到下载指令后,在生成的神经网络处理组件中,查找与内容类型对应的前端神经网络处理组件。

为了便于描述,查找到的该神经网络处理组件可以称为目标前端神经网络处理组件。

步骤s506:后端中间件将查找到的前端神经网络处理组件以及该前端神经网络处理组件对应的模型参数返回前端中间件。

其中,后端中间件可以通过与前端中间件构建的通信通道,将前端神经网络处理组件返回发送方设备,以实现发送方设备对前端神经网络处理组件的下载。

步骤s507:前端中间件记录前端神经网络处理组件对应的模型参数,并在发送方设备上保存该前端神经网络处理组件。

其中,前端中间件记录的模型参数包括前端神经网络模型的总层数,另外,还可能包括图片格式。

以上步骤s501~步骤s503应用在后端中间件上,以在接收方设备上生成前端神经网络处理组件。但是,该流程也可以应用在发送方设备的中间件(前端中间件)上,以在发送方设备上生成前端神经网络处理组件。不同的是,前端中间件在执行步骤s501时,是从接收方设备下载神经网络处理组件中各层神经网络所对应的输出图片数据量。另外,执行步骤s503前,需要从接收方设备下载首层至目标层神经网络,从而再执行步骤s503将首层至目标层神经网络组合为前端神经网络模型,并记录前端神经网络模型的模型参数。这样,前端中间件并无需执行步骤s504~步骤s507。

在实际应用中,服务器上的某些完整神经网络模型包含压缩算法,用于对神经网络处理后的图片进行压缩。未包含压缩算法的神经网络模型中,每层神经网络使用已知的数学计算过程进行处理,因此每层神经网络输出的图片的数据量是已知的。但是,图片经过压缩后,压缩后的数据量是不能预知的,而是与输入图片的数据量相关。

因此,对于包含压缩算法的神经网络模型,需要使用图片样本,对图片样本进行神经网络及压缩处理,并统计输出的图片的数据量,该数据量作为预估的数据量,根据预估的数据量来确定目标层神经网络。因此,上述步骤s501~步骤s503的前端神经网络处理组件的生成流程可以替换为以下图6所示的流程中的步骤s601~s604。需要说明的是,图6中的其他步骤可以参见图5中的说明,以下并不赘述,仅说明步骤s601~s604。

步骤s601:后端中间件获得神经网络模型以及神经网络模型中各层神经网络对应的压缩算法。

各层神经网络使用的压缩算法可以是同一个,或者,不同层的神经网络对应不同的压缩算法。因此,压缩算法可能是一个,也可能是多个。

步骤s602:后端中间件使用神经网络模型及各层神经网络对应的压缩算法,对样本图片进行处理,并统计各层神经网络输出图片的数据量。

在实施前,预先设置样本库,为了具有代表性,可以将各个终端上传到接收方设备的图片作为样本库中的样本图片。每层神经网络对样本图片进行处理后,再使用压缩算法对图片进行处理,并记录各层神经网络处理并压缩后的数据量。

步骤s603:后端中间件从各层神经网络中,选择数据量符合预设条件的目标层神经网络。

其中,样本图片为多个,则每层神经网络均对应多个数据量。例如,样本图片为10张,则每层神经网络对应有10个数据量。

计算每层神经网络对应的各个数据量的平均值,选择平均值符合预设条件的某层神经网络作为目标层神经网络。例如,计算上述10个数据量的平均值,并选择平均值符合预设条件的神经网络作为目标层神经网络。

该预设条件可以是上述步骤s502中说明的任意一预设条件,此处并不赘述。

步骤s604:后端中间件将首层至目标层神经网络及首层至目标层神经网络各自对应的压缩算法组合为前端神经网络模型,并生成使用前端神经网络模型的前端神经网络处理组件,记录前端神经网络处理组件对应的模型参数。

前已述及,每层神经网络均具有对应的压缩算法,在生成前端神经网络模型时,不仅需要包含首层至目标层神经网络,还需要包含首层至目标层神经网络各自所对应的压缩算法。

需要说明的是,有关本步骤中的模型参数的说明可以参见上述图5中步骤s503中的说明,此处并不赘述。

以上步骤s601~步骤s604是根据包含压缩算法的神经网络模型,生成前端神经网络模型的过程。以上过程中,并非根据各层神经网络固定的图片输出量选择目标层神经网络,而是需要使用样本图片对压缩算法的输出量进行预估,根据预估的数据量选择出目标层神经网络。

以上步骤s601~步骤s604可以应用在接收方设备的中间件上,以在接收方设备上生成使用压缩算法的前端神经网络处理组件。但是,该流程也可以应用在发送方设备的中间件上,以在发送方设备上生成使用压缩算法的前端神经网络处理组件。不同的是,发送方设备在执行步骤s601时,是从接收方设备下载神经网络处理组件以及神经网络处理组件使用的各层神经网络对应的压缩算法。另外,执行步骤s604前,需要从接收方设备下载首层至目标层神经网络及首层至目标层神经网络各自对应的压缩算法。

前已述及,发送方设备根据接收方设备上的神经网络模型生成前端神经网络处理组件。该神经网络模型包含n层神经网络,前端神经网络模型包含的是n层神经网络中的第1~m层神经网络,则可以将接收方设备上的第m+1~n层的神经网络称为后端神经网络模型。

发送方设备使用前端神经网络处理组件,以及接收方设备使用后端神经网络处理组件进行图片处理的流程见图7所示,具体包括步骤s701~s705。

步骤s701:发送方设备接收对原始图片的处理指令后,调用前端神经网络处理组件对原始图片进行处理,获得中间图片。

其中,发送方设备可能是终端,也可能是服务器。若发送方设备为终端,则可以由用户触发生成对原始图片的处理指令。例如,用户使用终端拍摄一张衬衫图片,并点击终端提供的搜同款衬衫按钮,进而终端会接收到对该衬衫图片的处理指令。若发送方设备为服务器,则服务器可以在有处理原始图片的需求时,生成对该原始图片的处理指令。

需要说明的是,发送方设备上可能设置有多个不同前端神经网络处理组件,不同前端神经网络处理组件用于处理不同内容类型的原始图片,因此,处理指令中需要包含原始图片的内容类型。

发送方设备接收到的处理指令中包含原始图片的内容类型。若发送方设备上设置有多个前端神经网络处理组件,则发送方设备根据原始图片的内容类型,调用与原始图片的内容类型对应的前端神经网络处理组件,并触发该前端神经网络处理组件对该原始图片进行处理。前端神经网络处理组件使用前端神经网络模型对原始图片进行处理,前端神经网络模型中包含m层神经网络,每层神经网络使用各自的数学计算方式对原始图片进行处理,且前一层神经网络的输出作为后一层神经网络的输入,处理后的图片可以称为中间图片。

步骤s702:发送方设备从前端中间件中获取前端神经网络处理组件对应的模型参数。

其中,如步骤s503及步骤s604的说明,前端中间件中保存有前端神经网络处理组件对应的模型参数,主要包括前端神经网络模型所包含的神经网络的总层数。

步骤s703:发送方设备通过前端中间件与后端中间件之间的通信通道,将中间图片、内容类型及模型参数向接收方设备发送。

其中,发送方设备上设置有前端中间件,接收方设备上设置有后端中间件,两个中间件可以建立发送方设备与接收方设备之间的通信通道,以将发送方设备生成的中间图片发送至接收方设备。

需要说明的是,发送方设备不仅发送中间图片,还需要发送前端神经网络模型的模型参数,以通知接收方设备该中间图片在发送方设备上已经经过了哪些层的神经网络的处理。

并且,还需要发送处理指令中的内容类型,该内容类型为原始图片的内容类型,前端神经网络处理组件的处理并不会影响图片的内容,因此,该内容类型也表示中间图片的内容类型。

步骤s704:接收方设备根据内容类型确定神经网络模型,并根据模型参数在该神经网络模型中确定后端神经网络模型。

前已述及,不同的神经网络模型对应处理不同内容类型的图片,因此,根据发送方设备发送的内容类型,可以确定出与该内容类型对应的神经网络模型。进而,根据模型参数中的层数,将神经网络模型中该层数之后的神经网络确定为后端神经网络模型。

例如,图片类型为衬衫,则接收方设备查找到用于处理衬衫的神经网络模型,模型参数包括的层数为5,则将用于处理衬衫的神经网络模型中第6层之后的神经网络确定为后端神经网络模型,使用该后端神经网络模型的组件为后端神经网络处理组件。

步骤s705:接收方设备将中间图片输入使用后端神经网络模型的后端神经网络处理组件进行处理,获得目标图片。

其中,使用该后端神经网络模型的组件为后端神经网络处理组件。接收方设备将中间图片输入后端神经网络模型中的第一层神经网络,以上述为例,该第一层神经网络为用于处理衬衫的神经网络模型中的第6层神经网络,上一层神经网络处理完毕后进入下一层神经网络,直至最后一层神经网络。本步骤也可以描述为接收方设备调用后端神经网络处理组件对中间图片进行处理,处理后的图片称为目标图片。

由以上技术方案可知,发送方设备所发送的图片为经过前端神经网络处理的图片,神经网络能够减低图片的数据量,从而减少图片传输使用的通信资源。另外,接收方设备对中间图片进行处理时,使用的后端神经网络模型并未全部的神经网络模型,而是除去前端神经网络模型之后的后几层神经网络,从而减轻了接收方设备的处理压力及处理时间。

需要说明的是,图5的步骤s506中后端中间件也可以并不返回前端神经网络模型的模型参数,而是记录在后端中间件中,即保存在接收方设备本地。可见,每个神经网络处理组件均各自对应一个模型参数。相对应地,图7的步骤s704并不需发送模型参数,步骤s704接收方设备根据内容类型确定出神经网络模型后,根据该神经网络模型对应的模型参数,在该神经网络模型中确定出后端神经网络模型,使用该后端神经网络模型的组件即后端神经网络处理组件。

本申请还提供的一种图片处理组件设置设备,该设备用于生成前端神经网络模型,可以为前已述及的接收方设备。

见图8,其示出了图片处理组件设置设备的结构,具体包括:

图片数据量获得模块801,用于获得神经网络模型中多层神经网络各自对应的输出图片数据量;

目标层神经网络选择模块802,用于从所述多层神经网络中,选择输出图片数据量符合预设条件的目标层神经网络;

神经网络处理组件生成模块803,用于组合所述多层神经网络中的首层神经网络至所述目标层神经网络,得到与所述神经网络模型对应的前端神经网络模型,并生成使用所述前端神经网络模型的前端神经网络处理组件。

其中,所述预设条件具体为:选择的神经网络对应的输出图片数据量为,全部神经网络对应的输出图片数据量中的最小值。或者,所述预设条件具体为:选择的神经网络对应的输出图片数据量为,预设数量的在前的神经网络对应的输出图片数据量中的最小值。

在实施中,所述神经网络处理组件还使用每层神经网络各自对应的压缩算法,用于对神经网络处理后的图片进行压缩。则所述图片数据量获得模块在执行获得神经网络模型中多层神经网络各自对应的输出图片数据量的步骤时,具体用于:

获得样本图片;使用各层神经网络及各层神经网络对应的压缩算法,对所述样本图片进行处理;以及统计每层处理后所输出的图片的数据量,得到各层神经网络各自对应的输出图片数据量。

在图8所示的结构基础上,图片处理组件设置设备还可以包括:

神经网络处理组件返回模块,用于接收到目标类型后,选择所述目标类型对应的前端神经网络处理组件;以及返回选择出的前端神经网络处理组件;其中目标类型表示神经网络处理组件处理的图片的类型。

见图9,其示出了本申请提供的图片处理设备的结构。该图片处理设备可以为上述第一设备(发送方设备),且第一设备上设置有处理目标类型的图片的前端神经网络处理组件。如图9所示,该图片处理设备可以具体包括:

原始图片获得模块901,用于接收到对目标类型的图片的处理指令后,获取属于所述目标类型的原始图片;

中间图片获得模块902,用于使用所述前端神经网络处理组件对所述原始图片进行处理,获得中间图片;其中所述中间图片的数据量小于所述原始图片的数据量;

中间图片发送模块903,用于将所述中间图片向第二设备发送。

其中,所述前端神经网络处理组件使用目标神经网络模型中的第1~m层神经网络。

在图9所示的结构基础上,图像处理设备还可以包括:

m值发送模块,用于向所述第二设备发送m的值;其中所述m值的值以供所述第二设备在目标神经网络模型中确定第m+1层神经网络以及使用第m+1~n层神经网络对所述中间图片进行处理。

其中,所述第一设备上还设置有第一中间件,且所述第一中间件内记录有所述m的值;则在执行向所述第二设备发送m的值的步骤时,所述m值发送模块具体用于:从所述第一中间件中获取所述m的值,并向所述第二设备发送m值。

在图9所示的结构基础上,图片处理设备还可以包括:

目标类型发送模块,用于将所述前端神经网络处理组件对应的目标类型向所述第二设备发送;其中所述目标类型以供所述第二设备在多个前端神经网络处理组件中选择所述第一设备上设置的前端神经网络处理组件。

见图10,其示出了本申请提供的一种图片处理设备,该图片处理设备可以为上述第二设备(接收方设备),该第二设备上设置有处理目标类型的图片的后端神经网络处理组件。该设备可以具体包括:

中间图片接收模块1001,用于接收第一设备发送的中间图片;其中所述中间图片是所述第一设备使用前端神经网络处理组件对属于所述目标类型的原始图片进行处理后得到的图片,且所述中间图片的数据量小于所述原始图片的数据量;

中间图片处理模块1002,用于使用所述后端神经网络处理组件对所述中间图片进行处理,获得目标图片。

其中,所述后端神经网络处理组件使用所述目标神经网络模型中的m+1~n层神经网络,且m≤n。

其中,所述后端神经网络处理组件使用所述目标神经网络模型中的1~n层神经网络,且m≤n;则在执行所述使用所述神经网络处理组件对所述中间图片进行处理的步骤时,所述中间图片处理模块具体用于:在所述目标神经网络模型中确定第m+1层神经网络;使用所述目标神经网络模型的第m+1~n层神经网络对所述中间图片进行处理。

在图10所示的结构基础上,图片处理设备还可以包括:m值发送模块,用于接收所述第一设备发送的m的值;则在执行所述在所述目标神经网络模型中确定第m+1层神经网络的步骤时,所述中间图片处理模块具体用于:依据所述m的值在所述目标神经网络模型中确定第m+1层神经网络。

其中,所述第二设备上设置有多种后端神经网络处理组件,不同的后端神经网络处理组件用于处理不同类型的图片;则在执行所述使用所述后端神经网络处理组件对所述中间图片进行处理的步骤时,所述中间图片处理模块具体用于:

接收所述第一设备发送的目标类型;在多种后端神经网络处理组件中选择用于处理所述目标类型的图片的后端神经网络处理组件;使用选择的后端神经网络处理组件对所述中间图片进行处理。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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