一种图像处理方法、装置、电子设备及其存储介质与流程

文档序号:16036590发布日期:2018-11-24 10:07阅读:121来源:国知局

本发明涉及图像识别技术领域,具体而言,涉及一种图像处理方法、装置、电子设备及其存储介质。

背景技术

随着智能手机的相机功能的推广,移动设备并行计算硬件效能大幅进步,以及人民物质与精神生活需求的逐渐提高。人工智能与计算机视觉技术在智能手机的相机中应用市场越来越大。其中基于场景/物体识别的自动后处理技术已经成为了各大手机厂商所需要的技术。

由于基于场景/物体识别的自动后处理技术需要在移动设备上部署,因此,为了不影响移动设备的性能,在需要保证一定准确率的同时,还需要尽量减少参数和计算量,因此,移动设备一般情况下都会采用参数空间较小的模型。目前市场上的模型主要依赖于直接训练,例如通过卷积神经网络等,但是通过直接训练后得到的模型其不能够同时保证对图像的场景识别的高准确率和高召回率。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种图像处理方法、装置、电子设备及其存储介质,以解决上述技术问题。

第一方面,本发明实施例提供了一种图像处理方法,包括:

获取训练数据集,并根据所述训练数据集构建标签矩阵;

利用所述训练数据集对深度神经网络中的主网络和多个子网络进行训练,获得所述主网络对应的第一输出矩阵和各所述子网络分别对应的第二输出矩阵;其中,所述主网络用于对所有场景类别进行识别,每一所述子网络用于对相应的场景类别进行识别;

根据各所述子网络对应的场景类别分别对所述第一输出矩阵和所述标签矩阵进行切片划分,获得所述第一输出矩阵对应的第一切片矩阵和所述标签矩阵对应的第二切片矩阵;

根据所述第二输出矩阵、所述第一切片矩阵和所述第二切片矩阵计算损失函数,并根据所述损失函数对所述深度神经网络中的参数进行优化,获得所述主网络对应的场景识别模型。

进一步地,所述根据所述第二输出矩阵、所述第一切片矩阵和所述第二切片矩阵计算损失函数,包括:

根据所述场景类别计算所述第二输出矩阵和所述第一切片矩阵之间的欧式距离;

根据所述场景类别,利用交叉熵计算公式分别计算所述第二输出矩阵和所述第二切片矩阵之间的第一交叉熵,以及所述第一输出矩阵和所述标签矩阵之间的第二交叉熵;

根据所述欧式距离、所述第一交叉熵和所述第二交叉熵获得所述损失函数。

进一步地,所述根据所述场景类别计算所述第二输出矩阵和所述第一切片矩阵之间的欧式距离,包括:

根据计算所述第二输出矩阵中两个行向量之间的欧式距离,获得第一中间矩阵其中dakj为所述第二输出矩阵中第k行向量和第j行向量之间的欧式距离,aki为所述第二输出矩阵中第k行第i个元素值,aji为所述第二输出矩阵中第j行第i个元素值;

根据计算所述第一切片矩阵中两个行向量之间的欧式距离,获得第二中间矩阵其中dbkj为所述第一切片矩阵中第k行向量和第j行向量之间的欧式距离,bki为所述第一切片矩阵中第k行第i个元素值,bji为所述第一切片矩阵中第j行第i个元素值;

根据计算所述第二中间矩阵和第一中间矩阵的中间欧式距离

根据预设超参数和所述中间欧式距离计算获得所述第二输出矩阵和所述第一切片矩阵之间的欧式距离。

进一步地,所述交叉熵公式为:

其中,c为代价,x为训练数据集中预设个数的图像,z为所述场景类别总数,y为实际值,n为所述预设个数,a为输出值。

进一步地,所述根据所述欧式距离、所述第一交叉熵和所述第二交叉熵获得所述损失函数,包括:

将所述欧式距离、所述第一交叉熵和所述第二交叉熵之和作为所述损失函数。

进一步地,所述根据所述损失函数对所述深度神经网络中的参数进行优化,获得所述主网络对应的场景识别模型,包括:

根据所述损失函数对所述深度神经网络中的主网络和各子网络中的参数进行优化,并再次利用所述训练数据集对所述深度神经网络进行迭代训练,直到迭代次数达到预设次数为止,获得所述主网络对应的场景识别模型。

