一种分析任务执行方法、装置、系统及电子设备与流程

文档序号:19634352发布日期:2020-01-07 11:50阅读:125来源:国知局
一种分析任务执行方法、装置、系统及电子设备与流程

本发明涉及数据分析技术领域,特别是涉及一种分析任务执行方法、装置、系统及电子设备。



背景技术:

设备所采集到的数据,往往需要经过智能分析,才能够得到用户需要的信息。具体的,可以是针对采集到的数据,生成分析任务,由分析设备执行该分析任务,以得到用户需要的信息。

相关技术中,分析设备可以是利用预先写入本地的分析算法,来执行分析任务。对于不同的分析任务,可能需要不同的分析算法来执行,例如对视频中人脸进行识别的分析任务需要的分析算法,和对视频中车辆跟踪的分析任务需要的分析算法不同。因此分析设备所能够执行的分析任务,受限制于预先写入本地的分析算法的种类,如果本地没有预先写入用于执行某个分析任务的分析算法时,分析设备无法执行该分析任务。为了提高分析设备的适应能力,可以在分析设备中预先针对各种分析任务分别写入分析算法,但是会占用大量存储资源。



技术实现要素:

本申请实施例的目的在于提供一种分析任务执行方法、装置、系统及电子设备,以在占用较少的存储资源的前提下,实现分析设备较好的适应能力。具体技术方案如下:

在本申请实施例的第一方面,提供了一种分析任务执行方法,所述方法包括:

确定待执行分析任务中所包括的子任务;

获取用于执行所述子任务的算法组件,作为待组装算法组件;

将所述待组装算法组件,按照预设编排规则,组装得到目标分析算法;

利用所述目标分析算法,执行所述待执行分析任务。

结合第一方面,在第一种可能的实现方式中,所述将所述算法组件,按照预设编排规则,组装得到目标分析算法,包括:

按照所述待组装算法组件的预设优先级从高到低的顺序,将所述待组装算法组件从前到后串联组装,得到目标分析算法,其中,以下三类算法组件的预设优先级由高到低:用于提供目标检测功能的算法组件、用于提供视频跟踪功能的算法组件、用于提供智能应用功能的算法组件。

结合第一方面,在第二种可能的实现方式中,在所述确定待执行分析任务中所包括的子任务之前,所述方法还包括:

确定本地是否保存有用于执行待执行分析任务的分析算法;

如果本地保存有用于执行所述待执行分析任务的分析算法,利用本地所保存的用于执行所述待执行分析任务的分析算法,执行所述待执行分析任务;

如果本地没有保存用于执行所述待执行分析任务的分析算法,执行所述确定待执行分析任务中所包括的子任务的步骤。

结合第一方面,在第三种可能的实现方式中,在所述利用所述目标分析算法,执行待执行分析任务之前,所述方法还包括:

将当前所使用的分析算法,热切换为所述目标分析算法。

在本申请实施例提供的第二方面,提供了一种分析任务执行装置,所述装置包括:

任务解析模块,用于确定待执行分析任务中所包括的子任务;

组件获取模块,用于获取用于执行所述子任务的算法组件,作为待组装算法组件;

算法组装模块,用于将所述组装算法组件,按照预设编排规则,组装得到目标分析算法;

执行模块,用于利用所述目标分析算法,执行所述待执行分析任务。

结合第二方面,在第一种可能的实现方式中,算法组装模块,具体用于按照所述待组装算法组件的预设优先级从高到低的顺序,将所述待组装算法组件从前到后串联组装,得到目标分析算法,其中,以下三类算法组件的预设优先级由高到低:用于提供目标检测功能的算法组件、用于提供视频跟踪功能的算法组件、用于提供智能应用功能的算法组件。

结合第二方面,在第二种可能的实现方式中,所述任务解析模块,还用于在所述确定待执行分析任务中所包括的子任务之前,确定本地是否保存有用于执行待执行分析任务的分析算法;

如果本地没有保存用于执行所述待执行分析任务的分析算法,执行所述确定待执行分析任务中所包括的子任务的步骤;

