算法模块调度方法、算法模块调度装置以及可读存储介质转让专利

申请号 : CN202210415147.1

文献号 : CN114518917B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄鹏殷俊虞响岑鑫吴立

申请人 : 浙江大华技术股份有限公司

摘要 :

本申请提供一种算法模块调度方法、算法模块调度装置以及计算机可读存储介质。该算法模块调度方法包括:获取当前算法模块的结果获取策略;基于所述结果获取策略获取至少一个前置算法模块输出的第一处理结果数据;调度所述当前算法模块对所述第一处理结果数据进行处理,得到所述第二处理结果数据。通过上述方式,算法模块调度方法按照当前算法模块的结果获取策略灵活决定后续的数据处理方式,能够省去因为业务差异性需要不断调整修改的集成封装模块的开发,最终达到灵活支持不同业务场景下不同算法方案的快速落地与交付。

权利要求 :

1.一种算法模块调度方法,其特征在于,所述算法模块调度方法包括:获取当前算法模块的结果获取策略;

基于所述结果获取策略获取至少一个前置算法模块输出的第一处理结果数据;

调度所述当前算法模块对所述第一处理结果数据进行处理,得到第二处理结果数据;

所述调度所述当前算法模块对所述第一处理结果数据进行处理,得到第二处理结果数据,包括:在所述结果获取策略不为帧间异步策略时,获取单数据管道的前置算法模块输出的第一处理结果数据;

在获取所述单数据管道的前置算法模块输出的第一处理结果数据后,继续等待其余数据管道的前置算法模块输出的第六处理结果数据;

直至获取所有其余数据管道的前置算法模块输出的第六处理结果数据,判断所述第一处理结果数据和所述第六处理结果数据是否为同一帧结果;

若是,调度所述当前算法模块对所述第一处理结果数据以及所述第六处理结果数据进行处理,得到所述第二处理结果数据。

2.根据权利要求1所述的算法模块调度方法,其特征在于,所述调度所述当前算法模块对所述第一处理结果数据进行处理,得到第二处理结果数据,包括:在所述结果获取策略为帧间异步策略时,获取单数据管道的前置算法模块输出的第一处理结果数据;

在获取所述单数据管道的一个前置算法模块输出的第一处理结果数据后,调度所述当前算法模块对所述第一处理结果数据进行处理,得到所述第二处理结果数据。

3.根据权利要求1所述的算法模块调度方法,其特征在于,所述调度所述当前算法模块对所述第一处理结果数据进行处理,得到第二处理结果数据,包括:在所述结果获取策略为帧间同步策略时,获取单数据管道的前置算法模块输出的第一处理结果数据;

在获取所述单数据管道的前置算法模块输出的第一处理结果数据后,继续等待其余数据管道的前置算法模块输出的第三处理结果数据;

直至获取所有其余数据管道的前置算法模块输出的第三处理结果数据,调度所述当前算法模块对所述第一处理结果数据以及所述第三处理结果数据进行处理,得到所述第二处理结果数据。

4.根据权利要求1所述的算法模块调度方法,其特征在于,所述调度所述当前算法模块对所述第一处理结果数据进行处理,得到第二处理结果数据,包括:在所述结果获取策略为帧内同步策略时,获取单数据管道的前置算法模块输出的第一处理结果数据;

在获取所述单数据管道的前置算法模块输出的第一处理结果数据后,继续等待其余数据管道的前置算法模块输出的第四处理结果数据;

判断所述其余数据管道的前置算法模块输出的第四处理结果数据与所述第一处理结果数据是否为同一帧结果;

若是,调度所述当前算法模块对所述第一处理结果数据以及所述第四处理结果数据进行处理,得到所述第二处理结果数据。

5.根据权利要求4所述的算法模块调度方法,其特征在于,所述判断所述其余数据管道的前置算法模块输出的第四处理结果数据与所述第一处理结果数据是否为同一帧结果之后,所述算法模块调度方法还包括:若否,继续等待其余数据管道的前置算法模块输出的第五处理结果数据,直至所述第五处理结果数据与所述第一处理结果数据为同一帧结果时,调度所述当前算法模块对所述第一处理结果数据以及所述第五处理结果数据进行处理,得到所述第二处理结果数据。

