CN113992941A - 基于无服务器函数计算的云边协同视频分析***与方法 - Google Patents
基于无服务器函数计算的云边协同视频分析***与方法 Download PDFInfo
- Publication number
- CN113992941A CN113992941A CN202111184613.1A CN202111184613A CN113992941A CN 113992941 A CN113992941 A CN 113992941A CN 202111184613 A CN202111184613 A CN 202111184613A CN 113992941 A CN113992941 A CN 113992941A
- Authority
- CN
- China
- Prior art keywords
- module
- state
- edge
- cloud
- state machine
- 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.)
- Granted
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 29
- 238000000034 method Methods 0.000 title claims description 40
- 230000006870 function Effects 0.000 claims description 142
- 238000001514 detection method Methods 0.000 claims description 37
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 230000011218 segmentation Effects 0.000 claims description 10
- 238000007781 pre-processing Methods 0.000 claims description 8
- 230000007704 transition Effects 0.000 claims description 8
- 238000005192 partition Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 239000013589 supplement Substances 0.000 claims description 4
- 206010048669 Terminal state Diseases 0.000 claims description 2
- 230000018109 developmental process Effects 0.000 claims description 2
- 238000004519 manufacturing process Methods 0.000 claims description 2
- 230000001502 supplementing effect Effects 0.000 abstract 1
- 125000002015 acyclic group Chemical group 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 241000196324 Embryophyta Species 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000035945 sensitivity Effects 0.000 description 3
- 244000025254 Cannabis sativa Species 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23418—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44008—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了基于无服务器函数计算的云边协同视频分析***,所述***包括边缘状态机模块、云边协同器模块和云应用模块;其中所述边缘状态机模块用于为亚马逊步骤函数提供边缘能力的补充,是一种可以在边缘端独立运行或者和云端的亚马逊步骤函数协同运行的***;所述云边协同器模块用于进行边缘状态机和亚马逊步骤函数之间的转换和协同;所述云应用模块用于定义视频流分析任务的模型流水线;实现根据视频内容是否包含人物来进行不同分析的视频流分析任务。
Description
技术领域
本发明属于计算机技术领域,具体涉及一种基于无服务器函数计算的云边协同视频分析***与方法。
技术背景
如今使用云计算-边缘计算框架进行计算处理已经成为发展的必然趋势,该架构通过将部分任务放在离用户终端物理距离近的边缘设备上处理,从而有效地减少网络延迟,提高应用响应速度,同时将剩余任务放在具有弹性资源扩展能力的云端进行计算。由于面向用户的在线视频处理任务需要使用多种类型的深度学***台开发了名为亚马逊Lambda的无服务器服务,这使得用户可以在第三方掌控计算资源的分配和伸缩的情况下执行函数,因此亚马逊Lambda具有响应速度快,减轻开发人员管理计算资源的负担的特点。然而,Lambda函数具有无状态,由事件驱动,价格昂贵的特点,因此Lambda函数和边缘算力结合才能达到时延和花销的更好的平衡。
为了达成较优的平衡,需要将任务划分为云端和边缘端两部分,然后再云边协同执行任务。云边协同场景下任务的划分方式会对用户体验造成很大的影响。现有的云边协同模型通常是开发人员根据应用的功能组成流程来进行任务划分的,并没有考虑到根据模型来进行任务划分。由于不同模型对内存的需求和响应时间都会有很大的差异,粗粒度的任务调度可能会导致任务的云边协同无法达到最优的平衡点,并且任务划分的方案的细微差异都将会导致响应时间的剧烈抖动。
为了对任务进行划分,许多工作都会将任务划分成多个子任务,并且以流水线的形式将子任务组合成一个有向无环图的形式后,再进行任务划分。然而,这些工作设计的有向无环图多数是以顺序结构来组织的,并没有考虑到子任务之间的选择,循环,分支关系。在遇到内部逻辑复杂的任务时,就无法得到可以精确描述任务的有向无环图。
为了解决这个问题,现有的一些工作已经实现了在云端使用云提供商提供的框架来构成具有复杂图逻辑的有向无环图,比如亚马逊开发出了名为亚马逊步骤函数的流水线服务,它可以将多个亚马逊Lambda函数组织成一个状态机实例,从而协调多个功能的执行。
然而,目前的工作并没有研究在边缘端提供一个将任务划分为具有复杂图逻辑的有向无环图的自动化框架。这导致边缘端的任务划分需完全依赖人工编写程序,从而造成函数接口的不统一,这会导致子任务模块复用困难。而云边协同的框图中往往会出现多个相同的子任务模块,函数接口不统一会导致代码冗余和框图的臃肿。
为了保证令人满意的在线服务性能,同时减少资源消耗,在判断子任务的执行环境是在云端还是边缘端时,现有的云边协同框架通常不够灵活,一些方法以函数为单位判断该函数在云端还是在边缘端执行,虽然能够细粒度地进行资源调度,但是却忽略了有向无环图的完整性以及子任务之间的依赖,以及并发的情况,只能够解决函数之间顺序继承的逻辑关系。其他方法事先分割有向无环图,之后再使用算法选择子图的执行环境,这样的方法虽然保持了图的完整性,但却是一种粗粒度的划分方法。因此,上述的方法很难同时满足任务划分时的图的完整性和分割的灵敏度这两个重要的特征。
因此,现有技术具有以下缺陷:
1、为了实现云边协同任务的细粒度资源调度,在对任务进行划分时,许多工作都会将任务划分成多个子任务,并且以流水线的形式将子任务组合成一个有向无环图的形式后,再进行图的划分。然而,这些工作设计的有向无环图多数是以顺序结构来组织的,并没有考虑到子任务之间的选择,循环,分支关系。在遇到内部逻辑复杂的任务时,就无法得到可以精确描述任务的有向无环图。亚马逊提出的亚马逊步骤函数已经实现了在云端使用云提供商提供的框架来构成具有复杂图逻辑的有向无环图,然而,这些工作并没有研究在边缘端提供一个将任务划分为具有复杂图逻辑的有向无环图的自动化框架。
2、为了平衡好令人满意的在线服务性能和减少资源消耗,在判断子任务的执行环境是在云端还是边缘端时,现有的云边协同框架通常不够灵活,现有方法例如亚马逊物联网绿草虽然可以将亚马逊Lambda函数扩展至边缘端,却没有在边缘端实现将函数以有向无环图形式组织起来的方法,它在边缘端执行的仍是一个完整的任务,任务内并没有进行细粒度的划分。其他方法则实现了将函数以亚马逊状态语言语义组织起来,例如开源框架Flogo,然而框架的实现却并不完整,只实现了最基本的顺序和选择分支等,却没有实现重定义集合分支和与亚马逊步骤函数的对接,因此Flogo只是一个功能不完整,且只能单独地在边缘端运行的一个独立的***。
3、现有方法通常以函数为单位判断该函数在云端还是在边缘端执行,虽然能够细粒度地进行资源调度,但是却忽略了有向无环图的完整性以及子任务之间的依赖,以及高并发的情况,且只能实现函数之间顺序继承的逻辑关系。其他方法则事先分割多个不同分割点下的有向无环图,之后再使用算法选择子图的执行环境,这样的静态云边协同方法虽然保持了图的完整性,但是在图的分割上灵敏度不够。因此,上述的方法很难同时满足任务划分时的图的完整性和分割的灵敏度这两个重要的特征。
发明内容
鉴于现有技术的缺陷,本发明提供了一种基于无服务器函数计算的云边协同视频分析***与方法,具体的说,本发明是一个基于模型流水线的高并发的具有有限状态机语义的云边协同视频流处理框架,由基于亚马逊步骤函数状态机的云端模型流水线和基于本发明自主开发的边缘高并发状态机边缘状态机的边缘模型流水线组成。模型流水线是指使用多个内存需求不同,或者功能不同的深度学习模型来共同构成一个具有有限状态机的任务形式。它具有能够在云端和边缘端实现进行细粒度资源调度的同时,构成具有复杂图逻辑的模型流水线的特点。
首先,在得到用户的请求数据和任务模式后,将任务映射成由多个状态组成的且具有复杂图逻辑的有向无环图。部署在边缘设备上的边缘状态机将有向无环图中的多个状态分别封装为独立的函数模板,然后再根据有向无环图中的状态之间的逻辑,按照映射规则将多个状态组合成具有复杂图逻辑的模型流水线状态机。为了解决云边协同框架不够灵活的缺点,本发明在边缘端部署了一个完整的模型流水线状态机后,将在云端使用亚马逊步骤函数布置一个和边缘端具有相同功能的模型流水线状态机,云端和边缘端的模型流水线状态机都将引入一个自主判断起点和终点的路由模板,根据用户自定义的云边协同分割点来进行自适应的云边结合。由于有向无环图具有单起点,多终点的特征,因此路由模板可以很好地通过控制有向无环图的起点和终点来划分该图的任意子图,从而进行灵活的云边协同。并且路由模块的部署和运行几乎不会对***的性能造成影响。比起传统的以函数为单位的资源调度保持了图的完整性,由于路由模块能根据用户的任务请求动态地进行云边协同的有向无环图的组织,又比静态云边协同方法更灵活,并且避免了事先要组合出所有可能的云边协同的有向无环图的计算成本和内存消耗。
为了实现上述目的,本发明采用的技术方案如下:
基于无服务器函数计算的云边协同视频分析***,所述***包括边缘状态机模块、云边协同器模块和云应用模块;其中
所述边缘状态机模块用于为亚马逊步骤函数提供边缘能力的补充,是一种可以在边缘端独立运行或者和云端的亚马逊步骤函数协同运行的***;
所述云边协同器模块用于进行边缘状态机和亚马逊步骤函数之间的转换和协同;
所述云应用模块用于定义视频流分析任务的模型流水线;实现根据视频内容是否包含人物来进行不同分析的视频流分析任务。
需要说明的是,所述边缘状态机模块包括:
状态池模块:用于表示所有可用状态的集合,其中,状态是指用户自定义的实现应用逻辑的函数;
重定义状态语言状态机模块:重定义状态语言状态机在边缘端提供了类似亚马逊状态语言的定义状态间的转移关系的功能;
解析器模块:用于解析重定义状态语言,管理状态池,以及动态判断状态之间的转移关系;
执行器模块:用于定义执行状态机的云边协同策略,用户可以自行定义云端资源和边缘端资源的调用比例;
消息模块:用于模板化状态之间传递的信息,定义了信息的基本数据结构,使用集合结构存储数据的类型和数值。
需要说明的是,所述云边协同器模块包括:
预处理模块:用于接收用户的请求数据和调用状态机以执行流水线任务;
状态模块:用于实现用户自定义的状态的主体应用逻辑,通过实现状态的句柄函数来实现具体的功能;
函数工厂模块:用于产生边缘状态机模块和亚马逊步骤函数所需的状态资源;
边缘状态机模块:用于实现边缘状态机,使用边缘状态机模块和函数工厂模块所生成的状态资源生成边缘端状态机,具有用户自定义的流水线任务的状态转移逻辑,是有向无环图的具体实现;用户可以在边缘状态机模块决定是否调用云端资源,如果调用云端资源则实现了云边协同,否则,则***只会调用边缘端计算资源;
Lambda函数模块:用于定义Lambda函数,使用Lambda函数的软件开发工具包和状态模块生成的函数主体逻辑进行封装;
亚马逊状态语言模块:用于生成亚马逊步骤函数所需要的亚马逊状态语言文件,亚马逊状态语言模块通过解析边缘状态机模块所定义的边缘状态机,自动生成亚马逊状态语言文件,并且进行亚马逊状态语言文件语法规范的检查;
SAM模块:用于生成自动部署亚马逊步骤函数的脚本YAML文件。该模块指明构成亚马逊步骤函数的亚马逊状态语言文件和Lambda函数的位置,将对应资源打包并且在云端自动部署亚马逊步骤函数;
执行模块:用于实现用户调用状态机并且自动发送数据的程序逻辑;执行模块使用Golang协程来管理用户请求的发送,每个协程对应一次用户请求,一次用户请求调用一次状态机实例;
需要说明的是,所述云应用模块包括:
视频分割模块:用于按照固定的频率将视频分割成视频帧;
人物检测模块:用于检测视频帧中是否包含人物;
人脸检测模块:用于识别视频帧中的人脸;
骨架检测模块:用于检测视频帧中的人物的骨架形状;
目标检测模块:用于对视频帧中的物体进行识别和分类;
场景转换模块:用于转换视频帧的场景风格类型;
路由模块:用于实现云边协同时云边的无缝衔接。由于云边协同是基于对模型流水线任务的有向无环图的分割,从而前半部分在边缘端执行,后半部分在云端执行;路由模块可以动态地限制边缘状态机和云端状态机的起点和终点,从而实现不同分割点下云边的无缝衔接。
需要说明的是,所述重定义状态语言状态机模块具有5种状态属性,包括
任务:用于实现用户自定义的应用逻辑,是状态执行的主体;
直线:用于实现状态之间的顺序结构,通常是两个状态之间相互连接,先执行的状态的输出是后执行的状态的输入;
重定义集合:用于使用多个不同输入来并发执行同一个状态,本发明使用数组顺序存储多个输入,并按序调用集合状态内嵌套的多个状态;
选择分支:用于实现分支逻辑,本发明使用集合数据结构存储条件和状态的映射关系。选择分支状态将根据输入条件选择对应的状态;
成功:用于表示状态机实例的终点,只有在状态机实例成功结束时才能到达;
失败:用于表示状态机实例非法终端,此时状态机实例由于异常或错误停止运行。
需要说明的是,所述函数工厂分为:
工厂:用于生产边缘状态机所需要的状态资源;
辅助工厂:用于调用亚马逊步骤函数暴露的接口;为了减少经济开销,云端亚马逊步骤函数仅作为边缘端状态机计算资源的补充;其中,辅助工厂只在工厂无法生成边缘端状态资源时生产;用户也可自定义辅助工厂的生产逻辑。
本发明还提供一种利用基于无服务器函数计算的云边协同视频分析***的云边协同视频分析方法,所述方法包括以下步骤:
S1亚马逊状态语言模块生成亚马逊状态语言文件,并且返回亚马逊状态语言文件所在的目录地址给SAM模块;
S2SAM模块接收亚马逊状态语言文件所在的目录地址,生成YAML文件并且自动部署云端的亚马逊步骤函数,且返回亚马逊步骤函数的调用接口给函数工厂的辅助工厂模块;
S3执行模块读取视频帧,并且按照固定速率发送POST请求给预处理模块中定义的路由,POST请求包含所要处理的数据和状态机的起始状态信息和终点状态信息;
S4预处理模块接收到请求后,启动一个协程调用边缘状态机模块定义的状态机,将请求数据和状态机的起始状态信息和终点状态信息转发给边缘状态机模块执行;
S5边缘状态机模块接收到请求后,该模块内有由边缘状态机模板定义的状态机,该模块从请求中定义的状态机的起始状态开始执行,当执行一个状态时,当前状态将会调用函数工厂模块以获得该状态定义的函数资源;根据用户制定的云边协同策略,如果该状态需要调用边缘端资源,该状态则调用函数工厂模块的工厂生成边缘端函数,如果该状态需要调用云端资源,该状态则调用函数工厂模块的辅助工厂调用云端的亚马逊步骤函数;在获得函数资源并且处理完数据后,当前状态将输出和当前状态所相连的下一个状态信息传给路由模块继续执行,或者是成功退出状态机,当遇到运行时错误时,该状态终止运行,并且提前退出状态机;
S6函数工厂模块在被调用时,查看被调用工厂的类型。如果是工厂类型,函数工厂模块生成边缘端的计算资源,返回在边缘端执行的函数;如果是辅助工厂类型,函数工厂模块返回调用亚马逊步骤函数的函数;
S7路由模块在接收上一个状态的输出和当前要执行的状态信息后,判断当前状态是否是用户定义的终点状态,如果是,则终止状态机的运行,退出程序;若否,则将上一个状态的输出传给边缘状态机模块,执行当前状态。
本发明的有益效果在于:
1、本发明公开了一种基于无服务器函数计算的云边协同视频分析***,为了实现基于亚马逊步骤函数的云边协同,即亚马逊步骤函数除了能在云边运行外,能够将状态机的部分或全部扩展至边缘执行。本发明在边缘端构造了一个能够兼容亚马逊步骤函数的边缘状态机***边缘状态机。比起传统方法中不能提供状态机能力的亚马逊物联网绿草和只实现了少量状态机能力的开源框架Flogo,边缘状态机可以较为完整地兼容亚马逊步骤函数的状态机执行能力。并且边缘状态机定义了可以和亚马逊步骤函数兼容的消息类型,以及和亚马逊状态语言相似的边缘状态机定义语言,比起使用和亚马逊步骤函数有巨大差异的自定义的消息类型和状态机定义Flogo,边缘状态机避免了消息在云边之间传输时的类型转换,并且由于边缘端和云端的状态机定义语言是相似的,边缘状态机所产生的状态机可以同时完美地兼容云端和边缘端,而不必为了适配云端的亚马逊步骤函数对状态机进行额外的改造。
2、本发明公开的一种新的基于无服务器函数计算的云边协同视频分析***,提供了一个边缘状态机解释器云边协同器。云边协同器可以进行边缘状态机和亚马逊步骤函数之间的转换和协同。相比起传统方法云边各自实现一个***,云边协同器可以复用云边相同的代码,从而具有高内聚,低耦合的优点。云边协同器可以根据边缘状态机模板定义的状态机自动生成亚马逊步骤函数部署所需要的亚马逊状态语言文件和YAML文件,相比起传统文件手动编写文件,云边协同器具有自动化部署资源,避免手动编写成本和降低时间开销的优点。
3、本发明提供了路由模块,实现了灵活的云边协同。传统方法在实现云边协同时在云端的分割单位是单个的Lambda函数,以Lambda为单位组成流水线任务,而不依靠亚马逊步骤函数的图组织形式。因此传统方法的任务组织一般是只具有简单的顺序继承关系的,并不能实现状态机的状态之间的复杂转移关系,泛用性低。本发明实现了在有向无环图的视角上根据路由模块任意选择云边之间的分割点,并且实现云边之间的无缝衔接,不会破坏图中状态之间的依赖关系,泛用性高。且由于亚马逊步骤函数生成的状态机一旦部署,是不可动态改动的,路由模块的出现使得多种云边协同方案只需使用同一个亚马逊步骤函数状态机成为可能,极大地节省了生产多份亚马逊步骤函数的时间开销和经济开销。
附图说明
图1为本发明中公开的流程示意图;
图2为视频流分析任务的模型流水线形式的有向无环图;
图3为视频流分析任务的具有路由模块的状态机示意图。
具体实施方式
以下将结合附图对本发明作进一步的描述,需要说明的是,本实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实施例。
实施例1
本实施例公开了一种基于无服务器函数计算的云边协同视频分析方法,此方法的完整流程图如图1所示,具体实施步骤如下所示:
1、云应用模块构成视频流分析任务的有向无环图。
2、边缘状态机模块根据有向无环图生成状态机。
3、亚马逊状态语言模块生成亚马逊状态语言文件,并且返回亚马逊状态语言文件所在的目录地址给SAM模块。
4、SAM模块接收亚马逊状态语言文件所在的目录地址,生成YAML文件并且自动部署云端的亚马逊步骤函数,且返回亚马逊步骤函数的调用接口给函数工厂的辅助工厂模块。
5、执行模块读取视频帧,并且按照固定速率发送POST请求给预处理模块中定义的路由,POST请求包含所要处理的数据和状态机的起始状态信息和终点状态信息。
6、预处理模块接收到请求后,调用边缘状态机模块定义的状态机,将请求数据和状态机的起始状态信息和终点状态信息转发给边缘状态机模块执行。
7、边缘状态机模块接收到请求后,该模块内有由边缘状态机模板定义的状态机,该模块从请求中定义的状态机的起始状态开始执行,当执行一个状态时,当前状态将会调用函数工厂模块以获得该状态定义的函数资源。根据用户制定的云边协同策略,如果该状态需要调用边缘端资源,该状态则调用函数工厂模块的工厂生成边缘端函数,如果该状态需要调用云端资源,该状态则调用函数工厂模块的辅助工厂调用云端的亚马逊步骤函数。在获得函数资源并且处理完数据后,当前状态将输出和当前状态所相连的下一个状态信息传给路由模块继续执行,或者是成功退出状态机,当遇到运行时错误时,该状态终止运行,并且提前退出状态机。
8、函数工厂模块在被调用时,查看被调用工厂的类型。如果是工厂类型,函数工厂模块生成边缘端的计算资源,返回在边缘端执行的函数。如果是辅助工厂类型,函数工厂模块返回调用亚马逊步骤函数的函数。
9、路由模块在接收上一个状态的输出和当前要执行的状态信息后,判断当前状态是否是用户定义的终点状态,如果是,则终止状态机的运行,退出程序。
若否,则将上一个状态的输出传给边缘状态机模块,执行当前状态。
本实施例公开了一种视频流分析任务的模型流水线形式的有向无环图,如图2所示,具体实施步骤如下所示:
1、视频分割模块:用于按照固定的频率将视频分割成视频帧,转至人物检测模块。
2、人物检测模块:用于检测视频帧中是否包含人物,如包含,则转至人脸检测模块。
3、人脸检测模块:用于识别视频帧中的人脸,转至骨架检测模块。
4、骨架检测模块:用于检测视频帧中的人物的骨架形状,转至结束。
5、目标检测模块:用于对视频帧中的物体进行识别和分类,转至场景检测模块。
6、场景转换模块:用于转换视频帧的场景风格类型,转至结束。
本实施例公开了一种增加了路由模块的视频流分析任务的边缘状态机状态机示意图,如图3所示:
1、Start状态开启状态机的运行,转至路由,并将接收的输入转给路由,输入中含有定义了状态机起点的选择分支值。
2、路由模块进行路由定向,对输入进行解析:
1)若选择分支值为继续人物检测,转至继续人物检测状态。
2)若选择分支值为继续目标检测,转至继续目标检测状态。
3)若选择分支值为继续场景转换,转至继续场景转换状态。
4)若选择分支值为继续人脸识别,转至继续人脸识别状态。
5)若选择分支值不匹配以上情况,转至默认状态。
3、继续人物检测状态设置选择分支值为人物检测,转至选择分支路由。
4、继续目标检测状态设置选择分支值为目标检测,转至选择分支路由。
5、继续场景转换状态设置选择分支值为场景转换,转至选择分支路由。
6、继续人脸识别状态设置选择分支值为人脸识别,转至选择分支路由。
7、选择分支路由进行路由定向,对输入进行解析:
1)若选择分支值为人物检测,转至人物检测状态。
2)若选择分支值为目标检测,转至目标检测状态。
3)若选择分支值为场景转换,转至场景转换状态。
4)若选择分支值为人脸识别,转至人脸识别状态。
5)若选择分支值不匹配以上情况,转至默认状态。
8、人物检测状态进行人物识别,若帧中存在人物,则设置选择分支值为继续人物检测;若否,则设置选择分支值为继续目标检测。转至选择状态路由。
9、选择状态路由进行路由定向,对输入进行解析:
1)若选择分支值为继续人脸识别,转至继续人脸识别状态。
2)若选择分支值为继续目标检测,转至继续目标检测状态。
10、人脸识别状态进行人脸识别,转至骨架检测状态。
11、骨架检测状态进行骨架识别,转至结束状态1。
12、结束状态1打印输出,转至结束状态。
13、目标检测状态进行目标检测,转至场景转换状态。
14、场景转换状态进行场景转换,转至结束状态。
15、结束状态打印执行成功信息,转至End状态。
16、默认状态打印执行失败信息,转至End状态。
17、End状态停止状态机的执行,流程结束。
对于本领域的技术人员来说,可以根据以上的技术方案和构思,给出各种相应的改变,而所有的这些改变,都应该包括在本发明权利要求的保护范围之内。
Claims (7)
1.基于无服务器函数计算的云边协同视频分析***,其特征在于,所述***包括边缘状态机模块、云边协同器模块和云应用模块;其中
所述边缘状态机模块用于为亚马逊步骤函数提供边缘能力的补充,是一种可以在边缘端独立运行或者和云端的亚马逊步骤函数协同运行的***;
所述云边协同器模块用于进行边缘状态和亚马逊步骤函数之间的转换和协同;
所述云应用模块用于定义视频流分析任务的模型流水线;实现根据视频内容是否包含人物来进行不同分析的视频流分析任务。
2.根据权利要求1所述的基于无服务器函数计算的云边协同视频分析***,其特征在于,所述边缘状态机模块包括:
状态池模块:用于表示所有可用状态的集合,其中,状态是指用户自定义的实现应用逻辑的函数;
重定义状态语言状态机模块:重定义状态语言状态机在边缘端提供了类似亚马逊状态语言的定义状态间的转移关系的功能;
解析器模块:用于解析重定义状态语言,管理状态池,以及动态判断状态之间的转移关系;
执行器模块:用于定义执行状态机的云边协同策略,用户可以自行定义云端资源和边缘端资源的调用比例;
消息模块:用于模板化状态之间传递的信息,定义了信息的基本数据结构,使用集合结构存储数据的类型和数值。
3.根据权利要求1所述的基于无服务器函数计算的云边协同视频分析***,其特征在于,所述云边协同器模块包括:
预处理模块:用于接收用户的请求数据和调用状态机以执行流水线任务;
状态模块:用于实现用户自定义的状态的主体应用逻辑,通过实现状态的句柄函数来实现具体的功能;
函数工厂模块:用于产生边缘状态机模块和亚马逊步骤函数所需的状态资源;
边缘状态机模块:用于实现边缘状态机,使用边缘状态机模块和函数工厂模块所生成的状态资源生成边缘端状态机,具有用户自定义的流水线任务的状态转移逻辑,是有向无环图的具体实现;用户可以在边缘状态机模块决定是否调用云端资源,如果调用云端资源则实现了云边协同,否则,则***只会调用边缘端计算资源;
Lambda函数模块:用于定义Lambda函数,使用Lambda函数的软件开发工具包和状态模块生成的函数主体逻辑进行封装;
亚马逊状态语言模块:用于生成亚马逊步骤函数所需要的亚马逊状态语言文件,亚马逊状态语言模块通过解析边缘状态机模块所定义的边缘状态机,自动生成亚马逊状态语言文件,并且进行亚马逊状态语言文件语法规范的检查;
SAM模块:用于生成自动部署亚马逊步骤函数的脚本YAML文件。该模块指明构成亚马逊步骤函数的亚马逊状态语言文件和Lambda函数的位置,将对应资源打包并且在云端自动部署亚马逊步骤函数;
执行模块:用于实现用户调用状态机并且自动发送数据的程序逻辑;执行模块使用Golang协程来管理用户请求的发送,每个协程对应一次用户请求,一次用户请求调用一次状态机实例。
4.根据权利要求1所述的基于无服务器函数计算的云边协同视频分析***,其特征在于,所述云应用模块包括:
视频分割模块:用于按照固定的频率将视频分割成视频帧;
人物检测模块:用于检测视频帧中是否包含人物;
人脸检测模块:用于识别视频帧中的人脸;
骨架检测模块:用于检测视频帧中的人物的骨架形状;
目标检测模块:用于对视频帧中的物体进行识别和分类;
场景转换模块:用于转换视频帧的场景风格类型;
路由模块:用于实现云边协同时云边的无缝衔接。由于云边协同是基于对模型流水线任务的有向无环图的分割,从而前半部分在边缘端执行,后半部分在云端执行;路由模块可以动态地限制边缘状态机和云端状态机的起点和终点,从而实现不同分割点下云边的无缝衔接。
5.根据权利要求2所述的基于无服务器函数计算的云边协同视频分析***,其特征在于,所述重定义状态语言状态机模块具有5种状态属性,包括
任务:用于实现用户自定义的应用逻辑,是状态执行的主体;
直线:用于实现状态之间的顺序结构,通常是两个状态之间相互连接,先执行的状态的输出是后执行的状态的输入;
重定义集合:用于使用多个不同输入来并发执行同一个状态,本发明使用数组顺序存储多个输入,并按序调用集合状态内嵌套的多个状态;
选择分支:用于实现分支逻辑,本发明使用集合数据结构存储条件和状态的映射关系。选择分支状态将根据输入条件选择对应的状态;
成功:用于表示状态机实例的终点,只有在状态机实例成功结束时才能到达;
失败:用于表示状态机实例非法终端,此时状态机实例由于异常或错误停止运行。
6.根据权利要求3所述的基于无服务器函数计算的云边协同视频分析***,其特征在于,所述函数工厂分为:
工厂:用于生产边缘状态机所需要的状态资源;
辅助工厂:用于调用亚马逊步骤函数暴露的接口;为了减少经济开销,云端亚马逊步骤函数仅作为边缘端状态机计算资源的补充;其中,辅助工厂只在工厂无法生成边缘端状态资源时生产;用户也可自定义辅助工厂的生产逻辑。
7.一种利用如权要求1-5任一所述的基于无服务器函数计算的云边协同视频分析***的云边协同视频分析方法,其特征在于,所述方法包括以下步骤:
S1亚马逊状态语言模块生成亚马逊状态语言文件,并且返回亚马逊状态语言文件所在的目录地址给SAM模块;
S2 SAM模块接收亚马逊状态语言文件所在的目录地址,生成YAML文件并且自动部署云端的亚马逊步骤函数,且返回亚马逊步骤函数的调用接口给函数工厂的辅助工厂模块;
S3执行模块读取视频帧,并且按照固定速率发送POST请求给预处理模块中定义的路由,POST请求包含所要处理的数据和状态机的起始状态信息和终点状态信息;
S4预处理模块接收到请求后,启动一个协程调用边缘状态机模块定义的状态机,将请求数据和状态机的起始状态信息和终点状态信息转发给边缘状态机模块执行;
S5边缘状态机模块接收到请求后,该模块内有由边缘状态机模板定义的状态机,该模块从请求中定义的状态机的起始状态开始执行,当执行一个状态时,当前状态将会调用函数工厂模块以获得该状态定义的函数资源;根据用户制定的云边协同策略,如果该状态需要调用边缘端资源,该状态则调用函数工厂模块的工厂生成边缘端函数,如果该状态需要调用云端资源,该状态则调用函数工厂模块的辅助工厂调用云端的亚马逊步骤函数;在获得函数资源并且处理完数据后,当前状态将输出和当前状态所相连的下一个状态信息传给路由模块继续执行,或者是成功退出状态机,当遇到运行时错误时,该状态终止运行,并且提前退出状态机;
S6函数工厂模块在被调用时,查看被调用工厂的类型。如果是工厂类型,函数工厂模块生成边缘端的计算资源,返回在边缘端执行的函数;如果是辅助工厂类型,函数工厂模块返回调用亚马逊步骤函数的函数;
S7路由模块在接收上一个状态的输出和当前要执行的状态信息后,判断当前状态是否是用户定义的终点状态,如果是,则终止状态机的运行,退出程序;若否,则将上一个状态的输出传给边缘状态机模块,执行当前状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111184613.1A CN113992941B (zh) | 2021-10-12 | 2021-10-12 | 基于无服务器函数计算的云边协同视频分析***与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111184613.1A CN113992941B (zh) | 2021-10-12 | 2021-10-12 | 基于无服务器函数计算的云边协同视频分析***与方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113992941A true CN113992941A (zh) | 2022-01-28 |
CN113992941B CN113992941B (zh) | 2023-01-24 |
Family
ID=79738195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111184613.1A Active CN113992941B (zh) | 2021-10-12 | 2021-10-12 | 基于无服务器函数计算的云边协同视频分析***与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113992941B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190079750A1 (en) * | 2017-09-08 | 2019-03-14 | Accenture Global Solutions Limited | Function Library Build Architecture for Serverless Execution Frameworks |
CN110442041A (zh) * | 2019-08-05 | 2019-11-12 | 西藏宁算科技集团有限公司 | 一种基于异构云计算框架的仿真平台构建方法及仿真*** |
CN111866450A (zh) * | 2020-06-18 | 2020-10-30 | 昇辉控股有限公司 | 基于云边协同的智能视频监控装置 |
CN112003924A (zh) * | 2020-08-20 | 2020-11-27 | 浪潮云信息技术股份公司 | 一种面向工业互联网的边缘云平台搭建方法及*** |
CN112788142A (zh) * | 2021-01-18 | 2021-05-11 | 四川中英智慧质量工程技术研究院有限公司 | 一种支持多传感器接入的智能边缘物联网关 |
US11038933B1 (en) * | 2019-06-25 | 2021-06-15 | Amazon Technologies, Inc. | Hybrid videoconferencing architecture for telemedicine |
CN113114758A (zh) * | 2021-04-09 | 2021-07-13 | 北京邮电大学 | 一种面向无服务器边缘计算的任务调度方法及装置 |
-
2021
- 2021-10-12 CN CN202111184613.1A patent/CN113992941B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190079750A1 (en) * | 2017-09-08 | 2019-03-14 | Accenture Global Solutions Limited | Function Library Build Architecture for Serverless Execution Frameworks |
US11038933B1 (en) * | 2019-06-25 | 2021-06-15 | Amazon Technologies, Inc. | Hybrid videoconferencing architecture for telemedicine |
CN110442041A (zh) * | 2019-08-05 | 2019-11-12 | 西藏宁算科技集团有限公司 | 一种基于异构云计算框架的仿真平台构建方法及仿真*** |
CN111866450A (zh) * | 2020-06-18 | 2020-10-30 | 昇辉控股有限公司 | 基于云边协同的智能视频监控装置 |
CN112003924A (zh) * | 2020-08-20 | 2020-11-27 | 浪潮云信息技术股份公司 | 一种面向工业互联网的边缘云平台搭建方法及*** |
CN112788142A (zh) * | 2021-01-18 | 2021-05-11 | 四川中英智慧质量工程技术研究院有限公司 | 一种支持多传感器接入的智能边缘物联网关 |
CN113114758A (zh) * | 2021-04-09 | 2021-07-13 | 北京邮电大学 | 一种面向无服务器边缘计算的任务调度方法及装置 |
Non-Patent Citations (1)
Title |
---|
ZHI ZHOU,XU CHEN,EN LI ET AL.: "Edge Intelligence:Paving the Last Mile of Artificial Intelligence With EDGE Computing", 《PROCEEDINGS OF THE IEEE(PIEEE)》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113992941B (zh) | 2023-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101699405B (zh) | 一种宿主程序和插件及插件间进行交互的方法及装置 | |
CN112329945A (zh) | 一种模型部署及推理的方法和装置 | |
US10579349B2 (en) | Verification of a dataflow representation of a program through static type-checking | |
CN110088737A (zh) | 将并发程序转换为可部署在基于fpga的云基础设施上的硬件的综合路径 | |
CN108737168B (zh) | 一种基于容器的微服务架构应用自动构建方法 | |
US8495593B2 (en) | Method and system for state machine translation | |
CN112395736B (zh) | 一种分布交互仿真***的并行仿真作业调度方法 | |
CN103678135A (zh) | 大数据环境下实现跨进程与跨线程调试的***与方法 | |
CN109740765A (zh) | 一种基于亚马逊网络服务器的机器学习***搭建方法 | |
CN112148926A (zh) | 一种图数据流的处理方法、处理装置和存储介质 | |
CN115600676A (zh) | 深度学习模型推理方法、装置、设备及存储介质 | |
US9229980B2 (en) | Composition model for cloud-hosted serving applications | |
CN108985459A (zh) | 训练模型的方法和装置 | |
CN112685409B (zh) | Paas应用服务拓扑生成方法、装置及可读存储介质 | |
CN113992941B (zh) | 基于无服务器函数计算的云边协同视频分析***与方法 | |
CN115794355B (zh) | 任务处理方法、装置、终端设备及存储介质 | |
CN111274018A (zh) | 一种基于dl框架下的分布式训练方法 | |
CN116483643A (zh) | 一种gpu调试方法、装置、设备及存储介质 | |
CN116185425A (zh) | 基于节点组合的事件流程编排方法、装置、设备及介质 | |
CN113051173B (zh) | 测试流程的编排执行方法、装置、计算机设备和存储介质 | |
CN115114022A (zh) | 对gpu资源进行使用的方法、***、设备及介质 | |
CN108073389A (zh) | 一种基于脚本语言的引擎*** | |
CN114816357A (zh) | 一种服务于流程银行的服务编排*** | |
CN109426529A (zh) | 基于x窗口***图形绘制的方法、装置及终端 | |
CN113010428A (zh) | 服务器集群的测试方法、装置、介质以及电子设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |