1.本技术实施例涉及计算机技术领域,涉及但不限于一种数据处理方法及装置。
背景技术:2.在车联网场景中,对视频的时延要求较高,时延是视频处理过程中最重要的因素。
3.在对视频进行处理时,由于视频解码后的数据量较大,导致视频数据的预处理以及神经网络推理都比较耗时。相关技术为解决数据处理时间较长的问题,将数据预处理和神经网络推理全部放在中央处理器(central processing unit,cpu)上进行,或将神经网络推理中的部分处理移至图形处理器(graphics processing unit,gpu)上进行加速,但是,这些方法都无法满足低时延的要求。
技术实现要素:4.基于相关技术中存在的问题,本技术实施例提供一种数据处理方法及装置。
5.本技术实施例的技术方案是这样实现的:
6.本技术实施例提供一种数据处理方法,所述方法包括:
7.第二处理单元获取来自第一处理单元的第一数据,对所述第一数据进行预处理,得到待处理数据;
8.将所述待处理数据输入处理模块,得到处理结果,待所述第一处理单元调取,其中,所述处理模块中包含算法模型。
9.在一些实施例中,若所述处理模块包括多个处理子模块,利用流水线并行方式在各个所述处理子模块中处理所述待处理数据。
10.在一些实施例中,所述预处理至少包括:数据解码;
11.对所述第一数据进行预处理之前,所述方法还包括:根据所述第一数据初始化显存池。
12.在一些实施例中,所述第一数据为第一视频数据,
13.则所述第一视频数据经过数据解码后得到的待处理数据为待处理图像;
14.则所述根据所述第一数据初始化显存池,包括:
15.根据所述第一视频数据的尺寸,确定所述显存池中的显存大小,所述显存大小与所述尺寸对应。
16.在一些实施例中,所述预处理,还包括:缩放处理;
17.获得所述待处理图像后,所述方法还包括:对所述待处理图像的尺寸进行缩放,使缩放后的尺寸满足待输入的所述处理子模块的尺寸要求。
18.在一些实施例中,所述处理子模块包括目标检测模块、特征检测模块、目标跟踪模块和数据融合模块;
19.相应的,将所述待处理数据输入处理模块,得到处理结果,包括:
20.将所述待处理图像依次输入所述目标检测模块、所述特征检测模块、所述目标跟
踪模块和所述数据融合模块,得到处理结果。
21.在一些实施例中,所述将所述待处理图像依次输入所述目标检测模块、特征检测模块,目标跟踪模块和数据融合模块,得到处理结果,包括:
22.将所述待处理图像输入所述目标检测模块,对所述待处理图像进行目标检测,得到具有目标检测对象的检测图像,并将所述检测图像发送至所述特征检测模块;
23.对所述特征检测模块中的检测图像进行目标特征提取,确定所述目标检测对象的特征信息,得到具有特征信息的特征图像,并将所述特征图像发送至所述目标跟踪模块;
24.根据所述特征信息,对所述目标跟踪模块中特征图像的目标检测对象进行目标跟踪,得到目标跟踪信息,并将具有所述目标跟踪信息的跟踪图像发送至所述数据融合模块;
25.对所述数据融合模块中跟踪图像中的目标跟踪信息和所述目标检测对象的特征信息进行数据融合,得到具有目标检测对象融合信息的目标图像;
26.将具有目标检测对象融合信息的所述目标图像确定为所述处理结果。
27.在一些实施例中,所述对所述待处理图像进行目标检测,得到具有目标检测对象的检测图像,包括:
28.对所述待处理图像进行目标检测,得到至少一个目标检测对象和每一所述目标检测对象对应的至少一个检测框;
29.通过非极大值抑制算法,对每一所述目标检测对象对应的至少一个检测框进行置信度计算,得到每一检测框的置信度数值;
30.将置信度数值最高的检测框,确定为每一所述目标检测对象对应的目标检测框;
31.将具有所述目标检测框的待处理图像确定为具有目标检测对象的检测图像。
32.在一些实施例中,所述对所述特征检测模块中的检测图像进行目标特征提取,确定所述目标检测对象的特征信息,得到具有特征信息的特征图像,包括:
33.根据所述目标检测对象对应的目标检测框,依次对检测图像中的所述目标检测对象进行裁剪,得到剪裁图像和所述剪裁图像对应的图像大小;
34.对所述剪裁图像中的目标检测对象进行特征提取,得到所述目标检测对象的位置和类别;
35.将具有所述位置和所述类别的检测图像,确定为所述特征图像。
36.本技术实施例提供一种数据处理装置,所述装置包括:
37.获取单元,用于第二处理单元获取来自第一处理单元的第一数据,对所述第一数据进行预处理,得到待处理数据;
38.处理单元,用于将所述待处理数据输入处理模块,得到处理结果,待所述第一处理单元调取,其中,所述处理模块中包含算法模型。
39.本技术实施例提供的数据处理设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本技术实施例所述的数据处理方法。
40.本技术实施例提供的计算机可读存储介质,其上存储有可执行指令,用于引起处理器执行所述可执行指令时,实现本技术实施例提供的所述的数据处理方法。
41.本技术实施例提供一种计算机程序产品,所述计算机程序产品包括可执行指令,所述可执行指令存储在计算机可读存储介质中;当数据处理设备的处理器从所述计算机可
读存储介质读取所述可执行指令,并执行所述可执行指令时,实现上述数据处理方法。
42.本技术实施例提供的数据处理方法及装置,通过第二处理单元获取来自第一处理单元的第一数据,对所述第一数据进行预处理,得到待处理数据;将所述待处理数据输入处理模块,得到处理结果,待所述第一处理单元调取。使得本技术实施例通过第二处理单元对数据进行预处理和ai推理,避免了数据在第二处理单元和第一处理单元之间进行多次拷贝,提高了数据处理效率,节约了带宽,减少了数据时延。
附图说明
43.图1是本技术实施例提供的数据处理方法的应用场景示意图;
44.图2是本技术实施例提供的数据处理方法的一个可选的流程示意图;
45.图3是本技术实施例提供的流水线并行方式示意图;
46.图4是本技术实施例提供的数据处理方法的一个可选的流程示意图;
47.图5是本技术实施例提供的解码模块和处理模块示意图;
48.图6是本技术实施例提供的视频解码流程示意图;
49.图7是本技术实施例提供的目标检测流程示意图;
50.图8是本技术实施例提供的特征提取流程示意图;
51.图9是本技术实施例提供的目标跟踪流程示意图;
52.图10是本技术实施例提供的数据融合流程示意图;
53.图11是本技术实施例提供的数据处理装置的组成结构示意图;
54.图12是本技术实施例提供的数据处理设备的组成结构示意图。
具体实施方式
55.为了更清楚地阐述本技术实施例的目的、技术方案及优点,以下将结合附图对本技术实施例的实施例进行详细的说明。应当理解,下文对于实施例的描述旨在对本技术实施例的总体构思进行解释和说明,而不应当理解为是对本技术实施例的限制。在说明书和附图中,相同或相似的附图标记指代相同或相似的部件或构件。为了清晰起见,附图不一定按比例绘制,并且附图中可能省略了一些公知部件和结构。
56.在一些实施例中,除非另外定义,本技术实施例使用的技术术语或者科学术语应当为本技术实施例所属领域内具有一般技能的人士所理解的通常意义。本技术实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。措词“一”或“一个”不排除多个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”、“顶”或“底”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。当诸如层、膜、区域或衬底之类的元件被称作位于另一元件“上”或“下”时,该元件可以“直接”位于另一元件“上”或“下”,或者可以存在中间元件。
57.在车联网场景中,视频的ai处理流程为拉取视频流、视频解码、ai处理、视频编码及推送。由于视频解码后的数据量较大、导致视频数据的预处理以及神经网络推理都比较
耗时,相关技术将视频的ai处理流程全部在cpu上进行,或将网络推理的部分处理移至gpu上进行加速,但都无法完全满足低时延要求。基于相关技术中存在的问题,本技术实施例提供一种数据处理方法,通过第二处理单元获取来自第一处理单元的第一数据,对所述第一数据进行预处理,得到待处理数据;将所述待处理数据输入处理模块,得到处理结果,待所述第一处理单元调取。使得本技术实施例通过第二处理单元对数据进行预处理和ai推理,避免了数据在第二处理单元和第一处理单元之间进行多次拷贝,提高了数据处理效率,节约了带宽,减少了数据时延。
58.本技术实施例提供的数据处理方法可以由数据处理设备等电子设备执行,其中电子设备可以是笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端,也可以实施为服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
59.下面,将说明数据处理设备实施为服务器时的示例性应用,将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
60.图1是本技术实施例提供的数据处理方法的应用场景示意图。本技术实施例提供的数据处理系统10中包括第一处理单元100、网络200和第二处理单元300,在进行数据处理时,第二处理单元300可以采用本技术实施例提供的方法,通过网络200获取第一处理单元100中的第一数据,对第一数据进行预处理,得到待处理数据,将待处理数据输入第二处理单元300中的处理模块,得到处理结果,待所述第一处理单元调取。
61.参见图2,图2是本技术实施例提供的数据处理方法的一个可选的流程示意图,本技术实施例提供的数据处理方法可以通过步骤s201至步骤s203实现:
62.步骤s201、第二处理单元获取来自第一处理单元的第一数据,对所述第一数据进行预处理,得到待处理数据。
63.这里,第二处理单元可以是gpu,第一处理单元可以是cpu,gpu获取来自cpu的第一数据,第一数据可以是视频数据。
64.在一些实施例中,对第一数据进行预处理可以是进行数据解码处理,可以通过解码模块实现。这里,可以采用硬解码进行数据的解码加速,硬解码是通过硬件实现的解码,gpu来对视频数据进行解码工作,cpu占用率很低。
65.在一些实施例中,对第一视频数据进行数据解码处理之前,要根据第一视频数据初始化显存池,即根据第一视频数据的尺寸,在显存池中确定出与第一视频数据的尺寸对应的显存大小。这里,获取第一视频数据,根据第一视频数据创建实例,每个实例对应一个显存池,解析这路视频的尺寸(宽和高),初始化显存池。例如,拉取第一视频数据a,创建a实例,解析a实例视频中每一帧图像像素的宽和高(这里,视频中每帧都是一样的尺寸),从显存中取出一部分显存作为a实例的显存池,并且该显存池中每块显存的大小是宽
×
高
×
通道数(其中,rgb图像是三通道,cmyk是四通道)。例如,a实例的视频的宽和高是1920
×
1080,通道数为3,则a实例的显存池中每块显存的大小是1920
×
1080
×
3。
66.在初始化显存池之后,向处理单元注册资源执行环境,处理模块为每一路第一视
频数据构造独立的执行环境,并在执行环境与处理模块之间创建一个映射关系,在视频解码之后,根据该映射关系将解码后的视频发送至处理模块。这里,处理模块包括多个处理子模块,利用流水线并行方式在各个处理子模块中处理待处理数据。这里,处理模块可以是人工智能(artificial intelligence,ai)推理模块。
67.在一些实施例中,gpu获取来自cpu的第一视频数据之后,将视频数据放入数据解码队列中,这里,获取的第一视频数据为压缩数据。在处理模块为第一视频数据构造出独立的执行环境之后,取出数据解码队列中的第一视频数据,通过硬解码进行解码加速,得到待处理图像,将待处理图像确定为数据解码后得到的待处理数据。
68.在一些实施例中,通过数据解码得到待处理图像之后,确定显存池中是否具有空闲显存,如果具有空闲显存,取出与第一视频数据的尺寸对应的显存块存储解码后的待处理图像,并封装具有待处理图像的显存和执行环境,将封装后的数据放入处理模块的队列中。
69.在一些实施例中,将封装后的数据放入处理模块的队列之后,可以向处理模块注销之前注册的资源执行环境,接触映射关系等。
70.在一些实施例中,预处理还可以是缩放处理。在获得待处理图像后,对待处理图像的尺寸进行缩放,使缩放后的尺寸满足待输入的所述处理子模块的尺寸要求。例如,处理子模块要求输入的待处理图像的尺寸为1920
×
1080,则需要在获得待处理图像后,对待处理图像的尺寸进行缩放,使得待处理图像的尺寸为1920
×
1080。
71.步骤s202、将所述待处理数据输入处理模块,得到处理结果,待所述第一处理单元调取,其中,所述处理模块中包含算法模型。
72.在一些实施例中,处理模块包括多个处理子模块,利用流水线并行方式在各个处理子模块中处理待处理数据。这里,也可以根据待处理数据的优先级来对待处理数据进行处理,也可以是串行处理各个处理子模块中的待处理数据。
73.在一些实施例中,以车联网中的目标检测跟踪为例,处理子模块包括目标检测模块、特征检测模块、目标跟踪模块和数据融合模块,将待处理数据输入处理模块得到处理结果可以是,将待处理图像依次输入目标检测模块、特征检测模块,目标跟踪模块和数据融合模块,得到处理结果。
74.本技术实施例提供的处理模块不仅可以是车联网场景中的目标检测跟踪,还可以实现其他的ai推理,本技术实施例不做限制。
75.需要说明的是,目标检测模块可以用于对待处理数据进行目标检测,即对待处理图像进行目标检测,进行目标检测可以是指检测待处理图像中的车辆。特征检测模块用于对待处理图像中的车辆进行特征提取,确定车辆的特征信息。目标跟踪模块用于持续对待处理图像中的车辆进行追踪,如果通过第一视频数据中的全部待处理图像确定出,有一辆车一直存在,则确定出该车的目标跟踪信息。数据融合模块用于将目标跟踪信息和车辆的特征信息进行数据融合,将融合信息标注在目标图像上。
76.在一些实施例中,目标检测模块、特征检测模块、目标跟踪模块和数据融合模块可以通过流水线并行方式处理待处理数据,本技术实施例采用流水线并行方式使各个处理子模块同步进行(即将待处理数据放到对应的队列中,每个部分同步进行),如此,可以对数据处理的整条链路进行加速。图3是本技术实施例提供的流水线并行方式示意图,如图3所示,
a表示实例a,下标数值n表示实例a中的第n帧图像。实例a中的图像帧按顺序进行目标检测,如按照a1,a2,a3,a4,a5,a6,a7的顺序,结束一帧图像的目标检测之后,将目标检测之后的图像发送至特征提取的队列中,依次对每一帧图像进行特征提取,在进行目标跟踪和目标融合。如此,本技术实施例通过流水线并行方式使各个处理子模块同步进行,提高了数据处理效率。
77.本技术实施例通过第二处理单元获取来自第一处理单元的第一数据,对所述第一数据进行预处理,得到待处理数据;将所述待处理数据输入处理模块,得到处理结果,待所述第一处理单元调取。使得本技术实施例通过第二处理单元对数据进行预处理和ai推理,避免了数据在第二处理单元和第一处理单元之间进行多次拷贝,提高了数据处理效率,节约了带宽,减少了数据时延。且本技术实施例采用硬解码和数据预处理对待处理数据进行处理,提高了数据处理效率。同时,本技术实施例通过显存池有效的控制了gpu资源,且节约了显存申请和释放的时间,减少了时间消耗,提高了效率。
78.在一些实施例中,本技术实施例可以通过每一语句分别与整句集合或断句集合之间的相似度来确定待处理文本中每一语句的语句类型。图4是本技术实施例提供的数据处理方法的一个可选的流程示意图,将待处理图像依次输入目标检测模块、特征检测模块,目标跟踪模块和数据融合模块得到处理结果可以通过步骤s401至步骤s405实现:
79.步骤s401、将所述待处理图像输入所述目标检测模块,对所述待处理图像进行目标检测,得到具有目标检测对象的检测图像,并将所述检测图像发送至所述特征检测模块。
80.在一些实施例中,解码、预处理和封装后的待处理图像放入了处理模块中目标检测模块的队列中,目标检测模块获取队列中的待处理图像,对待处理图像进行目标检测,得到具有目标检测对象的检测图像,并将检测图像发送至特征检测模块的队列中。
81.在一些实施例中,对待处理图像可以通过步骤s4011至步骤s4014实现:
82.步骤s4011、对所述待处理图像进行目标检测,得到至少一个目标检测对象和每一所述目标检测对象对应的至少一个检测框。
83.在一些实施例中,目标检测对象可以是待处理图像中的车辆、行人、动物或其他目标检测对象,在进行目标检测时,每一目标检测对象对应至少一个检测框,同一目标检测对象对应的多个检测框中,每一检测框的侧重点不同,例如,一个检测框中包含目标检测对象的全部,即该检测框完全包裹住了车辆;一个检测框包含目标检测对象的车牌,即该检测框仅包裹住了车辆的车牌。
84.步骤s4012、通过非极大值抑制算法,对每一所述目标检测对象对应的至少一个检测框进行置信度计算,得到每一检测框的置信度数值。
85.步骤s4013、将置信度数值最高的检测框,确定为每一所述目标检测对象对应的目标检测框。
86.在本技术实施例中,可以通过非极大值抑制算法,计算出目标检测对象对应的每一检测狂的置信度数值,将置信度数值最高的检测框确定为目标检测对象对应的目标检测框。
87.步骤s4014、将具有所述目标检测框的待处理图像确定为具有目标检测对象的检测图像。
88.步骤s402、对所述特征检测模块中的检测图像进行目标特征提取,确定所述目标
检测对象的特征信息,得到具有特征信息的特征图像,并将所述特征图像发送至所述目标跟踪模块。
89.在一些实施例中,对检测图像进行目标特征提取可以通过步骤s4021至步骤s4023实现:
90.步骤s4021、根据所述目标检测对象对应的目标检测框,依次对检测图像中的所述目标检测对象进行裁剪,得到剪裁图像和所述剪裁图像对应的图像大小。
91.这里,对目标检测对象进行剪裁是指根据目标检测对象对应的目标检测框进行剪裁,得到目标检测框对应的剪裁图像和剪裁图像对应的图像大小。
92.步骤s4022、对所述剪裁图像中的目标检测对象进行特征提取,得到所述目标检测对象的位置和类别。
93.步骤s4023、将具有所述位置和所述类别的检测图像,确定为所述特征图像。
94.在本技术实施例中,特征提取可以是指提取目标检测对象相对于当前车辆的位置和目标检测对象的类别,例如,货车、摩托车或者轿车。
95.在本技术实施例中,可以使用任一个特征检测模型来对目标检测对象进行特征提取,在特征提取之后,将目标检测对象的位置和类别标注在检测框上,将具有位置标注和类别标注的图像确定为特征图像。
96.在一些实施例中,对待处理数据进行目标检测和特征检测是在gpu上进行的,目标跟踪以特征检测结果为基础实现跟踪、数据融合是对整个处理结果的综合处理,这两部分在cpu上完成,除此之外本技术实施例提供的数据处理方法均在gpu上完成,实现数据处理的加速。
97.在本技术实施例中,在得到特征图像之后,将特征图像从gpu拷贝到cp u上,归还图像显存,并将特征图像进行封装,放入目标跟踪模块的队列中。
98.步骤s403、根据所述特征信息,对所述目标跟踪模块中特征图像的目标检测对象进行目标跟踪,得到目标跟踪信息,并将具有所述目标跟踪信息的跟踪图像发送至所述数据融合模块。
99.在一些实施例中,目标跟踪模块取出队列中的特征图像,对特征图像中的目标检测对象进行目标跟踪,持续对特征图像中的目标检测对象进行追踪,如果通过特征图像确定出,有一个目标检测对象一直存在,则确定出该车的目标跟踪信息,这里目标跟踪信息可以是目标检测对象的车牌和车辆型号等信息。将具有目标跟踪信息的图像确定为跟踪图像。
100.在一些实施例中,当目标跟踪模块结束后没有下一层处理子模块时,将跟踪图像进行封装之后发送至数据融合模块的队列中。当目标跟踪模块结束后还有下一层处理子模块时,下一层处理子模块对跟踪图像进行处理后,将处理后的跟踪图像进行封装之后发送至数据融合模块的队列中。
101.步骤s404、对所述数据融合模块中跟踪图像中的目标跟踪信息和所述目标检测对象的特征信息进行数据融合,得到具有目标检测对象融合信息的目标图像。
102.在一些实施例中,对跟踪图像中的目标跟踪信息和目标检测对象的特征信息进行数据融合是指,将目标跟踪模块中获取的目标跟踪信息和特征检测模块检测到的目标检测对象的特征信息进行融合,并标注到图像上,得到具有目标检测对象融合信息的目标图像。
103.步骤s405、将具有目标检测对象融合信息的所述目标图像确定为所述处理结果。
104.在本技术实施例中,在得到处理结果之后,可以根据映射关系将处理结果返回到解码模块,服务器根据目标图像上的目标检测对象融合信息,确定是否将推理信息进行编码并发送至当前车辆。
105.在一些实施例中,解码模块为多实例形式,为每个实例都创建显存池,处理模块为全局模块,只有一个实例。图5是本技术实施例提供的解码模块和处理模块示意图,如图5所示,实例1、实例2和实例3进入对应的解码模块1、解码模块2和解码模块3,对应解码后的图像都会送给处理模块处理,处理模块处理中不同的执行环境对不同的实例进行处理,处理后再将处理结果根据映射关系返回到对应的解码模块。
106.本技术实施例将视频解码和ai推理放在gpu上进行,实现了硬解码和ai推理的无缝连接,在gpu上进行ai推理大大降低了网络推理时延,且通过显存池管理的方式,有效的控制了gpu资源及时间消耗,提高了数据处理效率。
107.下面,将说明本技术实施例在一个实际的应用场景中的示例性应用。
108.本技术实施例基于gpu全链路的神经网络推理加速方法把解码、数据预处理、网络推理、推理数据后处理等耗时较高的操作均移至gpu上完成,并采用排流水方式使各个环节同步进行,对视频数据处理的整条链路进行加速。基于gpu全链路的神经网络推理加速方法包括两个部分:视频解码模块和处理模块,视频解码模块为多实例形式,处理模块为全局模块。
109.在一些实施例中,一个视频解码实例对应一路视频资源,每个实例会向处理模块进行注册,ai中为每个实例构造独立的执行环境,并建立映射关系,视频解码模块把解码后的数据送给处理模块,处理模块返回处理后的结果图像。图6是本技术实施例提供的视频解码流程示意图,如图6所示,视频解码流程通过步骤s601至步骤s608实现:
110.步骤s601、资源初始化。
111.这里,资源初始化可以是初始化显存池,向处理模块注册资源执行环境,构建环境与处理模块之间的映射关系。
112.步骤s602、取出队列中的数据。
113.在一些实施例中,获取视频数据后,会将视频数据放入数据解码的队列中。
114.步骤s603、对数据进行硬解码加速。
115.在对数据进行硬解码之后,会得到解码后的数据。
116.步骤s604、显存池是否有空闲显存。
117.这里,当显存池有空闲显存时,执行步骤s605,当显存池没有显存时,执行步骤s602。当显存池没有显存时,获取新的数据进行解码。
118.步骤s605、取出显存存储解码后的数据。
119.步骤s606、数据封装。
120.这里是指将存储的数据进行封装。
121.步骤s607、任务结束。
122.在一些实施例中,在封装之后,判断任务是否结束,结束执行步骤s608,没结束则执行步骤s602。
123.步骤s608、资源释放。
124.这里,资源释放是指向处理模块注销资源执行环境,解除环境与处理模块之间的映射关系。并将封装数据发送至处理模块的队列中。
125.在一些实施例中,处理模块为每路资源维护一个资源执行环境及内部的映射关系,根据映射关系把数据传输至处理模块,处理完再根据映射关系传输至解码模块,判断是不是要将推理后的数据进行编码发送,处理模块还要处理数据。以车联网中的目标检测跟踪为例,处理模块一共分为4部分:目标检测、特征检测提取、目标跟踪和数据融合处理,这几个部分均采用线程池的工作方式。其中目标跟踪以特征检测结果为基础实现跟踪、数据融合是对整个ai处理结果的综合处理,这两部分在cpu上完成,除此之外整个处理流程均在gpu上完成,以实现加速。如图7至图10所示,分别为目标检测、特征提取、目标跟踪和数据融合的处理流程示意图。同时,本技术实施例可以根据整体的处理流程,可根据业务需要在流程中叠加多种ai处理功能。
126.图7是本技术实施例提供的目标检测流程示意图,如图7所示,视频解码流程通过步骤s701至步骤s709实现:
127.步骤s701、取出队列中的数据。
128.这里,队列中的数据是指硬解码后的封装数据。
129.步骤s702、遍历数据。
130.在一些实施例中,遍历数据是指遍历封装数据中的每一帧图像。
131.步骤s703、在显存池中获取显存。
132.步骤s704、对数据进行预处理。
133.数据预处理可以是尺寸缩放,保存图像数据和将数据拷贝到显存上等处理。
134.步骤s705、遍历结束。
135.这里,当图像遍历结束,执行步骤s706,当图像遍历没有结束时,执行步骤s702。
136.步骤s706、对数据进行目标检测推理。
137.步骤s707、对推理数据进行后处理。
138.步骤s708、归还硬解码显存。
139.步骤s709、数据封装,并将推理数据放入特征检测队列。
140.图8是本技术实施例提供的特征提取流程示意图,如图8所示,特征提取流程通过步骤s801至步骤s809实现:
141.步骤s801、取出特征检测队列中的数据。
142.这里,队列中的数据是指目标检测后的数据。
143.步骤s802、遍历数据。
144.在一些实施例中,遍历数据是指遍历封装数据中的每一帧图像。
145.步骤s803、在显存池中获取图像数据显存。
146.步骤s804、剪裁目标,输入到图像数据显存中。
147.剪裁目标是指剪裁目标检测得到的目标检测对象。
148.步骤s805、遍历结束。
149.这里,当图像遍历结束,执行步骤s806,当图像遍历没有结束时,执行步骤s802。
150.步骤s806、对剪裁目标进行特征检测推理。
151.步骤s807、对推理数据进行后处理。
152.步骤s808、把图像数据拷贝到cpu,归还图像数据显存。
153.步骤s809、数据封装,并将推理数据放入目标跟踪队列。
154.图9是本技术实施例提供的目标跟踪流程示意图,如图9所示,目标跟踪流程通过步骤s901至步骤s906实现:
155.步骤s901、取出目标跟踪队列中的数据。
156.步骤s902、通过跟踪模块实现目标跟踪。
157.步骤s903、是否有下一层网络推理模块。
158.这里,如果有下一层网络推理模块,执行步骤s904,如果没有下一层网络推理模块,执行步骤s905。
159.步骤s904、数据封装,并将推理数据放入下一层网络推理模块队列。
160.步骤s905、归还显存。
161.步骤s906、数据封装,并将推理数据放入数据融合队列。
162.图10是本技术实施例提供的数据融合流程示意图,如图10所示,数据融合流程通过步骤s101至步骤s103实现:
163.步骤s101、取出数据融合队列数据。
164.步骤s102、进行数据融合处理。
165.步骤s103、将融合后的数据根据映射关系发送至解码模块。
166.本技术实施例采用硬解码对数据进行解码加速,把解码后的数据保留在g pu显存中,并在gpu上完成网络推理的数据预处理,提高了网络运行时的速度,降低了网络推理时延。其次,构建数据解码、预处理、网络推理的gpu全链路处理流程,加速了视频处理效率、减少了cpu与gpu之间的内存拷贝次数、节约了带宽。最后,使用内存池方法管理gpu显存,节约了显存申请和释放的时间开销,有效的控制了gpu资源及时间消耗。
167.基于上述数据处理方法,图11是本技术实施例提供的数据处理装置的组成结构示意图,如图11所示,该数据处理装置110包括获取单元111和处理单元112,其中,获取单元111,用于第二处理单元获取来自第一处理单元的第一数据,对所述第一数据进行预处理,得到待处理数据;处理单元112,用于将所述待处理数据输入处理模块,得到处理结果,待所述第一处理单元调取,其中,所述处理模块中包含算法模型。
168.在一些实施例中,若所述处理模块包括多个处理子模块,处理单元112还用于利用流水线并行方式在各个所述处理子模块中处理所述待处理数据。
169.在一些实施例中,所述预处理至少包括:数据解码;对所述第一数据进行预处理之前,所述装置还包括初始化单元,用于根据所述第一数据初始化显存池。
170.在一些实施例中,所述第一数据为第一视频数据,则所述第一视频数据经过数据解码后得到的待处理数据为待处理图像;初始化单元还用于根据所述第一视频数据的尺寸,确定所述显存池中的显存大小,所述显存大小与所述尺寸对应。
171.在一些实施例中,所述预处理,还包括:缩放处理;
172.获得所述待处理图像后,所述装置还包括缩放单元,用于对所述待处理图像的尺寸进行缩放,使缩放后的尺寸满足待输入的所述处理子模块的尺寸要求。
173.在一些实施例中,所述处理子模块包括目标检测模块、特征检测模块、目标跟踪模块和数据融合模块;所述处理单元还用于将所述待处理图像依次输入所述目标检测模块、
所述特征检测模块、所述目标跟踪模块和所述数据融合模块,得到处理结果。
174.在一些实施例中,所述处理单元还用于将所述待处理图像输入所述目标检测模块,对所述待处理图像进行目标检测,得到具有目标检测对象的检测图像,并将所述检测图像发送至所述特征检测模块;对所述特征检测模块中的检测图像进行目标特征提取,确定所述目标检测对象的特征信息,得到具有特征信息的特征图像,并将所述特征图像发送至所述目标跟踪模块;根据所述特征信息,对所述目标跟踪模块中特征图像的目标检测对象进行目标跟踪,得到目标跟踪信息,并将具有所述目标跟踪信息的跟踪图像发送至所述数据融合模块;对所述数据融合模块中跟踪图像中的目标跟踪信息和所述目标检测对象的特征信息进行数据融合,得到具有目标检测对象融合信息的目标图像;将具有目标检测对象融合信息的所述目标图像确定为所述处理结果。
175.在一些实施例中,所述处理单元还用于对所述待处理图像进行目标检测,得到至少一个目标检测对象和每一所述目标检测对象对应的至少一个检测框;通过非极大值抑制算法,对每一所述目标检测对象对应的至少一个检测框进行置信度计算,得到每一检测框的置信度数值;将置信度数值最高的检测框,确定为每一所述目标检测对象对应的目标检测框;将具有所述目标检测框的待处理图像确定为具有目标检测对象的检测图像。
176.在一些实施例中,所述处理单元还用于根据所述目标检测对象对应的目标检测框,依次对检测图像中的所述目标检测对象进行裁剪,得到剪裁图像和所述剪裁图像对应的图像大小;对所述剪裁图像中的目标检测对象进行特征提取,得到所述目标检测对象的位置和类别;将具有所述位置和所述类别的检测图像,确定为所述特征图像。
177.需要说明的是,本技术实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本装置实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
178.需要说明的是,本技术实施例中,如果以软件功能模块的形式实现上述的数据处理方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read only memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本技术实施例不限制于任何特定的硬件和软件结合。
179.本技术实施例提供一种数据处理设备,图12是本技术实施例提供的数据处理设备的组成结构示意图,如图12所示,所述数据处理设备120至少包括:处理器121和配置为存储可执行指令的计算机可读存储介质122,其中处理器121通常控制所述数据处理设备的总体操作。计算机可读存储介质122配置为存储由处理器121可执行的指令和应用,还可以缓存待处理器121和数据处理设备120中各模块待处理或已处理的数据,可以通过闪存或随机访问存储器(ram,random access memory)实现。
180.本技术实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本技术实施例提供的数据处理方法,例如,如图2示出的方法。
181.在一些实施例中,存储介质可以是计算机可读存储介质,例如,铁电存储器(fram,
ferromagnetic random access memory)、只读存储器(rom,read only memory)、可编程只读存储器(prom,programmable read only memory)、可擦除可编程只读存储器(eprom,erasable programmable read only memory)、带电可擦可编程只读存储器(eeprom,electrically erasable programmable read only memory)、闪存、磁表面存储器、光盘、或光盘只读存储器(cd-rom,compact disk-read only memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
182.在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
183.作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
184.以上所述,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
185.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。
186.以上所述,仅为本技术的实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
技术特征:1.一种数据处理方法,所述方法包括:第二处理单元获取来自第一处理单元的第一数据,对所述第一数据进行预处理,得到待处理数据;将所述待处理数据输入处理模块,得到处理结果,待所述第一处理单元调取,其中,所述处理模块中包含算法模型。2.根据权利要求1所述的方法,若所述处理模块包括多个处理子模块,利用流水线并行方式在各个所述处理子模块中处理所述待处理数据。3.根据权利要求1所述的方法,所述预处理至少包括:数据解码;对所述第一数据进行预处理之前,所述方法还包括:根据所述第一数据初始化显存池。4.根据权利要求3所述的方法,所述第一数据为第一视频数据,则所述第一视频数据经过数据解码后得到的待处理数据为待处理图像;则所述根据所述第一数据初始化显存池,包括:根据所述第一视频数据的尺寸,确定所述显存池中的显存大小,所述显存大小与所述尺寸对应。5.根据权利要求4所述的方法,所述预处理,还包括:缩放处理;获得所述待处理图像后,所述方法还包括:对所述待处理图像的尺寸进行缩放,使缩放后的尺寸满足待输入的所述处理子模块的尺寸要求。6.根据权利要求5所述的方法,所述处理子模块包括目标检测模块、特征检测模块、目标跟踪模块和数据融合模块;相应的,将所述待处理数据输入处理模块,得到处理结果,包括:将所述待处理图像依次输入所述目标检测模块、所述特征检测模块、所述目标跟踪模块和所述数据融合模块,得到处理结果。7.根据权利要求6所述的方法,所述将所述待处理图像依次输入所述目标检测模块、特征检测模块,目标跟踪模块和数据融合模块,得到处理结果,包括:将所述待处理图像输入所述目标检测模块,对所述待处理图像进行目标检测,得到具有目标检测对象的检测图像,并将所述检测图像发送至所述特征检测模块;对所述特征检测模块中的检测图像进行目标特征提取,确定所述目标检测对象的特征信息,得到具有特征信息的特征图像,并将所述特征图像发送至所述目标跟踪模块;根据所述特征信息,对所述目标跟踪模块中特征图像的目标检测对象进行目标跟踪,得到目标跟踪信息,并将具有所述目标跟踪信息的跟踪图像发送至所述数据融合模块;对所述数据融合模块中跟踪图像中的目标跟踪信息和所述目标检测对象的特征信息进行数据融合,得到具有目标检测对象融合信息的目标图像;将具有目标检测对象融合信息的所述目标图像确定为所述处理结果。8.根据权利要求7所述的方法,所述对所述待处理图像进行目标检测,得到具有目标检测对象的检测图像,包括:对所述待处理图像进行目标检测,得到至少一个目标检测对象和每一所述目标检测对象对应的至少一个检测框;通过非极大值抑制算法,对每一所述目标检测对象对应的至少一个检测框进行置信度计算,得到每一检测框的置信度数值;
将置信度数值最高的检测框,确定为每一所述目标检测对象对应的目标检测框;将具有所述目标检测框的待处理图像确定为具有目标检测对象的检测图像。9.根据权利要求8所述的方法,所述对所述特征检测模块中的检测图像进行目标特征提取,确定所述目标检测对象的特征信息,得到具有特征信息的特征图像,包括:根据所述目标检测对象对应的目标检测框,依次对检测图像中的所述目标检测对象进行裁剪,得到剪裁图像和所述剪裁图像对应的图像大小;对所述剪裁图像中的目标检测对象进行特征提取,得到所述目标检测对象的位置和类别;将具有所述位置和所述类别的检测图像,确定为所述特征图像。10.一种数据处理装置,所述装置包括:获取单元,用于第二处理单元获取来自第一处理单元的第一数据,对所述第一数据进行预处理,得到待处理数据;处理单元,用于将所述待处理数据输入处理模块,得到处理结果,待所述第一处理单元调取,其中,所述处理模块中包含算法模型。
技术总结本申请实施例提供一种数据处理方法及装置,所述方法包括:第二处理单元获取来自第一处理单元的第一数据,对所述第一数据进行预处理,得到待处理数据;将所述待处理数据输入处理模块,得到处理结果,待所述第一处理单元调取,其中,所述处理模块中包含算法模型。所述处理模块中包含算法模型。所述处理模块中包含算法模型。
技术研发人员:孙凯旋
受保护的技术使用者:联想(北京)有限公司
技术研发日:2022.07.25
技术公布日:2022/11/1