6.根据权利要求1所述的算法模块调度方法,其特征在于,所述判断所述第一处理结果数据和所述第六处理结果数据是否为同一帧结果之后,所述算法模块调度方法还包括:若否,判断所述当前算法模块的结果获取策略是否为帧间同步策略;

在所述当前算法模块的结果获取策略为帧间同步策略时,调度所述当前算法模块对所述第一处理结果数据以及所述第六处理结果数据进行处理,得到所述第二处理结果数据。

7.根据权利要求6所述的算法模块调度方法,其特征在于,所述判断所述当前算法模块的结果获取策略是否为帧间同步策略之后,所述算法模块调度方法还包括:在所述当前算法模块的结果获取策略不为帧间同步策略时,输出程序异常报警信息。

8.根据权利要求1所述的算法模块调度方法,其特征在于,所述调度所述当前算法模块对所述第一处理结果数据进行处理,得到所述第二处理结果数据之后,所述算法模块调度方法还包括:将所述第二处理结果数据放置于所述当前算法模块所在数据管道的结果队列;

调度与所述当前算法模块同一数据管道的后置算法模块对所述结果队列中的第二处理结果数据进行处理。

9.根据权利要求1所述的算法模块调度方法,其特征在于,所述当前算法模块与所述至少一个前置算法模块为一条数据管道中具有前后顺序依赖关系的算法模块;

其中,数据系统中包括若干数据管道,所述若干数据管道共享至少一个起始算法模块和至少一个结果算法模块,不同数据管道之间的中间算法模块并联连接,所述当前算法模块为所述数据系统中非首个起始算法模块中的任意一个算法模块。

10.根据权利要求9所述的算法模块调度方法,其特征在于,每一数据管道均设置有一个用于存储算法模块结果数据的结果队列;

所述基于所述结果获取策略获取至少一个前置算法模块输出的第一处理结果数据,包括:基于所述结果获取策略获取所述当前算法模块所处数据管道对应的当前结果队列;

从所述当前结果队列提取同一数据管道的至少一个前置算法模块输出的第一处理结果数据;

所述调度所述当前算法模块对所述第一处理结果数据进行处理,得到第二处理结果数据之后,所述算法模块调度方法还包括:将所述第二处理结果数据放置于所述当前结果队列中。

11.一种算法模块调度装置,其特征在于,所述算法模块调度装置包括获取策略模块、获取数据模块以及调度处理模块;其中,所述获取策略模块,用于获取当前算法模块的结果获取策略;

所述获取数据模块,用于基于所述结果获取策略获取至少一个前置算法模块输出的第一处理结果数据;

所述调度处理模块,用于调度所述当前算法模块对所述第一处理结果数据进行处理,得到第二处理结果数据;

所述获取数据模块,还用于在所述结果获取策略不为帧间异步策略时,获取单数据管道的前置算法模块输出的第一处理结果数据;

所述获取数据模块,还用于在获取所述单数据管道的前置算法模块输出的第一处理结果数据后,继续等待其余数据管道的前置算法模块输出的第六处理结果数据;

所述调度处理模块,还用于直至获取所有其余数据管道的前置算法模块输出的第六处理结果数据,判断所述第一处理结果数据和所述第六处理结果数据是否为同一帧结果;若是,调度所述当前算法模块对所述第一处理结果数据以及所述第六处理结果数据进行处理,得到所述第二处理结果数据。

12.一种算法模块调度装置,其特征在于,所述算法模块调度装置包括处理器和存储器,所述存储器中存储有程序数据,所述处理器用于执行所述程序数据以实现如权利要求

1‑10任一项所述的算法模块调度方法。

13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序数据,所述程序数据在被处理器执行时,用以实现权利要求1‑10任一项所述的算法模块调度方法。

说明书 :

算法模块调度方法、算法模块调度装置以及可读存储介质

技术领域