进一步地,所述根据所述训练数据集构建标签矩阵,包括:

对所述训练数据集中图像的场景类别进行标注,获得已标注场景图像,根据所述已标注场景图像构建所述标签矩阵。

进一步地,所述方法,还包括:

利用所述场景识别模型对待识别图像进行识别处理,获得所述待识别图像对应的场景类别。

第二方面,本发明实施例提供了一种图像处理装置,包括:

标签矩阵构建模块,用于获取训练数据集,并根据所述训练数据集构建标签矩阵;

矩阵输出模块,用于利用所述训练数据集对深度神经网络中的主网络和多个子网络进行训练,获得所述主网络对应的第一输出矩阵和所述子网络分别对应的第二输出矩阵;其中,所述主网络用于对所有场景类别进行识别,每一所述子网络用于对相应的场景类别进行识别;

矩阵划分模块,用于根据各所述子网络对应的场景类别分别对所述第一输出矩阵和所述标签矩阵进行切片划分,获得所述第一输出矩阵对应的第一切片矩阵和所述标签矩阵对应的第二切片矩阵;

参数优化模块,用于根据所述第二输出矩阵、所述第一切片矩阵和所述第二切片矩阵计算损失函数,并根据所述损失函数对所述深度神经网络中的参数进行优化,获得所述主网络对应的场景识别模型。

第三方面,本发明实施例提供一种电子设备,包括:处理器和存储器,其中,

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的方法步骤。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,包括:

所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的方法步骤。

本发明实施例通过利用训练数据集对主网络和多个子网络进行训练,获得主网络对应的第一输出矩阵和各子网分别对应的第二输出矩阵,通过各子网络的第二输出矩阵的场景类别分别对第一输出矩阵和标签矩阵进行切片处理,获得第一输出矩阵对应的第一切片矩阵和标签矩阵对应的第二切片矩阵,根据第二输出矩阵、第一切片矩阵和第二切片矩阵计算损失函数,并根据损失函数对深度神经网络中的参数进行优化,获得主网络对应的场景识别模型,由于通过参数空间较大的子网络来对主网络进行训练,从而获得到的场景识别模型在对图像进行场景识别时,能够同时保证高准确率和高召回率。

本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例提供的电子设备结构示意图;

图2为本发明实施例提供的一种图像处理方法流程示意图;

图3为本发明实施例提供的一种图像处理方法整体流程示意图;

图4为本发明实施例提供的一种图像处理装置结构示意图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

首先,参照图1来描述用于实现本发明实施例的图像处理方法及装置的示例电子设备100。

如图1所示,电子设备100包括一个或多个处理器102、一个或多个存储装置104、输入装置106、输出装置108以及模型训练装置110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。

所述处理器102可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制所述电子设备100中的其它组件以执行期望的功能。

所述存储装置104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理器实现)的装置功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。

所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。

所述输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。

所述图像处理装置110可以通过训练数据集对深度神经网络进行训练,获得场景识别模型,以实现对图像进行处理。

示例性地,用于实现根据本发明实施例的图像处理方法及装置的示例电子设备可以被实现为诸如智能手机、平板电脑等移动终端上。

图2为本发明实施例提供的一种图像处理方法流程示意图,如图2所示,该方法包括:

步骤202:获取训练数据集,并根据所述训练数据集构建标签矩阵。

在具体的实施过程中,首先获取训练数据集,其中,该训练数据集中包括有多张图像,图像中的场景别类可以有多种,例如:可以是场景类、物体类和其他,另外,场景类中还可以包括沙滩类、蓝天类等背景细分类,物体类还可以包括食物类、动物类等前景细分类。应当说明的是,场景类、物体类和其他类中均可以包括其他多种类别,本发明实施例对此不作具体限定。根据训练数据集构建标签矩阵,应当说明的是,标签矩阵是根据训练数据集中各图像的场景类别构建的。

步骤204:利用所述训练数据集对深度神经网络中的主网络和多个子网络进行训练,获得所述主网络对应的第一输出矩阵和各所述子网络分别对应的第二输出矩阵;其中,所述主网络用于对所有场景类别进行识别,每一所述子网络用于对相应的场景类别进行识别。