所述执行模块,还用于如果本地保存有用于执行所述待执行分析任务的分析算法,利用本地所保存的用于执行所述待执行分析任务的分析算法,执行所述待执行分析任务。

结合第二方面,在第三种可能的实现方式中,所述执行模块,还用于在所述利用所述目标分析算法,执行待执行分析任务之前,将当前所使用的分析算法,热切换为所述目标分析算法。

在本申请实施例的第三方面,提供了一种分析任务执行系统,所述系统包括:

管理平台,用于获取所述分析任务执行系统所接入的设备的分析任务,作为待执行分析任务;

分析服务器,用于按照上述任一所述的分析任务执行方法,执行所述待执行分析任务;

存储服务器,所述存储服务器中保存有算法组件,所述存储服务器用于为所述分析服务器提供用于执行所述待执行分析任务的算法组件。

结合第三方面,在第一种可能的实现方式中,所述存储服务器中所保存的算法组件,被按照以下分类依据中的至少一种分类依据进行分类:所支持的平台架构、位宽、所处理的数据类型、所处理的目标类型、所处理的子任务类型。

在本申请实施例的第四方面,提供了一种电子设备,包括:

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

处理器,用于执行存储器上所存放的程序时,实现上述任一所述的分析任务执行方法。

在本申请实施例的第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的分析任务执行方法。

本申请实施例提供的分析任务执行方法、装置、系统及电子设备,可以只需要存储提供不同功能的算法组件,通过算法编排,组装成能够执行待执行分析任务的分析算法,不再需要针对每种分析任务存储一个分析算法,有效地降低了为实现分析设备较好的适应能力,所带来的存储资源的消耗。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

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

图1为本申请实施例提供的分析任务执行方法的一种流程示意图;

图2为本申请实施例提供的分析任务执行方法的另一种流程示意图;

图3为本申请实施例提供的分析任务执行方法的另一种流程示意图;

图4为本申请实施例提供的分析任务执行装置的一种结构示意图;

图5a为本申请实施例提供的分析任务执行系统的一种框架示意图;

图5b为本申请实施例提供的分析任务执行系统的另一种框架示意图;

图5c为本申请实施例提供的目标分析算法切换方式的一种示意图;

图6为本申请实施例提供的分析任务执行电子设备的一种结构示意图。

具体实施方式

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

参见图1,图1所示为本申请实施例提供的分析任务执行算法的一种流程示意图,可以包括:

s101,确定待执行分析任务中所包括的子任务。

待执行分析任务中可以只包括一个子任务,也可以同时包括多个子任务,每个子任务对应于待执行分析任务的流程中的一个环节,示例性的,一个任务为分析视频流画面中的人体行为,具体的流程可以是首先识别出视频画面中的人体,并跟踪识别出来的人体,基于跟踪获取得到的人体信息,进行人体行为分析,即该任务可以包括人体识别子任务,人体跟踪子任务、以及行为分析子任务。

s102,获取用于执行子任务的算法组件,作为待组装算法组件。

可以是针对待执行分析任务中所包括的每一个子任务,获取用于执行该子任务的算法组件。其中,用于执行子任务的算法组件,是指具有执行该子任务功能的算法组件。在本实施例中,算法组件不能够单独运行,只有处于组装好的分析算法中,算法组件才能够用于执行子任务。

在一种可选的实施例中,算法组件被存储于算法仓库中,获取用于执行子任务的算法组件,可以是从该算法仓库中获取用于执行子任务的算法组件。在其他实施例中,算法组件也可以是存储在本地的,本申请实施例对此不做限制。

s103,将待组装算法组件,按照预设编排规则,组装得到目标分析算法。

其中,预设编排规则可以根据用户实际需求进行配置,在一种优选的实施例中,可以是按照待组装算法组件的预设优先级从高到低的顺序,将待组装组件从前到后串联组装,得到目标分析算法。

进一步的,待组装算法组件可以根据功能不同被预先划分三类,包括:用于提供目标检测功能的算法组件(例如提供人体检测功能的算法组件)、用于提供视频跟踪功能的算法组件,用于提供智能应用功能的算法组件(例如提供人体行为分析功能的算法组件),这三类算法组件中,用于提供目标检测功能的算法组件的预设优先级最高,用于提供智能应用功能的算法组件的预设优先级最低。

示例性的,在对待组装算法组件进行组装时,如果这三类算法组件均存在,则将其中用于提供目标检测功能的算法组件安装于第一环节,将用于提供视频跟踪功能的算法组件安装于第二环节,如果只存在一个用于提供智能应用功能的算法组件,则将该用于提供智能应用功能的算法组件安装于第三环节,如果存在多个用于提供智能应用功能的算法组件,则将这些用于提供智能应用功能的算法组件安装于第三环节及第三环节以后的环节。

s104,利用目标分析算法,执行待执行分析任务。

由于目标分析算法,是由用于执行子任务的算法组件组装得到的,因此目标分析算法能够执行待执行分析任务中的各个子任务,进而目标分析算法可以用于执行待执行分析任务。

选用该实施例,可以只需要存储提供不同功能的算法组件,通过算法编排,组装成能够执行待执行分析任务的分析算法,不再需要针对每种分析任务存储一个分析算法,有效地降低了为实现分析设备较好的适应能力,所带来的存储资源的消耗。从另一方面来讲,也可以使得在占用有限的存储空间下,能够执行更多种类的待执行分析任务。

参见图2,图2所示为本申请实施例提供的分析任务执行方法的另一种流程示意图,可以包括:

s201,确定本地是否保存有用于执行待执行分析任务的分析算法,如果本地保存有用于执行待执行分析任务的分析算法,执行s202,如果本地没有保存用于执行待执行分析任务的分析算法,执行s203。

本实施例可以应用于具有智能分析能力的电子设备上,例如可以是应用于智能分析服务器,也可以是应用于搭载有智能处理芯片的智能相机。以本实施例应用于智能分析服务器为例,该步骤可以是确定该智能服务器的存储器中,是否存在用于执行待执行分析任务的分析算法,其中,存储器可以包括内部存储器以及外部存储器。

s202,利用本地所保存的用于执行待执行分析任务的分析算法,执行待执行分析任务。

当本地保存有用于执行待执行分析任务的分析算法时,可以认为没有必要利用算法组件重新组装分析算法。直接利用本地所保存的用于执行待执行分析任务的分析算法,已经可以执行待执行分析任务。当然,在其他实施例中,出于用户实际需求,在本地保存有用于执行待执行分析任务的分析算法时,也可以利用算法组件重新组装分析算法,再利用组装得到的分析算法来执行待执行分析任务,本实施例对此不作限制。

s203,确定待执行分析任务中所包括的子任务。

该步骤与s101相同,可以参见前述关于s101的描述,在此不再赘述。

s204,获取用于执行子任务的算法组件,作为待组装算法组件。

该步骤与s102相同,可以参见前述关于s102的描述,在此不再赘述。

s205,将待组装算法组件,按照预设编排规则,组装得到目标分析算法。

该步骤与s103相同,可以参见前述关于s103的描述,在此不再赘述。

s206,利用目标分析算法,执行待执行分析任务。

该步骤与s104相同,可以参见前述关于s104的描述,在此不再赘述。

选用该实施例,可以在本地已经保存有用于执行待执行分析任务的分析算法时,直接利用本地已经保存的用于执行待执行分析任务的分析算法,来执行待执行分析任务,避免算法组件不必要的组装。

参见图3,图3所示为本申请实施例提供的分析任务执行方法的另一种流程示意图,可以包括:

s301,确定待执行分析任务中所包括的子任务。

该步骤与s101相同,可以参见前述关于s101的描述,在此不再赘述。

s302,获取用于执行子任务的算法组件,作为待组装算法组件。

该步骤与s102相同,可以参见前述关于s102的描述,在此不再赘述。

s303,将待组装算法组件,按照预设编排规则,组装得到目标分析算法。