[0001] 本申请涉及算法模型技术领域,特别是涉及一种算法模块调度方法、算法模块调度装置以及计算机可读存储介质。

背景技术

[0002] 在图像处理算法方案程序的执行过程中,算法方案流水线中各算法功能模块之间的结果数据交互都是通过与方案强耦合的集成封装模块进行的。
[0003] 当算法方案发生改变时集成封装模块就需要根据方案进行相对应的调整修改,导致维护、开发、时间成本很高,无法快速灵活地支持不同业务场景下的不同算法方案,无法将算法方案进行快速地落地交付。

发明内容

[0004] 本申请提供了一种算法模块调度方法、算法模块调度装置以及计算机可读存储介质。
[0005] 本申请提供了一种算法模块调度方法,所述算法模块调度方法包括:
[0006] 获取当前算法模块的结果获取策略;
[0007] 基于所述结果获取策略获取至少一个前置算法模块输出的第一处理结果数据;
[0008] 调度所述当前算法模块对所述第一处理结果数据进行处理,得到第二处理结果数据。
[0009] 其中,所述算法模块调度方法,还包括:
[0010] 在所述结果获取策略为帧间异步策略时,获取单数据管道的前置算法模块输出的第一处理结果数据;
[0011] 在获取所述单数据管道的一个前置算法模块输出的第一处理结果数据后,调度所述当前算法模块对所述第一处理结果数据进行处理,得到所述第二处理结果数据。
[0012] 其中,所述算法模块调度方法,还包括:
[0013] 在所述结果获取策略为帧间同步策略时,获取单数据管道的前置算法模块输出的第一处理结果数据;
[0014] 在获取所述单数据管道的前置算法模块输出的第一处理结果数据后,继续等待其余数据管道的前置算法模块输出的第三处理结果数据;
[0015] 直至获取所有其余数据管道的前置算法模块输出的第三处理结果数据,调度所述当前算法模块对所述第一处理结果数据以及所述第三处理结果数据进行处理,得到所述第二处理结果数据。
[0016] 其中,所述算法模块调度方法,还包括:
[0017] 在所述结果获取策略为帧内同步策略时,获取单数据管道的前置算法模块输出的第一处理结果数据;
[0018] 在获取所述单数据管道的前置算法模块输出的第一处理结果数据后,继续等待其余数据管道的前置算法模块输出的第四处理结果数据;
[0019] 判断所述其余数据管道的前置算法模块输出的第四处理结果数据与所述第一处理结果数据是否为同一帧结果;
[0020] 若是,调度所述当前算法模块对所述第一处理结果数据以及所述第四处理结果数据进行处理,得到所述第二处理结果数据。
[0021] 其中,所述判断所述其余数据管道的前置算法模块输出的第四处理结果数据与所述第一处理结果数据是否为同一帧结果之后,所述算法模块调度方法还包括:
[0022] 若否,继续等待其余数据管道的前置算法模块输出的第五处理结果数据,直至所述第五处理结果数据与所述第一处理结果数据为同一帧结果时,调度所述当前算法模块对所述第一处理结果数据以及所述第五处理结果数据进行处理,得到所述第二处理结果数据。
[0023] 其中,所述算法模块调度方法,还包括:
[0024] 在所述结果获取策略不为帧间异步策略时,获取单数据管道的前置算法模块输出的第一处理结果数据;
[0025] 在获取所述单数据管道的前置算法模块输出的第一处理结果数据后,继续等待其余数据管道的前置算法模块输出的第六处理结果数据;
[0026] 直至获取所有其余数据管道的前置算法模块输出的第六处理结果数据,判断所述第一处理结果数据和所述第六处理结果数据是否为同一帧结果;
[0027] 若是,调度所述当前算法模块对所述第一处理结果数据以及所述第六处理结果数据进行处理,得到所述第二处理结果数据。
[0028] 其中,所述判断所述第一处理结果数据和所述第六处理结果数据是否为同一帧结果之后,所述算法模块调度方法还包括:
[0029] 若否,判断所述当前算法模块的结果获取策略是否为帧间同步策略;
[0030] 在所述当前算法模块的结果获取策略为帧间同步策略时,调度所述当前算法模块对所述第一处理结果数据以及所述第六处理结果数据进行处理,得到所述第二处理结果数据。
[0031] 其中,所述判断所述当前算法模块的结果获取策略是否为帧间同步策略之后,所述算法模块调度方法还包括:
[0032] 在所述当前算法模块的结果获取策略不为帧间同步策略时,输出程序异常报警信息。
[0033] 其中,所述调度所述当前算法模块对所述第一处理结果数据进行处理,得到所述第二处理结果数据之后,所述算法模块调度方法还包括:
[0034] 将所述第二处理结果数据放置于所述当前算法模块所在数据管道的结果队列;
[0035] 调度与所述当前算法模块同一数据管道的后置算法模块对所述结果队列中的第二处理结果数据进行处理。
[0036] 其中,所述当前算法模块与所述至少一个前置算法模块为一条数据管道中具有前后顺序依赖关系的算法模块;
[0037] 其中,数据系统中包括若干数据管道,所述若干数据管道共享至少一个起始算法模块和至少一个结果算法模块,不同数据管道之间的中间算法模块并联连接,所述当前算法模块为所述数据系统中非首个起始算法模块中的任意一个算法模块。
[0038] 其中,每一数据管道均设置有一个用于存储算法模块结果数据的结果队列;
[0039] 所述基于所述结果获取策略获取至少一个前置算法模块输出的第一处理结果数据,包括:
[0040] 基于所述结果获取策略获取所述当前算法模块所处数据管道对应的当前结果队列;
[0041] 从所述当前结果队列提取同一数据管道的至少一个前置算法模块输出的第一处理结果数据;
[0042] 所述调度所述当前算法模块对所述第一处理结果数据进行处理,得到第二处理结果数据之后,所述算法模块调度方法还包括:
[0043] 将所述第二处理结果数据放置于所述当前结果队列中。
[0044] 本申请还提供了一种算法模块调度装置,所述算法模块调度装置包括获取策略模块、获取数据模块以及调度处理模块;其中,
[0045] 所述获取策略模块,用于获取当前算法模块的结果获取策略;
[0046] 所述获取数据模块,用于基于所述结果获取策略获取至少一个前置算法模块输出的第一处理结果数据;
[0047] 所述调度处理模块,用于调度所述当前算法模块对所述第一处理结果数据进行处理,得到所述第二处理结果数据。
[0048] 本申请还提供了另一种算法模块调度装置,所述算法模块调度装置包括处理器和存储器,所述存储器中存储有程序数据,所述处理器用于执行所述程序数据以实现如上述的算法模块调度方法。
[0049] 本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序数据,所述程序数据在被处理器执行时,用以实现上述的算法模块调度方法。
[0050] 本申请的有益效果是:算法模块调度装置获取当前算法模块的结果获取策略;基于所述结果获取策略获取至少一个前置算法模块输出的第一处理结果数据;调度所述当前算法模块对所述第一处理结果数据进行处理,得到所述第二处理结果数据。通过上述方式,算法模块调度方法按照当前算法模块的结果获取策略灵活决定后续的数据处理方式,能够省去因为业务差异性需要不断调整修改的集成封装模块的开发,最终达到灵活支持不同业务场景下不同算法方案的快速落地与交付。

