一种基于功能定义的数据处理方法及系统与流程

未命名 07-29 阅读:121 评论:0


1.本发明涉及数据处理技术领域,尤其涉及一种基于功能定义的数据处理方法及系统。


背景技术:

2.物联网发展的最终核心是云端技术的比拼,随着物联网终端设备数量的快速增加,同时由于网络带宽有限,高昂的传输成本和较高的响应延时等问题,传统的基于云计算模型的集中式数据处理方式已不能有效处理网络边缘设备所产生的海量数据。
3.现有技术中已经有将软件下发给终端设备用于分析的方法。比如,平台将软件包通过网络下发给终端设备,对特定的终端设备的特定软件做更新和升级,缺点是受限于设备型号及运行环境,功能定义依赖于设备芯片定制+算法定制。不同设备只能运行自家平台或厂商定制的算法,造成各厂商设备之间相互独立,算法无法跨不同厂商设备使用,没有数据协同机制,无法实现计算资源的高效利用,业务实现成本高,周期长;设备功能模块都是预置好的,不支持自定义。
4.因此,现有技术还有待改进和提高。


技术实现要素:

5.本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于功能定义的数据处理方法及系统,旨在提供解决现有技术中的不同设备只能运行自家平台或厂商定制的算法,造成各厂商设备之间相互独立,算法无法跨不同厂商设备使用,没有数据协同机制,无法实现计算资源的高效利用,业务实现成本高,周期长;设备功能模块都是预置好的,不支持自定义的问题。
6.第一方面,本发明提供一种基于功能定义的数据处理方法,其中,所述方法包括:获取功能定义指令,所述功能定义指令包括:算法版本信息、算法基本信息、算法输入参数、算法输出参数以及环境变量;通过算法模板的方式,对算法基本信息、算法输入参数、算法输出参数及环境变量进行统一格式的定义,所述算法基本信息包括:算法作者、创建时间、算法描述、模型框架、模型存储格式、硬件类型、资源需求;基于所述功能定义指令,确定所述算法版本信息对应的算法包,并以容器化或独立进程或服务的方式运行分析所述算法包;基于所述算法包从消息队列或指定网络通道或者外部输入源获取数据,并对所述数据进行分析,将分析后的数据输入至新的消息队列或网络通道中,并将分析后的数据汇入结果分发服务。
7.在一种实现方式中,所述基于所述功能定义指令,确定所述算法版本信息对应的算法包包括:对所述功能定义指令进行解析,确定所述功能定义指令中的所述算法版本信息;
基于所述算法版本信息从算法仓拉取与所述算法版本信息所对应的算法包。
8.在一种实现方式中,所述获取功能定义指令之前,包括:获取下发的分析任务,基于所述分析任务选择算法流程,并开始获取下发的功能定义指令。
9.在一种实现方式中,所述获取下发的分析任务,包括:若所述分析任务为多个,则根据可用资源情况将所述分析任务均匀分配到各个设备集群,每个设备集群中的设备之间网络互通。
10.在一种实现方式中,所述功能定义指令下发时选取资源最充裕的设备为中心节点。
11.在一种实现方式中,每个算法通过环境变量加载自身的输入、输出队列名称,通过消息队列进行数据交互;或,输入输出的网络通道协议、ip地址或url信息、端口信息,通过网络通道进行数据交互。
12.在一种实现方式中,所述方法还包括:基于所述结果分发服务将分析后的数据进行汇总,并将产生的结果流和特征流上报给云/边侧系统。
13.第二方面,本发明实施例还提供一种基于功能定义的数据处理系统,其中,所述系统包括:功能定义模块,用于获取功能定义指令,所述功能定义指令包括:算法版本信息、算法基本信息、算法输入参数、算法输出参数以及环境变量;格式统一模块,用于通过算法模板的方式,对算法基本信息、算法输入参数、算法输出参数及环境变量进行统一格式的定义,所述算法基本信息包括:算法作者、创建时间、算法描述、模型框架、模型存储格式、硬件类型、资源需求;算法模块,用于基于所述功能定义指令,确定所述算法版本信息对应的算法包,并以容器化或独立进程或服务的方式运行分析所述算法包;数据处理模块,用于基于所述算法包从消息队列或者指定网络通道或者外部输入源获取数据,并对所述数据进行分析,将分析后的数据输入至新的消息队列或网络通道,并将分析后的数据汇入结果分发服务。
14.第三方面,本发明实施例还提供一种设备,其中,所述设备包括存储器、处理器及存储在存储器中并可在处理器上运行基于功能定义的数据处理程序,处理器执行基于功能定义的数据处理程序时,实现上述方案中任一项所述的基于功能定义的数据处理方法的步骤。
15.第四方面,本发明实施例还提供一种计算机可读存储介质,其中,计算机可读存储介质上存储有基于功能定义的数据处理程序,所述者基于功能定义的数据处理程序被处理器执行时,实现上述方案中任一项所述的基于功能定义的数据处理方法的步骤。
16.有益效果:与现有技术相比,本发明提供了一种基于功能定义的数据处理方法,本发明首先获取功能定义指令,所述功能定义指令包括:算法版本信息、算法基本信息、算法输入参数、算法输出参数以及环境变量;通过算法模板的方式,对算法基本信息、算法输入参数、算法输出参数及环境变量进行统一格式的定义;基于所述功能定义指令,确定所述算法版本信息对应的算法包,并以容器化或独立进程、服务的方式运行分析所述算法包;基于
所述算法包从消息队列或指定网络通道或者外部输入源获取数据,并对所述数据进行分析,将分析后的数据输入至新的消息队列或网络通道中,并将分析后的数据汇入结果分发服务。本发明通过对将算法模型容器化或独立进程或服务方式运行于设备,实现运行时环境的隔离,通过算法模板的封装定义,实现各个厂家不同算法输入输出参数及环境参数等格式的统一,并且多设备多种算法可以协同交互。
附图说明
17.图1为本发明实施例提供的基于功能定义的数据处理方法的具体实施方式的流程图。
18.图2为本发明实施例提供的基于功能定义的数据处理方法中算法模型容器的运行示意图。
19.图3为本发明实施例提供的基于功能定义的数据处理方法中的算法模板图。
20.图4为本发明实施例提供的基于功能定义的数据处理方法中的算法描述文件图。
21.图5为本发明实施例提供的基于功能定义的数据处理方法中的主处理函数结构图。
22.图6为本发明实施例提供的基于功能定义的数据处理方法中的主处理函数代码示例图。
23.图7为本发明实施例提供的基于功能定义的数据处理方法应用在单设备功能定义指令下发图。
24.图8为本发明实施例提供的基于功能定义的数据处理方法应用多设备时多算法协同图。
25.图9为本发明实施例提供的基于功能定义的数据处理系统的功能原理图。
26.图10为本发明实施例提供的设备的原理框图。
具体实施方式
27.为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
28.本实施例提供了一种基于功能定义的数据处理方法,本实施例首先获取功能定义指令,所述功能定义指令包括:算法版本信息、算法基本信息、算法输入参数、算法输出参数以及环境变量;通过算法模板的方式,对算法基本信息、算法输入参数、算法输出参数及环境变量进行统一格式的定义;基于所述功能定义指令,确定所述算法版本信息对应的算法包,并以容器化或独立进程或服务的方式运行分析所述算法包;基于所述算法包从消息队列或指定的网络通道或者外部输入源获取数据,并对所述数据进行分析,将分析后的数据输入至新的消息队列或网络通道中,并将分析后的数据汇入结果分发服务。本实施例通过将算法模型容器化或独立进程或服务方式运行于设备,实现运行时环境的隔离;支持算法厂商上传算法,通过提供算法模板来定义算法的输入、输出参数规范,不同算法参数格式定义的统一;整个智能终端资源池化,可以将算法调度至最优的设备运行,多设备多种算法可以协同交互;功能定义全流程自动化,一键完成模型上传、算法输入/输出更新、算法打包、
算法下发升级、算法结果表自动更新,降低功能定义成本。
29.示例性方法本实施例的基于功能定义的数据处理方法可应用于设备,该设备包括电脑、智能电视以及其他智能产品终端。如图1中所示,本实施例的基于功能定义的数据处理方法包括如下:步骤s100、获取功能定义指令,所述功能定义指令包括:算法版本信息、算法基本信息、算法输入参数、算法输出参数以及环境变量;步骤s200、通过算法模板的方式,对算法基本信息、算法输入参数、算法输出参数及环境变量进行统一格式的定义;步骤s300、基于所述功能定义指令,确定所述算法版本信息对应的算法包,并以容器化或独立进程或服务的方式运行分析所述算法包;步骤s400、基于所述算法包从消息队列或指定网络通道或者外部输入源获取数据,并对所述数据进行分析,将分析后的数据输入至新的消息队列或网络通道中,并将分析后的数据汇入结果分发服务。
30.在本实施例中,如图2中所示,算法和消息队列都以容器化或独立进程或服务的方式运行,算法和消息队列可以运行在不同的设备上,也可运行在同一设备上。消息队列用做设备或算法之间的数据交互。算法输入来自外部输入源(视频、图像等)或从队列或从网络通道中获取其他算法的输出,然后将算法结果输出到新的队列或网络通道中。
31.并且,每个算法程序基于算法模板之上,实现内部处理以及与外部交互。如图3中所示,内置默认算法模板,该算法模板的目录结构按照bin、script、data、meta-inf来约定:bin:程序文件,存放算法程序、主处理函数(用来封装用户算法,作为程序入口)、算法模型等文件;script:算法程序启动、停止和状态查询脚本;data:存放用于演示算法功能效果的样本数据,如图片文件、视频文件;meta-inf:算法信息描述文件。
32.其中,算法信息描述文件是实现算法之间交互的核心,以yaml格式提供算法信息描述文件,如图4中所示,共分为以下四个部分:算法基本信息:包括算法作者、创建时间、算法描述、版本号、模型框架、模型存储格式、硬件类型、资源需求等;输入格式定义:包括数据类型、基础参数(包括任务id、二进制数据长度、算法信息等)、业务参数(根据具体算法来定义,比如抽帧算法的帧率)、自定义参数;输出格式定义:包括数据类型、基础参数(包括任务id、二进制数据长度、算法信息等)、业务参数(根据具体算法来定义,比如输出图像帧的格式)、自定义参数;环境变量定义:消息队列连接配置信息、算法输入的队列名称、算法输出的队列名称;或消息队列连接输入输出的网络通道协议、ip地址或url信息、端口信息,以及视频源信息、自定义环境变量等。
33.对于可确定的静态信息可直接配置,如需动态传递的数据(如输入、输出参数)可以配置为${xxx}格式,算法程序运行时,数据再动态的传入算法。算法框架生成工具根据算法模板中的算法信息描述文件的定义,自动生成算法主处理函数框架。
34.如图5中所示,本实施例的算法主处理函数负责算法的内部处理以及与外部交互,主要由以下三部分组成:算法输入参数:格式为json+二进制数据,其中json数据包括基础参数、业务参数、用户自定义参数,二进制数据(非必需)包括图片数据、特征数据;算法输出参数:格式为json+二进制数据,其中json数据包括基础参数、业务参数、用户自定义参数,二进制数据(非必需)包括图片数据、特征数据;环境变量:消息队列连接配置信息、算法输入的队列名称、算法输出的队列名称;或消息队列连接输入输出的网络通道协议、ip地址或url信息、端口信息,以及视频源信息、自定义环境变量等。
35.为便于扩展,上述json数据可采用json schema格式进行定义。
36.算法主处理函数屏蔽了算法输入的获取、输出的传递,用户只需关注算法的核心代码开发,然后嵌套主处理函数以此与其他算法进行交互。本实施例的主处理函数代码如图6中所示。
37.具体应用时,如图7中所示,获取下发的分析任务,基于所述分析任务选择算法流程,并开始获取下发的功能定义指令。接着,下发功能定义指令至设备,功能定义指令包括算法版本信息、算法模板信息,所述算法模板信息包括:算法基本信息、算法输入参数(外部输入源参数或输入消息队列的名称、或输入网络通道的协议、ip地址信息及端口等)、算法输出参数(输出消息队列的名称、或输出网络通道的协议、ip地址信息及端口等)以及环境变量。上述参数也可以通过功能定义指令+算法描述信息文件来发送。设备接收到指令后,对所述功能定义指令进行解析,确定所述功能定义指令中的所述算法版本信息。然后基于所述算法版本信息从算法仓(即图7中的算法模型仓)拉取与所述算法版本信息所对应的算法包。接着,设备基于所述算法包从消息队列或指定网络通道或者外部输入源获取数据,并对所述数据进行分析,将分析后的数据输入至新的消息队列或网络通道中。比如,算法a从消息队列1或外部输入源(视频、图像等)获取数据,分析数据输出到新的消息队列2,通过队列实现算法间数据交互;消息队列2的数据汇入结果分发服务,也可继续作为其他算法的数据输入。最后,结果分发服务负责最后的数据汇总,将产生的结果流和特征流上报给云/边侧系统。
38.在另一种实现方式中,如图8中所示,当设备有多个时,用户选择算法、多个设备、调度策略等选项,下发批量分析任务,调度模块根据调度策略制定最佳的调度方案。若所述分析任务为多个,则根据可用资源情况将所述分析任务均匀分配到各个设备集群,每个设备集群中的设备之间网络互通。对于单个分析任务,进一步拆分成多个子任务,分给同集群内的多个设备。本实施例的功能定义指令下发时选举资源最充裕的设备为中心节点,部署消息队列和结果分发服务(如有仍有剩余,也可运行算法,参与数据分析)。同一集群内设备可以通过消息队列或网络通道直接交互数据,避免设备数据由云/边侧系统中转,降低网络延时,有效提高整体数据处理性能。每个设备独立运行不同算法,每个算法通过环境变量加载自身的输入、输出队列名称,通过消息队列的进行数据交互。
39.具体地,如图8所示,算法a(即图8中的算法镜像a)运行在设备1(即图8中的终端设备1),算法b算法c为不同算法,分别运行在设备2与设备3;算法d1与d2是同一种算法,分别运行在设备4与设备5。算法a结果输出到消息队列1,算法b从消息队列1获取数据,通过算法
b监听算法a的输出队列来实现算法的串联。算法a结果输出到消息队列1,算法b和算法c都从消息队列1获取数据,则算法b和算法c为并联关系,算法b和算法c分别独立消费完整的算法a输出结果,算法结果输出到不同的队列中。算法c结果输出到消息队列3,算法d1和算法d2都从消息队列3获取数据,算法d1和d2是同一个算法的多个副本,则算法d1和d2共同分担消费算法c输出结果,算法结果输出到同一个队列中。
40.可见,本实施例基于容器化或独立进程/服务及模板封装,统一算法输入输出等格式定义,解决不同设备只能运行自家平台或厂商定制的算法的问题,实现算法的互通和共享。并且,本实施例通过功能定义指令下发实现多设备多种算法协同交互。
41.示例性系统基于上述实施例,本发明还提供一种基于功能定义的数据处理系统,如图9所示,所述系统包括:功能定义模块10、格式统一模块20、算法模块30以及数据处理模块40。具体地,所述功能定义模块10,用于获取功能定义指令,所述功能定义指令包括:算法版本信息、算法基本信息、算法输入参数、算法输出参数以及环境变量。所述格式统一模块20,用于通过算法模板的方式,对算法基本信息、算法输入参数、算法输出参数及环境变量进行统一格式的定义。所述算法模块30,用于基于所述功能定义指令,确定所述算法版本信息对应的算法包,并以容器化或独立进程或服务的方式运行分析所述算法包。所述数据处理模块40,用于基于所述算法包从消息队列或指定网络通道或者外部输入源获取数据,并对所述数据进行分析,将分析后的数据输入至新的消息队列或网络通道中,并将分析后的数据汇入结果分发服务。
42.本实施例的基于功能定义的数据处理系统中各个模块的工作原理与上述方法实施例中各个步骤的原理相同,此处不再赘述。
43.基于上述实施例,本发明还提供了一种设备,所述设备的原理框图可以如图10所示。设备可以包括一个或多个处理器100(图10中仅示出一个),存储器101以及存储在存储器101中并可在一个或多个处理器100上运行的计算机程序102,例如,基于功能定义的数据处理程序。一个或多个处理器100执行计算机程序102时可以实现基于功能定义的数据处理系统实施例中各模块/单元的功能,此处不作限制。
44.在一个实施例中,所述处理器100可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器 (digital signal processor,dsp)、专用集成电路 (application specific integrated circuit,asic)、现成可编程门阵列 (field-programmable gate array,fpga) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
45.在一个实施例中,存储器101可以是电子设备的内部存储单元,例如电子设备的硬盘或内存。存储器101也可以是电子设备的外部存储设备,例如电子设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器101还可以既包括电子设备的内部存储单元也包括外部存储设备。存储器101用于存储计算机程序以及设备所需的其他程序和数据。存储器101还可以用于暂时地存储已经输出或者将要输出的数据。
46.本领域技术人员可以理解,图10中示出的原理框图,仅仅是与本发明方案相关的
部分结构的框图,并不构成对本发明方案所应用于其上的设备的限定,具体的设备以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
47.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、运营数据库或其它介质的任何引用,均可包括非易失性和易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双运营数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink) dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
48.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:
1.一种基于功能定义的数据处理方法,其特征在于,所述方法包括:获取功能定义指令,所述功能定义指令包括:算法版本信息、算法基本信息、算法输入参数、算法输出参数以及环境变量;通过算法模板的方式,对算法基本信息、算法输入参数、算法输出参数及环境变量进行统一格式的定义,所述算法基本信息包括:算法作者、创建时间、算法描述、模型框架、模型存储格式、硬件类型、资源需求;基于所述功能定义指令,确定所述算法版本信息对应的算法包,并以容器化或独立进程或服务的方式运行所述算法包;基于所述算法包从消息队列或网络通道或者外部输入源获取数据,并对所述数据进行分析,将分析后的数据输入至新的消息队列或网络通道中,并将分析后的数据汇入结果分发服务。2.根据权利要求1所述的基于功能定义的数据处理方法,其特征在于,所述基于所述功能定义指令,确定所述算法版本信息对应的算法包包括:对所述功能定义指令进行解析,确定所述功能定义指令中的所述算法版本信息;基于所述算法版本信息从算法仓拉取与所述算法版本信息所对应的算法包。3.根据权利要求1所述的基于功能定义的数据处理方法,其特征在于,所述获取功能定义指令之前,包括:获取下发的分析任务,基于所述分析任务选择算法流程,并开始获取下发的功能定义指令。4.根据权利要求3所述的基于功能定义的数据处理方法,其特征在于,所述获取下发的分析任务,包括:若所述分析任务为多个,则根据可用资源情况将所述分析任务均匀分配到各个设备集群,每个设备集群中的设备之间网络互通。5.根据权利要求4所述的基于功能定义的数据处理方法,其特征在于,所述功能定义指令下发时选取资源最充裕的设备为中心节点。6.根据权利要求4所述的基于功能定义的数据处理方法,其特征在于,每个设备集群中的设备独立运行不同算法,每个算法通过环境变量加载自身的输入、输出队列名称,通过消息队列进行数据交互;或,输入输出的网络通道协议、ip地址或url信息、端口信息通过网络通道进行数据交互。7.根据权利要求1所述的基于功能定义的数据处理方法,其特征在于,所述方法还包括:基于所述结果分发服务将分析后的数据进行汇总,并将产生的结果流和特征流上报给云/边侧系统。8.一种基于功能定义的数据处理系统,其特征在于,所述系统包括:功能定义模块,用于获取功能定义指令,所述功能定义指令包括:算法版本信息、算法基本信息、算法输入参数、算法输出参数以及环境变量;格式统一模块,用于通过算法模板的方式,对算法基本信息、算法输入参数、算法输出参数及环境变量进行统一格式的定义,所述算法基本信息包括:算法作者、创建时间、算法描述、模型框架、模型存储格式、硬件类型、资源需求;
算法模块,用于基于所述功能定义指令,确定所述算法版本信息对应的算法包,并以容器化或独立进程或服务的方式运行分析所述算法包;数据处理模块,用于基于所述算法包从消息队列或指定的网络通道或者外部输入源获取数据,并对所述数据进行分析,将分析后的数据输入至新的消息队列或网络通道中,并将分析后的数据汇入结果分发服务。9.一种设备,其特征在于,所述设备包括存储器、处理器及存储在存储器中并可在处理器上运行的基于功能定义的数据处理程序,所述处理器执行所述基于功能定义的数据处理程序时,实现如权利要求1-7任一项所述的基于功能定义的数据处理方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有基于功能定义的数据处理程序,所述基于功能定义的数据处理程序被处理器执行时,实现如权利要求1-7任一项所述的基于功能定义的数据处理方法的步骤。

技术总结
本发明公开了一种基于功能定义的数据处理方法及系统,方法包括:获取功能定义指令,功能定义指令包括:算法版本信息、算法输入参数、算法输出参数以及环境变量;通过算法模板的方式,对算法基本信息、算法输入参数、算法输出参数及环境变量进行统一格式的定义;基于功能定义指令,确定算法版本信息对应的算法包,并以容器化或独立进程或服务的方式运行算法包;基于算法包从消息队列或网络通道或者外部输入源获取数据,并对数据进行分析,将分析后的数据输入至新的消息队列或网络通道中。本发明可实现运行时环境的隔离,通过算法模板的封装定义,实现各个厂家不同算法输入输出参数及环境参数等格式统一,并且多设备多种算法可以协同交互。交互。交互。


技术研发人员:王耀威 周运红 陈鹏 袁锦宇 高文
受保护的技术使用者:鹏城实验室
技术研发日:2023.06.19
技术公布日:2023/7/21
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