在具体的实施过程中,将训练数据集中的图像输入到深度神经网络中,其中,深度神经网络中包括一个主网络和多个子网络,且主网络和子网络均可以是卷积神经网络。应当说明的是,由于训练数据集中的图像有很多张,而为了保证运算速度,主网络和子网络在一次运算过程中可以同时处理预设个数的图像,而不是训练数据集中所有的图像,训练数据集中的图像分批次的对主网络和子网络进行迭代训练。另外,主网络可以对所有场景类别进行识别,而每一个子网络只能识别其对应的一个或多个场景类别的图像,并且子网络识别的场景类别个数小于主网络,因此,主网络通过对训练数据集的图像进行处理后输出第一输出矩阵,每一个子网络对该训练数据集的图像进行处理后输出对应的第二输出矩阵。可以理解的是,如果有三个子网络,那么每一个子网络都会输出一个第二输出矩阵,即可以得到三个第二输出矩阵。

步骤206:根据各所述子网络对应的场景类别分别对所述第一输出矩阵和所述标签矩阵进行切片划分,获得所述第一输出矩阵对应的第一切片矩阵和所述标签矩阵对应的第二切片矩阵。

在具体的实施过程中,由于每一个子网络都对应识别具体的一个场景类别,例如:一共有三个子网络,分别对应场景类、物体类和其他类。主网络能够同时识别场景类、物体类和其他类。因此,假设第一输出矩阵和第二输出矩阵中的行向量表示该模型能够同时处理的图像的数量,列向量表示场景类别,因此,可以根据每一个子网络对应的场景类别分别对第一输出矩阵和标签矩阵进行切片划分。即根据列向量,将第一输出矩阵中属于场景类、物体类和其他类的元素分别划分出来构成第一切片矩阵,标签矩阵的划分方式与第一输出矩阵一致,此处不再赘述。应当说明的是,标签矩阵的构建也是根据主网络和子网络能够同时处理图像的数量构建的,这样才能够保证切分出来的第二切片矩阵与对应场景类别的第二输出矩阵的大小相同。

步骤208:根据所述第二输出矩阵、所述第一切片矩阵和所述第二切片矩阵计算损失函数,并根据所述损失函数对所述深度神经网络中的参数进行优化,获得所述主网络对应的场景识别模型。

在具体的实施过程中,根据切分出来的第一切片矩阵和第二切片矩阵,以及第二输出矩阵计算深度神经网络的损失函数,利用损失函数对深度神经网络中的参数进行优化,最终得到满足要求的深度神经网络,虽然深度神经网络中包括训练好的子网络对应的模型和主网络对应的模型,但是只需要将主网络对应的模型作为场景识别模型。

本发明实施例通过利用训练数据集对主网络和多个子网络进行训练,获得主网络对应的第一输出矩阵和各子网分别对应的第二输出矩阵,通过各子网络的第二输出矩阵的场景类别分别对第一输出矩阵和标签矩阵进行切片处理,获得第一输出矩阵对应的第一切片矩阵和标签矩阵对应的第二切片矩阵,根据第二输出矩阵、第一切片矩阵和第二切片矩阵计算损失函数,并根据损失函数对深度神经网络中的参数进行优化,获得主网络对应的场景识别模型,由于通过子网络来对主网络进行训练,从而获得到的场景识别模型在对图像进行场景识别时,能够同时保证高准确率和高召回率。

在上述实施例的基础上,所述根据所述第二输出矩阵、所述第一切片矩阵和所述第二切片矩阵计算损失函数,包括:

根据所述场景类别计算所述第二输出矩阵和所述第一切片矩阵之间的欧式距离;

根据所述场景类别,利用交叉熵计算公式分别计算所述第二输出矩阵和所述第二切片矩阵之间的第一交叉熵,以及所述第一输出矩阵和所述标签矩阵之间的第二交叉熵;

根据所述欧式距离、所述第一交叉熵和所述第二交叉熵获得所述损失函数。

在具体的实施过程中,以深度神经网络中包括一个主网络a和三个子网络b1、b2和b3为例:其中主网络a可以输出所有类别(包括场景,物体和其他),子网络b1、b2和b3分别只输出场景类,物体类,其他类。

设场景类,物体类,其他类对应的子类的类别数目分别为n1、n2、n3,总类别数为n;

设主网络的第一输出矩阵为k(m×n)(m为同时处理的图像数量,n为主网络a输出的总类别数);

设三个子网络的第二输出矩阵分别为s1(m×n1)、s2(m×n2)、s3(m×n3);

设训练集的图像对应的标签矩阵为t(m×n);

将该主网络a的第一输出矩阵k从第二维(即场景类别,长度为n)进行“切片处理”拆分为与第二输出矩阵对应的第二切片矩阵k1(m×n1)、k2(m×n2)、k3(m×n3);

标签矩阵t从第二维(即场景类别,长度为n)进行“切片处理”拆分为与第二输出矩阵对应的子矩阵t1(m×n1)、t2(m×n2)和t3(m×n3)。

因此,s1(m×n1)、t1(m×n1)与k1(m×n1)为同一场景类别,s2(m×n2)、t2(m×n2)与k2(m×n2)为同一场景类别,s3(m×n3)、t3(m×n3)与k3(m×n3)为同一场景类别。

计算s1(m×n1)与k1(m×n1),s2(m×n2)与k2(m×n2),和s3(m×n3)与k3(m×n3)之间的欧式距离。

计算t1(m×n1)与s1(m×n1),t2(m×n2)与s2(m×n2),t3(m×n3)与s3(m×n3)之间的第一交叉熵,以及k(m×n)和t(m×n)之间的第二交叉熵。

根据计算获得的欧式距离、第一交叉熵和第二交叉熵构建损失函数,应当说明的是,可以将欧式距离、第一交叉熵和第二交叉熵求和获得损失函数。

应当说明的是,在预测值和实际值比较接近的时候,交叉熵反馈的梯度(可以理解为对于差别的敏感程度)要更大一些,用在第一输出矩阵和标签矩阵的对比上,能够让主网络在训练的比较好的时候还能有稳定的优化方向;

另外,在计算主网络和子网络的区别时不需要过度关注这种很小的差别,因为两个网络的输出显然是有一定波动的,当两个网络都已经很相近的时候输出也肯定不一样,因此不需要针对这种状况进行优化,应该更多关注于两个网络预测值相差较大的情况,因此欧氏距离更为合适。

本发明实施例通过计算第二输出矩阵和第一切片矩阵之间的欧式距离,交叉熵计算公式分别计算第二输出矩阵和第二切片矩阵之间的第一交叉熵,以及第一输出矩阵和标签矩阵之间的第二交叉熵,利用欧式距离、第一交叉熵和第二交叉熵来获得损失函数,利用损失函数对子网络和主网络中的参数进行优化,实现子网络与主网络之间的互相学习,从而达到最优的模型。

在上述实施例的基础上,假设第二输出矩阵为:第一切片矩阵为:其中,可以理解的是第二输出矩阵和第一切片矩阵中的元素为属于当前列所对应的场景类别的概率值。

所述根据所述场景类别计算所述第二输出矩阵和所述第一切片矩阵之间的欧式距离,包括:

根据计算所述第二输出矩阵中两个行向量之间的欧式距离,获得第一中间矩阵其中dakj为所述第二输出矩阵中第k行向量和第j行向量之间的欧式距离,aki为所述第二输出矩阵中第k行第i个元素值,aji为所述第二输出矩阵中第j行第i个元素值;

根据计算所述第一切片矩阵中两个行向量之间的欧式距离,获得第二中间矩阵其中dbkj为所述第一切片矩阵中第k行向量和第j行向量之间的欧式距离,bki为所述第一切片矩阵中第k行第i个元素值,bji为所述第一切片矩阵中第j行第i个元素值;

根据计算所述第二中间矩阵和第一中间矩阵的中间欧式距离

根据预设超参数和所述中间欧式距离计算获得所述第二输出矩阵和所述第一切片矩阵之间的欧式距离。

应当说明的是,超参数是根据经验给出或使用参数搜索得到的最佳值。本发明实施例需要计算每一个第一切片矩阵与其场景类别相对应的第二输出矩阵之间的欧式距离。