附图说明

[0051] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
[0052] 图1是本申请提供的算法模块调度方法一实施例的流程示意图;
[0053] 图2是图1所示算法模块调度方法的具体流程示意图;
[0054] 图3是本申请提供的数据管道一实施例的结构示意图;
[0055] 图4是本申请提供的数据管道另一实施例的结构示意图;
[0056] 图5是本申请提供的算法模块调度装置一实施例的结构示意图;
[0057] 图6是本申请提供的算法模块调度装置另一实施例的结构示意图;
[0058] 图7是本申请提供的计算机可读存储介质一实施例的结构示意图。

具体实施方式

[0059] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0060] 为解决现有技术的问题,本申请提出了一种数据管道的方法对图像处理算法方案中各算法模块的结果数据进行管理和流转,并支持了算法模块三种不同的算法结果获取策略。以上方法均通过解析算法方案流水线的配置文件来进行自适应地调整与支持,省去因为业务差异性需要不断调整修改的集成封装模块的开发,最终达到灵活支持不同业务场景下不同算法方案的快速落地与交付。
[0061] 其中,本申请进一步提供了一种用于表示算法方案处理流水线的配置文件,不同算法方案会对应生成不同的配置文件,调度框架算法模块调度装置通过解析该配置文件将所有算法模块进行业务分析和调度。
[0062] 请参阅图1和图2,图1是本申请提供的算法模块调度方法一实施例的流程示意图,图2是图1所示算法模块调度方法的具体流程示意图。
[0063] 其中,本申请的算法模块调度方法应用于一种算法模块调度装置,其中,本申请的算法模块调度装置可以为服务器,也可以为由服务器和终端设备相互配合的系统。相应地,算法模块调度装置包括的各个部分,例如各个单元、子单元、模块、子模块可以全部设置于服务器中,也可以分别设置于服务器和终端设备中。
[0064] 进一步地,上述服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块,例如用来提供分布式服务器的软件或软件模块,也可以实现成单个软件或软件模块,在此不做具体限定。在一些可能的实现方式中,本申请实施例的算法模块调度方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
[0065] 具体而言,如图1所示,本申请实施例的算法模块调度方法具体包括以下步骤:
[0066] 步骤S11:获取当前算法模块的结果获取策略。
[0067] 在本申请实施例中,下面先介绍本申请提供的数据管道的概念以及工作流程。具体请参阅图3,图3是本申请提供的数据管道一实施例的结构示意图。
[0068] 本申请的图像处理算法方案按照流水线的方式将不同功能的算法模块进行连接,以此来表示算法模块间的依赖关系以及数据传输的路线。本申请将从数据起始端到结果输出端连接算法模块的一条路线称作一条数据管道,数据均通过数据管道进行传输。在每条数据管道中均有一个用于存储算法模块结果数据的结果队列,每个算法模块将自身模块的算法结果置于结果队列中。每个算法模块均可根据具体需求从结果队列中获取到数据管道已经流经的算法模块,即前置算法模块的算法结果。基于此,本申请提供一种包括若干数据管道的数据系统,其中,若干数据管道共享至少一个起始算法模块和至少一个结果算法模块,不同数据管道之间的中间算法模块并联连接。
[0069] 如图3所示,算法模块调度装置根据算法方案的流水线形成如图3所示将各算法模块连接起来的有向无环图。其中,有向无环图指的是一个无回路的有向图,本申请的有向无环图一方面可以表征各个算法模块的位置关系,另一方面可以表征各个算法模块的数据流向。
[0070] 图3中,七个算法模块形成三条数据管道,分别为数据管道A、数据管道B以及数据管道C。其中,起始算法模块用于处理初始输入,从图3可看出起始算法模块通过数据管道A、数据管道B、数据管道C分别连接了不同的算法模块,最终汇总于结果输出模块。
[0071] 该示例中数据管道A、数据管道B以及数据管道C,每条数据管道中存有流经算法模块的算法结果。以数据管道A为例,2号算法模块,能够获取到起始算法模块的数据,3号算法模块能够获取到起始算法模块以及2号算法模块的数据,结果输出模块能够获取数据管道A中所有的算法模块结果以及数据管道B、数据管道C中的所有的算法模块结果。
[0072] 基于图3和图4所示的数据管道,为了满足不同业务场景下不同算法方案中算法模块对所需的输入数据在内容上、顺序上的不同需求,本申请提出了三种算法结果获取策略,在其他实施例中,也可以采用本申请实施例提供的三种算法结果获取策略的相似算法结果获取策略,以及组合算法结果获取策略,在此不再赘述。下面结合步骤S12具体介绍本申请提供的三种算法结果获取策略:
[0073] 步骤S12:基于结果获取策略获取至少一个前置算法模块输出的第一处理结果数据。
[0074] 在本申请实施例中,如图4所示,图4中包括1号算法模块、2号算法模块以及3号算法模块。1号算法模块和3号算法模块组成一条数据管道,2号算法模块和3号算法模块组成另一条数据管道。
[0075] 其中,图像处理算法方案中算法模块都是以一帧图像数据为一个单位进行处理,所以算法结果的获取策略也是在帧的维度上进行制定。以图4为例,算法方案中3号算法模块需要依赖1号算法模块和2号算法模块的处理结果,但为应对不同业务需求下保证整体算法方案的处理效率,需要对3号算法模块获取前置算法模块算法结果实现不同的策略。
[0076] 在当前算法模块的结果获取策略为帧间异步策略时,3号算法模块需要获取1号算法模块、2号算法模块两个前置算法模块中任意一个算法模块有处理结果数据都输出后就进行算法处理。该种只要有任意一个前置算法模块输出处理结果数据后就交由算法模块进行处理的策略称为帧间异步策略。
[0077] 具体地,算法模块调度装置在获取单数据管道的一个前置算法模块输出的第一处理结果数据后,即可调度当前算法模块对第一处理结果数据进行处理,得到第二处理结果数据,无须等待其他前置算法模块输出的处理结果数据。
[0078] 在所述结果获取策略为帧间同步策略时,3号算法模块必须获取1号算法模块、2号算法模块两个前置算法模块有处理结果数据都输出后才可进行处理,不关心两个算法模块输出的是否对同一帧图像的处理结果数据。该种对多个并行的前置算法模块且不关心是否是对同一帧图像数据的处理结果进行同步操作后才交由算法模块进行处理的策略称为帧间同步策略。
[0079] 具体地,算法模块调度装置在获取单数据管道的前置算法模块输出的第一处理结果数据后,继续等待其余数据管道的前置算法模块输出的第三处理结果数据。直至获取所有其余数据管道的前置算法模块输出的第三处理结果数据之后,算法模块调度装置才能够调度当前算法模块对第一处理结果数据以及第三处理结果数据进行处理,得到第二处理结果数据。
[0080] 在所述结果获取策略为帧内同步策略时,3号算法模块必须获取1号算法模块、2号算法模块两个前置算法模块对同一帧图像的处理结果数据都输出后才可进行处理。该种对多个并行的前置算法模块同一帧图像数据的处理结果进行同步操作后才交由算法模块处理的策略称为帧内同步策略。
[0081] 具体地,算法模块调度装置在获取单数据管道的前置算法模块输出的第一处理结果数据后,继续等待其余数据管道的前置算法模块输出的第四处理结果数据。算法模块调度装置进一步判断获取到的其余数据管道的前置算法模块输出的第四处理结果数据与第一处理结果数据是否为同一帧图像数据的处理结果。
[0082] 若是,算法模块调度装置调度当前算法模块对第一处理结果数据以及第四处理结果数据进行处理,得到第二处理结果数据。若否,继续等待其余数据管道的前置算法模块输出的第五处理结果数据,直至所述第五处理结果数据与所述第一处理结果数据为同一帧结果时,算法模块调度装置调度所述当前算法模块对所述第一处理结果数据以及所述第五处理结果数据进行处理,得到所述第二处理结果数据。
[0083] 在其他实施例中,本申请还提出了另一种结果获取策略的处理逻辑。请继续参阅图2,算法模块调度装置基于当前算法模块获取单数据管道的算法结果数据之后,判断当前算法模块的结果获取策略是否为帧间异步策略。
[0084] 在当前算法模块的结果获取策略为帧间异步策略时,算法模块调度装置即可整合单数据管道的算法结果数据,从而调度当前算法模块进行处理。
[0085] 在当前算法模块的结果获取策略不为帧间异步策略时,算法模块调度装置在获取所述单数据管道的前置算法模块输出的第一处理结果数据后,继续等待其余数据管道的前置算法模块输出的第六处理结果数据。直至获取所有其余数据管道的前置算法模块输出的第六处理结果数据,判断所述第一处理结果数据和所述第六处理结果数据是否为同一帧结果。若是,算法模块调度装置调度所述当前算法模块对所述第一处理结果数据以及所述第六处理结果数据进行处理,得到所述第二处理结果数据。若否,算法模块调度装置进一步判断所述当前算法模块的结果获取策略是否为帧间同步策略。
[0086] 在所述当前算法模块的结果获取策略为帧间同步策略时,算法模块调度装置调度所述当前算法模块对所述第一处理结果数据以及所述第六处理结果数据进行处理,得到所述第二处理结果数据。
[0087] 在所述当前算法模块的结果获取策略不为帧间同步策略时,算法模块调度装置输出程序异常报警信息,并结束。
[0088] 步骤S13:调度当前算法模块对第一处理结果数据进行处理,得到第二处理结果数据。
[0089] 在本申请实施例中,算法模块调度装置基于步骤S12中的一种结果获取策略调度当前算法模块对前置算法模型的处理结果数据进行处理之后,将处理得到的处理结果数据放置于当前算法模块所在数据管道的结果队列,以便算法模块调度装置调度与所述当前算法模块同一数据管道的后置算法模块对所述结果队列中的第二处理结果数据进行处理,直至完成整个数据管道的算法结果输出。
[0090] 在本申请实施例中,算法模块调度装置获取当前算法模块的结果获取策略;基于所述结果获取策略获取至少一个前置算法模块输出的第一处理结果数据;调度所述当前算法模块对所述第一处理结果数据进行处理,得到所述第二处理结果数据。通过上述方式,算法模块调度方法一种数据管道的方法对图像处理算法方案中的算法结果数据进行管理,支持了算法模块三种不同的算法结果获取策略对算法结果进行管理整合,两者相结合实现灵活支持不同业务场景下的不同图像处理算法方案,最终降低了不同方案的开发成本以及极大提高了算法方案落地与交付的效率。
[0091] 本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
[0092] 为实现上述实施例的算法模块调度方法,本申请还提出了一种算法模块调度装置,具体请参阅图5,图5是本申请提供的算法模块调度装置一实施例的结构示意图。
[0093] 本申请实施例的算法模块调度装置300包括获取策略模块31、获取数据模块32以及调度处理模块33。
[0094] 其中,所述获取策略模块31,用于获取当前算法模块的结果获取策略。
[0095] 所述获取数据模块32,用于基于所述结果获取策略获取至少一个前置算法模块输出的第一处理结果数据。
[0096] 所述调度处理模块33,用于调度所述当前算法模块对所述第一处理结果数据进行处理,得到所述第二处理结果数据。
[0097] 为实现上述实施例的算法模块调度方法,本申请还提出了另一种算法模块调度装置,具体请参阅图6,图6是本申请提供的算法模块调度装置另一实施例的结构示意图。
[0098] 本申请实施例的算法模块调度装置400包括存储器41和处理器42,其中,存储器41和处理器42耦接。
[0099] 存储器41用于存储程序数据,处理器42用于执行程序数据以实现上述实施例所述的算法模块调度方法。
[0100] 在本实施例中,处理器42还可以称为CPU(Central Processing Unit,中央处理单元)。处理器42可能是一种集成电路芯片,具有信号的处理能力。处理器42还可以是通用处理器、数字信号处理器(DSP,Digital Signal Process)、专用集成电路(ASIC,Application Specific Integrated Circuit)、现场可编程门阵列(FPGA,Field Programmable Gate Array)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器42也可以是任何常规的处理器等。
[0101] 为实现上述实施例的算法模块调度方法,本申请还提供了一种计算机可读存储介质,如图7所示,计算机可读存储介质500用于存储程序数据51,程序数据51在被处理器执行时,用以实现如上述实施例所述的算法模块调度方法。
[0102] 本申请还提供一种计算机程序产品,其中,上述计算机程序产品包括计算机程序,上述计算机程序可操作来使计算机执行如本申请实施例所述的算法模块调度方法。该计算机程序产品可以为一个软件安装包。
[0103] 本申请上述实施例所述的算法模块调度方法,在实现时以软件功能单元的形式存在并作为独立的产品销售或使用时,可以存储在装置中,例如一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0104] 以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。