该步骤与s103相同,可以参见前述关于s103的描述,在此不再赘述。

s304,将当前所使用的分析算法,热切换为目标分析算法。

其中,热切换是指不需要重启设备,既可以实现将当前所使用的分析算法切换为目标分析算法。

s305,利用目标分析算法,执行待执行分析任务。

该步骤与s104相同,可以参见前述关于s104的描述,在此不再赘述。

由于该实施例中,目标分析算法是由待组装算法组件组装得到的,并不需要基于当前的分析算法,修改任何全局变量,因此可以使用热切换,实现更快地分析算法切换。由于热切换不需要重启设备,可以有效地缩短执行不同种类的待执行分析任务之间,所需要等待的间隔。

参见图4,图4所示为本申请实施例提供的分析任务执行装置的一种结构示意图,可以包括:

任务解析模块401,用于确定待执行分析任务中所包括的子任务;

组件获取模块402,用于获取用于执行子任务的算法组件,作为待组装算法组件;

算法组装模块403,用于将组装算法组件,按照预设编排规则,组装得到目标分析算法;

执行模块404,用于利用目标分析算法,执行待执行分析任务。

进一步的,算法组装模块403,具体用于按照待组装算法组件的预设优先级从高到低的顺序,将待组装算法组件从前到后串联组装,得到目标分析算法,其中,以下三类算法组件的预设优先级由高到低:用于提供目标检测功能的算法组件、用于提供视频跟踪功能的算法组件、用于提供智能应用功能的算法组件。

进一步的,任务解析模块401,还用于在确定待执行分析任务中所包括的子任务之前,确定本地是否保存有用于执行待执行分析任务的分析算法;

如果本地没有保存用于执行待执行分析任务的分析算法,执行确定待执行分析任务中所包括的子任务的步骤;

执行模块404,还用于如果本地保存有用于执行待执行分析任务的分析算法,利用本地所保存的用于执行待执行分析任务的分析算法,执行待执行分析任务。

进一步的,执行模块404,还用于在利用目标分析算法,执行待执行分析任务之前,将当前所使用的分析算法,热切换为目标分析算法。

参见图5a,图5a所示为本申请实施例提供的分析任务执行系统的一种框架示意图,可以包括:

管理平台501,用于获取分析任务执行系统所接入的设备的分析任务,作为待执行分析任务;

分析服务器502,用于按照上述任一的分析任务执行方法,执行待执行分析任务;

存储服务器503,存储服务器中保存有算法组件,存储服务器用于为分析服务器提供用于执行待执行分析任务的算法组件。

其中,分析服务器502可以为虚拟服务器,也可以是实体设备作为的服务器。存储服务器可以是单个存储设备,也可以是多个存储设备组成的存储集群。

在一种可选的实施例中,如图5b所示,存储服务器503为多个存储设备5031组成的存储集群。这些存储设备可以利用一负载均衡器504,实现存储负载的均衡。

进一步的,存储服务器中所保存的算法组件,被按照以下分类依据中的至少一种分类依据进行分类:所支持的平台架构、位宽、所处理的数据类型、所处理的目标类型、所处理的子任务类型。在其他实施例中,还可以根据算法组件的厂商、编写标准等依据进行分类,本实施例对此不作限制。可以理解的是,对算法组件进行分类,有利于存储服务器更好地对这些算法组件进行管理。

进一步的,可以是由分析服务器502直接从存储服务器503中获取算法组件,也可以是由管理平台501从存储服务器503中获取算法组件,再将获取到的算法组件调度至分析服务器502。

下面的可选实施例将对该分析系统的工作流程进行描述:

管理平台501可以是获取到分析系统所接入的设备的分析任务后,将该分析任务分配至分析服务器502,并且注册一个智能分析服务用于与该分析服务器502进行数据交互,以实现对该分析服务器502的管理。

