一种行人重识别的批量处理系统的制作方法

文档序号:19252009发布日期:2019-11-27 20:22阅读:277来源:国知局
一种行人重识别的批量处理系统的制作方法

本发明涉及一种数据技术领域,特别是涉及一种行人重识别的批量处理系统。



背景技术:

行人重识别就是指判断图像或者视频序列中是否存在特定行人的技术。目前比较流行的做法是训练一个深度学习模型,输入是行人图片,输出是一个特征向量,然后根据特征向量的相似性判断是否是同一个人。在终端或服务端进行行人重识别时,通常包括由cpu把每张图片的图像数据读入内存,然后gpu的驱动程序把内存中的图像数据读入显存,gpu使用显存中的图像数据进行计算,并将计算得到的图片特征数据保存在显存中,然后由gpu驱动程序把显存中的图片特征数据读入内存,最后cpu获取内存中的图片特征数据。

在gpu计算之前,需要先把图像从内存搬移到显存中,内存与显存之间的一次数据交换所消耗的时间t由两部分构成:数据交换本身的时间t<data>与额外的准备时间t<ext>,即t=t<data>+t<ext>。假设数据交换量为n,那么t<data>与n的时间复杂度关系为t<data>~o(n),但是t<ext>与n无关,与数据交换的次数有关,其时间复杂度关系为t<ext>~o(1)。如果数据交换量为n且分n次进行交换,则t<data>与n的时间复杂度关系为t<data>~o(n),t<ext>与n的时间复杂度关系为t<ext>~o(n),所以,数据交换所需要的总时间t~o(n)+o(n),所以,当数据交换量n不变时,减小传输次数n,就可以减少总时间t。

由于在计算之前要先把图像数据从内存搬移到gpu可直接访问的显存中,这个搬移处理需要耗费额外的时间,造成当需要处理的行人数量很大时,浪费的时间比较多,不能充分利用gpu的计算能力,导致批量处理行人重识别的速度较慢。



技术实现要素:

有鉴于此,本发明提供一种行人重识别的批量处理系统,主要目的在于解决现有技术中行人重识别的批量处理速度慢的问题。

依据本发明一个方面,提供了一种行人重识别的批量处理系统,包括中央处理器cpu和图形处理器gpu;

所述cpu将待处理图像的图像数据读入内存;

所述cpu将所述图片数据进行矩阵拼接生成批量图像数据,所述批量图像数据保存在所述内存中;

所述gpu将所述批量图像数据读入显存;

所述gpu将所述批量图像数据输入残差神经网络模型,提取所述批量图像数据的批量图像特征,并将所述批量图像特征保存在所述显存中;

所述gpu将所述批量图像特征读入所述内存;

所述cpu将所述批量图像特征分解为与所述待处理图像一一对应的图像特征向量,以便于识别所述待处理图像。

根据本发明的又一方面,提供了一种存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述行人重识别的批量处理系统对应的操作。

根据本发明的再一方面,提供了一种计算机设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述行人重识别的批量处理系统对应的操作。

借由上述技术方案,本发明实施例提供的技术方案至少具有下列优点:

本发明提供了一种行人重识别的批量处理系统,包括中央处理器cpu和图形处理器gpu,首先cpu将待处理图像的图像数据读入内存,然后cpu将所述图片数据进行矩阵拼接生成批量图像数据,然后gpu将所述批量图像数据读入显存,然后gpu将所述批量图像数据输入残差神经网络模型,提取所述批量图像数据的批量图像特征,并将所述批量图像特征保存在所述显存中,然后gpu将所述批量图像特征读入所述内存,最后cpu将所述批量图像特征分解为与所述待处理图像一一对应的图像特征向量,以便于识别所述待处理图像。与现有技术相比,本发明实施例通过将多张图像的数据拼接在一个矩阵一次性读入显存,然后一次性的提取读入显存中的所有图像的图像特征,通过节省传输时间实现行人重识别图像的批处理,提高行人重识别的识别速度。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的一种行人重识别的批量处理系统流程图;

图2示出了本发明实施例提供的另一种行人重识别的批量处理系统流程图;

图3示出了本发明实施例提供的一种计算机设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明实施例提供了一种行人重识别的批量处理系统,如图1所示,该系统包括中央处理器cpu和图形处理器gpu。

