一种图像特征提取的方法、系统、设备及可读存储介质与流程

文档序号:22131513发布日期:2020-09-08 12:58阅读:98来源:国知局
一种图像特征提取的方法、系统、设备及可读存储介质与流程

本申请涉及图像特征提取领域,特别涉及一种图像特征提取的方法、系统、设备及可读存储介质。



背景技术:

随着科学技术的发展,机器学习在众多领域里都有涉及,深度学习作为机器学习领域最前沿的分支,在近几年也得到了飞速发展。卷积神经网络模型是深度学习中应用较为广泛的一种算法模型,在图像特征提取模型中通常以卷积神经网络模型作为主干。

然而随着卷积神经网络的复杂度不断提高,计算量也越来越大,但是计算机资源存在限制,导致图像特征提取的速度慢。

因此,如何提高图像特征提取的速度是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本申请的目的是提供一种图像特征提取的方法、系统、设备及可读存储介质,用于提高图像特征提取的速度。

为解决上述技术问题,本申请提供一种图像特征提取的方法,该方法包括:

获取图像矩阵、卷积核及卷积特性参数;

根据所述卷积核的阶数及所述卷积特性参数对所述图像矩阵进行数据调度,得到第一待乘矩阵;

将所述卷积核转换为第二待乘矩阵,并确定所述第一待乘矩阵与所述第二待乘矩阵的乘积为所述图像矩阵的特征矩阵。

可选的,根据所述卷积核的阶数及所述卷积特性参数对所述图像矩阵进行数据调度,得到第一待乘矩阵,包括:

根据公式计算所述第一待乘矩阵与所述第二待乘矩阵的乘积的维度;

根据公式计算所述第一待乘矩阵中第j列第i块在所述图像矩阵中的地址;

按照所述地址从所述图像矩阵中获取对应的元素在所述第一待乘矩阵中进行排列;

其中,colij为所述第一待乘矩阵中第j列第i块在所述图像矩阵中的地址,m为所述图像矩阵的阶数,s为卷积运算时的步长,f为所述卷积核的阶数,o为所述第一待乘矩阵与所述第二待乘矩阵的乘积的维度。

可选的,在根据公式计算所述第一待乘矩阵与所述第二待乘矩阵的乘积的维度之前,还包括:

根据公式m=n+2p计算所述图像矩阵的阶数;

其中,n为所述图像矩阵执行补零操作前的阶数,p为补零操作所补的0的圈数。

可选的,所述获取图像矩阵、卷积核及卷积特性参数,包括:

获取图像集,并调用matlab工具将所述图像集中的每一张图像转化为对应的图像矩阵。

本申请还提供一种图像特征提取的系统,该系统包括:

获取模块,用于获取图像矩阵、卷积核及卷积特性参数;

数据调度模块,用于根据所述卷积核的阶数及所述卷积特性参数对所述图像矩阵进行数据调度,得到第一待乘矩阵;

确定模块,用于将所述卷积核转换为第二待乘矩阵,并确定所述第一待乘矩阵与所述第二待乘矩阵的乘积为所述图像矩阵的特征矩阵。

可选的,所述数据调度模块包括:

第一计算子模块,用于根据公式计算所述第一待乘矩阵与所述第二待乘矩阵的乘积的维度;

第二计算子模块,用于根据公式计算所述第一待乘矩阵中第j列第i块在所述图像矩阵中的地址;

排列子模块,用于按照所述地址从所述图像矩阵中获取对应的元素在所述第一待乘矩阵中进行排列;

其中,colij为所述第一待乘矩阵中第j列第i块在所述图像矩阵中的地址,m为所述图像矩阵的阶数,s为卷积运算时的步长,f为所述卷积核的阶数,o为所述第一待乘矩阵与所述第二待乘矩阵的乘积的维度。

可选的,所述数据调度模块还包括:

第三计算子模块,用于根据公式m=n+2p计算所述图像矩阵的阶数;

其中,n为所述图像矩阵执行补零操作前的阶数,p为补零操作所补的0的圈数。

可选的,所述获取模块包括:

获取子模块,用于获取图像集,并调用matlab工具将所述图像集中的每一张图像转化为对应的图像矩阵。

本申请还提供一种图像特征提取设备,该图像特征提取设备包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述任一项所述图像特征提取的方法的步骤。

本申请还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述图像特征提取的方法的步骤。

本申请所提供图像特征提取的方法,包括:获取图像矩阵、卷积核及卷积特性参数;根据卷积核的阶数及卷积特性参数对图像矩阵进行数据调度,得到第一待乘矩阵;将卷积核转换为第二待乘矩阵,并确定第一待乘矩阵与第二待乘矩阵的乘积为图像矩阵的特征矩阵。