本发明实施例通过计算第二输出矩阵与第一切片矩阵之间的欧式距离作为优化子网络和主网络中参数的依据之一,使得子网络和主网络之间能够互相学习,最终能够获得高准确率和高召回率的场景识别模型。

在上述实施例的基础上,所述交叉熵公式为:

其中,c为代价,x为训练数据集中预设个数的图像,y为实际值,n为所述预设个数,a为输出值。

在具体的实施过程中,根据计算第二输出矩阵和第二切片矩阵之间的第一交叉熵时,c为第一交叉熵对应的代价,x为输入的图像,z为第二输出矩阵和第二切片矩阵对应的场景类别总数,y为第二切片矩阵,n为输入的图像的个数,a为第二输出矩阵。

根据计算第一输出矩阵和标签矩阵之间的第二交叉熵时,c为第二交叉熵对应的代价,x为输入的图像,z为第一输出矩阵和标签矩阵对应的场景类别总数,y为标签矩阵,n为输入的图像的个数,a为第一输出矩阵。

本发明实施例通过交叉熵计算公式计算第二输出矩阵和第二切片矩阵之间的第一交叉熵,以及第一输出矩阵和标签矩阵之间的第二交叉熵,能够在进行模型训练的较好时还能够有稳定的优化方向,从而得到更优的场景识别模型。

在上述实施例的基础上,所述根据所述损失函数对所述深度神经网络中的参数进行优化,获得所述主网络对应的场景识别模型,包括:

根据所述损失函数对所述深度神经网络中的主网络和各子网络中的参数进行优化,并再次利用所述训练数据集对所述深度神经网络进行迭代训练,直到迭代次数达到预设次数为止,获得所述主网络对应的场景识别模型。

在具体的实施过程中,根据损失函数调整深度神经网络中主网络和各子网络中的参数,由于并不是一次性将所有的训练数据集输入到深度神经网络,而且预设设定一个深度神经网络可同时处理的图像数量,因此,在对参数进行优化后,再将训练数据集中预设个数的图像输入到深度神经网络中进行迭代训练,直到对该深度神经网络的迭代次数满足预设阈值为止。应当说明的是,还可以根据损失函数判断深度神经网络是否达到优化饱和,若达到优化饱和则优化到此结束。

本发明实施例通过损失函数对深度神经网络中主网络和子网络的参数进行优化,并利用训练数据集进行循环迭代训练,从而得到最优的场景识别模型,该场景识别模型能够在对图像进行场景识别时,同时保证准确率及召回率。

在上述实施例的基础上,所述根据所述训练数据集构建标签矩阵,包括:

对所述训练数据集中图像的场景类别进行标注,获得已标注场景图像,根据所述已标注场景图像构建所述标签矩阵。

在具体的实施过程中,在获取到训练数据集中,需要预先对训练数据集中的每个图像的场景类别进行标注,从而获得带有场景类别标志的已标注场景图像,然后根据场景类别构建标签矩阵。

本发明实施例通过利用训练数据集对主网络和多个子网络进行训练,获得主网络对应的第一输出矩阵和各子网分别对应的第二输出矩阵,通过各子网络的第二输出矩阵的场景类别分别对第一输出矩阵和标签矩阵进行切片处理,获得第一输出矩阵对应的第一切片矩阵和标签矩阵对应的第二切片矩阵,根据第二输出矩阵、第一切片矩阵和第二切片矩阵计算损失函数,并根据损失函数对深度神经网络中的参数进行优化,获得主网络对应的场景识别模型,由于通过参数空间较大的子网络来对主网络进行训练,从而获得到的场景识别模型在对图像进行场景识别时,能够同时保证高准确率和高召回率。

在上述实施例的基础上,所述方法,还包括:

利用所述场景识别模型对待识别图像进行识别处理,获得所述待识别图像对应的场景类别。

在具体的实施过程中,对于完成训练的场景识别模型可以用于对图像中的场景进行识别,在进行识别时,将待识别图像输入到场景识别模型中,场景识别模型可以对待识别图像进行处理,输出待识别图像中属于某一场景类别的概率值。

图3为本发明实施例提供的一种图像处理方法整体流程示意图,如图3所示,

首先,获取训练数据集,从训练数据集中任意获取预设个数的图像,将该图像一方面输入到深度神经网络中,该深度神经网络包括一个主网络和三个子网络,另一方面,对这些图像进行场景类别标注,并根据已标注图像构建标签矩阵。应当说明的是子网络的数量可以根据实际情况确定,并不限定为三个;

其次,主网络对图像进行处理获得所有场景类别的第一输出矩阵,从图3中可以得知,第一输出矩阵中包括i个场景类、j个物体类和k各其他类,三个子网络也对这些图像进行处理,分别输出对应场景类别的第二输出矩阵,子网络b1可以输出i个场景类的第二输出矩阵,子网络b2可以输出j个物体类的第二输出矩阵,子网络b3可以输出k个其他类的第二输出矩阵;

再次,将第一输出矩阵和标签矩阵进行切片划分,其中,对第一输出矩阵进行划分后可以获得到i个场景类的第一切片矩阵,j个物体类的第一切片矩阵和k个其他类的第一切片矩阵;对标签矩阵进行划分后可以获得i个场景类的第二切片矩阵,j个物体类的第二切片矩阵和k个其他类的第二切片矩阵;

再次,根据场景类别计算第二输出矩阵与第一切片矩阵之间的欧式距离,图3中的欧式距离1、欧式距离2和欧式距离3分别是场景类、物体类和其他类对应的欧式距离。然后根据场景类别计算第二输出矩阵与第二切片矩阵之间的第一交叉熵,根据第一输出矩阵和标签矩阵计算第二交叉熵;

最后,将上一步获得的欧式距离、第一交叉熵和第二交叉熵构成总的损失函数,利用该损失函数对深度神经网络中的主网络和子网络中各自的参数进行优化处理,如此按照上述步骤进行循环训练,训练完成后,将主网络对应的模型作为场景识别模型。

本发明实施例通过利用训练数据集对主网络和多个子网络进行训练,获得主网络对应的第一输出矩阵和各子网分别对应的第二输出矩阵,通过各子网络的第二输出矩阵的场景类别分别对第一输出矩阵和标签矩阵进行切片处理,获得第一输出矩阵对应的第一切片矩阵和标签矩阵对应的第二切片矩阵,根据第二输出矩阵、第一切片矩阵和第二切片矩阵计算损失函数,并根据损失函数对深度神经网络中的参数进行优化,获得主网络对应的场景识别模型,由于通过参数空间较大的子网络来对主网络进行训练,从而获得到的场景识别模型在对图像进行场景识别时,能够同时保证高准确率和高召回率。

图4为本发明实施例提供的一种图像处理装置结构示意图,如图4所示,该装置包括:标签矩阵构建模块402、矩阵输出模块404、矩阵划分模块406和参数优化模块408,其中,

标签矩阵构建模块402用于获取训练数据集,并根据所述训练数据集构建标签矩阵;

矩阵输出模块404用于利用所述训练数据集对深度神经网络中的主网络和多个子网络进行训练,获得所述主网络对应的第一输出矩阵和所述子网络分别对应的第二输出矩阵;其中,所述主网络用于对所有场景类别进行识别,每一所述子网络用于对相应的场景类别进行识别;

矩阵划分模块406用于根据各所述子网络对应的场景类别分别对所述第一输出矩阵和所述标签矩阵进行切片划分,获得所述第一输出矩阵对应的第一切片矩阵和所述标签矩阵对应的第二切片矩阵;

参数优化模块408用于根据所述第二输出矩阵、所述第一切片矩阵和所述第二切片矩阵计算损失函数,并根据所述损失函数对所述深度神经网络中的参数进行优化,获得所述主网络对应的场景识别模型。

在上述实施例的基础上,所述参数优化模块,具体用于:

根据所述场景类别计算所述第二输出矩阵和所述第一切片矩阵之间的欧式距离;

根据所述场景类别,利用交叉熵计算公式分别计算所述第二输出矩阵和所述第二切片矩阵之间的第一交叉熵,以及所述第一输出矩阵和所述标签矩阵之间的第二交叉熵;

根据所述欧式距离、所述第一交叉熵和所述第二交叉熵获得所述损失函数。

在上述实施例的基础上,所述参数优化模块,具体用于:

根据计算所述第二输出矩阵中两个行向量之间的欧式距离,获得第一中间矩阵其中dakj为所述第二输出矩阵中第k行向量和第j行向量之间的欧式距离,aki为所述第二输出矩阵中第k行第i个元素值,aji为所述第二输出矩阵中第j行第i个元素值;

根据计算所述第一切片矩阵中两个行向量之间的欧式距离,获得第二中间矩阵其中dbkj为所述第一切片矩阵中第k行向量和第j行向量之间的欧式距离,bki为所述第一切片矩阵中第k行第i个元素值,bji为所述第一切片矩阵中第j行第i个元素值;

根据计算所述第二中间矩阵和第一中间矩阵的中间欧式距离

根据预设超参数和所述中间欧式距离计算获得所述第二输出矩阵和所述第一切片矩阵之间的欧式距离。

在上述实施例的基础上,所述交叉熵公式为:

其中,c为代价,x为训练数据集,z为所述场景类别总数,y为实际值,n为所述训练数据集的总数,a为输出值。

在上述实施例的基础上,所述参数优化模块,具体用于:

将所述欧式距离、所述第一交叉熵和所述第二交叉熵之和作为所述损失函数。

在上述实施例的基础上,所述参数优化模块,具体用于:

根据所述损失函数对所述深度神经网络中的主网络和各子网络中的参数进行优化,并再次利用所述训练数据集对所述深度神经网络进行迭代训练,直到迭代次数达到预设次数为止,获得所述主网络对应的场景识别模型。

在上述实施例的基础上,所述标签矩阵构建模块,具体用于:

对所述训练数据集中图像的场景类别进行标注,获得已标注场景图像,根据所述已标注场景图像构建所述标签矩阵。

在上述实施例的基础上,所述装置,还包括:

识别模块,用于利用所述场景识别模型对待识别图像进行识别处理,获得所述待识别图像对应的场景类别。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。

综上所述,本发明实施例通过利用训练数据集对主网络和多个子网络进行训练,获得主网络对应的第一输出矩阵和各子网分别对应的第二输出矩阵,通过各子网络的第二输出矩阵的场景类别分别对第一输出矩阵和标签矩阵进行切片处理,获得第一输出矩阵对应的第一切片矩阵和标签矩阵对应的第二切片矩阵,根据第二输出矩阵、第一切片矩阵和第二切片矩阵计算损失函数,并根据损失函数对深度神经网络中的参数进行优化,获得主网络对应的场景识别模型,由于通过参数空间较大的子网络来对主网络进行训练,从而获得到的场景识别模型在对图像进行场景识别时,能够同时保证高准确率和高召回率。

本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取训练数据集,并根据所述训练数据集构建标签矩阵;利用所述训练数据集对深度神经网络中的主网络和多个子网络进行训练,获得所述主网络对应的第一输出矩阵和各所述子网络分别对应的第二输出矩阵;其中,所述主网络用于对所有场景类别进行识别,每一所述子网络用于对相应的场景类别进行识别;根据各所述子网络对应的场景类别分别对所述第一输出矩阵和所述标签矩阵进行切片划分,获得所述第一输出矩阵对应的第一切片矩阵和所述标签矩阵对应的第二切片矩阵;根据所述第二输出矩阵、所述第一切片矩阵和所述第二切片矩阵计算损失函数,并根据所述损失函数对所述深度神经网络中的参数进行优化,获得所述主网络对应的场景识别模型。

本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取训练数据集,并根据所述训练数据集构建标签矩阵;利用所述训练数据集对深度神经网络中的主网络和多个子网络进行训练,获得所述主网络对应的第一输出矩阵和各所述子网络分别对应的第二输出矩阵;其中,所述主网络用于对所有场景类别进行识别,每一所述子网络用于对相应的场景类别进行识别;根据各所述子网络对应的场景类别分别对所述第一输出矩阵和所述标签矩阵进行切片划分,获得所述第一输出矩阵对应的第一切片矩阵和所述标签矩阵对应的第二切片矩阵;根据所述第二输出矩阵、所述第一切片矩阵和所述第二切片矩阵计算损失函数,并根据所述损失函数对所述深度神经网络中的参数进行优化,获得所述主网络对应的场景识别模型。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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

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