管理平台501从存储服务器503中获取用于执行该分析任务所包括的各个子任务的算法组件,并将获取到的算法组件调度至分析服务器502。进一步的,如果管理平台501与多个分析服务器502连接,管理平台可以是获取这多个分析服务器502的运行性能,并将该分析任务分配至分析性能最高的分析服务器502中,以提高该分析任务的执行效率。进一步的,在管理平台501将算法组件调度至分析服务器502之前,管理平台501可以对这些算法组件进行参数配置,示例性的,管理平台501可以是接收用户针对分析任务输入的配置参数,根据这些配置参数对算法组件进行配置,可以使得这些算法组件组装得到的目标分析算法能够更好的完成分析任务。

分析服务器502在获取到算法组件后,按照预设编排规则将这些算法组件组成得到目标分析算法,并利用目标分析算法执行分析任务。分析服务器502中可以只有一种目标分析算法,也可以有多种目标分析算法。具有多种目标分析算法的分析服务器502可以根据分析任务的不同,将当前所使用的分析算法热切换为与分析任务对应的目标分析算法,切换的方式可以如图5c所示,以实现利用一个分析服务器502就可以完成多种分析任务。

进一步的,除了上述调度算法组件外,管理平台501与分析服务器502之间还可以实现以下功能中的一种或多种:

算法更新:管理平台501可以定期或者根据需求控制分析服务器502更新目标分析算法。可以理解的是,在分析服务器502将算法组件组成成目标分析算法后,开发人员可能对算法组件进行了优化,以提高这些算法组件的性能,在这种情况下更新分析服务器502中的目标分析算法,可以提高分析服务器执行分析任务时的性能。分析服务器502可以定期或者受管理平台501控制,向管理平台501反馈目标分析算法的版本,以使得管理平台501可以更好的对分析服务器502中的目标分析算法进行管理,其中,目标分析算法的版本可以是由组装成该目标分析算法所使用的算法组件的版本确定,也可以是由组装得到该目标分析算法的日期确定。

注销和保活:管理平台501维护智能分析服务会占用一定量的系统资源,当某个分析服务器502执行完成所有分配至该分析服务器502的分析任务后,如果其他分析服务器502提供的运算能力足以完成分析系统所接入的设备产生的分析任务,接下来可能不会将分析任务分配至该分析服务器502,此时管理平台501可以注销与该分析服务器502对应的智能分析服务。如果只是短时间内不将分析任务分配至该分析服务器502,之后可能还会将分析任务分配至该分析服务器502,管理平台501可以将该智能分析服务设置为保活状态,以方便在再次使用时快速唤醒,而不需要重新注册一个新的智能分析服务。

本申请实施例还提供了一种电子设备,如图6所示,包括

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

处理器602,用于执行存储器601上所存放的程序时,实现如下步骤:

确定待执行分析任务中所包括的子任务;

获取用于执行子任务的算法组件,作为待组装算法组件;

将待组装算法组件,按照预设编排规则,组装得到目标分析算法;

利用目标分析算法,执行待执行分析任务。

进一步的,将算法组件,按照预设编排规则,组装得到目标分析算法,包括:

按照待组装算法组件的预设优先级从高到低的顺序,将待组装算法组件从前到后串联组装,得到目标分析算法,其中,以下三类算法组件的预设优先级由高到低:用于提供目标检测功能的算法组件、用于提供视频跟踪功能的算法组件、用于提供智能应用功能的算法组件。

进一步的,在确定待执行分析任务中所包括的子任务之前,方法还包括:

确定本地是否保存有用于执行待执行分析任务的分析算法;

如果本地保存有用于执行待执行分析任务的分析算法,利用本地所保存的用于执行待执行分析任务的分析算法,执行待执行分析任务;

如果本地没有保存用于执行待执行分析任务的分析算法,执行确定待执行分析任务中所包括的子任务的步骤。

进一步的,在利用目标分析算法,执行待执行分析任务之前,方法还包括:

将当前所使用的分析算法,热切换为目标分析算法。

上述电子设备提到的存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一分析任务执行方法。

在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一分析任务执行方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

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

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、系统、电子设备、计算机可读存储介质、计算机程序产品的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

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