一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

压力测试方法、装置、设备及存储介质与流程

2022-09-04 04:44:48 来源:中国专利 TAG:


1.本公开涉及但不限于计算机视觉技术领域,尤其涉及一种压力测试方法、装置、设备及存储介质。


背景技术:

2.近年来,计算机视觉技术迅速发展,在越来越多的场景中,通过对视频流的解码、推理等处理,实现人工智能业务。在对视频流进行处理的过程中,可以利用加载的多种组件实现对视频流不同需求的处理,不同组件具有不同的性能参数,不同性能参数的组件所能处理的视频流的负载量也不相同。相关技术中,采用人工手动测试的方式,通过硬件规格、业务场景等因素确定每一组件的性能参数,效率低、精度差。


技术实现要素:

3.有鉴于此,本公开实施例至少提供一种压力测试方法、装置、设备及存储介质。
4.本公开实施例的技术方案是这样实现的:
5.一方面,本公开实施例提供一种压力测试方法,所述方法包括:
6.在被测试的推理组件对接入的第一数量路数的视频流进行的第一推理过程中,获取所述推理组件的第一参数值和第二参数值;其中,所述推理组件的第一参数值表征在所述第一推理过程中数据包的参数信息和/或图像帧的参数信息,以及所述推理组件的第二参数值表征所述推理组件在所述第一推理过程中的资源消耗信息;
7.获取所述第一参数值对应的第一压测阈值,以及所述第二参数值对应的第二压测阈值;其中,所述第一压测阈值是基于所述视频流的元数据信息确定的,所述第二压测阈值是基于所述推理组件的硬件资源参数值确定的;
8.分别确定所述第一参数值与所述第一压测阈值之间的第一关系,以及确定所述第二参数值与所述第二压测阈值之间的第二关系;
9.基于所述第一关系和所述第二关系确定所述推理组件的第一数量路数的压力测试结果;其中,所述第一数量路数的压力测试结果用于表征所述推理组件是否能够同时对所述第一数量路数的视频流进行推理。
10.另一方面,本公开实施例提供一种压力测试装置,包括:
11.第一获取模块,用于在被测试的推理组件对接入的第一数量路数的视频流进行的第一推理过程中,获取所述推理组件的第一参数值和第二参数值;其中,所述推理组件的第一参数值表征在所述第一推理过程中数据包的参数信息和/或图像帧的参数信息,以及所述推理组件的第二参数值表征所述推理组件在所述第一推理过程中的资源消耗信息;
12.第二获取模块,用于获取所述第一参数值对应的第一压测阈值,以及所述第二参数值对应的第二压测阈值;其中,所述第一压测阈值是基于所述视频流的元数据信息确定的,所述第二压测阈值是基于所述推理组件的硬件资源参数值确定的;
13.第一确定模块,用于分别确定所述第一参数值与所述第一压测阈值之间的第一关
系,以及确定所述第二参数值与所述第二压测阈值之间的第二关系;
14.第二确定模块,用于基于所述第一关系和所述第二关系确定所述推理组件的第一数量路数的压力测试结果;其中,所述第一数量路数的压力测试结果用于表征所述推理组件是否能够同时对所述第一数量路数的视频流进行推理。
15.再一方面,本公开实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
16.又一方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。
17.又一方面,本公开实施例提供一种计算机程序,包括计算机可读代码,当所述计算机可读代码在计算机设备中运行时,所述计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。
18.又一方面,本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。
19.本公开实施例中,首先,在被测试的推理组件对接入的第一数量路数的视频流进行的第一推理过程中,获取推理组件不通类型的第一参数值和第二参数值,进而可以准确地获取第一参数值对应的第一压测阈值以及第二参数值对应的第二压测阈值。然后,确定第一参数值与第一压测阈值之间的第一关系,以及确定第二参数值与第二压测阈值之间的第二关系,从而基于第一关系和第二关系快速准确地确定推理组件的第一数量路数的压力测试结果。这样,通过较整体的测试方案,能够得到统一规格的压力测试结果,使得压力测试结果更加明确、统一,也可以提高测试效率和准确率,减少测试成本,简化执行层面的复杂度等。
20.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。
附图说明
21.此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
22.图1为本公开实施例提供的一种压力测试方法的实现流程示意图;
23.图2为本公开实施例提供的一种压力测试方法的实现流程示意图;
24.图3为本公开实施例提供的一种压力测试方法的实现流程示意图;
25.图4为本公开实施例提供的一种指标获取方法的实现流程示意图;
26.图5为本公开实施例提供的一种压力测试系统的结构示意图;
27.图6为本公开实施例提供的一种视压力测试装置的组成结构示意图;
28.图7为本公开实施例提供的一种计算机设备的硬件实体示意图。
具体实施方式
29.为了使本公开的目的、技术方案和优点更加清楚,下面结合附图和实施例对本公
开的技术方案进一步详细阐述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
30.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。
31.除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开的目的,不是旨在限制本公开。
32.本公开实施例提供一种压力测试方法,该方法可以由计算机设备的处理器执行。其中,计算机设备指的可以是服务器、笔记本电脑、平板电脑、台式计算机、智能电视、机顶盒、移动设备(例如移动电话、便携式视频播放器、个人数字助理、专用消息设备、便携式游戏设备)等设备。图1为本公开实施例提供的一种压力测试方法的实现流程示意图,如图1所示,该方法包括如下步骤s101至步骤s104:
33.步骤s101,在被测试的推理组件对接入的第一数量路数的视频流进行的第一推理过程中,获取所述推理组件的第一参数值和第二参数值。
34.这里,推理组件可以是指用于实现视频流的推理的组件,不同的推理组件可以实现不同的推理,视频流的推理可以包括缺陷分类、目标检测、目标追踪、行为识别等类型。视频流可以理解为一种视频数据信息的传输方式,使用该传输方式,可以在没有接到完整的数据信息前就能处理已接收的信息,有助于减少视频数据信息在传输过程中的时延问题。
35.为了更加高效地对视频流进行推理,可以对推理组件进行针对视频流负载情况的压力测试,确定推理组件的压力测试结果,该压力测试结果可以用于表征推理组件的性能。可以通过增加接入推理组件的视频流的路数,确定推理组件的处理状态,基于处理状态确定推理组件的性能等。例如:对于缺陷分类的推理组件,将30路视频流接入实现缺陷分类的推理组件,该实现缺陷分类的推理组件能够正常运行;将31路视频流接入实现缺陷分类的推理组件,该实现缺陷分类的推理组件在运行过程中出现异常,那么确定该推理组件可以正常负载30路视频流。采用相同的测试方式,也可以确定实现目标检测的推理组件能够正常负载50路视频流等。在一些实施例中,可以利用推流工具将多路视频流推送至待测试的推理组件,如,利用推流服务器(rtsp server)将缺陷分类场景的多路视频流推送至实现缺陷分类的推理组件。
36.在一些实施例中,可以通过获取推理组件的第一参数值和第二参数值,基于第一参数值和第二参数值确定推理组件的性能。在对视频流实施推理的过程中,能够以不同类型的数据单位表示视频流,如,以数据包的形式表示视频流,或者以图像帧的形式表示视频流等。推理组件的第一参数值可以表征在第一推理过程中数据包的参数信息和/或图像帧的参数信息。数据包的参数信息可以包括数据包的大小、数据包的传输速率、数据包的数量、数据包的信息缺失情况等信息,图像帧的参数信息可以包括图像帧的丢帧率、图像帧的
传输速率、图像帧的数量等信息。例如:在利用推理组件对视频流进行处理的过程中,通过对接收到的数据包或者图像帧进行解析,确定解析结果,进而通过读取该解析结果,确定数据包的参数信息或图像帧的参数信息等。
37.推理组件的第二参数值可以表征推理组件在第一推理过程中的资源消耗信息。推理组件的资源消耗信息可以是指对计算机设备中软件、硬件等资源的消耗信息,包括对于内存访问器(memoryaccess,mem)中资源的消耗、对于中央处理器(central processing unit,cpu)中资源的消耗、对于图形处理器(graphics processing unit,gpu)中资源的消耗等。在利用推理组件对视频流进行处理的过程中,可以通过读取各资源的运行状态,确定推理组件的资源消耗信息。
38.步骤s102,获取所述第一参数值对应的第一压测阈值,以及所述第二参数值对应的第二压测阈值。
39.这里,第一压测阈值和第二压测阈值可以是指用于判定压力测试的效果的阈值。第一压测阈值可以是基于视频流的元数据信息确定的,第一压测阈值与第一参数值对应,第二压测阈值可以是基于推理组件的硬件资源参数值确定的,第二压测阈值与第二参数值对应。元数据,又称中介数据、中继数据,可以理解为用于描述数据的数据,主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。视频流的元数据信息可以包括视频的分辨率、帧率、数据量大小等信息。可以通过对视频流进行解析,确定视频流的元数据,进而基于视频流的元数据确定第一压测阈值。硬件资源可以包括gpu、cpu等硬件,硬件资源参数值可以包括cpu或gpu的工作频率总线宽度、等级、内核数量等参数值。可以通过读取硬件资源对应的配置参数,确定第二压测阈值。也可以通过接收用户上传的第一阈值和第二阈值,将第一阈值确定为第一压测阈值,将第二阈值确定为第二压测阈值等。
40.步骤s103,分别确定所述第一参数值与所述第一压测阈值之间的第一关系,以及确定所述第二参数值与所述第二压测阈值之间的第二关系。
41.这里,第一关系可以包括第一参数值大于第一压测阈值,或者第一参数值等于第一压测阈值,或者第一参数值小于第一压测阈值等。第二关系可以包括第二参数值大于第二压测阈值,或者第二参数值等于第二压测阈值,或者第二参数值小于第二压测阈值等。不同路数对应的第一参数值和第二参数值可以是变化的,同一推理组件对应的第一压测阈值和第二压测阈值可以是固定的。通过比对变化的第一参数值与固定的第一压测阈值之间的大小,以及比对变化的第二参数值与固定的第二压测阈值之间的大小,可以确定第一关系和第二关系。
42.在一些实施例中,也可以确定第一参数值与第一压测阈值之间的第一比值,基于第一比值确定第一关系。例如:第一参数值为80,第一压测阈值为100,确定第一比值为80%,那么确定第一关系为第一参数值占第一压测阈值的80%等。同理,也可以采用同样的方式确定第二关系等。
43.步骤s104,基于所述第一关系和所述第二关系确定所述推理组件的第一数量路数的压力测试结果。
44.这里,第一数量路数的压力测试结果可以用于表征推理组件是否能够同时对第一数量路数的视频流进行正常推理,也即推理组件可以接入的视频流路数的上限。例如:实现
目标检测的推理组件对应的压力测试结果为能够对25路视频流进行正常处理,接入的视频流的路数超过25路时,则会出现异常(如,漏检、错检等)。可以在第一关系满足第一预设条件,且第二关系满足第二预设条件的情况下,确定推理组件的压力测试结果。例如:在确定第一参数值大于第一压测阈值,且第二参数值大于第二压测阈值的情况下,将当前的视频流路数确定为该推理组件的压力测试结果。
45.在第一关系不满足第一预设条件,或者第二关系不满足第二预设条件的情况下,可以按照预设路数阈值,继续增加接入推理组件的视频流的路数,确定下一步对应的第一关系和第二关系。例如:当前的视频流的路数为30路,当前的第一关系为第一参数值大于第一压测阈值,当前的第二关系为第二参数值小于第二压测阈值,预设的设路数阈值为1路,那么将31路视频流接入推理组件,下一步的第一关系为第一参数值大于第一压测阈值,当前的第二关系为第二参数值大于第二压测阈值,确定该推理组件的压力测试结果为31路视频流。
46.本公开实施例中,首先,在被测试的推理组件对接入的第一数量路数的视频流进行的第一推理过程中,获取推理组件不同类型的第一参数值和第二参数值,进而可以准确地获取第一参数值对应的第一压测阈值以及第二参数值对应的第二压测阈值。然后,确定第一参数值与第一压测阈值之间的第一关系,以及确定第二参数值与第二压测阈值之间的第二关系,从而基于第一关系和第二关系快速准确地确定推理组件的第一数量路数的压力测试结果。这样,通过较整体的测试方案,能够得到统一规格的压力测试结果,使得压力测试结果更加明确、统一,也可以提高测试效率和准确率,简化执行层面复杂度等。
47.在一些实施例中,上述步骤s104还可以包括如下步骤s1041至s1042:
48.步骤s1041,在所述第一关系表征所述第一参数值小于所述第一压测阈值,和/或所述第二关系表征所述第二参数值大于所述第二压测阈值的情况下,确定所述推理组件的第一数量路数压力的测试结果为不能同时对所述第一数量路数的视频流进行推理。
49.这里,第一关系表征第一参数值小于第一压测阈值时,也即可以理解为,当前实际的数据包的参数信息或图像帧的参数信息小于视频流的元数据信息所表征的标准的第一压测阈值。第二关系表征第二参数值大于第二压测阈值时,也即可以理解为,当前实际的资源消耗量大于推理组件标准的硬件资源参数值。那么,在这种情况下,可以确定推理组件的第一数量路数的压力测试结果为不能同时对第一数量路数的视频流进行推理。
50.步骤s1042,在所述第一关系表征所述第一参数值大于等于所述第一压测阈值,且所述第二关系表征所述第二参数值小于等于所述第二压测阈值的情况下,确定所述推理组件的第一数量路数压力的测试结果为能够同时对所述第一数量路数的视频流进行推理。
51.这里,如,第一参数值为100,第一压测阈值为80,第一参数值大于第一压测阈值,且第二参数值为50,第二压测阈值为70,第二参数值小于第二压测阈值。在这种情况下,可以确定推理组件的第一数量路数的压力测试结果为能够同时对第一数量路数的视频流进行推理。
52.本公开实施例中,通过对比第一参数值和第一压测阈值之间的大小,以及第二参数值和第二压测阈值之间的大小,根据两个对比结果,简单准确地确定第一数量路数的压力测试结果是否能够同时对所述第一数量路数的视频流进行推理。
53.本公开实施例提供一种压力测试方法,如图2所示,该方法包括如下步骤s201至步
骤s208:
54.步骤s201至步骤s204分别对应于前述步骤s101至步骤s104,在实施时可以参照前述步骤s101至步骤s104的具体实施方式。
55.步骤s205,在所述第一数量路数的压力测试结果用于表征所述推理组件能够同时对所述第一数量路数的视频流进行推理的情况下,将压力测试路数从第一数量路数增加为第二数量路数,并对所述推理组件接入所述第二数量路数的视频流。
56.这里,在第一数量路数对应的压力测试结果用于表征推理组件能够同时对第一数量路数的视频流进行推理的情况下,为了进一步确定推理组件所能接入的视频流的上限,可以在当前接入推理组件路数的基础上,按照预设第一路数阈值n增加接入的路数,继续确定下一步中对应的第一关系和第二关系。其中,假设第一数量路数为n,则n为大于0且小于等于n的整数,可以基于在第二数量路数(n n路)的推理过程中,经过多次迭代,获取推理组件的第一参数值和第二参数值,基于第一参数值和第二参数值确定推理组件的第二数量路数的压力测试结果。例如:第一路数阈值为2,在25路压力测试结果用于表征推理组件能够同时对第一数量路数的视频流进行推理的情况下,将压力测试路数调整为27路并对推理组件接入27路视频流,确定接入27路视频流时的第一参数值和第二参数值,进而确定第一关系和第二关系。
57.对于接入推理组件的视频流的路数的第一数量、第二数量或第三数量等,以及进行推理的类型,这里并不限定。其中,路数与推理过程可以进行对应。例如:第一数量路数对应第一推理过程(也可以称为第一数量路数的推理过程),第二数量路数对应第二推理过程(也可以称为第二数量路数的推理过程)等。
58.步骤s206,基于在所述第二数量路数的推理过程中获取的所述推理组件的第一参数值和第二参数值,确定所述推理组件的第二数量路数的压力测试结果。
59.这里,如,在第二数量路数的推理过程中,第一参数值为110,第一压测阈值为80,第一参数值大于第一压测阈值,且第二参数值为40,第二压测阈值为70,第二参数值小于第二压测阈值。在这种情况下,可以确定推理组件的第二数量路数的压力测试结果为不能同时对第二数量路数的视频流进行推理。
60.步骤s207,在所述第一数量路数的压力测试结果用于表征所述推理组件不能同时对所述第一数量路数的视频流进行推理的情况下,将压力测试路数从第一数量路数减小为第三数量路数并对所述推理组件接入所述第三数量路数的视频流。
61.这里,在第一数量路数对应的压力测试结果用于表征推理组件不能同时对第一数量路数的视频流进行推理的情况下,为了进一步确定推理组件所能接入的视频流的上限,可以在当前接入推理组件路数的基础上,按照预设第二路数阈值m减少接入的路数,继续确定下一步中对应的第一关系和第二关系。其中,假设第一数量路数为n,则m为大于0且小于n的整数,可以基于在第三数量路数(n-m路)的推理过程中,经过多次迭代,基于获取的推理组件的第一参数值和第二参数值确定推理组件的第三数量路数的压力测试结果。例如:第二路数阈值m为1,在27路压力测试结果用于表征推理组件不能同时对第一数量路数的视频流进行推理的情况下,将压力测试路数调整为26路并对推理组件接入26路视频流,确定接入26路视频流时的第一参数值和第二参数值,进而确定第一关系和第二关系。
62.步骤s208,基于在所述第三数量路数的推理过程中获取的所述推理组件的第一参
数值和第二参数值,确定所述推理组件的第三数量路数的压力测试结果。
63.这里,如,在第三数量路数的推理过程中,第一参数值为70,第一压测阈值为80,第一参数值小于第一压测阈值,且第二参数值为80,第二压测阈值为70,第二参数值大于第二压测阈值。在这种情况下,可以确定推理组件的第三数量路数的压力测试结果为能够同时对第三数量路数的视频流进行推理。本公开实施例中,通过确定当前接入推理组件的视频流的路数对应的压力测试结果,基于当前的压力测试结果,调整当前的压力测试路数,可以更加准确地确定推理组件接入视频流的上限。
64.本公开实施例提供一种压力测试方法,所述推理组件包括解封装器、解码器、推理分析器和输出器;所述推理组件的推理过程包括解封装、解码、推理分析和输出子过程;所述数据包的参数信息包括:所述解封装器解封装后得到的数据包的速率和/或输入所述解码器的数据包的速率;所述图像帧的参数信息包括所述解码器解码后得到的丢帧率。如图3所示,该方法包括如下步骤s301至步骤s306:
65.步骤s301,在被测试的推理组件对接入的第一数量路数的视频流进行的第一推理过程中,获取所述推理组件的第一指标和/或第二指标。
66.这里,推理组件可以包括解封装器(demuxer)、解码器(decoder)、推理分析器(detect-analyzer)和输出器(output),解封装器可以对合并文件进行拆分,得到对应的视频流,合并文件包括视频文件、音频文件字幕文件合并为某一个视频格式。如可将.avi、.mp3、.srt等格式的数据通过合并组件(muxer)合并为.mkv格式的合并文件,在进行推理过程中,使用解封装器进行拆分,得到.avi格式的视频流。解码器可以用于对视频流进行解码,得到解码后的视频流。推理分析器可以用于对解码后的视频流进行推理,得到对应业务的推理结果,如,目标检测、缺陷分类等。推理分析器中可以存储已训练的神经网络,用于对视频流进行推理处理,如,包括分类模型,可以对视频流进行缺陷检测,确定视频流中所包含的对象(如,零部件)是否存在缺陷等。输出器可以输出推理结果,如,推理结果为检测到存在缺陷等。由于推理组件包括多个部分,那么推理组件的推理过程可以包括解封装、解码、推理分析和输出等子过程。因此,数据包的参数信息可以包括:解封装器解封装后得到的数据包的速率和/或输入解码器的数据包的速率;图像帧的参数信息可以包括解码器解码后得到的丢帧率等。
67.推理组件的第一指标可以包括在单位时间内解封装器解封装后得到的数据包的数量、在单位时间内输入解码器的数据包的数量中至少之一;第二指标包括解码器解码成功和/或失败的视频帧(也可以称为图像帧)的数量。可以通过在预设时段内,确定的解封装器和解码器处理的数据包的数量,从而如确定第一指标和第二指标。
68.步骤s302,基于所述推理组件的第一指标确定所述数据包的参数信息;和/或,基于所述推理组件的第二指标确定所述图像帧的参数信息。
69.这里,可以将第一指标确定为数据包的参数信息,将第二指标确定为图像帧的参数信息。例如:确定第一指标为30,第二指标为45,那么确定数据包的参数信息为30,图像帧的参数信息为45等。
70.步骤s303,在所述第一推理过程中的任一子过程中,获取所述推理组件的第二参数值。
71.这里,可以在解封装、解码、推理分析和输出等任一子过程中,通过读取硬件资源
参数值,从而确定推理组件的第二参数值。
72.步骤s304至步骤s306分别对应于前述步骤s102至步骤s104,在实施时可以参照前述步骤s102至步骤s104的具体实施方式。
73.本公开实施例中,通过获取推理组件的第一指标和/或第二指标,可以快速准确地确定数据包的参数信息,和/或,图像帧的参数信息,以及通过在第一推理过程中的任一子过程中,自适应地获取推理组件的第二参数值,从而可以简单准确地确定第一关系和第二关系。
74.本公开实施例提供一种指标获取方法,如图4所示,该方法包括如下步骤s401至步骤s404:
75.步骤s401,将视频流服务器推送的视频流接入所述推理组件。
76.这里,可以利用视频流服务器(也即推流服务器)将不同业务场景的多路视频流推送至对应的推理组件,视频流服务器可以是指用于为不同业务场景的推理组件提供视频流的组件。
77.步骤s402,在接入的视频流的数量等于当前设置的压力测试路数的数值的情况下,检测所述推理组件是否对所述第一数量路数的视频流中每一路都进行推理。
78.这里,在利用视频流服务器将视频流推送至推理组件的过程中,确定当前接入推理组件的视频流的数量。在接入的视频流的数量等于当前设置的压力测试路数的数值的情况下,检测推理组件是否对第一数量路数的视频流中每一路都进行(是否全部进行推理)。例如:通过确定推理组件针对每一路视频流的输出结果,基于每一输出结果,确定推理组件是否对第一数量路数的视频流中每一路都进行推理。在接入的视频流的数量小于当前设置的压力测试路数的数值的情况下,控制视频流服务器增加接入推理组件的视频流的路数;在接入的视频流的数量大于当前设置的压力测试路数的数值的情况下,控制视频流服务器减小接入推理组件的视频流的路数。
79.步骤s403,在所述推理组件对所述第一数量路数的视频流中每一路都进行推理后,对所述推理组件进行计时。
80.这里,在基于每一输出结果,确定推理组件是否对第一数量路数的视频流中每一路都进行推理的情况下,利用计时器记录当前的开始时刻。例如:确定每一视频流对应的输出结果表征存在推理结果的情况下,将当前时刻确定为压力测试的开始时刻。
81.步骤s404,在计时期间从所述解封装器的输出和/或所述解码器的输入读取所述推理组件的第一指标和/或第二指标,并进行存储。
82.这里,在压力测试的计时期间,可以从解封装器的输出和/或解码器的输入读取推理组件的第一指标和/或第二指标,并存储至预设存储空间,有助于便捷地给用户进行展示。例如:开始时刻为8:00时,单位时间为1分钟,在8:01时刻从解封装器的输出和/或解码器的输入读取推理组件的第一指标和/或第二指标。在超过压力测试的计时期间的情况下,可以停止对视频流进行推理,有助于减少工作量,提高自动化能力。
83.本公开实施例中,通过将视频流服务器推送的视频流接入推理组件,在接入的视频流的数量等于当前设置的压力测试路数的数值的情况下,检测推理组件是否对第一数量路数的视频流中每一路都进行推理。这样,以使得在推理组件对第一数量路数的视频流中每一路都进行推理后,对推理组件进行计时,从而在计时期间从解封装器的输出和/或解码
器的输入准确地读取推理组件的第一指标和/或第二指标,并进行存储,有助于高效地对用户进行展示。
84.在一些实施例中,上述步骤s302还可以包括如下步骤s3021至步骤s3023:
85.步骤s3021,在计时完成后,基于存储的所述推理组件的第一指标确定所述数据包的参数信息;和或,基于存储的所述推理组件的第二指标确定图像帧的参数信息。
86.这里,在计时完成后,可以从预设存储空间中读取第一指标和第二指标,将第一指标确定为数据包的参数信息,将第二指标确定为图像帧的参数信息,从而确定第一参数。
87.步骤s3022,基于第一指标与所述数据包的参数信息进行关联,得到第一关联信息;和或将所述第二指标与所述图像帧的参数信息进行关联,得到第二关联信息。
88.这里,可以确定第一指标中不同时刻的数据包的参数信息,以形成第一关联信息。确定第二指标中不同时刻的图像帧的参数信息,以形成第二关联信息。例如:在确定开始时刻后,按照预设时间间隔,确定多个单位时间内的数据包的参数信息和图像帧的参数信息。
89.步骤s3023,基于所述第一关联信息和或所述第二关联信息,以及所述第一数量路数的压力测试结果,生成所述推理组件的压力测试报告。
90.这里,在确定第一关联信息和或第二关联信息,以及压力测试结果的情况下,基于第一关联信息和或第二关联信息,以及压力测试结果,生成推理组件的压力测试报告,有助于对用户进行展示,及时准确地确定推理组件的性能等。
91.本公开实施例中,通过基于预先存储的第一指标和第二指标确定数据包的参数信息和图像帧的参数信息,进而通过确定第一指标与数据包的参数信息之间的第一关联信息、第二指标与图像帧的参数信息之间的第二关联信息,以及压力测试报告,简单准确地生成压力测试报告,用于后续综合分析推理组件的性能等。
92.下面说明本公开实施例提供的视频流推理的压力测试在实际场景中的应用,以对推理组件进行压力测试的场景为例进行说明。
93.本公开实施例提供了一种视频流推理的压力测试系统的结构示意图,如图5所示,所述系统可以包括如下摄像机501、推理组件502和硬件503。摄像机501可以包括多个,用于采集多路的视频流。推理组件502可以包括解封装器5021、解码器5022、推理分析器5023和输出器5024等。硬件503可以包括中央处理器5031、内存访问器5032和图像处理器5033等。
94.首先,可以利用多个摄像机501采集多路视频流,可以利用封装器(muxer)对多路视频流进行封装,并上传至视频流服务器。视频流服务器可以根据用户预先确定的压力测试路数,并将预设的压力测试路数的视频流推送至推理组件502。
95.然后,利用推理组件502中的解封装器5021对多路视频流进行拆分,得到解封装后的不包含音频数据和文本数据的视频流。利用推理组件502中的解码器5022对解封装后的视频流进行解码处理,转换视频流的格式。利用推理组件502中的推理分析器5023对解码后的视频流进行推理处理,得到推理结果。利用推理组件502中的输出器5024将推理结果进行输出。
96.这里,在对推理组件502进行压力测试的过程中,可以通过获取推理组件502中的第一参数值和第二参数值,确定当前所接入的路数是否为推理组件502的上限结果。其中,推理组件的第一参数值表征在第一推理过程中数据包的参数信息和/或图像帧的参数信息,以及推理组件的第二参数值表征推理组件在第一推理过程中的资源消耗信息等。数据
包的参数信息和/或图像帧的参数信息可以包括解封装器5021基于实时传输协议(real-time transport protocol,rtp)输出的数据包的数量(指标

)、基于实时传输协议输入到解码器5022的数据包的数量(指标

)、解码器5022输出的数据包的数量(指标

)、输入到推理分析器5023的数据包的数量(指标

)等。资源消耗信息可以包括中央处理器5031中已使用的进程数量、内存访问器5032中已使用的存储空间和空闲的存储空间、图像处理器5033中已使用的显存和空闲的显存(指标

)等信息。
97.在确定推理组件502的第一参数值和第二参数值后,可以确定第一参数值对应的第一压测阈值,以及第二参数值对应的第二压测阈值。其中,第一压测阈值可以是基于视频流的元数据信息确定的,第二压测阈值可以是基于推理组件的硬件资源参数值确定的。在确定参数值和阈值的情况下,可以对第一参数值和第二参数值进行校验,确定校验结果,从而基于校验结果确定压力测试结果。
98.例如:数据包的参数信息包括1分钟内该推理组件已接入的所有路数视频流送入解码器的数据包的数量的平均值,第一压测阈值为视频流对的视频帧率,那么在该平均值大于等于该视频帧率的情况下,确定推理组件的第一数量路数的压力测试结果为能够同时对第一数量路数的视频流进行推理。或者,数据包的参数信息包括1分钟内该推理组件解码器读取的数据包的数量的平均值,第一压测阈值为视频流对的视频帧率,那么在该平均值大于等于该视频帧率的情况下,确定推理组件的第一数量路数压力的测试结果为能够同时对第一数量路数的视频流进行推理。或者,数据包的参数信息包括1分钟内产生的丢帧平均值,第一压测阈值为预设值0,那么在该丢帧平均值等于0的情况下,确定推理组件的第一数量路数的压力测试结果为能够同时对第一数量路数的视频流进行推理。
99.或者,第一推理过程中的资源消耗信息包括当前中央处理器已消耗的内存、内存访问器已消耗的内存和图像处理器已消耗的内存,第二压测阈值为中央处理器、内存访问器和图像处理器标准的内存数据量,那么在当前中央处理器已消耗的内存、内存访问器已消耗的内存和图像处理器已消耗的内存小于等于中央处理器、内存访问器和图像处理器标准的内存数据量的80%的情况下,确定推理组件的第一数量路数的压力测试结果为能够同时对第一数量路数的视频流进行推理。
100.在一些实施例中,当前推理组件接入的路数持续进行推理解析的预设时长内,通过确定解封装器读取数据包的速率和解码器解码的速率大于等于帧率,且未产生丢帧时,即认为当前的路数已经为此推理组件的最高上限性能数据,并记录对应的资源消耗数据等信息,生成压力测试报告。对于多个同一类型的推理组件,可以确定其性能相同。
101.本公开实施例中的视频流推理的压力测试系统可以实现自动化测试。
102.首先,可指定待测试的视频流地址以及设置接入的路数为固定路数或者基础路数自动叠加进行循环接入推理组件,并自动解析出视频流分辨率、帧率等元数据作为第一压测阈值,用于后续对第一参数值进行校验,确定压力测试结果。例如:接收用户确定的指示路数,将该指示路数确定为固定路数,推送固定路数的视频流至推理组件,再根据用户更新的指示路数,进行视频流路数的更新。或者,预设的基础路数为5,叠加路数为1,将5路视频流接入推理组件,确定5路视频流对应的压力测试结果,再按照叠加路数,将6路视频流接入推理组件,确定6路视频流对应的压力测试结果等。在一些实施例中,也可以按照预设的递减路数,将4路视频流接入推理组件,确定6路视频流对应的压力测试结果等。
103.然后,当设置的路数全部接入完成和开始进行推理后开始计时,确定开始时刻,并且可以在预设时长内异步获取推理组件的第一参数值和第二参数值,经过多次迭代,直至第一参数值与第一压测阈值、第二参数值与第二压测阈值满足预设条件,也即是否达到视频流的接入上限。在达到预设时长时,可以结束压测,并记录压测的结束时刻。
104.其次,可以基于开始时刻、结束时刻对应的第一参数值和第二参数值等信息,生成统一格式的压力测试报告,有助于后续进行分析。
105.最后,通过多次反复更新推理组件接入视频流的路数,确定否达到视频流的接入上限。
106.本公开实施例中,通过获取推理组件的第一参数值和第二参数值,来确定压力测试结果,可以明确统一推理组件的性能指标概念,提供了完整的压力测试结果的测试方案,减少了因不同人员存在不同标准而产生的误差。同时,相比于现有技术中,利用人工方式调用接口串行触发实现压力测试,效率低的情况,这里,本公开中的技术方案可以采用多线程的方式,自动并发接入多路视频流供被测试的推理组件进行推理,提高了测试效率。相比于现有技术中,测试的结束时间依赖于测试人员在用例运行达到规定时间后,采用手动操作方式停止视频流的输入进而结束测试,这里,本公开中的技术方案可以自定义测试时长,通过记录开始时刻,经过多次迭代处理,在达到预设的测试时长后,停止测试,可以高效地利用非工作时间完成压力测试,有助于减少工作量。
107.本公开实施例中,可以使用在线视频流作为推理组件的输入,实现推理组件的压力测试。对整个测试过程可以实现统一标准的自动化,包括测试用例的自动执行及测试过程中指标参数的收集和校验等。例如:在推理组件对视频中的人脸对象进行解析的推理组件测试场景中,可以按照预设的输入视频素材和数量,基于本公开实施例中的压力测试方法自动启动对应数量的在线视频推流,将预设的视频源都接入推理组件,进行测试。
108.在整个的测试过程中,可以自动收集接入视频的数量、视频推流的状态(如,正常状态和异常状态等)、视频组件的中央处理器、内存、显存消耗、视频帧处理速率、人脸对象解析的速率及存储服务的处理速率及资源消耗等指标数据。在数据采集完成后,分析各个数据是否满足预定的要求,例如:第一参数值是否有超过第一压测阈值等。还可以基于周期性采集的数据,形成多个数据点,基于多个数据点生成趋势图,确定趋势图中的数据点是否是平稳的,即是否有产生上、下抖动趋势,对压力测试结果进行分析,得到分析结果,并将分析结果进行存储,有助于后续对多种不同类型的推理组件的性能进行对比等。
109.基于前述的实施例,本公开实施例提供一种压力测试装置,该装置包括所包括的各单元、以及各单元所包括的各模块,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(central processing unit,cpu)、微处理器(microprocessor unit,mpu)、数字信号处理器(digital signal processor,dsp)或现场可编程门阵列(field programmable gatearray,fpga)等。
110.图6为本公开实施例提供的一种压力测试装置的组成结构示意图,如图6所示,压力测试装置600包括:第一获取模块610、第二获取模块620、第一确定模块630和第二确定模块640,其中:
111.第一获取模块610,用于在被测试的推理组件对接入的第一数量路的数视频流进行的第一推理过程中,获取所述推理组件的第一参数值和第二参数值;其中,所述推理组件
的第一参数值表征在所述第一推理过程中数据包的参数信息和/或图像帧的参数信息,以及所述推理组件的第二参数值表征所述推理组件在所述第一推理过程中的资源消耗信息;第二获取模块620,用于获取所述第一参数值对应的第一压测阈值,以及所述第二参数值对应的第二压测阈值;其中,所述第一压测阈值是基于所述视频流的元数据信息确定的,所述第二压测阈值是基于所述推理组件的硬件资源参数值确定的;第一确定模块630,用于分别确定所述第一参数值与所述第一压测阈值之间的第一关系,以及确定所述第二参数值与所述第二压测阈值之间的第二关系;第二确定模块640,用于基于所述第一关系和所述第二关系确定所述推理组件的第一数量路数的压力测试结果;其中,所述第一数量路数的压力测试结果用于表征所述推理组件是否能够同时对所述第一数量路数的视频流进行推理。
112.在一些实施例中,所述装置还包括:第一接入模块,用于在所述第一数量路数的压力测试结果用于表征所述推理组件能够同时对所述第一数量路数的视频流进行推理的情况下,将压力测试路数从所述第一数量路数增加为第二数量路数,并对所述推理组件接入所述第二数量路数的视频流;基于在所述第二数量路数的推理过程中获取的所述推理组件的第一参数值和第二参数值,确定所述推理组件的第二数量路数的压力测试结果;第二接入模块,用于在所述第一数量路数的压力测试结果用于表征所述推理组件不能同时对所述第一数量路数的视频流进行推理的情况下,将压力测试路数从所述第一数量路数减小为第三数量路数,并对所述推理组件接入所述第三数量路数的视频流;基于在所述第三数量路数的推理过程中获取的所述推理组件的第一参数值和第二参数值,确定所述推理组件的第三数量路数的压力测试结果。
113.在一些实施例中,所述推理组件包括解封装器、解码器、推理分析器和输出器;所述推理组件的推理过程包括解封装、解码、推理分析和输出子过程;所述数据包的参数信息包括:所述解封装器解封装后得到的数据包的速率和/或输入所述解码器的数据包的速率;所述图像帧的参数信息包括所述解码器解码后得到的丢帧率;所述第一获取模块,还用于:在被测试的推理组件对接入的第一数量路数的视频流进行的第一推理过程中,获取所述推理组件的第一指标和/或第二指标;其中,所述第一指标包括在单位时间内所述解封装器解封装后得到的数据包的数量、在单位时间内输入所述解码器的数据包的数量中至少之一;所述第二指标包括所述解码器解码成功和/或失败的视频帧的数量;基于所述推理组件的第一指标确定所述数据包的参数信息;和/或,基于所述推理组件的第二指标确定所述图像帧的参数信息。
114.在一些实施例中,所述第二获取模块,还用于:在所述第一推理过程中的任一子过程中,获取所述推理组件的第二参数值。
115.在一些实施例中,所述第一获取模块,还用于:将视频流服务器推送的视频流接入所述推理组件;在接入的视频流的数量等于当前设置的压力测试路数的数值的情况下,检测所述推理组件是否对所述第一数量路数的视频流中每一路都进行推理;在所述推理组件对所述第一数量路的数视频流中每一路都进行推理后,对所述推理组件进行计时;在计时期间从所述解封装器的输出和/或所述解码器的输入读取所述推理组件的第一指标和/或第二指标,并进行存储。
116.在一些实施例中,所述第二确定模块,还用于:在所述第一关系表征所述第一参数值小于所述第一压测阈值,和/或所述第二关系表征所述第二参数值大于所述第二压测阈
值的情况下,确定所述推理组件的第一数量路数的压力测试结果为不能同时对所述第一数量路数的视频流进行推理;在所述第一关系表征所述第一参数值大于等于所述第一压测阈值,且所述第二关系表征所述第二参数值小于等于所述第二压测阈值的情况下,确定所述推理组件的第一数量路数的压力测试结果为能够同时对所述第一数量路数的视频流进行推理。
117.在一些实施例中,所述第一获取模块,还用于:在计时完成后,基于存储的所述推理组件的第一指标确定所述数据包的参数信息;和或,基于存储的所述推理组件的第二指标确定图像帧的参数信息;基于第一指标与所述数据包的参数信息进行关联,得到第一关联信息;和或将所述第二指标与所述图像帧的参数信息进行关联,得到第二关联信息;基于所述第一关联信息和或所述第二关联信息,以及所述第一数量路数的压力测试结果,生成所述推理组件的压力测试报告。
118.以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上述方法实施例描述的方法,对于本公开装置实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
119.需要说明的是,本公开实施例中,如果以软件功能模块的形式实现上述的压力测试方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read onlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本公开实施例不限制于任何特定的硬件、软件或固件,或者硬件、软件、固件三者之间的任意结合。
120.本公开实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
121.本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
122.本公开实施例提供一种计算机程序,包括计算机可读代码,在所述计算机可读代码在计算机设备中运行的情况下,所述计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。
123.本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一些实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一些实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
124.这里需要指出的是:上文对各个实施例的描述倾向于强调各个实施例之间的不同
之处,其相同或相似之处可以互相参考。以上设备、存储介质、计算机程序及计算机程序产品实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开设备、存储介质、计算机程序及计算机程序产品实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
125.需要说明的是,图7为本公开实施例中计算机设备的一种硬件实体示意图,如图7所示,该计算机设备700的硬件实体包括:处理器701、通信接口702和存储器703,其中:
126.处理器701通常控制计算机设备700的总体操作。
127.通信接口702可以使计算机设备通过网络与其他终端或服务器通信。
128.存储器703配置为存储由处理器701可执行的指令和应用,还可以缓存待处理器701以及计算机设备700中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(randomaccess memory,ram)实现。处理器701、通信接口702和存储器703之间可以通过总线704进行数据传输。
129.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本公开的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本公开的各种实施例中,上述各步骤/过程的序号的大小并不意味着执行顺序的先后,各步骤/过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
130.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
131.在本公开所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
132.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
133.另外,在本公开各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
134.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在
执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
135.或者,本公开上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
136.本公开所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
137.若本公开实施例涉及个人信息,应用本公开实施例的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本公开实施例涉及敏感个人信息,应用本公开实施例的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。
138.以上所述,仅为本公开的实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献