中央处理器cpu,是一块超大规模的集成电路,是一台电子设备的运算核心和控制核心,主要用于数据处理。图形处理器gpu,是一种专门用于图像运算工作的微处理器。由于行人重识别实际上是识别图像数据,所以同时使用cpu和gpu处理图像数据,进行行人重识别。

101、cpu将待处理图像的图像数据读入内存。

待处理图像是指需要进行行人重识别的所有图像。cpu将待处理图像的图像数据读入内存,是指cpu将指令传给内存,内存根据指令寻找图像数据及其硬盘存储位置,然后从硬盘中读取图像数据并保存在内存中。

102、cpu将所述图片数据进行矩阵拼接生成批量图像数据,所述批量图像数据保存在所述内存中。

在矩阵拼接之前,需要检测待出图像的图像大小是否相同,如果图像大小相同则直接准备进行拼接,如果图像大小不同则将待处理图像修正为相同大小然后再进行拼接。根据待处理图像的图像大小和显存容量,计算能够同时搬入的最大图像数量。根据待处理图像的数量和最大图像数量,将待处理图像分为一组或多组,然后将每一组中的待处理图像进行矩阵拼接生成批量图像数据。

矩阵拼接是利用编程语言中的矩阵拼接函数实现的,假设单张待处理图像的图像数据是一个c*h*w的矩阵,矩阵拼接是指将属于同一组的n张待处理图像合并到同一个矩阵中,属于同一组的n张待处理图像按照第一轴进行拼接。

103、gpu将所述批量图像数据读入显存。

gpu将品图像数据读入显存,是指将一组待处理图像进行矩阵拼接生成的批量图像数据存入显存。如果待处理图像被分为多组,那么需要经过多次读入。

从硬件层面来说,一般是通过pci-e总线在内存和显存之间进行数据交换,从软件层面来说一般是应用软件调用gpu的驱动程序完成数据交换。gpu比较擅长进行单指令多数据计算,比如同时进行1000次乘法运算所需时间可能只有10次乘法运算所需时间的2倍,而不是100倍,所以能够让gpu一次进行的同样运算越多,带来的计算时间节省的收益就会越高。在行人重识别过程中,需要提取待处理图像的图像特征,在提取图像特征的过程中存在大量的加法和乘法运算,所以一次处理的行人图像数量越多,那么能够同时进行的乘法或加法运算的数量也越多,节省的时间也越多。

104、gpu将所述批量图像数据输入残差神经网络模型,提取所述批量图像数据的批量图像特征,并将所述批量图像特征保存在所述显存中。

残差神经网络模型,是指具有残差结构的神经网络模型,残差结构可以加速神经网络的训练,同时提供模型的准确率。在提取批量图像特征后,通过softmax损失函数修正残差神经网络模型的模型参数,以提高提取批量图像特征的准确性。批量图像特征是批量图像数据对应的图像特征,包括经过矩阵拼接的所有待处理图像的特性特征。

105、gpu将所述批量图像特征读入所述内存。

当显存中的批量图像特征读入内存后,如果还有未处理的批量图像数据,则继续执行步骤103,也就是重复执行步骤103、步骤104和步骤105,直至提取所有待处理图像的批量图像特征。

106、cpu将所述批量图像特征分解为与所述待处理图像一一对应的图像特征向量,以便于识别所述待处理图像。

与矩阵拼接相对应,在本步骤中对批量图像特征进行矩阵拼接的逆运算,获取与待处理图像一一对应的图像特征向量。

本发明提供了一种行人重识别的批量处理系统,包括中央处理器cpu和图形处理器gpu,首先cpu将待处理图像的图像数据读入内存,然后cpu将所述图片数据进行矩阵拼接生成批量图像数据,然后gpu将所述批量图像数据读入显存,然后gpu将所述批量图像数据输入残差神经网络模型,提取所述批量图像数据的批量图像特征,并将所述批量图像特征保存在所述显存中,然后gpu将所述批量图像特征读入所述内存,最后cpu将所述批量图像特征分解为与所述待处理图像一一对应的图像特征向量,以便于识别所述待处理图像。与现有技术相比,本发明实施例通过将多张图像的数据拼接在一个矩阵一次性读入显存,然后一次性的提取读入显存中的所有图像的图像特征,通过节省传输时间实现行人重识别图像的批处理,提高行人重识别的识别速度。