本申请所提供的技术方案,通过根据卷积核的阶数及卷积特性参数对图像矩阵进行数据调度,得到第一待乘矩阵,然后将卷积核转换为第二待乘矩阵,并计算第一待乘矩阵与第二待乘矩阵的乘积,最后确定乘积为图像矩阵的处理结果,使得整个卷积计算过程不需要进行数据查表,而是直接根据卷积核的阶数及卷积特性参数进行数据调度,极大的提高了图像特征提取的速度。本申请同时还提供了一种图像特征提取的系统、设备及可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

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

图1为本申请实施例所提供的一种图像特征提取的方法的流程图;

图2为本申请实施例所提供的一种图像特征提取的系统的结构图;

图3为本申请实施例所提供的另一种图像特征提取的系统的结构图;

图4为本申请实施例所提供的一种图像特征提取设备的结构图。

具体实施方式

本申请的核心是提供一种图像特征提取的方法、系统、设备及可读存储介质,用于提高图像特征提取的速度。

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

以图像特征提取的cnn为例,其中的卷积运算如下所示:

其中假设输入的待卷积运算的数据矩阵为

卷积运算的卷积核为

其中h为输入的图像矩阵,常见为32*32到224*224甚至其他大小不等,f为进行运算的卷积核常见为2*2到7*7甚至其他大小不等,使用gemm算法时先要将输入的h和f分别转换为可以进行矩阵乘积的形式,对于h来说,就是把会与f相乘并且结果累加起来的元素展开成连续的一行或一列,这个展开过程要考虑卷积核f滑动的特征。gemm展开成列或行的方法,分别被称为im2col方法和im2row方法。以上述为例,展开为列的im2col方法可以描述为:

im2row方法与im2col方法类似,基于这种方法展开的运算,可以直接按照行或列进行并行乘加运算,降低运算的复杂度,提高运算的速度和吞吐率,然而常见im2col和im2row方法,是将h矩阵对应的元素数据利用查找表的方式,重新排序,然后根据不同的设计需求进行并行乘加运算,其中h矩阵对应的元素数据在总的数据量较少时,可以通过简单的查找表查找得到,但是在数据量较大时,对应的查找表就会变得巨大,并且不同的卷积核和卷积特性(如步长,补零),也会影响不同的行列排序的h矩阵的生成,使得查找表的生成更加复杂。

故本申请提供了一种图像特征提取的方法,用于解决上述问题。

请参考图1,图1为本申请实施例所提供的一种图像特征提取的方法的流程图。

其具体包括如下步骤:

s101:获取图像矩阵、卷积核及卷积特性参数;

这里提到的卷积特性参数可以包括但不限于图像矩阵的阶数、卷积运算时的步长、卷积核的阶数等参数,本申请对此不做具体限定;

可选的,这里提到的图像矩阵可以通过用户直接输入的方式获取,也可以通过连接到服务器指定位置下载得到,还可以通过执行如下步骤实现,即获取图像矩阵、卷积核及卷积特性参数,其具体可以为:

获取图像集,并调用matlab工具将图像集中的每一张图像转化为对应的图像矩阵。

s102:根据卷积核的阶数及卷积特性参数对图像矩阵进行数据调度,得到第一待乘矩阵;

在本步骤中,对图像矩阵进行数据调度的目的在于,令得到的第一待乘矩阵能够直接与第二待乘矩阵相乘,进而可以直接按照行或列进行并行乘加运算,降低了运算的复杂度,提高了乘加运算的速度和吞吐率;

可选的,这里提到的根据卷积核的阶数及卷积特性参数对图像矩阵进行数据调度,得到第一待乘矩阵,其具体可以为:

根据公式计算第一待乘矩阵与第二待乘矩阵的乘积的维度;

根据公式计算第一待乘矩阵中第j列第i块在图像矩阵中的地址;

按照地址从图像矩阵中获取对应的元素在第一待乘矩阵中进行排列;

其中,colij为第一待乘矩阵中第j列第i块在图像矩阵中的地址,m为图像矩阵的阶数,s为卷积运算时的步长,f为卷积核的阶数,o为第一待乘矩阵与第二待乘矩阵的乘积的维度。

这里以im2col方法为例,为实现快速并行化运算,首先对输入的图像矩阵中每个像素位置进行顺序编号,代表每个像素的位置地址,以下面运算为例:

这里待卷积运算的图像矩阵的大小为3*3,则顺序编号,分别代表1~9个地址的待运算数据。

