CN114064211A - 一种基于端-边-云计算架构的视频流分析系统及方法 - Google Patents
一种基于端-边-云计算架构的视频流分析系统及方法 Download PDFInfo
- Publication number
- CN114064211A CN114064211A CN202111349395.2A CN202111349395A CN114064211A CN 114064211 A CN114064211 A CN 114064211A CN 202111349395 A CN202111349395 A CN 202111349395A CN 114064211 A CN114064211 A CN 114064211A
- Authority
- CN
- China
- Prior art keywords
- module
- service
- video stream
- data
- intelligent
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/203—Failover techniques using migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/40—Software arrangements specially adapted for pattern recognition, e.g. user interfaces or toolboxes therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/502—Proximity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Human Computer Interaction (AREA)
- Evolutionary Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于端‑边‑云计算架构的视频流分析系统及方法,该基于端‑边‑云计算架构的视频流分析系统包括:集群控制模块,前端展示模块,后端服务模块,请求解析模块、智能分析模块、分布式存储模块、数据库模块以及消息队列模块;所述集群控制模块与其它所有模块相连;所述前端展示模块与所述后端服务模块和请求解析模块相连;所述智能分析模块与请求解析模块、消息队列模块以及后端服务模块相连;所述后端服务模块与前端展示模块、智能分析模块、分布式存储模块、数据库模块以及消息队列模块相连。本发明结合Docker容器技术的快速部署与启动特点,设计的端‑边‑云视频流系统提出在多个方面提高系统的可靠性、可用性和可扩展性。
Description
技术领域
本发明涉及视频流分析技术领域,尤其涉及一种基于端-边-云计算架构的视频流分析系统及方法。
背景技术
近几年来,卷积神经网络的崛起推动着视频流分析应用快速发展,并造就了高效率、高准确度的智能分析水准。国内以海康威视、大华科技等公司产品为主的监控摄像头被广泛部署。有些监控摄像头本身就具备着视频流分析能力,这类智能监控摄像头可对监控视频流“自产自消”,且效率很高。但智能监控摄像头被局限于某种或某几种特定的智能分析算法之中,如仅可进行人脸智能分析或仅可进行车辆智能分析,且在其之上不易进行二次开发,所以其不适用于智能分析算法需要经常迭代更新和同时需要使用多种智能分析算法的复杂应用场景。
随着应用范围的不断扩大,对视频流分析的要求也越来越高。智慧城市、智慧家居、无人车等应用场景要求同时对大范围内的大量视频流进行智能分析,并且需要及时、准确地得到智能分析反馈。为进一步提高视频流分析的灵活性和可管理性,将智能分析任务置于边缘节点和云节点上执行已成为惯用做法。利用边缘节点的近移动设备性,可以大大降低视频流在网络中的传输延迟。同时有越来越多的智能分析硬件加速设备相继出现,如GPU、TPU、昇腾AI处理器等,它们助智能分析的效率更上一层楼。随着视频流分析应用的规模越来越大,一个具有良好弹性伸缩能力和自动化运营能力的系统显得越发重要。
因此,当前亟待出现一种针对以上大规模视频流分析场景下的应用缺陷与问题的基于端-边-云计算架构的视频流分析系统。
发明内容
为了克服现有技术中相关产品的不足,本发明提出一种基于端-边-云计算架构的视频流分析系统及方法,在边缘区域和云上搭建K8s集群,使用Docker 容器来启动服务,将智能服务部署于集群之上,将智能分析任务调度于智能服务之上,并保证系统的高可靠性、可用性和可扩展性。
本发明提供了一种基于端-边-云计算架构的视频流分析系统,包括:集群控制模块,前端展示模块,后端服务模块,请求解析模块、智能分析模块、分布式存储模块、数据库模块以及消息队列模块;所述集群控制模块与其它所有模块相连;所述前端展示模块与所述后端服务模块和请求解析模块相连;所述智能分析模块与请求解析模块、消息队列模块以及后端服务模块相连;所述后端服务模块与前端展示模块、智能分析模块、分布式存储模块、数据库模块以及消息队列模块相连;
所述集群控制模块由一个或多个节点构成,这些节点互为热备份;与所有集群的节点保持心跳连接,监控集群状态,控制服务的副本数,服务在其中任一节点执行失败时仍在该节点上重新启动;若有节点宕机时将宕机节点上的服务迁移至其它节点运行;以及监控接收到的服务部署请求,将服务部署于一个或多个节点之上;
所述前端展示模块向用户提供图形操作界面,用户可通过操作该界面向请求解析模块发起视频流分析请求,向后端服务模块发送视频流取流请求,请求播放展示视频流、检索历史视频流分析数据;
所述请求解析模块接收前端展示模块发来的视频流分析请求,并根据需要分析的视频流的产生处与边缘区域和云之间的网络延迟来确定视频流分析任务的调度空间,如果视频流产生处与云之间的网络延迟最低则仅将视频流分析任务调度于云上,否则视频流分析任务的调度空间为与视频流产生处之间网络延迟最低的边缘区域与云区域,最终将所得出的调度空间发往智能分析模块;
所述智能分析模块接收请求解析模块发来的调度空间结果,并根据调度空间向集群控制模块发送服务部署请求来部署智能服务:若有已存在的智能服务具有充足的剩余复用能力,则直接复用该智能服务;若调度空间仅包含云,则仅将智能服务部署于云上;否则按照输入视频流所占带宽由高到低的顺序,优先将智能服务部署于调度空间中的边缘区域中,在边缘区域因硬件资源不足而无法部署智能服务时,将剩余的智能服务部署于云上;智能服务根据用户请求按需将视频流分析结果发往分布式存储模块、消息队列模块以及后端服务模块:将截图数据发往分布式存储模块并获得该截图的全局唯一URL,将包含截图URL的结构化数据发往消息队列模块,将视频流数据发往后端服务模块;
所述后端服务模块接收前端展示模块发来的视频流取流请求,将从智能分析模块接收到的叠加有智能信息的视频流推回给用户的图形操作界面进行展示;持续向消息队列模块发送请求并消费消息队列模块中从智能分析模块接收到的最新的结构化数据,将这些结构化数据发往数据库模块进行存储;接收前端展示模块发来的历史视频流分析数据检索请求,并请求数据库模块对历史结构化数据进行条件查询,将查询结果返回给用户的图形操作界面进行展示;
所述分布式存储模块由一个或多个节点构成,接收智能分析模块发来的截图数据,并将该截图数据冗余保存,最后返回该截图数据的全局唯一URL给智能分析模块,以及提供根据URL读取数据的服务;
所述数据库模块以关系型数据库的形式来存储结构化数据,对已存储的结构化数据可以进行相关的条件查询;
所述消息队列模块由一个或多个节点构成,对消息采用“发布-订阅”模式,接收智能分析模块发来的结构化数据,并将该结构化数据冗余保存,同时支持后端服务模块对其新消息的消费行为。
在本发明的某些实施方式中,所述集群控制模块需根据不同的服务类型来控制服务的副本数,以提高服务的可用性和节省系统资源:对于无状态的非智能服务,可部署一个或多个副本;对于可集群化的有状态的服务,可部署一个或多个副本;对于不可集群化的有状态的服务,部署一个副本;对于智能服务,因其由智能分析模块按需创建,所以仅需部署一个副本;同时,集群控制模块在旧节点的退出和新节点的加入之时,会在整个集群范围内对已部署的服务进行滚动调整,以达到新集群状态下的服务负载均衡。
在本发明的某些实施方式中,所述智能分析模块在边缘区域或云上负载均衡地部署智能服务,在进行负载均衡时首先考虑内存/显存资源,其次考虑线程资源。
在本发明的某些实施方式中,所述分布式存储模块中的节点有主从之分,主从节点由集群管理员指定,主节点负责记录从节点的信息,从节点则负责存储数据;在每个从节点上,所有的数据都被存成一个大文件,为提高每份数据的读取效率,对每份数据都生成一份元数据,所有的元数据组成为一个元数据文件持久化于硬盘上,并加载至内存中使用,在有数据写入时对元数据文件进行更新;在写数据时,先请求主节点获得该数据的全局唯一URL,再通过该URL 找到相应的从节点并在该从节点上进行数据存储;在读数据时,根据URL直接找到从节点并从该从节点处进行数据读取。
在本发明的某些实施方式中,所述数据库模块对已存入的结构化数据构建数据索引。
在本发明的某些实施方式中,所述消息队列模块中元数据的最终一致性由 Raft算法来保证,每个消息都有偏移量、时间戳、键和值四个数据,并根据主题来对消息进行发布与订阅;每个主题的消息又分为多个区,根据键的哈希结果来确定一个消息隶属于哪个区,以区为单位进行消息的冗余存储,消息以时间顺序依次写入所属区;在订阅一个主题的消息时,消费该主题消息的各个区,并可通过各个区的冗余备份来提高消息的消费并行度,也可动态调整消息消费的偏移量来控制消息消费的起点;对旧消息进行清理时,可设置消息的最大存储容量或消息的最长存储时间;利用操作系统的mmap机制实现存储文件在内存中的映射;将多个消息压缩在一块一并发送,存储时也将消息以压缩的形式存储;采用操作系统的Zero-Copy技术,将消息发送前数据的拷贝次数由4次降低至2次。
本发明还提供了一种基于端-边-云计算架构的视频流分析方法,应用于上述任一项所述的基于端-边-云计算架构的视频流分析系统,包括如下步骤:
由一个或多个节点构成集群控制模块,这些节点互为热备份;与所有集群的节点保持心跳连接,监控集群状态,控制服务的副本数,服务在其中任一节点执行失败时仍在该节点上重新启动;若有节点宕机时将宕机节点上的服务迁移至其它节点运行;以及监控接收到的服务部署请求,将服务部署于一个或多个节点之上;
通过前端展示模块向用户提供图形操作界面,用户可通过操作该界面向请求解析模块发起视频流分析请求,向后端服务模块发送视频流取流请求,请求播放展示视频流、检索历史视频流分析数据;
请求解析模块接收前端展示模块发来的视频流分析请求,并根据需要分析的视频流的产生处与边缘区域和云之间的网络延迟来确定视频流分析任务的调度空间,如果视频流产生处与云之间的网络延迟最低则仅将视频流分析任务调度于云上,否则视频流分析任务的调度空间为与视频流产生处之间网络延迟最低的边缘区域与云区域,最终将所得出的调度空间发往智能分析模块;
所述智能分析模块接收请求解析模块发来的调度空间结果,并根据调度空间向集群控制模块发送服务部署请求来部署智能服务:若有已存在的智能服务具有充足的剩余复用能力,则直接复用该智能服务;若调度空间仅包含云,则仅将智能服务部署于云上;否则按照输入视频流所占带宽由高到低的顺序,优先将智能服务部署于调度空间中的边缘区域中,在边缘区域因硬件资源不足而无法部署智能服务时,将剩余的智能服务部署于云上;智能服务根据用户请求按需将视频流分析结果发往分布式存储模块、消息队列模块以及后端服务模块:将截图数据发往分布式存储模块并获得该截图的全局唯一URL,将包含截图URL的结构化数据发往消息队列模块,将视频流数据发往后端服务模块;
所述后端服务模块接收前端展示模块发来的视频流取流请求,将从智能分析模块接收到的叠加有智能信息的视频流推回给用户的图形操作界面进行展示;持续向消息队列模块发送请求并消费消息队列模块中从智能分析模块接收到的最新的结构化数据,将这些结构化数据发往数据库模块进行存储;接收前端展示模块发来的历史视频流分析数据检索请求,并请求数据库模块对历史结构化数据进行条件查询,将查询结果返回给用户的图形操作界面进行展示;
由一个或多个节点构成的所述分布式存储模块接收智能分析模块发来的截图数据,并将该截图数据冗余保存,最后返回该截图数据的全局唯一URL给智能分析模块,以及提供根据URL读取数据的服务;
所述数据库模块对已存储的结构化数据进行相关的条件查询,所述数据库模块以关系型数据库的形式来存储结构化数据;
所述消息队列模块接收智能分析模块发来的结构化数据,并将该结构化数据冗余保存,同时支持后端服务模块对其新消息的消费行为,所述消息队列模块由一个或多个节点构成,对消息采用“发布-订阅”模式。
在本发明的某些实施方式中,所述集群控制模块需根据不同的服务类型来控制服务的副本数,以提高服务的可用性和节省系统资源:对于无状态的非智能服务,可部署一个或多个副本;对于可集群化的有状态的服务,可部署一个或多个副本;对于不可集群化的有状态的服务,部署一个副本;对于智能服务,因其由智能分析模块按需创建,所以仅需部署一个副本;同时,集群控制模块在旧节点的退出和新节点的加入之时,会在整个集群范围内对已部署的服务进行滚动调整,以达到新集群状态下的服务负载均衡;所述智能分析模块在边缘区域或云上负载均衡地部署智能服务,在进行负载均衡时首先考虑内存/显存资源,其次考虑线程资源。
在本发明的某些实施方式中,所述分布式存储模块中的节点有主从之分,主从节点由集群管理员指定,主节点负责记录从节点的信息,从节点则负责存储数据;在每个从节点上,所有的数据都被存成一个大文件,为提高每份数据的读取效率,对每份数据都生成一份元数据,所有的元数据组成为一个元数据文件持久化于硬盘上,并加载至内存中使用,在有数据写入时对元数据文件进行更新;在写数据时,先请求主节点获得该数据的全局唯一URL,再通过该URL 找到相应的从节点并在该从节点上进行数据存储;在读数据时,根据URL直接找到从节点并从该从节点处进行数据读取。
在本发明的某些实施方式中,所述消息队列模块中元数据的最终一致性由 Raft算法来保证,每个消息都有偏移量、时间戳、键和值四个数据,并根据主题来对消息进行发布与订阅;每个主题的消息又分为多个区,根据键的哈希结果来确定一个消息隶属于哪个区,以区为单位进行消息的冗余存储,消息以时间顺序依次写入所属区;在订阅一个主题的消息时,消费该主题消息的各个区,并可通过各个区的冗余备份来提高消息的消费并行度,也可动态调整消息消费的偏移量来控制消息消费的起点;对旧消息进行清理时,可设置消息的最大存储容量或消息的最长存储时间;利用操作系统的mmap机制实现存储文件在内存中的映射;将多个消息压缩在一块一并发送,存储时也将消息以压缩的形式存储;采用操作系统的Zero-Copy技术,将消息发送前数据的拷贝次数由4次降低至2次。
与现有技术相比,本发明有以下优点:
本发明结合Docker容器技术的快速部署与启动特点,设计的端-边-云视频流系统提出在多个方面提高系统的可靠性、可用性和可扩展性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所述基于端-边-云计算架构的视频流分析系统的结构示意图;
图2为本发明所述用于视频流分析的端-边-云计算架构结构框图;
图3为本发明实现的多个主节点互为热备份示意图;
图4为本发明实现的智能服务复用原理示意图;
图5为本发明实现的服务部署示意图;
图6为本发明实现的视频流分析请求处理过程示意图。
附图标记说明:
1、集群控制模块;2、前端展示模块;3、后端服务模块;4、请求解析模块;5、智能分析模块;6、消息队列模块;7、分布式存储模块;8、数据库模块。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,附图中给出了本发明的较佳实施例。本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例,相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
参阅图1所示,所述基于端-边-云计算架构的视频流分析系统包括集群控制模块1,前端展示模块2,后端服务模块3,请求解析模块4、智能分析模块 5、分布式存储模块7、数据库模块8以及消息队列模块6;所述集群控制模块 1与其它所有模块相连;所述前端展示模块2与所述后端服务模块3和请求解析模块4相连;所述智能分析模块5与请求解析模块4、消息队列模块6以及后端服务模块3相连;所述后端服务模块3与前端展示模块2、智能分析模块5、分布式存储模块7、数据库模块8以及消息队列模块6相连。
所述集群控制模块1由一个或多个节点构成,这些节点互为热备份;与所有集群的节点保持心跳连接,监控集群状态,控制服务的副本数,服务在其中任一节点执行失败时仍在该节点上重新启动;若有节点宕机时将宕机节点上的服务迁移至其它节点运行;以及监控接收到的服务部署请求,将服务部署于一个或多个节点之上;在本发明实施例中,所述集群控制模块1需根据不同的服务类型来控制服务的副本数,以提高服务的可用性和节省系统资源:对于无状态的非智能服务,可部署一个或多个副本;对于可集群化的有状态的服务,可部署一个或多个副本;对于不可集群化的有状态的服务,部署一个副本;对于智能服务,因其由智能分析模块5按需创建,所以仅需部署一个副本;同时,集群控制模块1在旧节点的退出和新节点的加入之时,会在整个集群范围内对已部署的服务进行滚动调整,以达到新集群状态下的服务负载均衡。使用多个主节点热备份来提高系统的可靠性,通过主节点监控集群,根据不同的服务类型来设置服务的副本数,并通过服务在节点上的重启和节点间的迁移,来提高系统的可用性。
所述前端展示模块2向用户提供图形操作界面,用户可通过操作该界面向请求解析模块4发起视频流分析请求,向后端服务模块3发送视频流取流请求,请求播放展示视频流、检索历史视频流分析数据;
所述请求解析模块4接收前端展示模块2发来的视频流分析请求,并根据需要分析的视频流的产生处与边缘区域和云之间的网络延迟来确定视频流分析任务的调度空间,如果视频流产生处与云之间的网络延迟最低则仅将视频流分析任务调度于云上,否则视频流分析任务的调度空间为与视频流产生处之间网络延迟最低的边缘区域与云区域,最终将所得出的调度空间发往智能分析模块 5;
所述智能分析模块5接收请求解析模块4发来的调度空间结果,并根据调度空间向集群控制模块1发送服务部署请求来部署智能服务:若有已存在的智能服务具有充足的剩余复用能力(处理请求的剩余QPS指标),则直接复用该智能服务(对于一种智能分析任务,如果一个智能服务不具有充足的剩余复用能力,则不可对其进行任何复用);若调度空间仅包含云,则仅将智能服务部署于云上;否则按照输入视频流所占带宽(由视频流处理帧率*视频流分辨率计算得出)由高到低的顺序,优先将智能服务部署于调度空间中的边缘区域中,在边缘区域因硬件资源不足而无法部署智能服务时,将剩余的智能服务部署于云上;智能服务根据用户请求按需将视频流分析结果发往分布式存储模块7、消息队列模块6以及后端服务模块3:将截图数据发往分布式存储模块7并获得该截图的全局唯一URL,将包含截图URL的结构化数据发往消息队列模块6,将视频流数据发往后端服务模块3。为降低端到边、端到云之间的数据传输延迟,当云距离端最近时则调度空间仅包含云,否则调度空间包含离端最近的边缘区域与云。之所以调度空间一直都包含云,是因为边缘区域的资源往往是受限的,而云资源往往是充裕的,需依靠充裕的云资源来支持更大规模的视频流分析应用。端-边、端-云间的距离通过两者间的网络延迟来度量,一般两者间的网络延迟越低,带宽越大。在指定调度空间内创建与部署智能服务之前,对已存在的尚可复用的智能服务进行复用,这样可以充分利用智能服务从而节省系统资源。在调度空间包含边缘区域和云时,优先将智能服务部署于边缘区域,这可以充分利用边缘资源从而减少端-云间的远距离数据传输。在边缘资源不足时,优先将带宽占用更多的请求的智能服务部署于边缘区域,这可以节省边- 云间贫乏的带宽资源。
所述后端服务模块3接收前端展示模块2发来的视频流取流请求,将从智能分析模块5接收到的叠加有智能信息的视频流推回给用户的图形操作界面进行展示;持续向消息队列模块6发送请求并消费消息队列模块6中从智能分析模块5接收到的最新的结构化数据,将这些结构化数据发往数据库模块8进行存储;接收前端展示模块2发来的历史视频流分析数据检索请求,并请求数据库模块8对历史结构化数据进行条件查询,将查询结果返回给用户的图形操作界面进行展示;
所述分布式存储模块7由一个或多个节点构成,接收智能分析模块5发来的截图数据,并将该截图数据冗余保存,最后返回该截图数据的全局唯一URL 给智能分析模块5,以及提供根据URL读取数据的服务;截图数据存储后获得一个全局唯一的URL,在网络传输和结构化数据存储中使用URL代替截图数据来减轻网络负担、提高数据传输效率、节省存储空间。
所述数据库模块8以关系型数据库的形式来存储结构化数据,对已存储的结构化数据可以进行相关的条件查询,这能方便对这些数据进行索引构建,从而提高对这些数据的条件查询效率。
所述消息队列模块6由一个或多个节点构成,对消息采用“发布-订阅”模式,接收智能分析模块5发来的结构化数据,并将该结构化数据冗余保存,同时支持后端服务模块3对其新消息的消费行为。对结构化数据进行分布式冗余存储,降低了数据丢失的可能性。对消息采用“发布-订阅”模式,也即“生产者-消费者”模式,降低了系统的耦合度,可以根据实际生产与消费的速度来调整生产者与消费者的数量。
在本发明实施例中,所述智能分析模块5在边缘区域或云上负载均衡地部署智能服务,在进行负载均衡时首先考虑内存/显存资源,其次考虑线程资源。
在本发明实施例中,所述分布式存储模块7中的节点有主从之分,主从节点由集群管理员指定,主节点负责记录从节点的信息,从节点则负责存储数据;在每个从节点上,所有的数据都被存成一个大文件,为提高每份数据的读取效率,对每份数据都生成一份元数据,所有的元数据组成为一个元数据文件持久化于硬盘上,并加载至内存中使用,在有数据写入时对元数据文件进行更新;在写数据时,先请求主节点获得该数据的全局唯一URL,再通过该URL找到相应的从节点并在该从节点上进行数据存储;在读数据时,根据URL直接找到从节点并从该从节点处进行数据读取。
在本发明实施例中,所述数据库模块8对已存入的结构化数据构建数据索引。
在本发明实施例中,所述消息队列模块6中元数据的最终一致性由Raft算法来保证,每个消息都有偏移量、时间戳、键和值四个数据,并根据主题来对消息进行发布与订阅。每个主题的消息又可分为多个区,根据键的哈希结果来确定一个消息隶属于哪个区,以区为单位进行消息的冗余存储,消息以时间顺序依次写入所属区。在订阅一个主题的消息时,消费该主题消息的各个区,并可通过各个区的冗余备份来提高消息的消费并行度,也可动态调整消息消费的偏移量来控制消息消费的起点。对旧消息进行清理时,可设置消息的最大存储容量或消息的最长存储时间。为加快消息的读写速度,利用操作系统的mmap机制实现存储文件在内存中的映射,但这也在一定程度上增大了数据丢失的风险。为减轻网络传输的负担,将多个消息压缩在一块一并发送,存储时也将消息以压缩的形式存储,但这也在一定程度上降低了消息的实时性。为提高消息的发送效率,采用操作系统的Zero-Copy技术,将消息发送前数据的拷贝次数由4 次降低至2次。
结合图2所示,整个端-边-云视频流分析系统被分为多个边缘区域和一个云区域,每个区域都会部署一些Worker节点,在Worker节点之上可以按需部署智能服务和其它服务。同样在云上也会部署Worker节点,但在数量上要比各个边缘区域多。这些Worker节点由云上的Master节点统一管理,仅需要在 Master节点和Worker节点上进行简单的配置即可完成Worker节点的加入与退出。为避免单机故障,会启用多个Master节点来做热备份。
结合图3所示,启用多个Master热备份节点(每个热备份节点都可以用来管理Worker节点,多个热备份节点间的数据一致性通过ETCD来保证)来避免 Master节点的单机故障,在多个Master节点之上,使用keepalived工具来向外提供虚拟Socket(IP:Port),并使用haproxy工具来保证多个Master节点间的负载均衡,从而使集群具有较高的可靠性。
结合图4所示,每个智能服务都以进程的形式存在,我们通过逻辑控制器来对智能服务进行复用。逻辑控制器取输入视频流并控制视频流分析的流程,如先进行车辆检测,再进行车牌检测,最后再对车牌进行识别。为减少等待响应的阻塞时间,逻辑控制器异步地向智能服务发送智能分析请求。
结合图5所示,服务程序被制作成Docker镜像,最终以Docker容器的形式运行,并且由K8s来管理。对于每个K8s Pod,其只拥有一个Docker容器。我们使用Deployment控制器来部署智能服务、页面前端等无状态的服务;使用 StatefulSet控制器来部署MySQL数据库、Kafka消息队列等有状态的服务,并将持久化数据置于Ceph分布式存储系统之中。在服务发现方面,使用ClusterIP 类型的Service来在集群内部暴露Pod服务,使用NodePort类型的Service来向集群外部暴露Pod服务。
结合图6所示,用户通过Web前端来发起视频流分析请求、展示视频流播放请求和历史视频流分析数据检索请求,图中虚线表示在该虚线的源节点上可能发生此虚线过程。当用户通过Web前端发起视频流分析请求时,Web前端通过HTTP请求触发用户请求解析函数。该函数根据请求中的视频流产生位置来确定调度空间:如果视频流产生处与云之间的网络延迟最低则仅将视频流分析任务调度于云上,否则视频流分析任务的调度空间为与视频流产生处之间网络延迟最低的边缘区域与云区域。在确定调度空间后,如果在调度空间中有已存在的智能服务具有充足的剩余复用能力(处理请求的剩余QPS指标),则可复用该智能服务(对于一种智能分析任务,如果一个智能服务不具有充足的剩余复用能力,则不可对其进行任何复用),否则在调度空间中部署相应的智能服务:若调度空间仅包含云,则仅将智能服务部署于云上;否则按照输入视频流所占带宽(由视频流处理帧率*视频流分辨率计算得出)由高到低的顺序,优先将智能服务部署于调度空间中的边缘区域中,在边缘区域因硬件资源不足而无法部署智能服务时,将剩余的智能服务部署于云上。同时通过逻辑控制器创建相应的逻辑进程,逻辑进程取输入视频流并对智能服务进行复用以完成视频流分析任务。逻辑进程将截图数据存入到SeaweedFS分布式存储系统之中,将结构化数据发布至Kafka消息队列,并将叠加有智能信息的展示视频流推给Nginx RTMP 服务器。基于Kafka新消息触发器的Kafka消费函数解析Kafka中最新的消息并将相关信息存入到MySQL关系型数据库之中。用户可以通过Web前端请求 Flv.js取流服务来向Nginx RTMP服务器取展示视频流来播放,也可以请求Web 后端令其对MySQL数据库中的结构化数据进行条件查询,并对查询结果进行回显。
本发明实施例所述的于端-边-云计算架构的视频流分析系统相较于现有技术,具有以下优点:
1、本发明基于Docker容器和K8s容器编排技术在边缘与云上构建集群,通过云上的K8s主节点对其它所有从节点进行管理,所有服务都以Docker容器的形式运行,极大地方便了服务的部署,尤其是对于智能服务而言,极大地方便了智能服务的动态创建与部署。同时通过多个K8s主节点互为热备份来提高系统的可靠性,通过针对不同服务不同特征进行不同的服务副本控制来提高系统的可用性,通过对失败服务的重启和对宕机节点上服务的迁移来进一步提高系统的可靠性和可用性;
2、本发明根据需要分析的视频流的产生处与边缘区域和云之间的网络延迟来确定视频流分析任务的调度空间,这样可以使得智能服务优先部署于与视频流产生处更近的区域来降低数据远距离传输带来的延迟,同时能够利用边缘资源来节省与降低边-云间的带宽占用与数据传输延迟;
3、本发明在智能服务部署之初就考虑到对智能服务进行复用,这样可以大大提高智能服务的复用率,从而减少智能服务的部署量,降低系统资源的消耗。与此同时,优先考虑将智能服务部署于边缘区域以节省与降低边-云间的带宽占用与数据传输延迟;
4、本发明使用通过内存缓存加速的分布式存储来提高图片的存取效率,并以全局唯一的URL来代替原始图像数据在网络中进行传输以减轻网络的负担。通过采取“发布-订阅”的分布式消息队列来传递视频流分析所得到的结构化数据,提高数据在网络中传输的效率与吞吐率,不仅可以对数据进行冗余备份,还可提高数据消费的并行度,并且可以根据实际生产与消费的速度来调整生产者与消费者的数量。最终将结构化数据存储于关系型数据库中,通过索引的加速能力可以快速地对已存在的结构化数据进行条件查询。
在上述实施例的基础上,本发明还提供了一种基于端-边-云计算架构的视频流分析方法,应用于上述任一实施例所述的基于端-边-云计算架构的视频流分析系统,包括如下步骤:
由一个或多个节点构成集群控制模块1,这些节点互为热备份;与所有集群的节点保持心跳连接,监控集群状态,控制服务的副本数,服务在其中任一节点执行失败时仍在该节点上重新启动;若有节点宕机时将宕机节点上的服务迁移至其它节点运行;以及监控接收到的服务部署请求,将服务部署于一个或多个节点之上;
通过前端展示模块2向用户提供图形操作界面,用户可通过操作该界面向请求解析模块4发起视频流分析请求,向后端服务模块3发送视频流取流请求,请求播放展示视频流、检索历史视频流分析数据;
请求解析模块4接收前端展示模块2发来的视频流分析请求,并根据需要分析的视频流的产生处与边缘区域和云之间的网络延迟来确定视频流分析任务的调度空间,如果视频流产生处与云之间的网络延迟最低则仅将视频流分析任务调度于云上,否则视频流分析任务的调度空间为与视频流产生处之间网络延迟最低的边缘区域与云区域,最终将所得出的调度空间发往智能分析模块5;
所述智能分析模块5接收请求解析模块4发来的调度空间结果,并根据调度空间向集群控制模块1发送服务部署请求来部署智能服务:若有已存在的智能服务具有充足的剩余复用能力,则直接复用该智能服务;若调度空间仅包含云,则仅将智能服务部署于云上;否则按照输入视频流所占带宽由高到低的顺序,优先将智能服务部署于调度空间中的边缘区域中,在边缘区域因硬件资源不足而无法部署智能服务时,将剩余的智能服务部署于云上;智能服务根据用户请求按需将视频流分析结果发往分布式存储模块7、消息队列模块6以及后端服务模块3:将截图数据发往分布式存储模块7并获得该截图的全局唯一URL,将包含截图URL的结构化数据发往消息队列模块6,将视频流数据发往后端服务模块3;
所述后端服务模块3接收前端展示模块2发来的视频流取流请求,将从智能分析模块5接收到的叠加有智能信息的视频流推回给用户的图形操作界面进行展示;持续向消息队列模块6发送请求并消费消息队列模块6中从智能分析模块5接收到的最新的结构化数据,将这些结构化数据发往数据库模块8进行存储;接收前端展示模块2发来的历史视频流分析数据检索请求,并请求数据库模块8对历史结构化数据进行条件查询,将查询结果返回给用户的图形操作界面进行展示;
由一个或多个节点构成的所述分布式存储模块7接收智能分析模块5发来的截图数据,并将该截图数据冗余保存,最后返回该截图数据的全局唯一URL 给智能分析模块5,以及提供根据URL读取数据的服务;
所述数据库模块8对已存储的结构化数据进行相关的条件查询,所述数据库模块8以关系型数据库的形式来存储结构化数据;
所述消息队列模块6接收智能分析模块5发来的结构化数据,并将该结构化数据冗余保存,同时支持后端服务模块3对其新消息的消费行为,所述消息队列模块6由一个或多个节点构成,对消息采用“发布-订阅”模式。
在本发明实施例中,所述集群控制模块1需根据不同的服务类型来控制服务的副本数,以提高服务的可用性和节省系统资源:对于无状态的非智能服务,可部署一个或多个副本;对于可集群化的有状态的服务,可部署一个或多个副本;对于不可集群化的有状态的服务,部署一个副本;对于智能服务,因其由智能分析模块5按需创建,所以仅需部署一个副本;同时,集群控制模块1在旧节点的退出和新节点的加入之时,会在整个集群范围内对已部署的服务进行滚动调整,以达到新集群状态下的服务负载均衡;所述智能分析模块5在边缘区域或云上负载均衡地部署智能服务,在进行负载均衡时首先考虑内存/显存资源,其次考虑线程资源。
在本发明实施例中,所述分布式存储模块7中的节点有主从之分,主从节点由集群管理员指定,主节点负责记录从节点的信息,从节点则负责存储数据;在每个从节点上,所有的数据都被存成一个大文件,为提高每份数据的读取效率,对每份数据都生成一份元数据,所有的元数据组成为一个元数据文件持久化于硬盘上,并加载至内存中使用,在有数据写入时对元数据文件进行更新;在写数据时,先请求主节点获得该数据的全局唯一URL,再通过该URL找到相应的从节点并在该从节点上进行数据存储;在读数据时,根据URL直接找到从节点并从该从节点处进行数据读取。
在本发明实施例中,所述消息队列模块6中元数据的最终一致性由Raft算法来保证,每个消息都有偏移量、时间戳、键和值四个数据,并根据主题来对消息进行发布与订阅;每个主题的消息又分为多个区,根据键的哈希结果来确定一个消息隶属于哪个区,以区为单位进行消息的冗余存储,消息以时间顺序依次写入所属区;在订阅一个主题的消息时,消费该主题消息的各个区,并可通过各个区的冗余备份来提高消息的消费并行度,也可动态调整消息消费的偏移量来控制消息消费的起点;对旧消息进行清理时,可设置消息的最大存储容量或消息的最长存储时间;利用操作系统的mmap机制实现存储文件在内存中的映射;将多个消息压缩在一块一并发送,存储时也将消息以压缩的形式存储;采用操作系统的Zero-Copy技术,将消息发送前数据的拷贝次数由4次降低至 2次。
上述实施例所述的基于端-边-云计算架构的视频流分析系统可执行本发明实施例所提供的基于端-边-云计算架构的视频流分析方法,所述基于端-边-云计算架构的视频流分析方法具备上述实施例所述名称系统相应的功能部件以及有益效果,具体请参阅上述基于端-边-云计算架构的视频流分析系统的实施例,本发明实施例在此不再赘述。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。以上仅为本发明的实施例,但并不限制本发明的专利范围,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本发明说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本发明专利保护范围之内。
Claims (10)
1.一种基于端-边-云计算架构的视频流分析系统,其特征在于,包括:集群控制模块(1),前端展示模块(2),后端服务模块(3),请求解析模块(4)、智能分析模块(5)、分布式存储模块(7)、数据库模块(8)以及消息队列模块(6);所述集群控制模块(1)与其它所有模块相连;所述前端展示模块(2)与所述后端服务模块(3)和请求解析模块(4)相连;所述智能分析模块(5)与请求解析模块(4)、消息队列模块(6)以及后端服务模块(3)相连;所述后端服务模块(3)与前端展示模块(2)、智能分析模块(5)、分布式存储模块(7)、数据库模块(8)以及消息队列模块(6)相连;
所述集群控制模块(1)由一个或多个节点构成,这些节点互为热备份;与所有集群的节点保持心跳连接,监控集群状态,控制服务的副本数,服务在其中任一节点执行失败时仍在该节点上重新启动;若有节点宕机时将宕机节点上的服务迁移至其它节点运行;以及监控接收到的服务部署请求,将服务部署于一个或多个节点之上;
所述前端展示模块(2)向用户提供图形操作界面,用户可通过操作该界面向请求解析模块(4)发起视频流分析请求,向后端服务模块(3)发送视频流取流请求,请求播放展示视频流、检索历史视频流分析数据;
所述请求解析模块(4)接收前端展示模块(2)发来的视频流分析请求,并根据需要分析的视频流的产生处与边缘区域和云之间的网络延迟来确定视频流分析任务的调度空间,如果视频流产生处与云之间的网络延迟最低则仅将视频流分析任务调度于云上,否则视频流分析任务的调度空间为与视频流产生处之间网络延迟最低的边缘区域与云区域,最终将所得出的调度空间发往智能分析模块(5);
所述智能分析模块(5)接收请求解析模块(4)发来的调度空间结果,并根据调度空间向集群控制模块(1)发送服务部署请求来部署智能服务:若有已存在的智能服务具有充足的剩余复用能力,则直接复用该智能服务;若调度空间仅包含云,则仅将智能服务部署于云上;否则按照输入视频流所占带宽由高到低的顺序,优先将智能服务部署于调度空间中的边缘区域中,在边缘区域因硬件资源不足而无法部署智能服务时,将剩余的智能服务部署于云上;智能服务根据用户请求按需将视频流分析结果发往分布式存储模块(7)、消息队列模块(6)以及后端服务模块(3):将截图数据发往分布式存储模块(7)并获得该截图的全局唯一URL,将包含截图URL的结构化数据发往消息队列模块(6),将视频流数据发往后端服务模块(3);
所述后端服务模块(3)接收前端展示模块(2)发来的视频流取流请求,将从智能分析模块(5)接收到的叠加有智能信息的视频流推回给用户的图形操作界面进行展示;持续向消息队列模块(6)发送请求并消费消息队列模块(6)中从智能分析模块(5)接收到的最新的结构化数据,将这些结构化数据发往数据库模块(8)进行存储;接收前端展示模块(2)发来的历史视频流分析数据检索请求,并请求数据库模块(8)对历史结构化数据进行条件查询,将查询结果返回给用户的图形操作界面进行展示;
所述分布式存储模块(7)由一个或多个节点构成,接收智能分析模块(5)发来的截图数据,并将该截图数据冗余保存,最后返回该截图数据的全局唯一URL给智能分析模块(5),以及提供根据URL读取数据的服务;
所述数据库模块(8)以关系型数据库的形式来存储结构化数据,对已存储的结构化数据可以进行相关的条件查询;
所述消息队列模块(6)由一个或多个节点构成,对消息采用“发布-订阅”模式,接收智能分析模块(5)发来的结构化数据,并将该结构化数据冗余保存,同时支持后端服务模块(3)对其新消息的消费行为。
2.根据权利要求1所述的基于端-边-云计算架构的视频流分析系统,其特征在于:所述集群控制模块(1)需根据不同的服务类型来控制服务的副本数,以提高服务的可用性和节省系统资源:对于无状态的非智能服务,可部署一个或多个副本;对于可集群化的有状态的服务,可部署一个或多个副本;对于不可集群化的有状态的服务,部署一个副本;对于智能服务,因其由智能分析模块(5)按需创建,所以仅需部署一个副本;同时,集群控制模块(1)在旧节点的退出和新节点的加入之时,会在整个集群范围内对已部署的服务进行滚动调整,以达到新集群状态下的服务负载均衡。
3.根据权利要求1所述的基于端-边-云计算架构的视频流分析系统,其特征在于:所述智能分析模块(5)在边缘区域或云上负载均衡地部署智能服务,在进行负载均衡时首先考虑内存/显存资源,其次考虑线程资源。
4.根据权利要求1所述的基于端-边-云计算架构的视频流分析系统,其特征在于:所述分布式存储模块(7)中的节点有主从之分,主从节点由集群管理员指定,主节点负责记录从节点的信息,从节点则负责存储数据;在每个从节点上,所有的数据都被存成一个大文件,为提高每份数据的读取效率,对每份数据都生成一份元数据,所有的元数据组成为一个元数据文件持久化于硬盘上,并加载至内存中使用,在有数据写入时对元数据文件进行更新;在写数据时,先请求主节点获得该数据的全局唯一URL,再通过该URL找到相应的从节点并在该从节点上进行数据存储;在读数据时,根据URL直接找到从节点并从该从节点处进行数据读取。
5.根据权利要求1所述的基于端-边-云计算架构的视频流分析系统,其特征在于:所述数据库模块(8)对已存入的结构化数据构建数据索引。
6.根据权利要求1所述的基于端-边-云计算架构的视频流分析系统,其特征在于:所述消息队列模块(6)中元数据的最终一致性由Raft算法来保证,每个消息都有偏移量、时间戳、键和值四个数据,并根据主题来对消息进行发布与订阅;每个主题的消息又分为多个区,根据键的哈希结果来确定一个消息隶属于哪个区,以区为单位进行消息的冗余存储,消息以时间顺序依次写入所属区;在订阅一个主题的消息时,消费该主题消息的各个区,并可通过各个区的冗余备份来提高消息的消费并行度,也可动态调整消息消费的偏移量来控制消息消费的起点;对旧消息进行清理时,可设置消息的最大存储容量或消息的最长存储时间;利用操作系统的mmap机制实现存储文件在内存中的映射;将多个消息压缩在一块一并发送,存储时也将消息以压缩的形式存储;采用操作系统的Zero-Copy技术,将消息发送前数据的拷贝次数由4次降低至2次。
7.一种基于端-边-云计算架构的视频流分析方法,应用于上述权利要求1-6任一项所述的基于端-边-云计算架构的视频流分析系统,其特征在于,包括如下步骤:
由一个或多个节点构成集群控制模块(1),这些节点互为热备份;与所有集群的节点保持心跳连接,监控集群状态,控制服务的副本数,服务在其中任一节点执行失败时仍在该节点上重新启动;若有节点宕机时将宕机节点上的服务迁移至其它节点运行;以及监控接收到的服务部署请求,将服务部署于一个或多个节点之上;
通过前端展示模块(2)向用户提供图形操作界面,用户可通过操作该界面向请求解析模块(4)发起视频流分析请求,向后端服务模块(3)发送视频流取流请求,请求播放展示视频流、检索历史视频流分析数据;
请求解析模块(4)接收前端展示模块(2)发来的视频流分析请求,并根据需要分析的视频流的产生处与边缘区域和云之间的网络延迟来确定视频流分析任务的调度空间,如果视频流产生处与云之间的网络延迟最低则仅将视频流分析任务调度于云上,否则视频流分析任务的调度空间为与视频流产生处之间网络延迟最低的边缘区域与云区域,最终将所得出的调度空间发往智能分析模块(5);
所述智能分析模块(5)接收请求解析模块(4)发来的调度空间结果,并根据调度空间向集群控制模块(1)发送服务部署请求来部署智能服务:若有已存在的智能服务具有充足的剩余复用能力,则直接复用该智能服务;若调度空间仅包含云,则仅将智能服务部署于云上;否则按照输入视频流所占带宽由高到低的顺序,优先将智能服务部署于调度空间中的边缘区域中,在边缘区域因硬件资源不足而无法部署智能服务时,将剩余的智能服务部署于云上;智能服务根据用户请求按需将视频流分析结果发往分布式存储模块(7)、消息队列模块(6)以及后端服务模块(3):将截图数据发往分布式存储模块(7)并获得该截图的全局唯一URL,将包含截图URL的结构化数据发往消息队列模块(6),将视频流数据发往后端服务模块(3);
所述后端服务模块(3)接收前端展示模块(2)发来的视频流取流请求,将从智能分析模块(5)接收到的叠加有智能信息的视频流推回给用户的图形操作界面进行展示;持续向消息队列模块(6)发送请求并消费消息队列模块(6)中从智能分析模块(5)接收到的最新的结构化数据,将这些结构化数据发往数据库模块(8)进行存储;接收前端展示模块(2)发来的历史视频流分析数据检索请求,并请求数据库模块(8)对历史结构化数据进行条件查询,将查询结果返回给用户的图形操作界面进行展示;
由一个或多个节点构成的所述分布式存储模块(7)接收智能分析模块(5)发来的截图数据,并将该截图数据冗余保存,最后返回该截图数据的全局唯一URL给智能分析模块(5),以及提供根据URL读取数据的服务;
所述数据库模块(8)对已存储的结构化数据进行相关的条件查询,所述数据库模块(8)以关系型数据库的形式来存储结构化数据;
所述消息队列模块(6)接收智能分析模块(5)发来的结构化数据,并将该结构化数据冗余保存,同时支持后端服务模块(3)对其新消息的消费行为,所述消息队列模块(6)由一个或多个节点构成,对消息采用“发布-订阅”模式。
8.根据权利要求7所述的基于端-边-云计算架构的视频流分析方法,其特征在于:所述集群控制模块(1)需根据不同的服务类型来控制服务的副本数,以提高服务的可用性和节省系统资源:对于无状态的非智能服务,可部署一个或多个副本;对于可集群化的有状态的服务,可部署一个或多个副本;对于不可集群化的有状态的服务,部署一个副本;对于智能服务,因其由智能分析模块(5)按需创建,所以仅需部署一个副本;同时,集群控制模块(1)在旧节点的退出和新节点的加入之时,会在整个集群范围内对已部署的服务进行滚动调整,以达到新集群状态下的服务负载均衡;所述智能分析模块(5)在边缘区域或云上负载均衡地部署智能服务,在进行负载均衡时首先考虑内存/显存资源,其次考虑线程资源。
9.根据权利要求7所述的基于端-边-云计算架构的视频流分析方法,其特征在于:所述分布式存储模块(7)中的节点有主从之分,主从节点由集群管理员指定,主节点负责记录从节点的信息,从节点则负责存储数据;在每个从节点上,所有的数据都被存成一个大文件,为提高每份数据的读取效率,对每份数据都生成一份元数据,所有的元数据组成为一个元数据文件持久化于硬盘上,并加载至内存中使用,在有数据写入时对元数据文件进行更新;在写数据时,先请求主节点获得该数据的全局唯一URL,再通过该URL找到相应的从节点并在该从节点上进行数据存储;在读数据时,根据URL直接找到从节点并从该从节点处进行数据读取。
10.根据权利要求7所述的基于端-边-云计算架构的视频流分析方法,其特征在于:所述消息队列模块(6)中元数据的最终一致性由Raft算法来保证,每个消息都有偏移量、时间戳、键和值四个数据,并根据主题来对消息进行发布与订阅;每个主题的消息又分为多个区,根据键的哈希结果来确定一个消息隶属于哪个区,以区为单位进行消息的冗余存储,消息以时间顺序依次写入所属区;在订阅一个主题的消息时,消费该主题消息的各个区,并可通过各个区的冗余备份来提高消息的消费并行度,也可动态调整消息消费的偏移量来控制消息消费的起点;对旧消息进行清理时,可设置消息的最大存储容量或消息的最长存储时间;利用操作系统的mmap机制实现存储文件在内存中的映射;将多个消息压缩在一块一并发送,存储时也将消息以压缩的形式存储;采用操作系统的Zero-Copy技术,将消息发送前数据的拷贝次数由4次降低至2次。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111349395.2A CN114064211B (zh) | 2021-11-15 | 2021-11-15 | 一种基于端-边-云计算架构的视频流分析系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111349395.2A CN114064211B (zh) | 2021-11-15 | 2021-11-15 | 一种基于端-边-云计算架构的视频流分析系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114064211A true CN114064211A (zh) | 2022-02-18 |
CN114064211B CN114064211B (zh) | 2023-06-02 |
Family
ID=80272323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111349395.2A Active CN114064211B (zh) | 2021-11-15 | 2021-11-15 | 一种基于端-边-云计算架构的视频流分析系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114064211B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114666226A (zh) * | 2022-05-25 | 2022-06-24 | 杭州谐云科技有限公司 | 一种大规模边缘集群管理方法和系统 |
CN115002514A (zh) * | 2022-05-27 | 2022-09-02 | 浙江大学 | 基于云原生控制器的spark视频转码系统及视频转码方法 |
CN115641497A (zh) * | 2022-12-23 | 2023-01-24 | 中电信数字城市科技有限公司 | 多路视频处理系统及方法 |
CN116661705A (zh) * | 2023-07-24 | 2023-08-29 | 江西云眼视界科技股份有限公司 | 基于kafka的数据管理方法、系统、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103747060A (zh) * | 2013-12-26 | 2014-04-23 | 惠州华阳通用电子有限公司 | 一种基于流媒体服务集群的分布式监控系统及方法 |
CN107454017A (zh) * | 2017-06-05 | 2017-12-08 | 上海交通大学 | 一种云数据中心网络中混合数据流协同调度方法 |
CN108881202A (zh) * | 2018-06-08 | 2018-11-23 | 北京联合众为科技发展有限公司 | 一种视频监控系统及方法 |
US20190354765A1 (en) * | 2014-02-28 | 2019-11-21 | Second Spectrum, Inc. | Methods, systems, and user interface navigation of video content based spatiotemporal pattern recognition |
CN110493658A (zh) * | 2019-08-20 | 2019-11-22 | 武汉兴图新科电子股份有限公司 | 一种网络带宽侦测方法、设备及存储设备 |
US20200162503A1 (en) * | 2018-11-19 | 2020-05-21 | Cisco Technology, Inc. | Systems and methods for remediating internet of things devices |
CN111444014A (zh) * | 2020-03-23 | 2020-07-24 | 山东省科学院海洋仪器仪表研究所 | 基于ec-rest体系结构的海洋观测网络系统及方法 |
US20200404034A1 (en) * | 2019-06-20 | 2020-12-24 | Disney Enterprises, Inc. | Hybrid Cloud-Based Media Production |
-
2021
- 2021-11-15 CN CN202111349395.2A patent/CN114064211B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103747060A (zh) * | 2013-12-26 | 2014-04-23 | 惠州华阳通用电子有限公司 | 一种基于流媒体服务集群的分布式监控系统及方法 |
US20190354765A1 (en) * | 2014-02-28 | 2019-11-21 | Second Spectrum, Inc. | Methods, systems, and user interface navigation of video content based spatiotemporal pattern recognition |
CN107454017A (zh) * | 2017-06-05 | 2017-12-08 | 上海交通大学 | 一种云数据中心网络中混合数据流协同调度方法 |
CN108881202A (zh) * | 2018-06-08 | 2018-11-23 | 北京联合众为科技发展有限公司 | 一种视频监控系统及方法 |
US20200162503A1 (en) * | 2018-11-19 | 2020-05-21 | Cisco Technology, Inc. | Systems and methods for remediating internet of things devices |
US20200404034A1 (en) * | 2019-06-20 | 2020-12-24 | Disney Enterprises, Inc. | Hybrid Cloud-Based Media Production |
CN110493658A (zh) * | 2019-08-20 | 2019-11-22 | 武汉兴图新科电子股份有限公司 | 一种网络带宽侦测方法、设备及存储设备 |
CN111444014A (zh) * | 2020-03-23 | 2020-07-24 | 山东省科学院海洋仪器仪表研究所 | 基于ec-rest体系结构的海洋观测网络系统及方法 |
Non-Patent Citations (2)
Title |
---|
JAVIER PANADERO: ""A two-stage Multi-Criteria Optimization method for service placement in decentralized edge micro-clouds"", 《FUTURE GENERATION COMPUTER SYSTEMS》 * |
李云鹏: ""基于Kafka的分布式监控视频流数据采集系统的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114666226A (zh) * | 2022-05-25 | 2022-06-24 | 杭州谐云科技有限公司 | 一种大规模边缘集群管理方法和系统 |
CN114666226B (zh) * | 2022-05-25 | 2022-11-18 | 杭州谐云科技有限公司 | 一种大规模边缘集群管理方法和系统 |
CN115002514A (zh) * | 2022-05-27 | 2022-09-02 | 浙江大学 | 基于云原生控制器的spark视频转码系统及视频转码方法 |
CN115641497A (zh) * | 2022-12-23 | 2023-01-24 | 中电信数字城市科技有限公司 | 多路视频处理系统及方法 |
CN115641497B (zh) * | 2022-12-23 | 2023-03-03 | 中电信数字城市科技有限公司 | 多路视频处理系统及方法 |
CN116661705A (zh) * | 2023-07-24 | 2023-08-29 | 江西云眼视界科技股份有限公司 | 基于kafka的数据管理方法、系统、电子设备及存储介质 |
CN116661705B (zh) * | 2023-07-24 | 2023-10-20 | 江西云眼视界科技股份有限公司 | 基于kafka的数据管理方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114064211B (zh) | 2023-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114064211A (zh) | 一种基于端-边-云计算架构的视频流分析系统及方法 | |
US9917913B2 (en) | Large message support for a publish-subscribe messaging system | |
US11853263B2 (en) | Geographically-distributed file system using coordinated namespace replication over a wide area network | |
US8108623B2 (en) | Poll based cache event notifications in a distributed cache | |
CN108920153B (zh) | 一种基于负载预测的Docker容器动态调度方法 | |
US10311028B2 (en) | Method and apparatus for replication size estimation and progress monitoring | |
US11663242B2 (en) | Mass insertion into single-threaded databases | |
US9495381B2 (en) | Geographically-distributed file system using coordinated namespace replication over a wide area network | |
AU2019236685A1 (en) | Distributed file system using consensus nodes | |
US9652520B2 (en) | System and method for supporting parallel asynchronous synchronization between clusters in a distributed data grid | |
US10365980B1 (en) | Storage system with selectable cached and cacheless modes of operation for distributed storage virtualization | |
US9128902B2 (en) | Systems and methods for managing disaster recovery in a storage system | |
US10482084B2 (en) | Optimized merge-sorting of data retrieved from parallel storage units | |
CN112654978A (zh) | 分布式异构存储系统中数据一致性实时检查的方法、设备和系统 | |
US9298765B2 (en) | Apparatus and method for handling partially inconsistent states among members of a cluster in an erratic storage network | |
CN115587118A (zh) | 任务数据的维表关联处理方法及装置、电子设备 | |
CN115391030A (zh) | 控制方法及装置、计算机设备及存储介质 | |
CN109726211B (zh) | 一种分布式时序数据库 | |
US20200389546A1 (en) | State replication, allocation and failover in stream processing | |
CN107566341B (zh) | 一种基于联邦分布式文件存储系统的数据持久化存储方法及系统 | |
US11113106B2 (en) | Coordinating distributed task execution | |
CN111427689B (zh) | 集群保活方法、装置及存储介质 | |
CN106257447A (zh) | 云存储服务器的视频存储及检索方法、视频云存储系统 | |
CN111984393A (zh) | 分布式大规模实时数据调度引擎系统及其数据调度方法 | |
CN113254511A (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 |