本发明实施例提供了另一种行人重识别的批量处理系统,如图2所示,该系统包括中央处理器cpu和图形处理器gpu。

中央处理器cpu,是一块超大规模的集成电路,是一台电子设备的运算核心和控制核心,主要用于数据处理。图形处理器gpu,是一种专门用于图像运算工作的微处理器。由于行人重识别实际上是识别图像数据,所以同时使用cpu和gpu处理图像数据,进行行人重识别。

201、cpu将待处理图像的图像数据读入内存。

用于保存待处理图像的内存容量是有限的,当待处理图像较多超出内存容量时,需要将待处理图像分批导入内存。由于本方案的关键点在于读入显存之后如何采用gpu处理数据,而且内存容量通常比显存容量大,所以对由于内存不足导致的分批处理待处理图像的情况不做详细分析。

202、cpu将所述图片数据进行矩阵拼接生成批量图像数据,所述批量图像数据保存在所述内存中。

在矩阵拼接之前,需要检测待出图像的图像大小是否相同,如果图像大小相同则直接准备进行拼接,如果图像大小不同则将待处理图像修正为相同大小然后再进行拼接。具体拼接过程包括:获取批量识别参数,所述批量识别参数包括显存容量、图像尺寸、节点数量和特征向量维数;根据所述批量识别参数,从所述待处理图像中选取待拼接图像;按照第一轴拼接所述待拼接图像,生成所述批量图像数据。

显存容量,是由硬件配置决定的,是固定值,如128mb、256mb、512mb、1024mb等等。图像尺寸,是指提取图像特征所采用的神经网络模型的输入矩阵大小。节点数量,是指提取图像特征所采用的神经网络模型的节点个数,在提取图像特征过程中各个节点之间的计算参数是共享的,但是用于保存计算记过的临时存储区是不能共享的,所以节点数量也是选取待拼接图像的参数。特征向量维数,是指输出矩阵的大小。如果有n张待处理图像就要有n倍的临时存储区,而临时存储区的大小与网络节点数成正比。特征向量维数也类似,n张待处理图像就会有n个输出特征向量需要存储。所以图像尺寸、节点数量、特征向量维数对n的影响是并列的。

根据批量识别参数选取待拼接图像,具体包括:根据所述批量识别参数,按照预置计算规则计算拼接图片数量,所述预置计算规则为n≈m/(c*h*w*s1+n*s2+f*s3),其中m为所述显存容量,c*h*w为所述图像尺寸,s1为所述图像尺寸的单位存储容量,n为所述节点数量,s2为所述节点数量的单位容量,f为所述特征向量维度,s3为所述特征向量维度的单位容量;判断所述待处理图像的数量是否大于所述拼接图片数量;如果判断结果为否,则确定全部的所述待处理图像为待拼接图像;如果判断结果为是,则按照所述待处理图像读入顺序,从所述待处理图像中选取所述待拼接图片数量的第一待拼接图像,并将剩余的所述待处理图像重新确定为所述待处理图像。其中s1、s2和s3的取值根据所选取的数据格式而定,比如使用单精度浮点数时取值为4,使用双精度浮点数时取值为8。在实际工作过程中,需要在显存中额外的预留空间,以保证系统的正常运行,但是预留空间对拼接图像数据的计算结果影响很小,所以在此忽略预留空间对拼接图像数量的影响。

按照第一轴拼接生成批量图像数据,具体包括:在当前使用的编程语言的所能提供的函数中,查找拼接函数,所述拼接函数能够按照第一轴拼接所述待拼接图像;将所述待拼接图像输入所述拼接函数,生成所述批量图像数据。单张待处理图像的的特征向量为1*f的矩阵,如果按照第零轴拼接,由于f维向量的大小是不确定的,所以拆分时需要不断的更改拆分参数,不利于快速拆分单张图像的特征向量,如果按照第一轴拼接由于单张图像的特征向量的矩阵行数都为1,所以拆分时遍历第一轴即可取出与各个单张图像对象的特征向量。综上,为了便于拆分,所以在拼接待处理图像的图像数据时,按照第一轴进行拼接。

203、gpu将所述批量图像数据读入显存。

204、gpu将所述批量图像数据输入残差神经网络模型,提取所述批量图像数据的批量图像特征,并将所述批量图像特征保存在所述显存中。

在使用残差神经网络模型提取批量图像特征之前,还包括:所述gpu将训练图像输入所述残差神经网络模型,计算所述训练数据的训练特征向量;所述gpu根据预置损失函数,计算所述训练特征向量和所述训练图像的实际特征向量的偏差值;所述gpu根据所述偏差值,计算反馈调优参数;所述gpu根据所述反馈调优参数,修正所述残差神经网络模型。在输入训练数据之前,还包括:所述cpu将所述训练图像的图像数据进行矩阵拼接,生成训练图像数据。

残差神经网络是一种深度卷积神经网络,与其他人工神经元网络类似,相当于一种从输入矩阵到输出矩阵的映射函数,在训练阶段通过大量样本,通过监督式学习,找到使得偏差值最小的参数,并且采用该参数提取批量图像特征。提取后的批量图像特征保存在显存中。

205、gpu将所述批量图像特征读入所述内存。

206、cpu将所述批量图像特征分解为与所述待处理图像一一对应的图像特征向量,以便于识别所述待处理图像。

批量图像特征的分解方式与矩阵拼接的方法想对应,具体包括:遍历所述批量图像特征的第一轴,依次提取所述批量图像特征的每一行的行向量,所述行向量即为与所述待处理图像一一对应的图像特征向量。

也就是将批量图像特征按行提取,从第0行开始,每次提取一行数据作为一张待处理图像的图像特征向量。提取到的图像特征向量的顺序与矩阵拼接的待处理图像的拼接顺序相同。

207、cpu计算目标行人的特征向量与所述图像特征向量的相似度分数。

相似度分数可以是余弦相似度分数,能够度量目标行人的特征向量和图像特征向量的差异。

208、cpu如果所述相似度分数大于预置阈值,则所述目标行人与所述待处理图像为同一行人。

判断待处理图像与目标行人是否为同一行人,以便于追踪带处理图像中的特定行人。

本发明提供了一种行人重识别的批量处理系统,包括中央处理器cpu和图形处理器gpu,首先cpu将待处理图像的图像数据读入内存,然后cpu将所述图片数据进行矩阵拼接生成批量图像数据,然后gpu将所述批量图像数据读入显存,然后gpu将所述批量图像数据输入残差神经网络模型,提取所述批量图像数据的批量图像特征,并将所述批量图像特征保存在所述显存中,然后gpu将所述批量图像特征读入所述内存,最后cpu将所述批量图像特征分解为与所述待处理图像一一对应的图像特征向量,以便于识别所述待处理图像。与现有技术相比,本发明实施例通过将多张图像的数据拼接在一个矩阵一次性读入显存,然后一次性的提取读入显存中的所有图像的图像特征,通过节省传输时间实现行人重识别图像的批处理,提高行人重识别的识别速度。

根据本发明一个实施例提供了一种存储介质,所述存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意实施例中的行人重识别的批量处理系统。

图3示出了根据本发明一个实施例提供的一种计算机设备的结构示意图,本发明具体实施例并不对计算机设备的具体实现做限定。

如图3所示,该计算机设备可以包括:处理器(processor)302、通信接口(communicationsinterface)304、存储器(memory)306、以及通信总线308。

其中:处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。

通信接口304,用于与其它设备比如客户端或其它服务器等的网元通信。

处理器302,用于执行程序310,具体可以执行上述行人重识别的批量处理系统实施例中的相关步骤。

具体地,程序310可以包括程序代码,该程序代码包括计算机操作指令。

处理器302可能是中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算机设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。

存储器306,用于存放程序310。存储器306可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

程序310具体可以用于使得处理器302执行以下操作:

包括中央处理器cpu和图形处理器gpu;

所述cpu将待处理图像的图像数据读入内存;

所述cpu将所述图片数据进行矩阵拼接生成批量图像数据,所述批量图像数据保存在所述内存中;

所述gpu将所述批量图像数据读入显存;

所述gpu将所述批量图像数据输入残差神经网络模型,提取所述批量图像数据的批量图像特征,并将所述批量图像特征保存在所述显存中;

所述gpu将所述批量图像特征读入所述内存;

所述cpu将所述批量图像特征分解为与所述待处理图像一一对应的图像特征向量,以便于识别所述待处理图像。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

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