第一步:计算卷积运算应该输出的矩阵大小,也就是第一待乘矩阵与第二待乘矩阵的乘积的维度在本实施例中输出的矩阵大小为

第二步:生成第一列第一块的im2col待乘运算像素地址为:这里的f即是卷积核大小,在本实施例中f=2;

同理,第一列第二块的im2col待乘运算像素地址为直到第一列第f块的im2col待乘运算像素地址为至此为止,第一列im2col运算像素地址产生完毕,即第一列第i块在图像矩阵中的地址为其中,i≤f;

第三步:根据第一列的运算地址产生第二列运算地址:

依次按照第二步运算,直至产生o列的运算地址:

第四步,产生第o+1列到第2o列的运算地址:

依照第二步方法直至产生第2o列的运算地址:这里需要说明的是,由于输出的矩阵大小为o,则第一待乘矩阵总共有o2个列,且中间相隔o个列的列中元素的地址相差m,因此可以根据确定第一待乘矩阵中第j列第i块在图像矩阵中的地址为

进一步的,当图像矩阵执行过补零操作时,在根据公式计算第一待乘矩阵与第二待乘矩阵的乘积的维度之前,还可以根据公式m=n+2p计算图像矩阵的阶数;

其中,n为图像矩阵执行补零操作前的阶数,p为补零操作所补的0的圈数。

基于上述实施例,本申请可以快速定位卷积运算中的每一个算子地址,并进行调用以完成并行乘加卷积运算,针对不同输入矩阵和不同卷积核参数,对应不同的输出需求,均可通过同一种算法均可快速产生地址定位,且可满足任何卷积运算并行量的需求,迅速定位需要进行并行乘加运算的像素地址。

s103:将卷积核转换为第二待乘矩阵,并确定第一待乘矩阵与第二待乘矩阵的乘积为图像矩阵的特征矩阵。

基于上述技术方案,本申请所提供的一种图像特征提取的方法,通过根据卷积核的阶数及卷积特性参数对图像矩阵进行数据调度,得到第一待乘矩阵,然后将卷积核转换为第二待乘矩阵,并计算第一待乘矩阵与第二待乘矩阵的乘积,最后确定乘积为图像矩阵的处理结果,使得整个卷积计算过程不需要进行数据查表,而是直接根据卷积核的阶数及卷积特性参数进行数据调度,极大的提高了图像特征提取的速度。

请参考图2,图2为本申请实施例所提供的一种图像特征提取的系统的结构图。

该系统可以包括:

获取模块100,用于获取图像矩阵、卷积核及卷积特性参数;

数据调度模块200,用于根据卷积核的阶数及卷积特性参数对图像矩阵进行数据调度,得到第一待乘矩阵;

确定模块300,用于将卷积核转换为第二待乘矩阵,并确定第一待乘矩阵与第二待乘矩阵的乘积为图像矩阵的特征矩阵。

请参考图3,图3为本申请实施例所提供的另一种图像特征提取的系统的结构图。

该数据调度模块200可以包括:

第一计算子模块,用于根据公式计算第一待乘矩阵与第二待乘矩阵的乘积的维度;

第二计算子模块,用于根据公式计算第一待乘矩阵中第j列第i块在图像矩阵中的地址;

排列子模块,用于按照地址从图像矩阵中获取对应的元素在第一待乘矩阵中进行排列;

其中,colij为第一待乘矩阵中第j列第i块在图像矩阵中的地址,m为图像矩阵的阶数,s为卷积运算时的步长,f为卷积核的阶数,o为第一待乘矩阵与第二待乘矩阵的乘积的维度。

该数据调度模块200还可以包括:

第三计算子模块,用于根据公式m=n+2p计算图像矩阵的阶数;

其中,n为图像矩阵执行补零操作前的阶数,p为补零操作所补的0的圈数。

该获取模块100可以包括:

获取子模块,用于获取图像集,并调用matlab工具将图像集中的每一张图像转化为对应的图像矩阵。

由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

请参考图4,图4为本申请实施例所提供的一种图像特征提取设备的结构图。

该图像特征提取设备400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对装置中的一系列指令操作。更进一步地,处理器422可以设置为与存储介质430通信,在图像特征提取设备400上执行存储介质430中的一系列指令操作。

图像特征提取设备400还可以包括一个或一个以上电源424,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,和/或,一个或一个以上操作系统441,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上述图1所描述的图像特征提取的方法中的步骤由图像特征提取设备基于该图4所示的结构实现。

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

在本申请所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

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

以上对本申请所提供的一种图像特征提取的方法、系统、设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

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

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