CN114675830A - 部署边缘ai和构建可视化ai编程平台的方法、装置及电子设备 - Google Patents
部署边缘ai和构建可视化ai编程平台的方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114675830A CN114675830A CN202210219056.0A CN202210219056A CN114675830A CN 114675830 A CN114675830 A CN 114675830A CN 202210219056 A CN202210219056 A CN 202210219056A CN 114675830 A CN114675830 A CN 114675830A
- Authority
- CN
- China
- Prior art keywords
- modules
- hardware
- symbol
- software
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种部署边缘AI和构建可视化AI编程平台的方法、装置及电子设备,所述部署边缘AI的方法包括:在可视化AI编程平台中通过模块化图形建模的方式确定AI任务部署的软硬件环境,所述软硬件环境由按任务、算法、硬件、部署框架、操作系统分类的实例化子模块共同确定,每个分类的实例化子模块包含所属的代码段及编译参数;分析所述实例化子模块的拓扑连接关系,构建出目标软硬件环境下的可编译代码程序及编译环境,调用交叉编译工具生成SDK库文件;构建在边缘计算设备中运行的可执行程序,以外部直采数据或者合成数据作为输入,经所述SDK库文件中的推理函数提供推理运算,得到推理结果。开发人员可利用模块化、图形化的建模方式完成复杂的AI任务的部署应用流程,降低了AI落地应用的门槛,提升了开发人员的研发效率。
Description
技术领域
本申请涉及可视化编程领域,具体涉及一种部署边缘AI和构建可视化AI编程平台的方法、装置及电子设备。
背景技术
随着人工智能逐渐普及,使用深度学习技术处理各项任务的需求越来越多,将人工智能与传统产业进行深度融合迫在眉睫。然而,随着AI算法及框架推陈出新速度越来越快、部署硬件芯片种类也越来越多,在运用AI技术解决具体问题时需要掌握大量AI领域的知识,对开发者素质要求也越来越高,这对中小企业来说需要投入大量的人力物力才能顺利完成AI任务的落地应用,限制了人工智能技术的推广。
发明内容
本申请旨在提供一种部署边缘AI和构建可视化AI编程平台的方法、装置及电子设备,通过可视化的边缘AI编程平台,交互操作简单、适配硬件广泛、部署应用灵活、易于集成,可帮助开发人员“零门槛”地在边缘端进行AI任务的部署,满足AI任务的快速落地应用需求,大大提升了开发人员的研发效率,取得了有益的效果。
根据本申请的一方面,提出一种部署边缘AI的方法,包括:
在可视化AI编程平台中通过模块化图形建模的方式确定AI任务部署的软硬件环境,所述软硬件环境由按任务、算法、硬件、部署框架、操作系统分类的实例化子模块共同确定,每个分类的实例化子模块包含所属的代码段及编译参数;
分析所述实例化子模块的拓扑连接关系,构建出目标软硬件环境下的可编译代码程序及编译环境,调用交叉编译工具生成SDK库文件;
构建在边缘计算设备中运行的可执行程序,以外部直采数据或者合成数据作为输入,经所述SDK库文件中的推理函数提供推理运算,得到推理结果;
将所述推理结果用于参与其它逻辑运算或者在显示设备上用图形化界面进行展示。
根据一些实施例,所述方法包括:
所述软硬件环境由任务层、算法层、硬件层、部署框架层和操作系统层多个分类维度来确定;
所述任务层包括计算机视觉、自然语言处理、语音及各垂类子任务;
所述算法层包括所述AI任务所使用的算法模型,根据部署硬件条件选择深度学习标准或者轻量级的模型算法或者传统的机器学习模型算法;
所述硬件层包括边缘计算平台的硬件选型,包括CPU/GPU/NPU/TPU硬件架构或者不同厂商的AI芯片产品;
所述部署框架层包括AI任务的部署框架;
所述操作系统层包括边缘设备操作系统的架构版本,以确定编译SDK包时需要调用的交叉编译工具链。
根据一些实施例,所述方法包括:
所述分析所述实例化子模块的拓扑连接关系,包括:
分析所述可视化页面中所述实例化符号模块的拓扑连接关系,确定外部数据输入及各实例化符号模块的输入输出连接关系。
根据一些实施例,所述方法包括:
所述以外部直采数据或者合成数据作为输入,经所述SDK库文件中的推理函数提供推理运算,得到推理结果,包括:
通过边缘装置采集图像、文字、语音数据作为输入数据;
设置合适的循环周期,将所述输入数据传递给所述推理函数,得到运算后输出的数据。
根据本申请的一方面,提出一种构建可视化AI编程平台的方法,包括:
对软硬件环境进行抽象化建模,形成多个功能模块,并按类别组织形成符号库;
通过用户界面交互操作,在可视化页面中完成所述符号库中图形化符号模块的实例化及配置,形成模块间连接的网络拓扑图;
进行数据流向分析,确定每个模块间的调用传参关系;
构建可编译的程序代码段,调用交叉编译工具编译生成SDK程序包。
根据一些实施例,所述方法包括:
所述对软硬件环境进行抽象化建模,形成多个功能模块,并按类组织形成符号库,包括:
创建所述多个功能模块对应的图形化符号模块,并按软硬件环境类别分类组织形成符号库。
根据一些实施例,所述方法包括:
所述功能模块包含所属的代码段、输入输出变量及编译参数信息。
根据一些实施例,所述方法包括:
所述软硬件环境类别包括:任务、算法、硬件、部署框架、操作系统。
根据一些实施例,所述方法包括:
基于所述图形化符号模块,在可视化页面中通过拖拽、拉线、属性编辑的交互操作完成所述软硬件环境的配置。
根据一些实施例,所述方法还包括:
对所述网络拓扑图中的所述图形化符号模块间的输入输出数据流向进行拓扑分析,以确定每个实例化的符号模块的程序代码段的编译顺序。
根据一些实施例,所述方法还包括:
对所述软硬件环境的配置进行逻辑校验,对不符合条件的配置进行提示;
在确认所述配置正确无误后,生成拓扑分析结果。
根据一些实施例,所述方法还包括:
对所述拓扑分析结果进行处理,构建出所述SDK程序包中需要编译的的代码。
根据本申请的另一方面,提供一种部署边缘AI的装置,包括:
建模及创建符号库模块,用于对软硬件环境进行抽象化建模,形成多个功能模块,并按类别组织形成符号库;
实例化及配置模块,用于通过用户界面交互操作,在可视化页面中完成所述符号库中图形化符号模块的实例化及配置,形成模块间连接的网络拓扑图;
数据分析模块,用于进行数据流向分析,确定每个模块间的调用传参关系;
编译模块,用于构建可编译的程序代码段,调用交叉编译工具编译生成SDK程序包。
根据本申请的另一方面,提供一种构建可视化AI编程平台的装置,包括:
符号编辑模块,用于对软硬件环境进行抽象化建模,形成多个功能模块,并按类别组织形成符号库;
可视化页面编辑模块,用于通过用户界面交互操作,在可视化页面中完成所述符号库中图形化符号模块的实例化及配置,形成模块间连接的网络拓扑图;
拓扑结构分析模块,用于进行数据流向分析,确定每个模块间的调用传参关系;
代码编译生成模块,用于构建可编译的程序代码段,调用交叉编译工具编译生成SDK程序包。
根据本申请的另一方面,提供一种电子设备,包括:
存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法中任一项所述的方法。
根据本申请的另一方面,提供一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被处理器执行时实现上述方法中任一项所述的方法。
根据本申请示例实施例,通过构建可视化编程平台,具备交互操作简单、适配硬件广泛、部署应用灵活、易于集成等特点,可以帮助开发者在不需要掌握复杂的深度学习技术及AI硬件部署调优技术等前提技术的基础上,只需根据平台提供的模块化接口就可以快速完成AI任务的落地应用,可大大降低边缘端AI任务的部署门槛,提升开发人员的研发效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1示出根据本申请示例实施例的可视化AI编程平台构建方法的流程示意图。
图2示出根据本申请示例实施例的可视化AI编程平台构建方法的符号库模块划分示意图。
图3示出根据本申请示例实施例的边缘AI部署方法的流程示意图。
图4示出根据本申请示例实施例的人脸识别的软硬件拓扑示意图。
图5示出根据本申请示例实施例的可视化AI编程平台构建的装置的框图。
图6示出根据本申请示例实施例的边缘AI部署的装置的框图。
图7示出根据一示例性实施例的一种电子设备的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
边缘AI是指在硬件设备上本地处理的AI算法,可以在没有网络连接的情况下处理数据。这意味着可以在无需流式传输或在云端数据存储的情况下进行数据创建等操作。为了实现这些目标,边缘计算可以在云上靠深度学习生成数据,而在数据原点——即设备本身(边缘)执行模型的推断和预测。
从深度学习模型边缘端的部署应用环节来说,边缘计算设备上的开发流程通常由几部分组成:(1)基础平台开发:深度学习分析引擎、业务中台、管理平台;(2)模型转换、验证及优化:使用硬件平台厂商提供的模型转换工具套件将caffe、tensorflow、pytorch等模型转换为目标平台模型,必要时进行模型量化以及模型微调;对不支持的模型或层,自定义算子实现;(3)视频结构化引擎代码适配:主要是视频流及图片编解码、推理等模块,任务管理、流程控制、前后处理等其他代码通常都是跨平台的;(4)交叉编译及测试:使用交叉编译工具链编译及调试代码;(5)业务代码实现:针对不同场景的业务需求开发业务逻辑处理代码;(6)系统部署:可以使用docker部署或者直接本地化部署。
可以看出边缘AI任务的部署应用流程是比较复杂的,开发者需要在目标硬件条件下,根据不同的操作系统、不同的AI芯片架构、不同的业务需求进行特定性开发,还需对芯片和深度学习框架综合算力、功耗、时延等因素联合优化,才能获得AI应用的最佳效果,这也就对开发者的领域知识水平提出了巨大挑战。
本申请基于上述背景,提出了一种可视化AI编程平台构建方法及边缘AI部署方法。开发人员无需掌握复杂的深度学习技术及AI硬件部署调优技术等前提技术,只需要在可视化编程平台中利用模块化的符号进行简单建模即可完成相关环境的配置,借助平台完善丰富的底层支撑完成SDK产物的编译,仅需少量的代码即可完成算法模型的集成,满足AI任务的快速落地应用需求,可大大降低边缘端AI任务的部署门槛,提升开发人员的研发效率,具有重要的现实意义。
以下结合附图对本申请的示例实施例进行说明。
图1示出根据本申请示例实施例的可视化AI编程平台构建方法的流程示意图。
根据一些实施例,使用C++编程语言开发一套边缘AI的组态配置工具,其主体模块包括符号编辑模块、可视化页面编辑模块、拓扑结构分析模块、代码编译生成模块等。组态配置工具采用组件加载和子进程调用的集成模式实现主体模块的配合调用。
符号编辑模块负责构建可视化AI编程平台所支持的图形化符号模块。
可视化页面编辑模块负责提供图形化的编辑界面。
拓扑结构分析模块负责对可视化页面中的符号间的数据流向进行拓扑分析。
代码编译生成模块负责对拓扑分析后的结果进行编译处理。
参见图1,在S101,对软硬件环境进行抽象化建模,形成多个功能模块,并按类别组织形成符号库。
根据一些实施例,利用符号编辑模块功能对边缘端AI任务部署流程中涉及到的软硬件环境进行抽象化建模,形成多个功能模块并按类组织形成符号库,每个功能模块包含了所属的代码段、输入输出变量及编译参数等信息。
一般而言,边缘计算设备上的AI任务部署流程通常由几部分组成:基础平台开发,模型转换、验证及优化,视频结构化引擎代码适配,交叉编译及测试,业务代码的实现。
本申请将边缘端AI任务部署流程中涉及到的软硬件环境划分为任务层、算法层、硬件层、部署框架层和操作系统层等五个大类,具体的子功能模块划分如图2所示的符号库模块划分示意图。
使用符号编辑模块提供的编辑功能,针对每个大类中的细分子功能分别设计一个可视化符号模块,每个符号模块承载了具体某个子功能(函数)定义的输入、输出、参数、代码段等信息。对这些符号模块进行分层分类组织,形成符号库,使用xml格式文件进行存储管理。
在S103,通过用户界面交互操作,在可视化页面中完成所述符号库中图形化符号模块的实例化及配置,形成模块间连接的网络拓扑图。
根据一些实施例,通过用户界面交互操作,可以在可视化页面中完成符号库中符号模块的实例化及拉线配置,形成模块间连接的拓扑网络图。
在可视化AI编程平台界面中,基于已创建符号库中的符号模块,在可视化页面中通过鼠标拖拽、拉线、属性编辑等交互操作完成AI任务部署应用所需的软硬件环境的配置,形成模块间有一定逻辑含义的网络拓扑图。以上,鼠标拖拽可以将符号库中的符号模块在可视化页面中进行实例化,实例化的符号中包括了输入、输出、参数等变量,分别决定了内置函数的传参输入、返回输出、参数默认值等信息;拉线可以修改各实例化模块间传参方式;属性编辑可以修改实例化模块内置函数的参数默认值。
在S105,进行数据流向分析,确定每个模块间的调用传参关系。
根据一些实施例,利用拓扑结构分析模块完成可视化页面的数据流向分析,明确每个模块间的调用传参关系图。
对可视化页面网络拓扑图中的符号模块间输入输出数据流向进行拓扑分析,决定在后续编译过程中对每个实例化的符号模块代码段的编译先后顺序及传参调用方式。
拓扑结构分析模块还需要对可视化编辑模块搭建的软硬件环境配置进行逻辑校验,对不符合条件的配置进行必要的提醒。在保证可视化页面的配置正确无误后,才可以生成拓扑分析结果。
在S107,构建可编译的程序代码段,调用交叉编译工具编译生成SDK程序包。
根据一些实施例,利用代码编译生成模块构建出可编译的代码程序段,调用交叉编译工具编译生成SDK程序包。
对拓扑分析后的结果进行处理,构建出SDK包中需要编译的整合后的完整C++项目代码。根据待部署AI任务的软硬件平台特点,决定使用哪种交叉编译工具对C++项目进行编译,调用编译工具生成可供其它应用程序快速集成调用的SDK程序包。所述SDK程序包中包括:头文件、API接口动态库文件、第三方依赖动态库文件、配置文件、模型文件等。
图3示出根据本申请示例实施例的边缘AI部署方法的流程示意图。
下面以在嵌入式NPU上实现人脸检测识别的AI任务为例简要说明边缘AI部署方法。
参见图3,在S301,在可视化AI编程平台中通过模块化图形建模的方式确定AI任务部署的软硬件环境,所述软硬件环境由按任务、算法、硬件、部署框架、操作系统分类的实例化子模块共同确定,每个分类的实例化子模块包含所属的代码段及编译参数。
根据一些实施例,可视化AI编程平台将各软硬件环境中的元素抽象成图形化的符号模块,构建形成层次化符号库;所述符号库中的符号模块包含当前符号模块需执行的函数代码段或编译参数,将该符号模块拖拽到可视化页面中进行实例化,得到实例化符号模块,将所述实例化符号模块搭建出具有一定逻辑含义的网络拓扑图。
开发人员在可视化AI编程平台的可视化界面中通过对符号库中的符号模块进行拖拽实例化、拉线、编辑参数等界面交互操作,搭建具有一定逻辑含义的网络拓扑图,完成AI任务部署流程中软硬件环境的配置。
软硬件环境由任务层、算法层、硬件层、部署框架层和操作系统层等多个分类维度来确定。
任务层定义具体要实现AI任务类型,可以是计算机视觉、自然语言处理、语音等主流AI研究方向上的各垂类子任务。
算法层定义AI任务所使用的算法模型,可根据部署硬件条件选择深度学习标准或者轻量级的模型算法、或者传统的机器学习模型算法。
硬件层定义边缘计算平台的硬件选型,包括CPU/GPU/NPU/TPU等不同硬件架构或者不同厂商的AI芯片产品。
软件框架层定义AI任务的部署框架,可以是一些通用的部署框架,或者是与硬件选型相匹配的加速软件框架,以充分发挥硬件的AI推理性能。
操作系统层定义边缘设备操作系统的架构版本,用来确定编译SDK包时需要调用的交叉编译工具链。
一般来说,人脸检测识别过程包括人脸检测、人脸对齐、人脸识别三个部分。由人脸检测识别的AI任务部署流程来看,可以确定软硬件环境如下:任务层(人脸检测、人脸对齐、人脸识别)、算法层(Retinaface、Opencv_FaceAlignment、Arcface)、硬件层(ARM NPU)、部署框架层(Rockchip API)、操作系统层(ARM Linux)。
从可视化AI平台的符号库中,分别拖拽Retinaface、Opencv_FaceAlignment、Arcface、ARM NPU、Rockchip API、ARM Linux等符号模块块到可视化页面中进行实例化,平台已在每个符号中内置了相关的代码段。定义拓扑数据流向为:输入图像数据->人脸检测->人脸对齐->人脸识别,算法关联为:人脸检测(Retinaface)、人脸对齐(Opencv_FaceAlignment)、人脸识别(Arcface),部署框架的硬件架构为Rockchip API(NPU),交叉编译工具链选择为(arm-linux-gnueabihf-gcc)。因此,界面中通过拉线的方式确定数据的流向和模块间的算法关联、通过属性选择的方式实现编译参数或模块函数内部超参数的设置,构建出了人脸识别任务相关环节的软硬件环境拓扑图。作为示例的人脸识别的软硬件拓扑示意图如图4所示。
在S303,分析所述实例化子模块的拓扑连接关系,构建出目标软硬件环境下的可编译代码程序及编译环境,调用交叉编译工具生成SDK库文件。
根据一些实施例,分析可视化页面中实例化符号间的拓扑连接关系,确定外部数据输入及各实例化符号的输入输出连接关系,即实例化符号中C++函数的传参调用关系。结合所确定的AI任务的部署软硬件环境,形成当前可视化编程实例下的各API接口的代码段。在交叉编译工具上完成目标硬件平台下SDK程序包的编译生成。
人脸识别示例中,部署框架的软件架构为Rockchip API,人脸检测模块以外部的图像数据、人脸检测Retinaface算法为输入,以检测后的人脸矩形关键区域的图像数据为输出。
因此,将Retinaface算法的前处理、后处理、模型参数设置等嵌入到Rockchip API(NPU)符号模块的内置C++部署标准代码中,构建出人脸检测的接口函数代码段,该代码段即实现了以外部图像为传参输入、经过函数推理运算,返回检测人脸区域信息结构体,作为后续人脸对齐模块处理时的输入数据。通过可视化页面中后续人脸对齐、人脸识别的拓扑关系的逐一构建,形成人脸识别AI任务下完整的接口代码段。
借助可视化页面中确定的arm-linux-gnueabihf-gcc交叉编译工具,在宿主机上对AI任务下完整的代码段进行编译,生成若干动态库文件。将部署流程下涉及的所有编译出的和所依赖的动态库文件、配置文件、模型文件进行整理打包,完成目标硬件平台下SDK程序包的编译生成。
在S305,构建在边缘计算设备中运行的可执行程序,以外部直采数据或者合成数据作为输入,经所述SDK库文件中的推理函数提供推理运算,得到推理结果。
根据一些实施例,以边缘装置外置的摄像头、网络设备等硬件采集的图像、文字、语音等数据为输入,设置合适的循环周期,将输入数据传递给API推理函数,得到运算后的数据输出。这里设置循环周期是因为边缘AI推理是循环推理的,不是只有一次,比如1秒循环检测一次外部输入图像。
输出的数据可以参与到其它逻辑运算的输入中,或者借助显示设备和GUI程序完成数据的管理展示等。
在S307,将所述推理结果用于参与其它逻辑运算或者在显示设备上用图形化界面进行展示。
根据一些实施例,在人脸识别示例中,将外部摄像头采集到的数据接入到边缘端装置中,作为传入参数调用人脸识别接口API函数,经过识别程序和模型的推理运算,得到人脸识别的结果信息。借助显示器和边缘端的显示应用程序,可以对识别结果进行图像输出;或者根据识别结果,参与到其它判别逻辑中,比如人员未登记时是否告警、人员是否允许对边缘装置上的按钮进行操作等等。
应清楚地理解,本申请描述了如何形成和使用特定示例,但本申请不限于这些示例的任何细节。相反,基于本申请公开的内容的教导,这些原理能够应用于许多其它实施例。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本申请提供的上述方法所限定的上述功能的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
通过对示例实施例的描述,本领域技术人员易于理解,根据本申请实施例的边缘AI部署方法及可视化AI编程平台构建方法至少具有以下优点中的一个或多个。
根据示例实施例,通过提出一种可视化AI编程平台构建方法及边缘AI部署方法,开发人员可利用模块化、图形化的建模方式完成复杂的AI任务的部署应用流程,降低了AI落地应用的门槛,提升了开发人员的研发效率。
下面描述本申请的装置实施例,其可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,可参照本申请方法实施例。
图5示出根据一示例性实施例的部署边缘AI的装置的框图。图5所示装置可以执行前述根据本申请实施例的部署边缘AI的方法。
如图5所示,部署边缘AI的装置可包括:建模及创建符号库模块510、实例化及配置模块520、数据分析模块530、编译模块540。
参见图5并参照前面的描述,建模及创建符号库模块510,用于用于对软硬件环境进行抽象化建模,形成多个功能模块,并按类别组织形成符号库;
实例化及配置模块520,用于通过用户界面交互操作,在可视化页面中完成所述符号库中图形化符号模块的实例化及配置,形成模块间连接的网络拓扑图;
数据分析模块530,用于进行数据流向分析,确定每个模块间的调用传参关系;
编译模块540,用于构建可编译的程序代码段,调用交叉编译工具编译生成SDK程序包。
装置执行与前面提供的方法类似的功能,其他功能可参见前面的描述,此处不再赘述。
图6示出根据一示例性实施例的构建可视化AI编程平台的装置的框图。图6所示装置可以执行前述根据本申请实施例的构建可视化AI编程平台的方法。
如图6所示,构建可视化AI编程平台的装置可包括:符号编辑模块610、可视化页面编辑模块620、拓扑结构分析模块630、代码编译生成模块640。
符号编辑模块610,用于对软硬件环境进行抽象化建模,形成多个功能模块,并按类别组织形成符号库;
可视化页面编辑模块620,用于通过用户界面交互操作,在可视化页面中完成所述符号库中图形化符号模块的实例化及配置,形成模块间连接的网络拓扑图;
拓扑结构分析模块630,用于进行数据流向分析,确定每个模块间的调用传参关系;
代码编译生成模块640,用于构建可编译的程序代码段,调用交叉编译工具编译生成SDK程序包。
装置执行与前面提供的方法类似的功能,其他功能可参见前面的描述,此处不再赘述。
图7示出根据一示例性实施例的一种电子设备的框图。
下面参照图7来描述根据本申请的这种实施方式的电子设备200。图7显示的电子设备200仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,电子设备200以通用计算设备的形式表现。电子设备200的组件可以包括但不限于:至少一个处理单元210、至少一个存储单元220、连接不同系统组件(包括存储单元220和处理单元210)的总线230、显示单元240等。
其中,存储单元存储有程序代码,程序代码可以被处理单元210执行,使得处理单元210执行本说明书描述的根据本申请各种示例性实施方式的方法。
存储单元220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)2201和/或高速缓存存储单元2202,还可以进一步包括只读存储单元(ROM)2203。
存储单元220还可以包括具有一组(至少一个)程序模块2205的程序/实用工具2204,这样的程序模块2205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备200也可以与一个或多个外部设备300(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口250进行。并且,电子设备200还可以通过网络适配器260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器260可以通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本申请实施方式的上述方法。
软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
以上具体地示出和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (16)
1.一种部署边缘AI的方法,其特征在于,包括:
在可视化AI编程平台中通过模块化图形建模的方式确定AI任务部署的软硬件环境,所述软硬件环境由按任务、算法、硬件、部署框架、操作系统分类的实例化子模块共同确定,每个分类的实例化子模块包含所属的代码段及编译参数;
分析所述实例化子模块的拓扑连接关系,构建出目标软硬件环境下的可编译代码程序及编译环境,调用交叉编译工具生成SDK库文件;
构建在边缘计算设备中运行的可执行程序,以外部直采数据或者合成数据作为输入,经所述SDK库文件中的推理函数提供推理运算,得到推理结果;
将所述推理结果用于参与其它逻辑运算或者在显示设备上用图形化界面进行展示。
2.根据权利要求1所述的方法,其特征在于,
所述软硬件环境由任务层、算法层、硬件层、部署框架层和操作系统层多个分类维度来确定;
所述任务层包括计算机视觉、自然语言处理、语音及各垂类子任务;
所述算法层包括所述AI任务所使用的算法模型,根据部署硬件条件选择深度学习标准或者轻量级的模型算法或者传统的机器学习模型算法;
所述硬件层包括边缘计算平台的硬件选型,包括CPU/GPU/NPU/TPU硬件架构或者不同厂商的AI芯片产品;
所述部署框架层包括AI任务的部署框架;
所述操作系统层包括边缘设备操作系统的架构版本,以确定编译SDK包时需要调用的交叉编译工具链。
3.根据权利要求1所述的方法,其特征在于,所述分析所述实例化子模块的拓扑连接关系,包括:
分析所述可视化页面中所述实例化符号模块的拓扑连接关系,确定外部数据输入及各实例化符号模块的输入输出连接关系。
4.根据权利要求1所述的方法,其特征在于,所述以外部直采数据或者合成数据作为输入,经所述SDK库文件中的推理函数提供推理运算,得到推理结果,包括:
通过边缘装置采集图像、文字、语音数据作为输入数据;
设置合适的循环周期,将所述输入数据传递给所述推理函数,得到运算后输出的数据。
5.一种构建可视化AI编程平台的方法,其特征在于,包括:
对软硬件环境进行抽象化建模,形成多个功能模块,并按类别组织形成符号库;
通过用户界面交互操作,在可视化页面中完成所述符号库中图形化符号模块的实例化及配置,形成符号模块间连接的网络拓扑图;
进行数据流向分析,确定每个符号模块间的调用传参关系;
构建可编译的程序代码段,调用交叉编译工具编译生成SDK程序包。
6.根据权利要求5所述的方法,其特征在于,所述对软硬件环境进行抽象化建模,形成多个功能模块,并按类组织形成符号库,包括:
创建所述多个功能模块对应的图形化符号模块,并按软硬件环境类别分类组织形成符号库。
7.根据权利要求6所述的方法,其特征在于,所述功能模块包含所属的代码段、输入输出变量及编译参数信息。
8.根据权利要求6所述的方法,其特征在于,所述软硬件环境类别包括:任务、算法、硬件、部署框架、操作系统。
9.根据权利要求5所述的方法,其特征在于,基于所述图形化符号模块,在可视化页面中通过拖拽、拉线、属性编辑的交互操作完成所述软硬件环境的配置。
10.根据权利要求5所述的方法,其特征在于,还包括:
对所述网络拓扑图中的所述图形化符号模块间的输入输出数据流向进行拓扑分析,以确定每个实例化的符号模块的程序代码段的编译顺序。
11.根据权利要求5所述的方法,其特征在于,还包括:
对所述软硬件环境的配置进行逻辑校验,对不符合条件的配置进行提示;
在确认所述配置正确无误后,生成拓扑分析结果。
12.根据权利要求11所述的方法,其特征在于,还包括:
对所述拓扑分析结果进行处理,构建出所述SDK程序包中需要编译的的代码。
13.一种部署边缘AI的装置,其特征在于,包括:
建模及创建符号库模块,用于对软硬件环境进行抽象化建模,形成多个功能模块,并按类别组织形成符号库;
实例化及配置模块,用于通过用户界面交互操作,在可视化页面中完成所述符号库中图形化符号模块的实例化及配置,形成符号模块间连接的网络拓扑图;
数据分析模块,用于进行数据流向分析,确定每个符号模块间的调用传参关系;
编译模块,用于构建可编译的程序代码段,调用交叉编译工具编译生成SDK程序包。
14.一种构建可视化AI编程平台的装置,其特征在于,包括:
符号编辑模块,用于对软硬件环境进行抽象化建模,形成多个功能模块,并按类别组织形成符号库;
可视化页面编辑模块,用于通过用户界面交互操作,在可视化页面中完成所述符号库中图形化符号模块的实例化及配置,形成符号模块间连接的网络拓扑图;
拓扑结构分析模块,用于进行数据流向分析,确定每个符号模块间的调用传参关系;
代码编译生成模块,用于构建可编译的程序代码段,调用交叉编译工具编译生成SDK程序包。
15.一种电子设备,其特征在于,包括:
存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1-12中任一项所述的方法。
16.一种计算机程序产品,包括计算机程序或指令,其特征在于,该计算机程序或指令被处理器执行时实现如权利要求1-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210219056.0A CN114675830A (zh) | 2022-03-08 | 2022-03-08 | 部署边缘ai和构建可视化ai编程平台的方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210219056.0A CN114675830A (zh) | 2022-03-08 | 2022-03-08 | 部署边缘ai和构建可视化ai编程平台的方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114675830A true CN114675830A (zh) | 2022-06-28 |
Family
ID=82071453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210219056.0A Pending CN114675830A (zh) | 2022-03-08 | 2022-03-08 | 部署边缘ai和构建可视化ai编程平台的方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114675830A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115857910A (zh) * | 2023-03-01 | 2023-03-28 | 杭州义益钛迪信息技术有限公司 | 一种边缘计算采集器的编程方法、装置、服务器及介质 |
CN116360759A (zh) * | 2023-03-10 | 2023-06-30 | 青软创新科技集团股份有限公司 | 一种人工智能算法的可视化系统和方法 |
CN117008923A (zh) * | 2023-09-28 | 2023-11-07 | 北京智源人工智能研究院 | 基于ai大模型的代码生成和编译部署方法、平台和设备 |
CN117311678A (zh) * | 2023-08-04 | 2023-12-29 | 四川大学 | 用于ai系统的程序模块序化组接功能合成的等效嵌入方法 |
DE102022120339A1 (de) | 2022-08-11 | 2024-02-22 | Dspace Gmbh | Verfahren zum Modifizieren einer Signalverarbeitungskette |
-
2022
- 2022-03-08 CN CN202210219056.0A patent/CN114675830A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102022120339A1 (de) | 2022-08-11 | 2024-02-22 | Dspace Gmbh | Verfahren zum Modifizieren einer Signalverarbeitungskette |
CN115857910A (zh) * | 2023-03-01 | 2023-03-28 | 杭州义益钛迪信息技术有限公司 | 一种边缘计算采集器的编程方法、装置、服务器及介质 |
CN115857910B (zh) * | 2023-03-01 | 2023-06-06 | 杭州义益钛迪信息技术有限公司 | 一种边缘计算采集器的编程方法、装置、服务器及介质 |
CN116360759A (zh) * | 2023-03-10 | 2023-06-30 | 青软创新科技集团股份有限公司 | 一种人工智能算法的可视化系统和方法 |
CN117311678A (zh) * | 2023-08-04 | 2023-12-29 | 四川大学 | 用于ai系统的程序模块序化组接功能合成的等效嵌入方法 |
CN117311678B (zh) * | 2023-08-04 | 2024-06-04 | 四川大学 | 用于ai系统的程序模块序化组接功能合成的等效嵌入方法 |
CN117008923A (zh) * | 2023-09-28 | 2023-11-07 | 北京智源人工智能研究院 | 基于ai大模型的代码生成和编译部署方法、平台和设备 |
CN117008923B (zh) * | 2023-09-28 | 2023-12-29 | 北京智源人工智能研究院 | 基于ai大模型的代码生成和编译部署方法、平台和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114675830A (zh) | 部署边缘ai和构建可视化ai编程平台的方法、装置及电子设备 | |
Coronado et al. | Visual programming environments for end-user development of intelligent and social robots, a systematic review | |
Fremont et al. | Scenic: A language for scenario specification and data generation | |
CN112394922B (zh) | 决策配置方法、业务决策方法和决策引擎系统 | |
US11074107B1 (en) | Data processing system and method for managing AI solutions development lifecycle | |
Patel et al. | Gestalt: integrated support for implementation and analysis in machine learning | |
Zhang et al. | Design, construction, and application of a generic visual language generation environment | |
CN111310936A (zh) | 机器学习训练的构建方法、平台、装置、设备及存储介质 | |
Limbourg | Multi-path development of user interfaces | |
US10540189B2 (en) | Formalized execution of model integrated descriptive architecture languages | |
JP2022547668A (ja) | 機械学習モデルの視覚的作成及び監視 | |
TWI826702B (zh) | 定義和執行用於指定神經網路架構的程式碼之技術 | |
Kusmenko et al. | On the engineering of AI-powered systems | |
Tragatschnig et al. | Supporting the evolution of event-driven service-oriented architectures using change patterns | |
Mannadiar et al. | Domain-specific engineering of domain-specific languages | |
Schüller et al. | Composing complex and hybrid AI solutions | |
Yang et al. | A novel framework of using petri net to timed service business process modeling | |
Wang et al. | CVNodes: A visual programming paradigm for developing computer vision algorithms | |
Wiebusch et al. | Evaluating scala, actors, & ontologies for intelligent realtime interactive systems | |
Spanoudakis et al. | The agent systems methodology (aseme): A preliminary report | |
Tsur et al. | Code generation of graph-based vision processing for multiple CUDA Cores SoC Jetson TX | |
Andre | Case studies in model-driven reverse engineering | |
Wiebusch | Reusability for Intelligent Realtime Interactive Systems | |
Lee | Finiteness analysis in polynomial time | |
Pandi | Artificial intelligence in software and service lifecycle |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |