CN110192393B - 大规模的实时视频分析方法、计算系统 - Google Patents
大规模的实时视频分析方法、计算系统 Download PDFInfo
- Publication number
- CN110192393B CN110192393B CN201780066717.8A CN201780066717A CN110192393B CN 110192393 B CN110192393 B CN 110192393B CN 201780066717 A CN201780066717 A CN 201780066717A CN 110192393 B CN110192393 B CN 110192393B
- Authority
- CN
- China
- Prior art keywords
- video analytics
- video
- queries
- computing system
- query
- 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.)
- Active
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 55
- 238000000034 method Methods 0.000 claims abstract description 76
- 230000015654 memory Effects 0.000 claims description 32
- 230000009466 transformation Effects 0.000 claims description 29
- 238000012545 processing Methods 0.000 abstract description 25
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000013468 resource allocation Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000003860 storage Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 7
- 230000006872 improvement Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000000844 transformation Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000032258 transport Effects 0.000 description 3
- 206010039203 Road traffic accident Diseases 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000009194 climbing Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012015 optical character recognition Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
- H04N7/181—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/95—Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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]
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/96—Management of image or video recognition tasks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/52—Surveillance or monitoring of activities, e.g. for recognising suspicious objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/52—Surveillance or monitoring of activities, e.g. for recognising suspicious objects
- G06V20/54—Surveillance or monitoring of activities, e.g. for recognising suspicious objects of traffic, e.g. cars on the road, trains or boats
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/44—Event detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/178—Human faces, e.g. facial parts, sketches or expressions estimating age from face image; using age information for improving recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本文所描述的各种技术涉及执行视频分析。本文所阐述的方法支持具有近似和延迟容忍处理的大规模实时视频分析。视频流可以由多个相机捕获并且被连续地流式传输到视频分析计算系统;视频流可以在视频分析计算系统处被接收。多个视频分析查询可以对视频流来执行。在视频流被连续地流式传输到视频分析计算系统时,多个视频分析查询可以由视频分析计算系统对视频流并发执行。多个视频分析查询可以利用被分配在多个视频分析查询之间的视频分析计算系统的资源来执行。多个视频分析查询的执行可以返回针对多个视频分析查询的相应结果。针对多个视频分析查询的结果可以被输出。
Description
背景技术
摄像机普遍地被部署在社会中;例如,在城市中部署数百万台相机是常见的。可以出于任何数目的目的来部署相机。例如,一些相机可以被安装在建筑物中或建筑物上以用于监督和商业智能。可以部署其它相机以捕获室外场景(例如,街道)的视频以用于交通控制和犯罪预防。
组织可以部署大量相机。根据说明,警察局可以在城市中的各个地点处部署大量相机。常规上,可以记录来自这些相机的视频流,并且如果发生事故,则可以审查所记录的视频流。例如,如果发生交通事故,那么可以分析来自可能已经捕获到交通事故的相机的所记录的视频流,以试图找到所记录的视频流的相关部分。
传统上,所记录的视频流通常是人工审查的;然而,随着相机的数目不断增加,人工审查所记录的视频流变得越来越难。最近,一些方法对从相机摄取的视频流执行视频分析。然而,视频分析可能具有显著的资源需求。例如,为了追踪视频中的对象,一些技术可以在8 核机器上每秒(或更少)处理1帧。根据另一示例,使用深度神经网络以用于对象识别的技术可以采用大约30 GFlops来处理单个帧。由于视频流的高处理成本和高数据速率,所返回的结果的质量和用于返回针对常规视频分析方法的结果的时间上的迟滞可能受到不利影响。
发明内容
本文描述了涉及执行视频分析的各种技术。本文所阐述的方法支持具有近似和延迟容忍处理的大规模实时视频分析。视频流可以由多个相机捕获并且被连续地流式传输到视频分析计算系统;因此,可以在视频分析计算系统处接收视频流。可以对视频流执行多个视频分析查询。在视频流被连续地流式传输到视频分析计算系统时,可以由视频分析计算系统对视频流并发执行多个视频分析查询。可以利用被分配在多个视频分析查询之间的视频分析计算系统的资源(例如,处理器、存储器)来执行多个视频分析查询。多个视频分析查询的执行可以返回针对多个视频分析查询的相应结果。进一步地,可以输出针对多个视频分析查询的结果。
根据各种实施例,视频分析计算系统可以调度多个视频分析查询。多个视频分析查询的调度可以联合地基于多个视频分析查询的资源质量简档和多个视频分析查询的迟滞容限。视频分析查询的资源质量简档可以指定与视频分析查询的候选多维配置相对应的资源需求和结果质量。多个视频分析查询的调度可以包括:将视频分析计算系统的资源分配在多个视频分析查询之间以用于多个视频分析查询中的每一个的执行。进一步地,多个视频分析查询的调度可以包括:基于所分配的资源为多个视频分析查询中的每一个选择多维配置。多个视频分析查询的调度还可以包括:将多个视频分析查询放置在视频分析计算系统的工作者计算设备(例如,特定机器)上以用于多个视频分析查询的执行。
进一步地,根据各种实施例,可以生成多个视频分析查询的资源质量简档。例如,响应于接收到特定视频分析查询(例如,在视频分析计算系统处),可以生成特定视频分析查询的资源质量简档。资源质量简档可以指定与特定视频分析查询的候选多维配置相对应的资源需求和结果质量。例如,可以通过利用资源质量空间中的贪婪本地搜索标识候选多维配置来生成特定视频分析查询的资源质量简档,使得候选多维配置可以是Pareto边界上的潜在多维配置的子集。
以上发明内容呈现了简化概要,以便提供对本文所讨论的系统和 /或方法的一些方面的基本理解。该发明内容不是本文所讨论的系统和/或方法的广泛概述。其不旨在标识关键/决定性元素或者描绘这种系统和/或方法的范围。其唯一目的是以简化形式呈现一些概念,作为稍后呈现的更详细的描述的序言。
附图说明
图1图示了执行视频分析的示例性系统的功能框图。
图2图示了用于将资源划分在多个视频分析查询之间的基于公平的资源分配与基于性能的资源分配之间的示例性比较。
图3图示了执行视频分析的另一示例性系统的功能框图。
图4图示了示例性系统的功能框图,其示出了执行两个视频分析查询的示例性场景。
图5更详细地图示了来自图3的剖析器部件和调度器部件的示例。
图6是图示了执行视频分析的示例性方法的流程图。
图7是图示了执行视频分析的另一示例性方法的流程图。
图8是图示了调度多个视频分析查询的示例性方法的流程图。
图9图示了示例性计算设备。
图10图示了示例性计算系统。
具体实施方式
现在参照附图描述涉及执行具有近似和延迟容忍处理的大规模实时视频分析的各种技术,其中,相同的附图标记自始至终被用来指代相同的元素。在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对一个或多个方面的透彻理解。然而,可能明显的是,这种(多个)方面可以在没有这些具体细节的情况下被实践。在其它实例中,以框图形式示出了众所周知的结构和设备,以便促进描述一个或多个方面。进一步地,要理解的是,被描述为由某些系统部件执行的功能可以由多个部件执行。类似地,例如,部件可以被配置为执行被描述为由多个部件执行的功能。
而且,术语“或”旨在表示包含性的“或”而非排他性的“或”。即,除非另有规定或从上下文可以清楚,否则短语″X采用A或B″旨在表示任何自然的包含性排列。即,通过以下情况中的任何一种情况满足短语“X采用A或B”:X采用A;X采用B;或者X采用A 和B两者。另外,在本申请和所附权利要求中使用的冠词“一”和“一个”通常应该被解释为表示“一个或多个”,除非另有规定或者从上下文可以清楚其针对单数形式。
现在参照附图,图1图示了执行视频分析的系统100。系统100 包括处理来自多个相机的视频流上的视频分析查询的视频分析计算系统102。视频分析计算系统102可以处理视频分析查询104、...、和视频分析查询106(在本文中统称为视频分析查询104至106)。设想视频分析计算系统102可以处理基本上任何数目的视频分析查询104至106。而且,在其上处理视频分析查询104至106的视频流可以来自相机108、...、和相机110(在本文中统称为相机108至110)。相应地,相机108至110与视频分析计算系统102通信地耦合(例如,间接地或直接地,经由无线和/或有线连接),从而使视频流能够被发送到视频分析计算系统102。
视频分析计算系统102支持具有近似和延迟容忍处理的大规模实时视频分析。视频分析计算系统102可以控制视频分析查询104 至106的结果质量;针对视频分析查询的结果质量可以是响应于视频分析查询所返回的结果相对于实际值的准确度(例如,与实际值近似的程度)。例如,针对用于对视频流中的汽车进行计数的视频分析查询,响应于视频分析查询而被生成的结果的质量可以基于将结果与实际值进行比较的准确度(例如,响应于对视频流执行的汽车计数查询而被输出的汽车计数相对于视频流中的实际汽车计数的准确度)。而且,视频分析查询104至106可以具有各种迟滞容限;例如,可以处理视频分析查询104至106,使得由视频分析计算系统102产生的视频分析查询104至106中的至少一些的结果在时间上延迟。
视频分析计算系统102可以是或包括一个或多个服务器计算设备(例如,视频分析计算系统102可以是或包括服务器计算设备的集群)。例如,视频分析计算系统102可以是或包括一个或多个数据中心,其中,数据中心包括多个服务器计算设备。一个或多个数据中心可以备选地包括视频分析计算系统102。进一步地,视频分析计算系统102可以是分布式计算系统。
更具体地,视频分析计算系统102可以包括多个计算设备。如图 1所描绘的,视频分析计算系统102包括管理器计算设备112和多个工作者计算设备,即,工作者计算设备114、...、和工作者计算设备 116(在本文中统称为工作者计算设备114至116)。例如,视频分析计算系统102可以包括100个工作者计算设备114至116;然而,要了解的是,少于100个或多于100个工作者计算设备114至116 可以被包括在视频分析计算系统102中。管理器计算设备112可以集中地管理视频分析计算系统102;如在本文中更详细地描述的,例如,管理器计算设备112可以控制工作者计算设备114至116。尽管未示出,但是要了解的是,视频分析计算系统102可以包括多于一个管理器计算设备(例如,第一管理器计算设备可以生成简档,并且第二管理器计算设备可以执行本文所描述的调度)。而且,工作者计算设备 114至116可以执行视频分析查询104至106。
视频流可以由多个相机108至110捕获并且被连续地流式传输到视频分析计算系统102。视频分析计算系统102可以从相机108至110 接收视频流。而且,视频分析计算系统102可以对视频流执行多个视频分析查询104至106。当视频流被连续地流式传输到视频分析计算系统102时,可以由视频分析计算系统102对视频流并发执行多个视频分析查询104至106。可以利用被分配在多个视频分析查询104至 106之间的视频分析计算系统102的资源来执行多个视频分析查询 104至106。而且,多个视频分析查询104至106的执行可以返回针对多个视频分析查询104至106的相应结果。视频分析计算系统102 可以进一步输出针对多个视频分析查询104至106的结果。
例如,当由视频分析计算系统102输出时,结果可以被保留在日志中(例如,保留在数据储存库中),从视频分析计算系统102被传送到不同的(多个)计算设备和/或不同的(多个)计算系统,或者被显示在显示屏上;然而,设想任何其它类型的输出旨在落入所附权利要求的范围内(例如,可以提供音频、视觉或触觉反馈)。根据说明,可以生成通知以输出视频分析查询的结果(例如,通知可以指定响应于执行试图定位牌照的视频分析查询而发现牌照的位置,通知可以被传送到一个或多个不同的计算设备以用于呈现)。根据另一说明,视频分析查询的结果(例如,指定检测到通过收费站的汽车上的牌照的数据)可以被发送到不同的计算系统(例如,发票系统)。
管理器计算设备112包括至少一个处理器118和存储器120。处理器118配置为执行被加载到存储器120中的指令(例如,被加载到存储器120中的一个或多个系统,被加载到存储器120中的一个或多个部件)。如在本文中更详细地描述的,存储器120包括系统管理器部件122,其可以被配置为管理工作者计算设备114至116的资源以用于处理视频分析查询104至106。
工作者计算设备114至116还各自包括至少一个处理器和存储器。因此,工作者计算设备114包括至少一个处理器124、...,并且工作者计算设备116包括至少一个处理器126(统称为处理器124至 126)。进一步地,工作者计算设备114包括存储器128、...,并且工作者计算设备116包括存储器130(统称为存储器128至130)。再次,工作者计算设备114至116的处理器124至126可以各自被配置为执行被加载到相应存储器128至130中的指令。而且,工作者部件可以被加载到存储器128至130中,并且由处理器124至126执行;相应地,工作者计算设备114的存储器128包括工作者部件132、...,并且工作者计算设备116的存储器130包括工作者部件134(统称为工作者部件132至134)。工作者部件132至134利用工作者计算设备114至116的资源(例如,处理器124至126、存储器128至130) 来执行视频分析查询104至106。
视频分析查询(例如,视频分析查询104至106中的每一个)可以被指定为被应用于至少一个视频流的变换的图形。例如,视频分析查询104至106中的每一个都可以是被连续地流式传输到视频分析计算系统102的实时视频上的变换的有向无环图(DAG)。每个变换都可以处理视频流中的视频帧(例如,时间排序的消息流),并且可以将对应输出传递到下游。因此,可以由变换按顺序地处理视频帧,使得变换的对应输出被传递到下游。工作者计算设备114至116的工作者部件132至134执行由管理器计算设备112的系统管理器部件 122控制的变换。而且,工作者部件132至134将反馈提供给系统管理器部件122。
视频分析计算系统102支持实时视频的大规模分析,这允许利用任意视觉处理器来提交视频分析查询104至106。管理器计算设备112 的系统管理器部件122可以标识视频分析查询104至106的资源质量简档;例如,可以生成资源质量简档,而无需详尽地探索旋钮配置的组合空间。而且,系统管理器部件122可以联合地基于视频分析查询 104至106的资源质量简档和迟滞容限来调度视频分析查询104至 106。系统管理器部件122可以基于多个视频分析查询104至106之间的资源使用、质量和迟滞之间的权衡来进一步调度视频分析查询 104至106。
系统管理器部件122可以分配工作者计算设备114至116的资源以用于处理相对大数目的视频分析查询104至106,其中这种分配在相对较短的持续时间内完成。根据示例,系统管理器部件122可以在数百毫秒内为数千个视频分析查询104至106分配资源;然而,所要求保护的主题内容并不限于此。而且,与常规方法相比,本文所阐述的技术可以实现利用更少的CPU资源来生成查询的简档。进一步地,与常规技术(例如,传统的基于公平的调度方法)相比,本文所描述的技术可以提供针对视频分析查询104至106的、具有增强的质量的结果。
系统管理器部件122可以生成查询资源质量简档,并且将资源分配给视频分析查询104至106,以最大化质量和迟滞上的性能;相比之下,各种常规方法使用集群中的资源的公平共享。当管理视频分析计算系统102的资源时,系统管理器部件122可以考虑具有多维配置的资源质量权衡以及针对视频分析查询104至106的质量和迟滞目标的多样性。由于视觉处理的高成本,所以由系统管理器部件122提供的资源管理可能是有益的。通过采用本文所描述的技术,视频分析计算系统102可以支持处理实时视频流上的数千个视频分析查询104 至106;然而,因为可能处理更多或更少的视频分析查询104至106,所以所要求保护的主题内容不限于此。鉴于上述情况,可以实时地有效分析多个相机108至110的输出。
如上面提到的,管理器计算设备112的系统管理器部件122可以管理视频分析计算系统102的资源,以用于基于与多维配置的资源质量权衡来处理视频分析查询104至106。视觉算法通常包括各种参数,在本文中也被称为旋钮。旋钮的示例是视频分辨率、帧速率和内部算法参数,诸如,用以在对象检测器中搜索对象的滑动窗口的大小。旋钮值的组合在本文中被称为视频分析查询的配置。配置空间随着旋钮的数目呈指数增加。
可以通过改变配置(例如,改变视频分辨率和滑动窗口大小)来减少资源需求,但是这种变化通常会降低输出质量。一些常规方法支持改变单个旋钮值,即,采样率;然而,采用单个旋钮允许这些常规方法使用已建立的分析模型来针对不同采样率计算质量和资源需求。相比之下,本文所描述的视频分析查询104至106是具有多于一个旋钮的更复杂的黑盒;因此,视频分析查询104至106不具有用以计算质量和资源需求的已知模型。而是,系统管理器部件122可以生成视频分析查询104至106的资源质量简档。
而且,管理器计算设备112的系统管理器部件122可以基于针对视频分析查询104至106的质量和迟滞目标的多样性来管理视频分析计算系统102的资源。尽管一些视频分析查询104至106可能要求实时地产生结果,但是其它视频分析查询104至106可以容忍各种持续时间的迟滞(例如,一些查询可以允许迟滞许多分钟)。相应地,在暂时的资源短缺期间,可以从迟滞容忍的视频分析查询临时地重新分配一些资源。资源短缺可能是由于新的视频分析查询的爆发或者现有视频分析查询的资源使用的高峰(例如,由于道路上要追踪的汽车数目的增加)。
视频分析查询104至106可以具有各种质量和迟滞目标。例如,用于对汽车进行计数以控制交通灯的特定视频分析查询可以以适中质量(例如,近似的汽车计数)进行工作,同时提供具有相对较低的迟滞的结果。相比之下,收费路线上的牌照读取器可能要求相对较高的质量(例如,正确地识别牌照上的字符的准确度),同时容忍较高迟滞(例如,可以允许迟滞许多分钟,因为计费可能延迟)。根据另一示例,被用于安珀(Amber)警报的牌照读取器可能要求高质量结果而没有延迟。
调度具有不同质量和迟滞目标的流式视频分析查询104至106 (各自具有许多配置)在计算上可能是复杂的。用于流处理的各种常规系统通常仅基于资源公平在多个查询之间分配资源。虽然简单,但是基于资源公平的这种分配对查询质量和迟滞来说可能是不可知的,这可能对这种传统方法的性能产生不利影响。相比之下,视频分析计算系统102可以缩放以在大集群上处理来自相机108至110的数千个实时视频流。如上面提到的,管理器计算设备112的系统管理器部件 122可以有效地生成针对视频分析查询104至106的资源质量简档以用于这种查询的不同旋钮配置。而且,系统管理器部件122可以联合地最大化流式视频分析查询104至106的质量并且最小化迟滞。在这样做时,系统管理器部件122可以使用所生成的资源质量简档以及迟滞和质量目标。系统管理器部件122可以将资源分配给视频分析查询 104至106中的每一个,并且可以基于分配为这种查询选择配置(例如,可以选择针对视频分析查询104至106的旋钮值)。
对性能的调度可以使查询实现更好的质量和迟滞。相应地,管理器计算设备112的系统管理器部件122可以调度视频分析查询104 至106,使得更多资源可以被分配给其质量可以具有更多改进的查询。系统管理器部件122还可以调度视频分析查询104至106以允许在处理中具有内置迟滞的查询赶上。而且,系统管理器部件122可以基于所分配的资源来调整查询配置。
视频分析计算系统102可以解决以下挑战。可能没有用于查询配置的针对资源需求和质量的分析模型,并且针对查询的配置数目可能使其在计算或估计资源质量简档的计算资源、时间等方面变得昂贵。而且,表示在视频分析计算系统102中所执行的各个视频分析查询 104至106以及在视频分析查询104至106的集合中的质量和迟滞目标不是容易的。进一步地,选择分配和配置在计算上可能是困难的(例如,视频分析查询104至106和旋钮的数目呈指数)。
为了解决视频分析查询104至106中的多个旋钮,系统管理器部件122可以单独执行剖析和调度。根据示例,剖析可以在离线阶段中被执行,并且调度可以在在线阶段中被执行。遵照该示例,在离线阶段中,系统管理器部件122可以生成视频分析查询104至106的资源质量简档,而无需探索配置的整个组合空间。相反,贪婪搜索和特定于域的采样可以被用来标识针对视频分析查询的资源质量简档的 Pareto边界上的候选多维配置。因此,在在线阶段期间,系统管理器部件122可以考虑Pareto边界上的候选多维配置(与包括其它多维配置的较大集合相对)。与其它多维配置相比,Pareto边界可能缺乏在质量和资源需求两者中更差的多维配置。
而且,视频分析查询的质量和迟滞目标可以被编码到效用函数中。视频分析查询的效用可以基于所实现的结果质量和迟滞;因此,效用可以是所实现的质量和迟滞的加权组合,其具有对违反目标的补偿。补偿可以允许表示视频分析查询104至106之间的优先级。给定多个视频分析查询104至106的效用,系统管理器部件122可以基于针对视频分析计算系统102的调度目标来调度视频分析查询104至 106。示例调度目标包括最大化最小效用(这可以促进公平)以及最大化总效用(这可以提升性能);然而,其它调度目标旨在落入所附权利要求的范围内。
系统管理器部件122可以使用模型预测控制(MPC)预测时间范围内的未来查询迟滞来对调度建模;预测迟滞可以被用在效用函数中。在分配期间,可以基于视频分析查询104至106的资源质量简档来执行调度,并且可以允许迟滞查询赶上。进一步地,可以解决视频分析查询104至106的资源质量简档中的资源使用的不准确性。
现在参照图2,图示了用于将资源划分在多个视频分析查询之间的基于公平的资源分配与基于性能的资源分配之间的示例性比较。在表200中示出了查询A,并且在表202中示出了查询B。表200和表 202包括针对每个查询(分别是Ax和Bx)的三个配置C的资源需求D和质量Q。而且,表204示出了时间、容量R以及针对每个查询的用于基于公平的资源分配的所选配置C、需求D、分配A、所实现的质量Q和迟滞L。出于比较的目的,表206示出了时间、容量R以及针对每个查询的用于基于性能的资源分配的所选配置C、需求D、分配A、所实现的质量Q和迟滞L。在表206中要注意的是,与表 204所示的基于公平的资源分配相比,查询B使用基于性能的资源分配在时间10与22之间实现了更高的质量,而迟滞不会超过8秒(例如,针对查询B的可允许的迟滞)。
如表200和202所描绘的,对于资源需求D的相同增加(例如,需求D从1到2增加1个单位导致针对查询A的质量Q改进0.1个单位并且针对查询B的质量Q改进0.2个单位),针对查询A的质量Q的改进不如针对查询B的质量Q的改进那么显著。要注意的是,资源需求是用以赶上传入数据速率的资源级。而且,对于图2所示的示例,查询A不能够容忍任何迟滞,并且查询B可以容忍高达8秒的迟滞。迟滞可以被定义为最后到达的帧的时间与最后处理的帧的时间之间的差(例如,排队的和未处理的帧的时间价值是多少)。
进一步地遵照该示例,可以假设具有4个单位的资源容量R的单个机器(例如,工作者计算设备114至116中的一个)可以运行两个查询A和B。容量R在10秒之后下降到2个单位,并且然后在再12 秒之后(在22秒时)返回到4个单位。例如,机器的容量的这种下降可能是由运行在机器上的另一高优先级任务引起的。
如上面阐述的,表204示出了针对查询A和B的基于公平的资源分配。要注意的是,可以选择提供最高质量Q以赶上实时流的配置(例如,需求D可以保持在分配A或者低于分配A)。当采用基于公平的分配时,两个查询最初可以被分配有2个单位的A(在时间 0时);因此,可以分别选择配置A2和B2。此后,在时间10与22 之间,在容量R下降到2个单位时,查询得到每个1个单位的分配A,这导致选择配置A1和B1。利用公平分配方法,任何一个查询都不会产生迟滞。
相比之下,如表206所示,对于基于性能的资源分配,查询A可以被分配有1个单位的A,并且查询B最初可以被分配有3个单位的 (在时间0时);相应地,在时间0时可以为查询B选择配置B3,从而与基于公平的资源分配相比,实现了更高的质量(例如,针对查询B的质量增加0.3个单位,而针对查询A的质量由于使用配置A1 而不是配置A2而下降0.1个单位)。这种分配可以基于系统管理器部件122在给定资源质量简档时标识将更多资源提供给查询B的值。而且,在时间10时,当容量R下降到2个单位时,系统管理器部件 122可以将1个单位的A分配给每个查询;然而,查询配置B3可以保持用于查询B。由于B3的资源需求是3个单位,但是查询B在时间10时仅被分配有1个单位,所以查询B可能会开始迟滞。具体地,针对每秒,处理中的迟滞可以增加2/3秒。然而,查询B仍然可以产生0.9个单位的质量Q的结果,尽管是延迟的。在时间22时,容量 R恢复,并且查询B已经获得了8秒的迟滞。系统管理器部件122可以将3个单位的A分配给查询B,但是可以将查询B切换到需求D 为2个单位的配置B2。这可以使查询B能够赶上,其中,针对每秒,它可以处理1.5秒的视频。在时间38时,迟滞已经被消除,并且系统管理器部件122可以将查询B切换回具有0.9个单位的质量Q的配置B3。
如前述比较所示,基于性能的资源分配可以使得通过基于查询的资源质量简档分配资源来实现更高的总质量。而且,可以基于分配调整查询配置,并且可以允许查询赶上内置迟滞。
转到图3,图示了执行视频分析的另一系统300。系统300再次包括视频分析计算系统102,其进一步包括管理器计算设备112和工作者计算设备114至116。管理器计算设备112的系统管理器部件122 可以进一步包括剖析器部件302和调度器部件304。尽管管理器计算设备112的系统管理器部件122被描绘为包括剖析器部件302和调度器部件304两者,但是设想系统管理器部件122可以分布在多于一个管理器计算设备上(例如,第一管理器计算设备可以包括剖析器部件 302,并且第二管理器计算设备可以包括调度器部件304)。
剖析器部件302可以被配置为生成针对视频分析查询104至106 的资源质量简档。资源质量简档可以指定与视频分析查询104至106 的候选多维配置相对应的资源需求和结果质量。而且,调度器部件 304可以被配置为基于多个视频分析查询104至106的资源质量简档和多个视频分析查询104至106的迟滞容限来调度多个视频分析查询 104至106。调度器部件304可以通过将视频分析计算系统102的资源(例如,工作者计算设备114至116的资源)分配在多个视频分析查询104至106之间以用于多个视频分析查询104至106中的每一个的执行来调度多个视频分析查询104至106。调度器部件304可以进一步被配置为基于所分配的资源为多个视频分析查询104至106中的每一个选择多维配置。调度器部件304可以进一步将多个视频分析查询104至106放置在视频分析计算系统102的工作者计算设备114 至116上,以用于多个视频分析查询104至106的执行。调度器部件 304可以将视频分析查询104至106以及多维配置推送到工作者计算设备114至116。
工作者计算设备114至116的工作者部件132至134可以包括设备管理器部件和变换处理部件。更具体地,工作者计算设备114的工作者部件132可以包括设备管理器部件306,...,并且工作者计算设备116的工作者部件134可以包括设备管理器部件308(在本文中统称为设备管理器部件306至308)。而且,工作者计算设备114的工作者部件132可以包括变换处理部件310、...,并且工作者计算设备 116的工作者部件134可以包括变换处理部件312(在本文中统称为变换处理部件310至312)。
设备管理器部件306至308使变换处理部件310至312处理作为视频分析查询104至106的一部分的变换。设备管理器部件306 至308可以自主处理视频分析查询104至106和资源的短期波动。而且,设备管理器部件306至308可以将资源利用率以及运行的变换的状态周期性地报告回给管理器计算设备112的系统管理器部件122。相应地,系统管理器部件122的调度器部件304可以使用所报告的信息来将资源分配给视频分析查询104至106。系统管理器部件122以及设备管理器部件306至308可以与查询数据路径分离;因此,来自相机108至110的视频可以被流式传输到由变换处理部件310至312 处理的解码变换,而控制数据可以在系统管理器部件122与设备管理器部件306至308之间流动。
参照图4,图示了示例性系统400,其示出了执行两个视频分析查询的示例性场景。系统400包括系统管理器部件122、工作者部件 132和工作者部件134。尽管未示出,但是管理器计算设备112可以包括系统管理器部件122,工作者计算设备114可以包括工作者部件132,并且工作者计算设备116可以包括工作者部件134。
视频分析查询的变换可以包括至少第一变换和第二变换。根据示例,第一变换和第二变换可以被放置在(视频分析计算系统102的) 公共工作者计算设备上以供执行。根据另一示例,第一变换可以被放置在(视频分析计算系统102的)第一工作者计算设备上以供执行,并且第二变换可以被放置在(视频分析计算系统102的)第二工作者计算设备上以供执行。
如本文所描述的,时间排序的消息流(例如,视频帧)可以被输入到每个变换,并且变换可以将输出提供给下游变换。根据图4所描绘的示例,第一视频分析查询可以是或包括变换的流水线,其包括解码变换402、背景消减变换404、追踪对象变换406和分类对象变换408。第二视频分析查询可以是或包括变换的流水线,其包括解码变换410和检测牌照变换412。
如所示的,第一视频分析查询可以运行在两个机器上运行(例如,第一视频分析查询可以由工作者计算设备114的工作者部件132和工作者计算设备116的工作者部件134执行)。更具体地,解码变换 402和背景消减变换404被放置在工作者计算设备114上以供工作者部件132执行,并且追踪对象变换406和分类对象变换408被放置在工作者计算设备116上以供工作者部件134执行。进一步地,第二视频分析查询可以由一个机器执行(例如,工作者计算设备116的工作者部件134可以执行第二视频分析查询)。因此,解码变换410和检测牌照变换412被放置在工作者计算设备116上以供工作者部件134 执行。
当处理第一视频分析查询时,视频流可以从相机414被输入到工作者计算设备114,使得视频流被提供给解码变换402。可以处理从相机414接收到的视频流,使得对视频流的帧执行解码变换402、背景消减变换404、追踪对象变换406和分类对象变换408(例如,可以按顺序对视频流的帧执行变换402至408,如由图4中的变换402 至408之间的箭头所表示的)。如所描绘的,背景消减变换404的输出从工作者部件132(例如,工作者计算设备114)被传送到工作者部件134(例如,工作者计算设备116)。
而且,当处理第二视频分析查询时,视频流可以从相机416被输入到工作者计算设备116,使得视频流被提供给解码变换410。可以处理从相机416接收到的视频流,使得对视频流的帧执行解码变换 410,并且然后对解码变换410的输出执行检测牌照变换412。
转到图5,更详细地图示了系统管理器部件122的剖析器部件302 和调度器部件304的示例。根据图5所示的示例,剖析器部件302 可以实施离线剖析,并且调度器部件304可以实施在线调度。
在离线阶段中,剖析器部件302可以有效地生成针对查询的资源质量简档。如所图示的示例所示出的,剖析器部件302可以生成针对查询502(例如,视频分析查询104至106中的一个)的资源质量简档504(例如,查询简档)。剖析器部件302可以通过利用资源质量空间中的贪婪本地搜索标识候选多维配置来生成视频分析查询502 的资源质量简档504。候选多维配置可以是潜在多维配置的子集。进一步地,候选多维配置可以在Pareto边界上。因此,剖析器部件302 可以在Pareto曲线上生成具有较小数目的配置的资源质量简档504,这可以减少要由调度器部件304考虑的配置。
在在线阶段中,调度器部件304可以将(例如,视频分析计算系统102的)资源分配在多个视频分析查询(例如,视频分析查询104 至106)之间以用于视频分析查询的执行。调度器部件304还可以将多个视频分析查询放置在工作者部件132至134(例如,工作者计算设备114至116)上以用于多个视频分析查询的执行。
调度器部件304可以基于多个视频分析查询上的资源需求的变化和(例如,视频分析计算系统102的)资源容量来随着时间周期性地调整多个视频分析查询的调度。根据说明,每个时间段(例如,每秒或某个其它时间段),调度器部件304可以考虑运行的视频分析查询,并且可以基于简档、需求的变化和/或容量来调整资源分配、机器放置和配置。可以将每个个体查询的质量和迟滞要求编码为效用函数,如本文更详细地描述的。例如,视频分析查询上的性能目标可以被指定为最大化最小效用或效用之和。
调度器部件304可以利用工作者部件132至134启动、停止、迁移所实现的查询和/或变换。而且,调度器部件304可以周期性地改变针对由工作者部件132至134执行的视频分析查询的配置。调度器部件304可以进一步实现周期性的资源改变,使得被用于执行查询的资源可以随着时间被改变。工作者部件132至134可以进一步将机器和/或查询统计数据报告回给调度器部件304(例如,报告回给系统管理器部件122)。可以周期性地执行报告。
再次参照图3。当新的视频分析查询被提交到视频分析计算系统 102时,系统管理器部件122可以利用默认简档(例如,默认简档可以用于对来自相机108至110中的一个不同相机的视频流执行的大致类似的查询)来开始执行新提交的查询。例如,调度器部件304最初可以基于默认简档来调度新提交的查询。同时,剖析器302可以执行新提交的视频分析查询的离线剖析。
现在提供涉及剖析器部件302的各个方面。剖析器部件302可以从资源质量空间选择潜在多维配置的子集(例如,在Pareto边界上)。而且,剖析器部件302可以计算针对查询k的资源质量简档(例如,所选配置的资源需求和结果质量)。可以针对所标记的数据集或相对于已知用以产生高质量结果的预定查询配置使用流视频的初始部分来计算简档。
视频分析查询的示例是从视频流读取牌照的牌照读取器查询。遵照该示例,查询扫描视频帧以检测潜在牌照;此后,可以使用光学字符识别来识别牌照上的文本。总而言之,使用较高的视频分辨率和处理每个帧都可以被用来提供牌照的高质量检测。降低分辨率并且仅处理帧的子集(例如,0.25的采样率)可以减少资源需求,但是也可能降低输出的质量(例如,导致丢失或错误读取牌照)。可以被用于牌照读取器查询的旋钮可以包括帧分辨率和采样率以及MinSize、Step 和MaxSize。例如,查询可以扫描针对大小为MinSize的牌照的图像,然后通过Step用乘法增加大小,可以重复前述内容,直到大小达到 MaxSize为止。然后可以将潜在牌照的集合发送到光学字符识别器。
遵照牌照读取器查询的上述示例,可以使用F1得分(精度与查全率之间的调和平均数)在所标记的数据集上估计配置的质量(例如,上面的五个旋钮的组合)。相应地,0和1表示最低和最高质量。例如,增大MinSize或减小MaxSize可以减少所需的资源,但是可能会导致一些牌照丢失并且质量下降。
设想在具有类似资源使用的配置之间可能存在显著的质量差异。而且,要了解在实现类似质量的配置之间可能存在显著的资源使用的差异。
根据示例,剖析器部件302可以实施贪婪本地搜索以标识具有高质量Q和低需求D的配置。下面阐述了本文所使用的针对视频分析查询k(例如,来自视频分析查询104至106)的符号。
剖析器部件302可以实施爬山(hill climbing)算法。例如,剖析器部件302可以通过在视频数据集的子集上运行具有c的查询来为配置c选择随机配置c、计算质量Q(c)和资源需求D(c),并且计算 X(c)=Q(c)-βD(c)。在上文中,β在质量与需求之间进行权衡。剖析器部件302然后可以选择邻近配置n(通过改变c中的随机旋钮的值)。类似地可以计算针对配置n的质量Q(n)和资源需求D(n),并且可以计算X(n)=Q(n)-βD(n)。如果X(n)>X(c),那么在质量或资源需求(或两者)上n优于c;当X(n)>X(c)时,剖析器部件302可以设置c=n并且可以重复前述内容。当不能找到更好的邻居时(例如,探索指示标识到局部最优),可以通过挑选另一随机c来重复前述内容。
一个或多个示例性增强可以提高搜索的效率。根据示例,为了缓解开始于昂贵配置并且探索其邻居(这可能浪费CPU资源),剖析器部件302可以选择k个随机配置,并且可以从来自k个随机配置的具有最高X(c)的一个随机配置开始。例如,可以使用k=3;然而,所要求保护的主题内容并不限于此。根据另一示例,剖析器部件302 可以将中间结果缓存在视频分析查询的DAG中;剖析器部件302可以在评估具有重叠旋钮值的配置时重新使用中间结果。根据进一步的示例,超参数搜索可以被用来提高效率。然而,要了解,所要求保护的主题内容并不限于前述示例。
剖析器部件302可以标识在资源质量空间的Pareto边界上的配置的子集。假设Q(c)是配置c下的质量并且D(c)是资源需求。如果c1和 c2是两个配置,使得Q(c1)≥Q(c2)并且D(c1)≤D(c2),那么c2在实践中可能没用;在前述场景下,c1在质量和资源需求两者上优于c2。相应地,剖析器部件302可以提取所探索的配置的Pareto边界,这在本文中称为视频分析查询的资源质量简档。
要了解,与用于生成资源质量简档的其它技术相比,贪婪本地搜索的使用可以使得能够减少用于标识针对视频分析查询的资源质量简档的CPU资源使用。然而,设想所要求保护的主题内容并不限于采用贪婪本地搜索的剖析器部件302。
现在阐述涉及调度器部件304的各个方面。调度器部件304可以考虑各个视频分析查询104至106的效用和集群范围的调度目标。调度器部件304可以周期性地执行资源分配和查询放置。作为资源分配的一部分,可以假设视频分析计算系统102是资源的聚集仓;例如,调度器部件304可以通过调整查询分配和配置来使用有效的调度启发式方法以最大化集群范围的性能。而且,在查询放置的部分处,调度器部件304可以将新查询(例如,由管理器计算系统112新接收到的视频分析查询)放置到视频分析计算系统102中的工作者计算设备 114至116和/或将现有查询迁移到工作者计算设备114至116之间。
可以针对视频分析查询104至106中的每一个设置偏好。偏好可以指定期望的质量和迟滞。例如,偏好可以设置最小质量目标(QM)。偏好还可以指定查询从高于目标的质量受益多少。进一步地,偏好可以设置最大迟滞目标(LM)。最大迟滞目标可以指示所容忍的迟滞的最大量以及查询对违反该目标的敏感程度。前述偏好可以被编码在效用函数中。
查询的效用函数可以具有以下形式,其中,(x)+是x的正部分。为了清晰起见,可以省略查询索引k。
U(Q,L)=UB+UQ(Q)+UL(L)
=UB+αQ·(Q-QM)+-αL·(L-LM)+
UB是用于满足质量和迟滞目标的基线效用(例如,当Q=QM并且 L=LM时)。第二项UQ描述了效用如何响应于所实现的高于QM的质量Q,即,软质量目标。乘数αQ和最小质量目标QM是查询特定的,并且可以基于分析视频的应用而被设置。质量低于最小质量目标QM的结果通常是没用的。第三项UL表示对晚于最大迟滞目标LM到达的结果的补偿。进一步地,乘数αL可以是以(1/秒)为单位,使得UL无量纲。
如上面提到的,迟滞是当前时间与最后处理的帧的到达时间之间的差。通过说明,如果在时间10:30时处理在10:15时到达的帧,那么迟滞是15分钟。而且,设想可能没有为低于LM的迟滞提供益处。
给定各个查询的效用,调度器部件304可以利用各种调度目标。调度目标可以被用来限定整个视频分析计算系统102的效用或性能。根据示例,调度目标可以基于最大化效用之和。根据另一示例,调度目标可以基于对效用的最大化-最小化公平。
给定针对每个查询k的简档和效用函数Uk,调度器部件304可以将资源ak分配给查询,并且可以为这种查询选择多维配置调度器部件304可以周期性地运行(例如,每隔几秒),并且可以对新查询的到达、查询需求和迟滞的变化以及视频分析计算系统102 的资源容量的变化做出反应(例如,除了执行视频分析查询104至 106之外,由于任务的类型)。
调度器部件304可以利用MPC来执行调度。调度器部件304可以旨在最大化查询效用的最小值或总和,这可以取决于质量和迟滞。要注意的是,尽管可以通过调整针对查询的配置来即时控制查询质量,但是如果分配的资源少于查询需求,则查询迟滞随着时间累积。
由于累积属性,调度器部件304可以被采用以预测多个视频分析查询104至106在时间范围内的迟滞。可以由调度器部件304基于预测的迟滞调度多个视频分析查询104至106。相应地,调度器部件304 可以在不久的将来优化性能,而不是优化当前性能。可以使用MPC 框架来制定调度问题,其中,在时间范围T内的集群性能可以被建模为查询配置和分配的函数。在每个步骤中,调度器部件304可以选择配置和分配以在不久的将来最大化性能。
为了预测未来性能,调度器部件304可以预测查询迟滞,如下面阐述的:
Lk,t+T,即时间T之后的预期迟滞是当前迟滞Lk,t加上由于新数据的到达减去在时间T内所处理的数据而累积的迟滞。累积的迟滞取决于配置ck中的资源分配ak和查询需求Dk(ck)。如果指定ak=Dk(ck),则不会累积附加迟滞。为了赶上当前迟滞,可以将资源分配增加到超过需求。时间范围T是确定调度器部件304在未来多久做出调度决策的参数。而且,所预测的迟滞Lk,t+T可以被用在效用函数中以获得预测的效用。
现在进一步描述由调度器部件304执行的资源分配。在以下示例中,出于解释的目的,假设每个查询都包括一个变换;然而,要了解所要求保护的主题内容并不限于此。
根据示例,调度器部件304可以采用用于最大化效用之和的调度启发式方法来分配资源。要注意的是,所分配的资源ak之和不能超过视频分析计算系统102的资源容量R。下面阐述了用于最大化时间范围T内的效用之和的示例性优化问题:
最大化效用之和可以是背包问题的变体,其中,试图包括不同分配和配置下的查询以最大化总效用。最大化可以导致资源的分布。
当包括分配ak和配置ck下的查询k时,ak可以被认为是支付的成本,并且所接收到的值可以是uk=Uk(Qk(ck),Lk,t+T)。可以利用贪婪近似,其中,可以优选具有uk/ak的最高值的查询(例如,在通过所耗费的资源归一化的效用中接收到最大增加的查询)。
相应地,调度器部件304可以利用以下调度启发式方法。调度器部件304可以开始于ak=0。在每个步骤中,调度器部件304可以考虑(针对查询i)将ai增加Δ(例如,诸如核的1%的逐步增加)并且可以考虑的配置。在这些选项之中,调度器部件304可以选择在效用中具有最大增加的查询i(和对应的配置ci)。调度器部件304 可以重复前述内容,直到资源耗尽或者直到选择了针对每个查询的最佳配置为止。
根据另一示例,调度器部件304可以采用用于最大化最小效用的调度启发式方法来分配资源。下面是最大化在时间范围T内预测的最小效用的优化问题。效用是≥u,并且最大化u。
当最大化最小效用时,可以通过改进最差查询的效用来改进u。相应地,调度器部件304可以采用以下调度启发式方法。针对所有查询,调度器部件304可以开始于ak=0。在每个步骤中,可以选择具有最低效用的查询i=argminkUk(Qk(ck),Lk,t+T)以将其分配增加Δ(例如,诸如核的1%的逐步增加)。利用该分配,调度器部件304可以将配置ci计算为调度器部件304可以重复前述内容,直到资源耗尽或者直到选择了针对每个查询的最佳配置为止。
在确定每个查询的资源分配和配置之后,调度器部件304可以确定新查询的放置和现有查询的迁移。将查询q放置在机器m(例如,工作者计算设备)上的适合性可以由调度器部件304基于用于以下目标的得分来量化:高利用率、负载平衡和扩展低迟滞查询。
可以通过将查询打包到机器中来实现视频分析计算系统102的高利用率,从而最小化资源的碎片化和浪费。可以使用机器可用资源的向量与查询的资源需求之间的加权点积p(例如,p∈[0,1])来定义查询相对于机器的对齐。
负载可以分散在视频分析计算系统102上。这种负载平衡使每个机器能够具有处理需求变化的备用容量。因此,查询q可以被放置在具有最小利用率的机器m上。可以在得分中捕获前述内容,其中,M是机器m的当前利用率,并且D是查询q的需求。
而且,调度器部件304可以基于迟滞分散来放置查询。可能期望不将大量低迟滞查询集中在机器上;相应地,当资源不足时,可以提供闲置部分以为其它查询(除了低迟滞查询之外)累积迟滞,而不必依靠迁移查询或违反迟滞目标LM。可以通过保持每个机器上的高平均数LM来实现前述内容。因此,在将查询q放置在机器m上之后,调度器部件304可以将l∈[0,1]计算为平均数LM。
由调度器部件304计算的最终得分sq,m可以是上面三个得分的平均数;然而,所要求保护的主题内容并不限于此(例如,可以附加地或者备选地使用其它得分,调度器部件304不需要使用全部三个前述得分)。针对每个新查询q,可以将其放置在具有最大sq,m的机器上。针对每个现有查询q,当得分提高到阈值τ之上时,可以支持从机器m0到新机器m1的迁移(例如,s(q,m1)-s(q,m0)>τ)。
根据说明,设想被包括作为视频分析查询的资源质量简档的一部分的经剖析的资源需求Dk(ck)可能不对应于实际的查询需求(例如,当需求取决于视频内容时)。使用不正确的需求可能会对调度产生负面影响。例如,如果Dk(c)=10,但是实际使用是Rk=100,那么调度器部件304将会估计分配ak=20将会以速率2X减少查询迟滞,而迟滞实际上会以5X的速率增长。
为了解决前述问题,系统管理器部件122可以在随着时间执行特定视频分析查询期间追踪在特定视频分析查询的资源质量简档中所指定的资源需求的错估。相应地,调度器部件304可以基于错估来调度特定视频分析查询。系统管理器部件122可以追踪错估的运行平均数这表示所预测的需求与实际使用之间的乘法误差。系统管理器部件122(例如,调度器部件304)可以将错估并入到上面描述的迟滞预测器中;例如,错估可以包括如下:
而且,根据示例,要了解机器级调度可以由设备管理器部件306 至308实施。例如,如果查询适合于单个工作者计算设备(例如,工作者计算设备114至116中的一个),那么这种工作者计算设备的设备管理器部件可以响应于机器级的需求或迟滞的变化,而不需要等待系统管理器部件122所做出的决策。相应地,设备管理器部件可以执行上面所描述的分配,这可以使调度逻辑更具可伸缩性。遵照该示例,由调度器部件304执行的集群范围调度可以继续执行分配以用于确定查询放置和迁移的目的,而机器级调度可以由设备管理器部件306 至308实施。
而且,如本文所描述的,视频分析查询104至106可以包括可以被放置在多个工作者计算设备114至116上的变换的DAG。根据示例,设想查询资源分配ak可以基于每个变换资源需求分布到各个变换。遵照该示例,然后调度器部件304可以将各个变换放置到机器,同时考虑机器上的预期数据流和网络链路容量。然而,所要求保护的主题内容并不限于前述示例。
虽然本文所阐述的许多示例涉及处理视频分析查询104至106,但是设想本文所描述的特征可以被扩展到处理其它类型的分析查询。例如,本文所描述的技术可以被用于各种机器学习处理或其它数据处理,只要正被处理的查询具有可以调整的多个旋钮或参数,这可以导致质量和/或资源需求变化。
图6至图8图示了与执行视频分析有关的示例性方法。虽然这些方法被示出和描述为按顺序执行的一系列动作,但是要理解和了解的是,这些方法不受序列顺序的限制。例如,一些动作可以以不同于本文所描述的顺序发生。另外,动作可以与另一动作并发发生。进一步地,在一些实例中,可能不需要所有动作来实施本文所描述的方法。
而且,本文所描述的动作可以是可以由一个或多个处理器实施和 /或存储在一个或多个计算机可读介质上的计算机可执行指令。计算机可执行指令可以包括例程、子例程、程序、执行线程等。更进一步地,方法的动作的结果可以被存储在计算机可读介质中,被显示在显示设备上等。
图6图示了执行视频分析的方法600。在602处,可以在视频分析计算系统处接收视频流。视频流可以由多个相机捕获并且被连续地流式传输到视频分析计算系统。在604处,可以对视频流执行多个视频分析查询。在视频流被连续地流式传输到视频分析计算系统时,可以由视频分析计算系统对视频流并发执行多个视频分析查询。而且,可以使用被分配在多个视频分析查询之间的视频分析计算系统的资源来执行多个视频分析查询。多个视频分析查询的执行可以返回针对多个视频分析查询的相应结果。在606处,可以输出针对多个视频分析查询的结果。
转到图7,图示了执行视频分析的方法700。在702处,可以在视频分析计算系统处接收视频分析查询。在704处,响应于视频分析查询的接收,可以生成视频分析查询的资源质量简档。资源质量简档可以指定与视频分析查询的候选多维配置相对应的资源需求和结果质量。在706处,可以基于资源质量简档利用视频分析计算系统的资源来对视频流执行视频分析查询。
参照图8,图示了调度多个视频分析查询的方法。在802处,可以将视频分析计算系统的资源分配在多个视频分析查询之间以用于多个视频分析查询中的每一个的执行。在视频流从多个相机被流式传输到视频分析计算系统时,可以由视频分析计算系统对视频流并发执行多个视频分析查询。在804处,可以基于所分配的资源选择针对多个视频分析查询中的每一个的多维配置。可以利用多维配置执行多个视频分析查询。在806处,可以将多个视频分析查询放置在视频分析计算系统的工作者计算设备上以用于多个视频分析查询的执行。
现在参照图9,图示了可以根据本文所公开的系统和方法而被使用的示例性计算设备900的高级图示。例如,视频分析计算系统102 可以包括计算设备900(例如,计算设备900可以是管理器计算设备,计算设备900可以是工作者计算设备114至116中的一个)。通过另一示例,计算设备900可以与视频分析计算系统102通信地耦合(例如,计算设备900可以将视频分析查询发送到视频分析计算系统102,计算设备900可以接收由视频分析计算系统102生成的通知)。计算设备900包括执行被存储在存储器904中的指令的至少一个处理器902。例如,指令可以是用于实施被描述为由上面讨论的一个或多个部件执行的功能的指令或者用于实施上面描述的一种或多种方法的指令。处理器902可以通过系统总线906访问存储器904。除了存储可执行指令之外,存储器904还可以存储视频分析查询、资源质量简档、视频流(或其部分)等。
计算设备900附加地包括处理器902通过系统总线906可访问的数据存储库908。数据存储库908可以包括可执行指令、视频分析查询、资源质量简档、视频流(或其部分)等。计算设备900还包括允许外部设备与计算设备900通信的输入接口910。例如,输入接口910 可以被用来从外部计算机设备、从用户等接收指令。计算设备900 还包括使计算设备900与一个或多个外部设备接口连接的输出接口 912。例如,计算设备900可以通过输出接口912显示文本、图像等。
设想经由输入接口910和输出接口912与计算设备900通信的外部设备可以被包括在提供用户可以与之交互的基本上任何类型的用户界面的环境中。用户界面类型的示例包括图形用户界面、自然用户界面等。例如,图形用户界面可以接受来自采用(多个)输入设备(诸如,键盘、鼠标、遥控等)的用户的输入,并且将输出提供在输出设备(诸如,显示器)上。进一步地,自然用户界面可以使用户能够以不受由输入设备(诸如,键盘、鼠标、遥控等)施加的约束的方式与计算设备900交互。相反,自然用户界面可以依赖于语音识别、触摸和触笔识别、屏幕上和屏幕附近的姿势识别、空中姿势、头部和眼睛追踪、声音和语音、视觉、触摸、姿势、机器智能等。
附加地,虽然被图示为单个系统,但是要理解计算设备900可以是分布式系统。因此,例如,多个设备可以通过网络连接通信,并且可以共同执行被描述为由计算设备900执行的任务。
转到图10,图示了可以根据本文所公开的系统和方法而被使用的示例性计算系统1000的高级图示。例如,计算系统1000可以是或包括视频分析计算系统102。附加地或者备选地,视频分析计算系统 102可以是或包括计算系统1000。
计算系统1000包括多个服务器计算设备,即,服务器计算设备 1002、...、和服务器计算设备1004(统称为服务器计算设备1002至 1004)。服务器计算设备1002至1004可以是或包括管理器计算设备 112和工作者计算设备114至116。服务器计算设备1002包括至少一个处理器和存储器;至少一个处理器执行被存储在存储器中的指令。例如,指令可以是用于实施被描述为由上面讨论的一个或多个部件执行的功能的指令或者用于实施上面描述的一种或多种方法的指令。类似于服务器计算设备1002,除了服务器计算设备1002之外,服务器计算设备1002至1004的至少一个子集各自分别包括至少一个处理器和存储器。而且,服务器计算设备1002至1004的至少一个子集包括相应的数据存储库。
一个或多个服务器计算设备1002至1004的(多个)处理器可以是或包括处理器118和处理器124至126。进一步地,一个或多个服务器计算设备1002至1004的(多个)存储器可以是或包括存储器 120和存储器128至130。
计算系统1000进一步包括在服务器计算设备1002至1004之间运输数据的各种网络节点1006。而且,网络节点1002通过网络1008 将数据从服务器计算设备1002至1004运输到外部节点(例如,在计算系统1000外部)。网络节点1002还通过网络1008将数据从外部节点运输到服务器计算设备1002至1004。例如,网络1008可以是互联网、蜂窝网络等。网络节点1006包括交换机、路由器、负载平衡器等。
计算系统1000的结构控制器1010管理服务器计算设备1002至 1004的硬件资源(例如,服务器计算设备1002至1004的处理器、存储器、数据存储库等)。结构控制器1010进一步管理网络节点1006。而且,结构控制器1010管理在服务器计算设备1002至1004上被实例化的虚拟机的创建、供应、取消供应和监督。
现在阐述各种示例。
示例1:一种执行视频分析的方法,该方法包括:在视频分析计算系统处接收视频流,视频流由多个相机捕获并且被连续地流式传输到视频分析计算系统;对视频流执行多个视频分析查询,在视频流被连续地流式传输到视频分析计算系统时,多个视频分析查询由视频分析计算系统对视频流并发执行,该多个视频分析查询利用被分配在多个视频分析查询之间的视频分析计算系统的资源来执行,并且多个视频分析查询的执行返回针对多个视频分析查询的相应结果;以及输出针对多个视频分析查询的结果。
示例2:根据示例1的方法,该方法进一步包括:调度多个视频分析查询,其中调度多个视频分析查询进一步包括:将视频分析计算系统的资源分配在多个视频分析查询之间,用于多个视频分析查询中的每一个视频分析查询的执行;以及基于所分配的资源,为多个视频分析查询中的每一个视频分析查询选择多维配置。
示例3:根据示例2的方法,其中调度多个视频分析查询进一步包括:将多个视频分析查询放置在视频分析计算系统的工作者计算设备上,用于多个视频分析查询的执行。
示例4:根据示例1至3中任一项的方法,该方法进一步包括:联合地基于多个视频分析查询的多个资源质量简档和多个视频分析查询的迟滞容限来调度多个视频分析查询。
示例5:根据示例4的方法,该方法进一步包括:生成特定视频分析查询的资源质量简档,资源质量简档指定与特定视频分析查询的候选多维配置相对应的资源需求和结果质量。
示例6:根据示例5的方法,其中生成特定视频分析查询的资源质量简档进一步包括:利用资源质量空间中的贪婪本地搜索来标识候选多维配置,候选多维配置是潜在多维配置的子集,并且候选多维配置在Pareto边界上。
示例7:根据示例5至-6中任一项的方法,该方法进一步包括:在随着时间特定视频分析查询的执行期间,追踪在特定视频分析查询的资源质量简档中所指定的资源需求的错估;其中特定视频分析查询基于错估进一步被调度。
示例8:根据示例4至7中任一项的方法,该方法进一步包括:基于多个视频分析查询上的资源需求的变化和视频分析计算系统的资源容量,随着时间周期性地调整多个视频分析查询的调度。
示例9:根据示例4至-8中任一项的方法,该方法进一步包括:预测多个视频分析查询在时间范围内的迟滞;其中多个视频分析查询基于所预测的迟滞进一步被调度。
示例10:根据示例1至9中任一项的方法,其中视频分析查询被指定为被应用于视频流中的至少一个视频流的变换的图形,并且其中视频流中的至少一个视频流中的视频帧由变换按顺序地处理,使得变换的对应输出被传递到下游。
示例11:根据示例10的方法,其中:变换包括至少第一变换和第二变换;第一变换被放置在视频分析计算系统的第一工作者计算设备上以供执行;并且第二变换被放置在视频分析计算系统的第二工作者计算设备上以供执行。
示例12:根据示例1至11中任一项的方法,该方法进一步包括:基于以下将视频分析计算系统的资源分配在多个视频分析查询之间,用于多个视频分析查询中的每一个视频分析查询的执行:多个视频分析查询的效用,其中效用基于所实现的结果质量和多个视频分析查询的迟滞;以及针对视频分析计算系统的调度目标。
示例13:根据示例12的方法,其中资源利用调度启发式方法来分配以用于最大化最小效用或最大化总效用中的一个。
示例14:根据示例1至13中任一项的方法,该方法进一步包括:将特定视频分析查询迁移到视频分析计算系统的工作者计算设备之间,以用于特定视频分析查询的执行。
示例15:一种视频分析计算系统,该视频分析计算系统包括:至少一个处理器;以及存储器,该存储器包括计算机可执行指令,该计算机可执行指令在由至少一个处理器执行时使至少一个处理器执行动作,该动作包括:在视频分析计算系统处接收视频分析查询;响应于视频分析查询的接收,生成视频分析查询的资源质量简档,资源质量简档指定与视频分析查询的候选多维配置相对应的资源需求和结果质量;以及基于资源质量简档,利用视频分析计算系统的资源来对视频流执行视频分析查询。
示例16:根据示例15的视频分析计算系统,存储器进一步包括计算机可执行指令,该计算机可执行指令在由至少一个处理器执行时使至少一个处理器执行动作,该动作包括:利用资源质量空间中的贪婪本地搜索来标识候选多维配置,候选多维配置是潜在多维配置的子集,并且候选多维配置在Pareto边界上。
示例17:根据示例15至16中任一项的视频分析计算系统,存储器进一步包括计算机可执行指令,该计算机可执行指令在由至少一个处理器执行时使至少一个处理器执行动作,该动作包括:基于多个视频分析查询的多个资源质量简档和迟滞容限来调度多个视频分析查询,其中多个视频分析查询包括视频分析查询,并且多个资源质量简档包括资源质量简档。
示例18:一种视频分析计算系统,该视频分析计算系统包括:至少一个处理器;以及存储器,该存储器包括计算机可执行指令,该计算机可执行指令在由至少一个处理器执行时使至少一个处理器执行动作,该动作包括:将视频分析计算系统的资源分配在多个视频分析查询之间,以用于多个视频分析查询中的每一个视频分析查询的执行,在视频流从多个相机被流式传输到视频分析计算系统时,多个视频分析查询由视频分析计算系统对视频流并发执行;以及基于所分配的资源,为多个视频分析查询中的每一个视频分析查询选择多维配置,多个视频分析查询利用多维配置来执行。
示例19:根据示例18的视频分析计算系统,存储器进一步包括计算机可执行指令,该计算机可执行指令在由至少一个处理器执行时使至少一个处理器执行动作,该动作包括:将多个视频分析查询放置在视频分析计算系统的工作者计算设备上,用于多个视频分析查询的执行。
示例20:根据示例18至19中任一项的视频分析计算系统,其中视频分析计算系统的资源基于多个视频分析查询的多个资源质量简档和多个视频分析查询的迟滞容限来分配。
如本文所使用的,术语“部件”和“系统”旨在包含计算机可读数据存储装置,该计算机可读数据存储装置被配置有在由处理器执行时使特定功能被执行的计算机可执行指令。计算机可执行指令可以包括例程、函数等。还要理解的是,部件或系统可以位于单个设备上或者分布在多个设备上。
进一步地,如本文所使用的,术语“示例性”旨在表示“用作某事物的说明或示例”。
本文所描述的各种功能可以被实施在硬件、软件或其任何组合中。如果被实施在软件中,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或者通过计算机可读介质来传送。计算机可读介质包括计算机可读存储介质。计算机可读存储介质可以是可以由计算机访问的任何可用存储介质。通过示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或者其它光盘存储装置、磁盘存储装置或其它磁性存储设备或者可以被用来以指令或数据结构的形式存储期望的程序代码并且可以由计算机访问的任何其它介质。如本文所使用的,磁盘和光盘包括:压缩盘(CD)、激光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘(BD),其中,磁盘通常磁性地复制数据,而光盘通常利用激光光学地复制数据。进一步地,所传播的信号未被包括在计算机可读存储介质的范围内。计算机可读介质还包括通信介质,该通信介质包括便于将计算机程序从一个地方传递到另一个地方的任何介质。例如,连接可以是通信介质。例如,如果软件是使用同轴电缆、光缆、双绞线、数字订户线(DSL)或者无线技术(诸如,红外、无线电和微波)从网站、服务器或者其它远程源来传送的,那么同轴电缆、光缆、双绞线、DSL 或者无线技术(诸如,红外、无线电和微波)被包括在通信介质的定义中。上述组合也应该被包括在计算机可读介质的范围内。
备选地或者另外,本文所描述的功能可以至少部分地由一个或多个硬件逻辑部件执行。例如但不限于,可以使用的硬件逻辑部件的说明性类型包括现场可编程门阵列(FPGA)、程序专用集成电路 (ASIC)、程序专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等。
上面所描述的内容包括一个或多个实施例的示例。当然,出于描述前述方面的目的,不可能描述上述设备或方法的每个可想到的修改和变更,但是本领域的普通技术人员可以认识到,各个方面的许多进一步的修改和置换都是可能的。相应地,所描述的方面旨在包含落入所附权利要求的范围内的所有这种替代、修改和变型。此外,在术语“包括(includes)”被用于详细描述或权利要求中的范围内,这种术语旨在以类似于术语“包括(comprising)”的方式包含,因为“包括(comprising)”在被采用作为权利要求中的过渡单词时被解释。
Claims (20)
1.一种执行视频分析的方法,包括:
在视频分析计算系统处接收视频流,所述视频流由多个相机捕获并且被连续地流式传输到所述视频分析计算系统;
调度多个视频分析查询,其中调度所述多个视频分析查询进一步包括:
将所述视频分析计算系统的资源分配在所述多个视频分析查询之间,以用于所述多个视频分析查询中的每一个视频分析查询的执行;以及
基于所分配的所述资源,为所述多个视频分析查询中的每一个视频分析查询选择多维配置;对所述视频流执行所述多个视频分析查询,在所述视频流被连续地流式传输到所述视频分析计算系统时,所述多个视频分析查询由所述视频分析计算系统对所述视频流并发执行,所述多个视频分析查询利用被分配在所述多个视频分析查询之间的所述视频分析计算系统的所述资源来执行,并且所述多个视频分析查询的执行返回针对所述多个视频分析查询的相应结果;以及
输出针对所述多个视频分析查询的所述结果。
2.根据权利要求1所述的方法,其中调度所述多个视频分析查询进一步包括:
将所述多个视频分析查询放置在所述视频分析计算系统的工作者计算设备上,以用于所述多个视频分析查询的所述执行。
3.根据权利要求1所述的方法,其中所述多个视频分析查询联合地基于所述多个视频分析查询的多个资源质量简档和所述多个视频分析查询的迟滞容限来调度。
4.根据权利要求3所述的方法,进一步包括:
生成特定视频分析查询的资源质量简档,所述资源质量简档指定与所述特定视频分析查询的候选多维配置相对应的资源需求和结果质量。
5.根据权利要求4所述的方法,其中生成所述特定视频分析查询的所述资源质量简档进一步包括:
利用资源质量空间中的贪婪本地搜索标识所述候选多维配置,所述候选多维配置是潜在多维配置的子集,并且所述候选多维配置在Pareto边界上。
6.根据权利要求4所述的方法,进一步包括:
在随着时间所述特定视频分析查询的执行期间,追踪在所述特定视频分析查询的所述资源质量简档中所指定的所述资源需求的错估;
其中所述特定视频分析查询基于所述错估进一步被调度。
7.根据权利要求3所述的方法,进一步包括:基于所述多个视频分析查询上的资源需求的变化和所述视频分析计算系统的资源容量,随着时间周期性地调整所述多个视频分析查询的所述调度。
8.根据权利要求3所述的方法,进一步包括:
预测所述多个视频分析查询在时间范围内的迟滞;
其中所述多个视频分析查询基于所预测的所述迟滞进一步被调度。
9.根据权利要求1所述的方法,其中视频分析查询被指定为被应用于所述视频流中的至少一个视频流的变换的图形,并且其中所述视频流中的所述至少一个视频流中的视频帧由所述变换按顺序地处理,使得所述变换的对应输出被传递到下游。
10.根据权利要求9所述的方法,其中:
所述变换至少包括第一变换和第二变换;
所述第一变换被放置在所述视频分析计算系统的第一工作者计算设备上以用于执行;并且
所述第二变换被放置在所述视频分析计算系统的第二工作者计算设备上以用于执行。
11.根据权利要求1所述的方法,基于以下,所述视频分析计算系统的所述资源被分配在所述多个视频分析查询之间,以用于所述多个视频分析查询中的每一个视频分析查询的所述执行:
所述多个视频分析查询的效用,其中所述效用基于所实现的结果质量和所述多个视频分析查询的迟滞;以及
针对所述视频分析计算系统的调度目标。
12.根据权利要求11所述的方法,其中所述资源利用调度启发式方法来分配以用于最大化最小效用或最大化总效用中的一个。
13.根据权利要求1所述的方法,进一步包括:
将特定视频分析查询迁移到所述视频分析计算系统的工作者计算设备之间,以用于所述特定视频分析查询的执行。
14.一种视频分析计算系统,包括:
至少一个处理器;以及
存储器,所述存储器包括计算机可执行指令,所述计算机可执行指令在由所述至少一个处理器执行时使所述至少一个处理器执行动作,所述动作包括:
将所述视频分析计算系统的资源分配在多个视频分析查询之间,以用于所述多个视频分析查询中的每一个视频分析查询的执行,所述视频分析计算系统的所述资源基于所述多个视频分析查询的资源质量简档和所述多个视频分析查询的迟滞容限来分配,在所述视频流从多个相机被流式传输到所述视频分析计算系统时,所述多个视频分析查询由所述视频分析计算系统对视频流并发执行;以及
基于所分配的所述资源,为所述多个视频分析查询中的每一个视频分析查询选择多维配置,所述多个视频分析查询利用所述多维配置来执行。
15.根据权利要求14所述的视频分析计算系统,所述存储器进一步包括计算机可执行指令,所述计算机可执行指令在由所述至少一个处理器执行时使所述至少一个处理器执行动作,所述动作包括:
将所述多个视频分析查询放置在所述视频分析计算系统的工作者计算设备上,以用于所述多个视频分析查询的所述执行。
16.一种执行视频分析的方法,包括:
在视频分析计算系统处接收视频流,所述视频流由多个相机捕获并且被连续地流式传输到所述视频分析计算系统;
调度多个视频分析查询,其中所述多个视频分析查询的所述调度基于所述多个视频分析查询上的资源需求的变化和所述视频分析计算系统的资源容量,随着时间周期性地被调整;
对所述视频流执行被调度的所述多个视频分析查询,在所述视频流被连续地流式传输到所述视频分析计算系统时,所述多个视频分析查询由所述视频分析计算系统对所述视频流并发执行,所述多个视频分析查询利用被分配在所述多个视频分析查询之间的所述视频分析计算系统的资源来执行,并且所述多个视频分析查询的执行返回针对所述多个视频分析查询的相应结果;以及
输出针对所述多个视频分析查询的所述结果。
17.根据权利要求16所述的方法,其中调度所述多个视频分析查询进一步包括:
将所述视频分析计算系统的所述资源分配在所述多个视频分析查询之间,以用于所述多个视频分析查询中的每一个视频分析查询的所述执行;以及
基于所分配的所述资源,为所述多个视频分析查询中的每一个视频分析查询选择多维配置。
18.根据权利要求16所述的方法,其中所述视频分析计算系统的所述资源基于所述多个视频分析查询的资源质量简档和所述多个视频分析查询的迟滞容限来分配。
19.根据权利要求18所述的方法,其中特定视频分析查询的资源质量简档指定与所述特定视频分析查询的候选多维配置相对应的资源需求和结果质量。
20.根据权利要求16所述的方法,进一步包括:
预测所述多个视频分析查询在时间范围内的迟滞;
其中所述多个视频分析查询基于所预测的所述迟滞进一步被调度。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662418233P | 2016-11-06 | 2016-11-06 | |
US62/418,233 | 2016-11-06 | ||
US15/373,301 | 2016-12-08 | ||
US15/373,301 US10223604B2 (en) | 2016-11-06 | 2016-12-08 | Live video analytics at scale |
PCT/US2017/059135 WO2018085210A1 (en) | 2016-11-06 | 2017-10-31 | Live video analytics at scale |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110192393A CN110192393A (zh) | 2019-08-30 |
CN110192393B true CN110192393B (zh) | 2021-09-03 |
Family
ID=62064709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780066717.8A Active CN110192393B (zh) | 2016-11-06 | 2017-10-31 | 大规模的实时视频分析方法、计算系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10223604B2 (zh) |
EP (1) | EP3535976A1 (zh) |
CN (1) | CN110192393B (zh) |
WO (1) | WO2018085210A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2552511A (en) * | 2016-07-26 | 2018-01-31 | Canon Kk | Dynamic parametrization of video content analytics systems |
US10229322B2 (en) * | 2017-04-06 | 2019-03-12 | Ants Technology (Hk) Limited | Apparatus, methods and computer products for video analytics |
US10698895B2 (en) * | 2017-04-21 | 2020-06-30 | Splunk Inc. | Skewing of scheduled search queries |
US10217061B2 (en) | 2017-05-17 | 2019-02-26 | SigOpt, Inc. | Systems and methods implementing an intelligent optimization platform |
US11126854B1 (en) * | 2017-06-02 | 2021-09-21 | Amazon Technologies, Inc. | Efficient identification of objects in videos using motion information |
US10282237B1 (en) | 2017-10-30 | 2019-05-07 | SigOpt, Inc. | Systems and methods for implementing an intelligent application program interface for an intelligent optimization platform |
US11270217B2 (en) | 2017-11-17 | 2022-03-08 | Intel Corporation | Systems and methods implementing an intelligent machine learning tuning system providing multiple tuned hyperparameter solutions |
FR3080472B1 (fr) * | 2018-04-19 | 2021-06-04 | Amadeus Sas | Controle de la generation des resultats de recherche a entrees multiples |
US11704567B2 (en) | 2018-07-13 | 2023-07-18 | Intel Corporation | Systems and methods for an accelerated tuning of hyperparameters of a model using a machine learning-based tuning service |
US10528891B1 (en) * | 2018-08-23 | 2020-01-07 | SigOpt, Inc. | Systems and methods for implementing an intelligent machine learning optimization platform for multiple tuning criteria |
US11157812B2 (en) | 2019-04-15 | 2021-10-26 | Intel Corporation | Systems and methods for tuning hyperparameters of a model and advanced curtailment of a training of the model |
US11175959B2 (en) * | 2019-05-01 | 2021-11-16 | International Business Machines Corporation | Determine a load balancing mechanism for allocation of shared resources in a storage system by training a machine learning module based on number of I/O operations |
US11175958B2 (en) | 2019-05-01 | 2021-11-16 | International Business Machines Corporation | Determine a load balancing mechanism for allocation of shared resources in a storage system using a machine learning module based on number of I/O operations |
WO2021044364A1 (en) * | 2019-09-06 | 2021-03-11 | Everseen Limited | Distributed computing system for intensive video processing |
CN110930354B (zh) * | 2019-10-09 | 2020-07-10 | 西安交通大学 | 用于图像大数据的平滑过渡的视频画面内容分析系统 |
US11240340B2 (en) | 2020-05-12 | 2022-02-01 | International Business Machines Corporation | Optimized deployment of analytic models in an edge topology |
CN113079389B (zh) * | 2021-03-23 | 2022-01-25 | 国网江苏省电力有限公司信息通信分公司 | 一种边缘计算环境下的资源自适应调节方法 |
CN113542807B (zh) * | 2021-09-14 | 2022-02-22 | 杭州博雅鸿图视频技术有限公司 | 基于数字视网膜平台的资源管理调度方法以及系统 |
US11503101B1 (en) * | 2021-12-15 | 2022-11-15 | Motorola Solutions, Inc. | Device and method for assigning video analytics tasks to computing devices |
EP4319148A1 (en) * | 2022-08-01 | 2024-02-07 | Honeywell International Inc. | A video camera for locally executing a plurality of video analytic algorithms on a video stream captured by the video camera |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005036385A1 (en) * | 2003-09-19 | 2005-04-21 | Matsushita Electric Industrial Co., Ltd. | Dynamic resource management for distributed retrieval system for security |
CN202050501U (zh) * | 2011-05-09 | 2011-11-23 | 北京欣卓越技术开发有限责任公司 | 支持多级联网的大容量并发智能视频分析管理系统 |
CN105554591A (zh) * | 2015-12-02 | 2016-05-04 | 蓝海大数据科技有限公司 | 视频分析方法和设备 |
CN105959621A (zh) * | 2016-04-28 | 2016-09-21 | 泰华智慧产业集团股份有限公司 | 基于多源视频结构化数据的准实时布控系统及方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6266053B1 (en) | 1998-04-03 | 2001-07-24 | Synapix, Inc. | Time inheritance scene graph for representation of media content |
US20020152305A1 (en) | 2000-03-03 | 2002-10-17 | Jackson Gregory J. | Systems and methods for resource utilization analysis in information management environments |
US6711616B1 (en) | 2000-05-01 | 2004-03-23 | Xilinx, Inc. | Client-server task distribution system and method |
US7185003B2 (en) | 2002-11-14 | 2007-02-27 | Seisint, Inc. | Query scheduling in a parallel-processing database system |
US7663661B2 (en) * | 2004-03-16 | 2010-02-16 | 3Vr Security, Inc. | Feed-customized processing of multiple video streams in a pipeline architecture |
US8284249B2 (en) | 2008-03-25 | 2012-10-09 | International Business Machines Corporation | Real time processing of video frames for triggering an alert |
US8538242B2 (en) | 2008-08-13 | 2013-09-17 | International Business Machines Corporation | Compressed time ingestion of recorded video |
US8503539B2 (en) | 2010-02-26 | 2013-08-06 | Bao Tran | High definition personal computer (PC) cam |
US9704393B2 (en) | 2011-01-11 | 2017-07-11 | Videonetics Technology Private Limited | Integrated intelligent server based system and method/systems adapted to facilitate fail-safe integration and/or optimized utilization of various sensory inputs |
US8752112B2 (en) | 2012-04-12 | 2014-06-10 | Google Inc. | Live streaming video processing |
US20150215583A1 (en) | 2013-12-04 | 2015-07-30 | Rasilient Systems, Inc. | Cloud Video Surveillance |
MY173428A (en) | 2014-08-20 | 2020-01-23 | Mimos Berhad | Method and apparatus for performing parallel video analytics |
CN104618693B (zh) * | 2015-02-09 | 2017-07-28 | 北京邮电大学 | 一种基于云计算的监控视频在线处理任务管理方法及系统 |
CN106033371B (zh) | 2015-03-13 | 2019-06-21 | 杭州海康威视数字技术股份有限公司 | 一种视频分析任务的调度方法及系统 |
US9760970B2 (en) * | 2015-03-18 | 2017-09-12 | Hitachi, Ltd. | Video analysis and post processing of multiple video streams |
US9407944B1 (en) | 2015-05-08 | 2016-08-02 | Istreamplanet Co. | Resource allocation optimization for cloud-based video processing |
CN105049268B (zh) * | 2015-08-28 | 2018-12-28 | 东方网力科技股份有限公司 | 分布式计算资源分配系统和任务处理方法 |
CN105491329B (zh) * | 2015-11-24 | 2018-09-14 | 上海君是信息科技有限公司 | 一种基于流式计算的大规模监控视频流汇聚方法 |
CN105355068A (zh) | 2015-12-16 | 2016-02-24 | 辽宁方圆国际物流有限公司 | 视频路况导航系统 |
-
2016
- 2016-12-08 US US15/373,301 patent/US10223604B2/en active Active
-
2017
- 2017-10-31 CN CN201780066717.8A patent/CN110192393B/zh active Active
- 2017-10-31 WO PCT/US2017/059135 patent/WO2018085210A1/en unknown
- 2017-10-31 EP EP17798058.8A patent/EP3535976A1/en not_active Ceased
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005036385A1 (en) * | 2003-09-19 | 2005-04-21 | Matsushita Electric Industrial Co., Ltd. | Dynamic resource management for distributed retrieval system for security |
CN202050501U (zh) * | 2011-05-09 | 2011-11-23 | 北京欣卓越技术开发有限责任公司 | 支持多级联网的大容量并发智能视频分析管理系统 |
CN105554591A (zh) * | 2015-12-02 | 2016-05-04 | 蓝海大数据科技有限公司 | 视频分析方法和设备 |
CN105959621A (zh) * | 2016-04-28 | 2016-09-21 | 泰华智慧产业集团股份有限公司 | 基于多源视频结构化数据的准实时布控系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3535976A1 (en) | 2019-09-11 |
WO2018085210A1 (en) | 2018-05-11 |
CN110192393A (zh) | 2019-08-30 |
US10223604B2 (en) | 2019-03-05 |
US20180129892A1 (en) | 2018-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110192393B (zh) | 大规模的实时视频分析方法、计算系统 | |
Mahgoub et al. | {ORION} and the three rights: Sizing, bundling, and prewarming for serverless {DAGs} | |
US11064162B2 (en) | Intelligent video analysis system and method | |
Ma et al. | Real-time multiple-workflow scheduling in cloud environments | |
US10620839B2 (en) | Storage pool capacity management | |
US20160328273A1 (en) | Optimizing workloads in a workload placement system | |
Yi et al. | Efficient compute-intensive job allocation in data centers via deep reinforcement learning | |
Liu et al. | Real-time task scheduling for machine perception in intelligent cyber-physical systems | |
Huang | The Workflow Task Scheduling Algorithm Based on the GA Model in the Cloud Computing Environment. | |
CN112148468A (zh) | 一种资源调度方法、装置、电子设备及存储介质 | |
Fang et al. | Multi-tenant mobile offloading systems for real-time computer vision applications | |
US20150106522A1 (en) | Selecting a target server for a workload with a lowest adjusted cost based on component values | |
Wu et al. | Soudain: Online adaptive profile configuration for real-time video analytics | |
Park et al. | Queue congestion prediction for large-scale high performance computing systems using a hidden Markov model | |
Alsadie | A Comprehensive Review of AI Techniques for Resource Management in Fog Computing: Trends, Challenges and Future Directions | |
Mendoza et al. | Model Selection for Latency-Critical Inference Serving | |
CN115827944B (zh) | 基于互联网平台系统优化的大数据分析方法及服务器 | |
Zhang et al. | Two-level task scheduling with multi-objectives in geo-distributed and large-scale SaaS cloud | |
Chen et al. | ALBERT: an automatic learning based execution and resource management system for optimizing Hadoop workload in clouds | |
Bibal et al. | An auto-scaling framework for heterogeneous Hadoop systems | |
Chen et al. | Using deep learning to predict and optimize hadoop data analytic service in a cloud platform | |
Yang et al. | Resource optimization in distributed real-time multimedia applications | |
Goponenko et al. | Towards workload-adaptive scheduling for HPC clusters | |
Yadwadkar et al. | Faster jobs in distributed data processing using multi-task learning | |
Shahout et al. | Don't Stop Me Now: Embedding Based Scheduling for LLMs |
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 |