CN115082911A - 一种视频分析方法、装置及视频处理设备 - Google Patents

一种视频分析方法、装置及视频处理设备 Download PDF

Info

Publication number
CN115082911A
CN115082911A CN202110270127.5A CN202110270127A CN115082911A CN 115082911 A CN115082911 A CN 115082911A CN 202110270127 A CN202110270127 A CN 202110270127A CN 115082911 A CN115082911 A CN 115082911A
Authority
CN
China
Prior art keywords
analysis
type
engine
engines
algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110270127.5A
Other languages
English (en)
Inventor
张昆鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202110270127.5A priority Critical patent/CN115082911A/zh
Publication of CN115082911A publication Critical patent/CN115082911A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Analysis (AREA)

Abstract

本申请实施例提供了一种视频分析方法、装置及视频处理设备。方法包括:在接收到针对视频的待执行分析任务后,判断是否所有第一类分析引擎处于满载状态,其中,第一类分析引擎为所加载的分析算法为目标分析算法的分析引擎,目标分析算法为用于执行待执行分析任务的分析算法;如果所有第一类分析引擎处于满载状态,选取处于空闲状态的第二类分析引擎作为目标分析引擎,其中,第二类分析引擎为所加载的分析算法不为目标分析算法的分析引擎;将目标分析引擎所加载的分析算法切换为目标分析算法;通过目标分析引擎执行待执行分析任务。可以根据各分析引擎的负载状况自动地分析引擎所加载的分析算法进行配置,从而有效提高执行分析任务时的实时性。

Description

一种视频分析方法、装置及视频处理设备
技术领域
本申请涉及视频技术领域,特别是涉及一种视频分析方法、装置及视频处理设备。
背景技术
在一些应用场景中,出于实际需求需要对视频进行特定的分析任务,示例性的,为了便于对道路上的车辆进行管理,可以利用摄像机拍摄道路得到的视频,并针对视频执行车牌号分析任务,以确定视频中出现的各车辆的车牌号。
本文中称具备针对视频执行分析任务的电子设备为视频处理设备,视频处理设备中包括分析引擎,分析引擎可以按照预先设置的方式对视频进行分析。例如,一个分析引擎中可以加载有用于对车牌号进行识别的分析算法,则视频处理设备可以通过该一个分析引擎对视频进行车牌号分析任务。
相关技术中,为使得视频处理设备具备执行多种不同分析任务的能力,可以为至少两个不同的分析引擎中预先配置不同的分析算法,示例性的,假设视频处理设备中一共包括4个分析引擎,则可以为其中2个分析引擎配置用于对车牌号进行识别的分析算法,并为另外2个分析引擎配置用于检测车辆轮廓的分析算法,因此该视频处理设备可以执行车牌号识别任务以及车辆轮廓检测任务。假设每个引擎同时最多能够负载8个分析任务,则该视频处理设备能够最多同时执行16个车牌号识别任务以及16个车辆轮廓检测任务。
但是,视频处理设备所需执行的各类分析任务的数量根据实际情况的不同可能发生变化,示例性的,在某一场景中视频处理设备所需执行的车牌号识别任务的数量为20个,而所需执行的车辆轮廓检测任务只有4个。则由于该视频处理设备最多只能够同时处理16个车牌号识别任务,因此至少有4个车牌号识别任务无法及时完成,即该视频处理设备执行分析任务时的实时性较差。
发明内容
本申请实施例的目的在于提供一种视频分析方法,以实现提高视频处理设备执行分析任务时的实时性。具体技术方案如下:
在本申请实施例的第一方面,提供了一种视频分析方法,应用于视频处理设备,所述视频处理设备包括多个分析引擎,每个分析引擎预先加载有分析算法,所述方法包括:
在接收到针对视频的待执行分析任务后,判断是否所有第一类分析引擎处于满载状态,其中,所述第一类分析引擎为所加载的分析算法为目标分析算法的分析引擎,所述目标分析算法为用于执行所述待执行分析任务的分析算法;
如果所有第一类分析引擎处于满载状态,选取处于空闲状态的第二类分析引擎作为目标分析引擎,其中,所述第二类分析引擎为所加载的分析算法不为所述目标分析算法的分析引擎;
将所述目标分析引擎所加载的分析算法切换为所述目标分析算法;
通过所述目标分析引擎执行所述待执行分析任务。
在一种可能的实施例中,在所述选取处于空闲状态的第二类分析引擎作为目标分析引擎之前,所述方法还包括:
判断是否存在处于空闲状态的第二类分析引擎;
如果不存在处于空闲状态的第二类分析引擎,将至少一个第二类分析引擎正在执行的所有分析任务调度至除所述至少一个第二类分析引擎以外的第二类分析引擎。
在一种可能的实施例中,所述将至少一个第二类分析引擎正在执行的所有任务调度至除所述至少一个第二类分析引擎以外的第二类分析引擎,包括:
针对至少一个第二类分析引擎正在执行的每个分析任务,将该分析任务调度至除所述至少一个第二类分析引擎以外加载有用于执行该分析任务的分析算法的第二类分析引擎中负载最低的分析引擎。
在一种可能的实施例中,在所述判断是否所有加载目标分析算法的第一类分析引擎处于满载状态之后,所述方法还包括:
如果至少一个第一类分析引擎不处于满载状态,通过负载最低的第一类分析引擎执行所述待执行分析任务。
在一种可能的实施例中,所述选取处于空闲状态的第二类分析引擎作为目标分析引擎,包括:
选取处于空闲状态且符合预设筛选条件的第二类分析引擎作为目标分析引擎,其中,所述预设筛选条件包括:同类剩余性能高于预设性能阈值,或,为所有处于空闲状态的第二类分析引擎中同类剩余性能最高的第二类分析引擎,第二类分析引擎的同类剩余性能用于表示所有与该第二类分析引擎加载相同分析算法的分析引擎的剩余性能。
在一种可能的实施例中,在所述将所述目标分析引擎所加载的分析算法切换为所述目标分析算法之后,所述方法还包括:
当存在处于空闲状态的第一类分析引擎时,将处于空闲状态的第一类分析引擎所加载的分析算法切换为所述目标分析引擎初始时加载的分析算法。
在本申请实施例的第二方面,提供了一种视频分析装置,应用于视频处理设备,所述视频处理设备包括多个分析引擎,每个分析引擎预先加载有一种分析算法,所述装置包括:
第一判断模块,用于在接收到针对视频的待执行分析任务后,判断是否所有第一类分析引擎处于满载状态,其中,所述第一类分析引擎为所加载的分析算法为目标分析算法的分析引擎,所述目标分析算法为用于执行所述待执行分析任务的分析算法;
引擎选取模块,用于如果所有第一类分析算法的分析引擎处于满载状态,确定处于空闲状态的第二类分析引擎作为目标分析引擎,其中,所述第二类分析引擎为所加载的分析算法不为所述目标分析算法的分析引擎;
算法切换模块,用于将所述目标分析引擎将所加载的分析算法切换为所述目标分析算法;
任务分配模块,用于通过所述目标分析引擎执行所述待执行分析任务。
在一种可能的实施例中,所述装置还包括第二判断模块,用于判断是否存在处于空闲状态的第二类分析引擎;
任务调度模块,用于如果不存在处于空闲状态的第二类分析引擎,将至少一个第二类分析引擎正在执行的所有分析任务调度至除所述至少一个第二类分析引擎以外的第二类分析引擎。
在一种可能的实施例中,所述任务调度模块,具体用于针对至少一个第二类分析引擎正在执行的每个分析任务,将该分析任务调度至除所述至少一个第二类分析引擎以外加载有用于执行该分析任务的分析算法的第二类分析引擎中负载最低的分析引擎。
在一种可能的实施例中,所述任务分配模块,还用于如果至少一个第一类分析引擎不处于满载状态,通过负载最低的第一类分析引擎执行所述待执行分析任务。
在一种可能的实施例中,所述引擎选取模块,具体用于选取处于空闲状态且符合预设筛选条件的第二类分析引擎作为目标分析引擎,其中,所述预设筛选条件包括:同类剩余性能高于预设性能阈值,或,为所有处于空闲状态的第二类分析引擎中同类剩余性能最高的第二类分析引擎,第二类分析引擎的同类剩余性能用于表示所有与该第二类分析引擎加载相同分析算法的分析引擎的剩余性能。
在一种可能的实施例中,所述算法切换模块,还用于当存在处于空闲状态的第一类分析引擎时,将处于空闲状态的第一类分析引擎所加载的分析算法切换为所述目标分析引擎初始时加载的分析算法。
在本申请实施例的第三方面,提供了一种视频处理设备,所述视频处理设备包括多个分析引擎、存储器以及处理器,其中,每个分析引擎预先加载有一种分析算法;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现上述第一方面任一所述的方法步骤。
在本申请实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的方法步骤。
本申请实施例有益效果:
本申请实施例提供的视频分析方法、装置及视频处理设备,可以在第一类分析引擎均处于满载状态,且第二类分析引擎尚有多余的计算能力的情况下,自动地将第二类分析引擎转换为第一类分析引擎,即可以根据各分析引擎的负载状况自动地分析引擎所加载的分析算法进行配置,从而充分利用各分析引擎的计算能力用以执行分析任务,因此可以有效提高执行分析任务时的实时性。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本申请实施例提供的视频分析方法的一种流程示意图;
图2为本申请实施例提供的视频分析方法的另一种流程示意图;
图3为本申请实施例提供的视频分析装置的一种结构示意图;
图4为本申请实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
为了更清楚的对本申请实施例提供的视频分析方法进行说明,下面将对本申请实施例提供的视频分析方法的一种可能的应用场景进行示例性的说明,可以理解的是以下示例仅是本申请实施例提供的视频分析方法的一种可能的应用场景,在其他可能的实施例中本申请实施例提供的视频分析方法也可以应用于其他可能的应用场景中,以下示例对此不做任何限制。
为了便于对监控区域进行管理可以利用前端图像采集设备,如网络摄像机(Internet Protocol Camera,IPC),拍摄监控区域的视频,前端图像采集设备将拍摄到的视频以视频流的形式实时传输至后端的视频处理设备,视频处理设备实时地对接收到的视频流进行特定的分析任务,如车牌号识别、人脸识别、行为识别、目标检测等,得到执行结果,视频处理设备可以保存视频流和执行结果,以便相关人员查阅。
为描述方便,该示例中假设视频处理设备中包括N个分析引擎,其中,N为任意大于1的正整数,每个分析引擎最多能够同时执行K个分析任务,并且假设该示例中视频处理设备中有M个分析引擎被配置用于执行人脸识别任务,M为小于N的正整数,N-M个分析引擎被配置用于执行行为识别任务。
则理论上该视频处理设备最多能够同时执行K*M个人脸识别任务以及K*(N-M)个行为识别任务,用户可以预先根据经验设置M的取值,从而决定该视频处理设备最多能够同时执行的人脸识别任务以及行为识别任务的数量。但是用户往往难以准确预期所有场景下视频处理设备所需执行的人脸识别任务数量以及行为识别任务数量。因此在一些场景下可能出现以下两种情况:
情况一、所需执行的人脸识别任务的数量大于K*M,且所需执行的行为识别任务的数量小于K*(N-M);
情况二、所需执行的人脸识别任务的数量小于K*M,且所需执行的行为识别任务的数量大于K*(N-M)。
对于情况一,视频处理设备无法同时处理所有所需执行的人脸识别任务,在一种可能的实施例中可以由相关人员手动将一个原先配置用于执行行为识别任务的分析引擎重新配置用于执行人脸识别任务,可以理解的是,一方面相关人员不一定能够及时地对分析引擎进行重新配置,例如情况一发生在相关人员的非工作时间,另一方面重新配置也需要消耗一定的时间以及人工成本。因此将导致部分人脸识别任务无法被实时地执行,同时导致视频处理设备运维所消耗的人工成本较高。同理,情况二下的视频处理设备存在行为识别任务无法被实时地执行的问题以及视频处理设备运维所消耗的人工成本较高的问题。
基于此,本申请实施例提供了一种视频分析方法,应用于视频处理设备,本文中的视频处理设备可以是指任意具备对视频进行分析处理能力的电子设备,包括但不限于NVR(网络视频录像机)、DVR(数字视频录像机)、XVR(混合视频录像机)。本文中的视频可以是指流媒体形式的视频流,也可以是指预设视频格式的视频文件。
该视频处理设备中包括多个分析引擎,本文中的分析引擎可以是指任意具备对视频执行分析任务能力的电路单元,包括但不限于CPU(通用处理器)、GPU(图像处理器)。每个分析引擎预先加载有分析算法,并且至少存在两个预先加载了不同分析算法的分析引擎。
该视频分析方法可以参见图1,图1所示为本申请实施例提供的视频分析算法的一种流程示意图,可以包括:
S101,在接收到针对视频的待执行分析任务后,判断是否所有第一类分析引擎处于满载状态。
S102,如果所有第一类分析引擎处于满载状态,选取处于空闲状态的第二类分析引擎作为目标分析引擎。
S103,将所述目标分析引擎所加载的分析算法切换为目标分析算法。
S104,通过目标分析引擎执行待执行分析任务。
选用该实施例,可以在第一类分析引擎均处于满载状态,且第二类分析引擎尚有多余的计算能力的情况下,自动地将第二类分析引擎转换为第一类分析引擎,即可以根据各分析引擎的负载状况自动地分析引擎所加载的分析算法进行配置,从而充分利用各分析引擎的计算能力用以执行分析任务,因此可以有效提高执行分析任务时的实时性。
另一方面,由于本申请实施例提供的视频分析算法可以自动地对分析引擎进行配置,可以无需相关人员人工进行配置,因此可以有效降低视频处理设备运维时的人工成本。
其中,在S101中,第一类分析引擎为所加载的分析算法为目标分析算法的分析引擎,目标分析算法为用于执行待执行分析任务的分析算法,满载状态是指该分析引擎处于剩余的计算资源不足以执行新的分析任务的状态,示例性的,假设一个分析引擎具有8个通道,每个通道能够用于执行一个分析任务,则如果该分析引擎中正在执行分析任务的通道的数量为0时,称该分析引擎处于空闲状态,如果该分析引擎中正在执行分析任务的通道的数量为8时,称该分析引擎处于满载状态。
如果并非所有第一类分析引擎均处于满载状态,即至少存在一个第一类分析引擎不处于满载状态,则可以通过该至少一个第一类分析引擎执行待执行分析任务。在一种可能的实施例中,可以是通过其中负载最低的第一类分析引擎执行待执行任务,以尽可能实现负载均衡。
在S102中,第二类分析引擎为所加载的分析算法不为目标分析算法的分析引擎,即第二类分析引擎可以是指视频处理设备中除第一类分析引擎外的其他分析引擎。
可以理解的是,如果所有第一类分析引擎处于满载状态,则现有的第一类分析引擎剩余的计算资源不足以执行接收到的待执行分析任务,因此需要借助第二类分析引擎剩余的计算资源用以执行待执行分析任务。
在选取处于空闲状态的第二类分析引擎时,可以是选取一个处于空闲状态的第二类分析引擎,也可以是选取多个处于空闲状态的第二类分析引擎。在一种可能的实施例中,为尽可能减少对分析引擎的配置的更改,每次选取一个处于空闲状态的第二类分析引擎。下文中为描述方便,以选取一个处于空闲状态的第二类分析引擎为例进行说明,对于选取多个处于空闲状态的第二类分析引擎的实施例,由于原理是相同的因此不再赘述。
如果只有一个处于空闲状态的第二类分析引擎,则可以选取该一个处于空闲状态的第二类分析引擎作为目标分析引擎,如果存在多个处于空闲状态的第二类分析引擎,则可以按照预设规则从该多个处于空闲状态的第二类分析引擎选取一个第二类分析引擎作为目标分析引擎。
其中,预设规则可以根据实际需求或者用户经验进行设置,示例性的,可以是选取按照预设引擎编号由小到大或由大到小的顺序位于第一顺位的第二类分析引擎。也可以是选取按照性能参数由高到低或由低到稿的顺序位于第一顺位的第二类分析引擎。在其他可能的实施例中,预设规则也可以是其他规则,本实施例对此不做任何限制。
在一种可能的实施例中,可以是选取处于空闲状态且符合预设筛选条件的第二类分析引擎作为目标分析引擎,其中,预设筛选条件可以包括:同类剩余性能高于预设性能阈值,或,为所有处于空闲状态的第二类分析引擎中同类剩余性能最高的第二类分析引擎,第二类分析引擎的同类剩余性能用于表示所有与该第二类分析引擎加载相同分析算法的分析引擎的剩余性能。
示例性的,假设视频处理设备中包括12个分析引擎,分别记为分析引擎1-12,其中分析引擎1-4加载分析算法1,分析引擎5-8加载分析算法2,分析引擎8-12加载分析算法3,如果分析算法1为目标分析算法,则分析引擎1-4为第一类分析引擎,分析引擎5-12为第二类分析引擎。
对于分析引擎5-8中的任一分析引擎,同类剩余性能用于表示分析引擎5-8这四个分析引擎的剩余性能,而对于分析引擎9-12中的任一分析引擎,同类剩余性能用于表示分析引擎9-12这四个分析引擎的剩余性能。
剩余性能的表示方式根据应用场景的不同可以不同,示例性的,可以是以分析引擎还能够并发执行的分析任务的数目表示,例如,假设分析引擎5-8中每个分析引擎最多能够并发执行8个分析任务,即分析引擎5-8一共能够并发执行32个分析任务,假设当前分析引擎5-8一共正在执行10个分析任务,则分析引擎5-8的剩余性能为22。
假设第二类分析引擎中分析引擎5、6、10处于空闲状态,且分析引擎5-8的剩余性能为22,分析引擎9-12的剩余性能为25,则分析引擎5、6的同类剩余性能为22,分析引擎10的同类剩余性能为25。如果预设筛选条件为所有处于空闲状态的第二类分析引擎中同类剩余性能最高的第二类分析引擎,则可以是选取分析引擎10作为目标分析引擎。如果预设筛选条件为剩余性能高于预设性能阈值,且预设性能阈值为20,则可以是选取分析引擎5、6、10中一个或多个分析引擎作为目标分析引擎。
为描述方便假设目标分析引擎加载的分析算法为分析算法2,则可以理解的是,在将目标分析分析引擎所加载的分析算法切换为目标分析算法后,视频处理设备中加载有分析算法2的分析引擎的数目将减少,此时如果接收到数目较多的需要通过分析算法2执行的分析任务,则可能由于视频处理设备中加载有分析算法2的分析引擎的剩余性能不足,导致这些分析任务无法被实时执行。
而选用该实施例,由于目标分析引擎满足预设筛选条件时,因此可以认为该目标分析引擎的同类剩余性能较高,此时即使将目标分析引擎所加载的分析算法切换为目标分析算法,视频处理设备中加载有分析算法2的分析引擎的剩余性能仍然较高,此时即使接收到数目较多的需要通过分析算法2执行的分析任务,也不会由于视频处理设备中加载有分析算法2的分析引擎的剩余性能不足,导致这些分析任务无法被实时执行。即可以解决上述技术问题。
在S103中,由于目标分析引擎为第二类分析引擎,因此目标分析引擎无法直接用于执行待执行分析任务,需要将目标分析引擎转换为第一类分析引擎。切换分析算法时,可以是控制目标分析引擎注销原有的分析算法,并向目标分析引擎下发目标分析算法,以使得目标分析引擎加载目标分析算法。
在S104中,此时目标分析引擎所加载的分析算法已经被切换为目标分析算法,因此此时目标分析引擎可以用于执行待执行分析任务。
假设前述示例应用场景中的K为8,N为16,M为8,则视频处理设备最多能够同时处理64个人脸识别任务以及64个行为识别任务。假设在某一场景中,视频处理设备正在执行64个人脸识别任务以及32个行为识别任务,如果此时接收到新的待执行任务并且该待执行任务为人脸识别任务,则如果按照相关技术中的视频分析方法,由于所有第一类分析引擎(即加载有用于执行人脸识别任务的分析算法的分析引擎)均处于满载状态,此时视频处理设备无法实时处理该待执行分析任务,
而选用本申请实施例提供的视频分析方法,则可以从第二类分析引擎(即加载有用于执行行为识别任务的分析算法的分析引擎)中选取一个处于空闲状态的分析引擎作为目标分析引擎,并将目标分析引擎所加载的分析算法切换为目标分析算法(即用于执行人脸识别任务的分析算法),并通过目标分析引擎执行该待执行分析任务。在切换目标分析引擎所加载的分析算法后,视频处理设备最多能够同时处理72个人脸识别任务以及56个行为识别任务,而此时视频处理设备所需执行的人脸识别任务为65个、行为识别任务为32个,可见此时视频处理设备能够同时执行所有需要执行的分析任务,相较于相关技术显然实时性更高。
在一种可能的实施例中,在S104之后,当存在处于空闲状态的第一类分析引擎时,将处于空闲状态的第一类分析引擎所加载的分析算法切换为目标分析引擎初始时加载的分析算法。
示例性性的,假设目标分析引擎初始时加载的分析算法为分析算法2,则可以是在S104之后,当存在处于空闲状态的第一类分析引擎时,将该处于空闲状态的第一类分析引擎所加载的分析算法切换为分析算法2。
可以理解的是,各分析引擎初始时所配置的分析算法往往是根据用户实际需求或者经验配置的,可以认为加载有各分析算法的分析引擎的初始数目具有一定的合理性。而选用该实施例,可以尽可能使得加载有各分析算法的分析引擎的数目与初始数目一致。
在一些场景下可能不存在处于空闲状态的第二类分析引擎,示例性的,仍以上述示例应用场景为例,假设在选取目标分析引擎之前,32个行为识别任务被均匀分配至8个第二类分析引擎,即每个第二类分析引擎执行4个行为识别任务,则此时8个第二类分析引擎均不处于空闲状态,因此无法直接从第二类分析引擎中选取目标分析引擎。
基于此,在一种可能的实施例中,可以参见图2,图2所示为本申请实施例提供的视频分析方法的另一种流程示意图,可以包括:
S201,在接收到针对视频的待执行分析任务后,判断是否所有第一类分析引擎处于满载状态。
该步骤与S101相同,可以参见前述S101的相关描述,在此不再赘述。
S202,如果所有第一类分析引擎处于满载状态,判断是否存在处于空闲状态的第二类分析引擎,如果存在处于空闲状态的第二类分析引擎,则执行S204,如果不存在处于空闲状态的第二类分析引擎,则执行S203。
S203,将至少一个第二类分析引擎正在执行的所有分析任务调度至除该至少一个第二类分析引擎以外的第二类分析引擎。
其中,至少一个第二类分析引擎的数目可以是一个也可以多个,下文中为描述方便以至少一个第二类分析引擎为一个第二类分析引擎为例进行说明,对于至少一个第二类分析引擎为多个第二类分析引擎的实施例,由于原理是相同的,因此不再赘述。
可理解的是,在调度分析任务时,分析任务被调度至的分析引擎应当加载有用于执行该分析任务的分析算法,示例性的,假设将一人脸识别任务从第二类分析引擎1调度至第二类分析引擎2,则第二类分析引擎2应当加载有用于执行人脸识别任务的分析算法。
并且,在一种可能的实施例中,可以是优先将分析任务调度至除该至少一个第二类分析引擎以外加载有用于执行该分析任务的分析算法的分析引擎中负载最低的分析引擎中,以尽可能实现负载均衡。
可以是任意选取一个第二类分析引擎将该第二类分析引擎的所有分析任务调度至除该一个第二类分析引擎以外的第二类分析引擎。在其他可能的实施例中,也可以是按照指定选取规则选取一个第二类分析引擎将该第二类分析引擎的所有分析任务调度至除该一个第二类分析引擎以外的第二类分析引擎。该选取规则根据应用场景的不同可以不同,示例性的,可以是优选选取正在执行的分析任务的数量最少的第二类分析引擎,也可以是优先选取加载有剩余通道数最多的分析算法的第二类分析引擎。
其中,分析算法的剩余通道数是指所有加载有该分析算法的分析引擎中未用于执行分析任务的通道数,示例性的,假设共计有8个第二类分析引擎,每个第二类分析引擎中包括8个通道,其中5个第二类分析引擎加载有用于执行行为识别任务的分析算法,另外3个第二类分析引擎加载有用于执行人体检测任务的分析算法,并且此时视频处理设备正在执行32个行为识别任务以及14个人体检测任务,则用于执行行为识别任务的分析算法的剩余通道数为5*8-32=8个,用于执行人体检测任务的分析算法的剩余通道数为3*8-14=10个,因此在该场景中可以优先选取加载有用于执行人体检测任务的分析算法的第二类分析引擎。
在将至少一个第二类分析引擎正在执行的所有分析任务调度至除该至少一个第二类分析引擎以外的第二类分析引擎之后,该至少一个第二类分析引擎将处于空闲状态。
S204,将目标分析引擎所加载的分析算法切换为目标分析算法。
该步骤与S103相同,可以参见前述关于S103的相关说明,在此不再赘述。
S205,通过目标分析引擎执行待执行分析任务。
该步骤与S104相同,可以参见前述关于S104的相关说明,在此不再赘述。
参见图3,图3所示为本申请实施例提供的视频分析装置的一种结构示意图,可以包括:
第一判断模块301,用于在接收到针对视频的待执行分析任务后,判断是否所有第一类分析引擎处于满载状态,其中,所述第一类分析引擎为所加载的分析算法为目标分析算法的分析引擎,所述目标分析算法为用于执行所述待执行分析任务的分析算法;
引擎选取模块302,用于如果所有第一类分析算法的分析引擎处于满载状态,确定处于空闲状态的第二类分析引擎作为目标分析引擎,其中,所述第二类分析引擎为所加载的分析算法不为所述目标分析算法的分析引擎;
算法切换模块303,用于将所述目标分析引擎将所加载的分析算法切换为所述目标分析算法;
任务分配模块304,用于通过所述目标分析引擎执行所述待执行分析任务。
在一种可能的实施例中,所述装置还包括第二判断模块,用于判断是否存在处于空闲状态的第二类分析引擎;
任务调度模块,用于如果不存在处于空闲状态的第二类分析引擎,将至少一个第二类分析引擎正在执行的所有分析任务调度至除所述至少一个第二类分析引擎以外的第二类分析引擎。
在一种可能的实施例中,所述任务调度模块,具体用于针对至少一个第二类分析引擎正在执行的每个分析任务,将该分析任务调度至除所述至少一个第二类分析引擎以外加载有用于执行该分析任务的分析算法的第二类分析引擎中负载最低的分析引擎。
在一种可能的实施例中,所述任务分配模块304,还用于如果至少一个第一类分析引擎不处于满载状态,通过负载最低的第一类分析引擎执行所述待执行分析任务。
在一种可能的实施例中,所述引擎选取模块302,具体用于选取处于空闲状态且符合预设筛选条件的第二类分析引擎作为目标分析引擎,其中,所述预设筛选条件包括:同类剩余性能高于预设性能阈值,或,为所有处于空闲状态的第二类分析引擎中同类剩余性能最高的第二类分析引擎,第二类分析引擎的同类剩余性能用于表示所有与该第二类分析引擎加载相同分析算法的分析引擎的剩余性能。
在一种可能的实施例中,所述算法切换模块303,还用于当存在处于空闲状态的第一类分析引擎时,将处于空闲状态的第一类分析引擎所加载的分析算法切换为所述目标分析引擎初始时加载的分析算法。
本申请实施例还提供了一种视频处理设备,如图4所示,包括多个分析引擎、存储器401以及处理器402,其中,每个分析引擎预先加载有一种分析算法;
存储器401,用于存放计算机程序;
处理器402,用于执行存储器401上所存放的程序时,实现如下步骤:
在接收到针对视频的待执行分析任务后,判断是否所有第一类分析引擎处于满载状态,其中,所述第一类分析引擎为所加载的分析算法为目标分析算法的分析引擎,所述目标分析算法为用于执行所述待执行分析任务的分析算法;
如果所有第一类分析引擎处于满载状态,选取处于空闲状态的第二类分析引擎作为目标分析引擎,其中,所述第二类分析引擎为所加载的分析算法不为所述目标分析算法的分析引擎;
将所述目标分析引擎所加载的分析算法切换为所述目标分析算法;
通过所述目标分析引擎执行所述待执行分析任务。
上述视频处理设备提到的存储器可以包括随机存取存储器(Random AccessMemory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一视频分析方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一视频分析方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、视频处理设备、计算机可读存储介质以及计算机程序产品的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (10)

1.一种视频分析方法,其特征在于,应用于视频处理设备,所述视频处理设备包括多个分析引擎,每个分析引擎预先加载有分析算法,所述方法包括:
在接收到针对视频的待执行分析任务后,判断是否所有第一类分析引擎处于满载状态,其中,所述第一类分析引擎为所加载的分析算法为目标分析算法的分析引擎,所述目标分析算法为用于执行所述待执行分析任务的分析算法;
如果所有第一类分析引擎处于满载状态,选取处于空闲状态的第二类分析引擎作为目标分析引擎,其中,所述第二类分析引擎为所加载的分析算法不为所述目标分析算法的分析引擎;
将所述目标分析引擎所加载的分析算法切换为所述目标分析算法;
通过所述目标分析引擎执行所述待执行分析任务。
2.根据权利要求1所述的方法,其特征在于,在所述选取处于空闲状态的第二类分析引擎作为目标分析引擎之前,所述方法还包括:
判断是否存在处于空闲状态的第二类分析引擎;
如果不存在处于空闲状态的第二类分析引擎,将至少一个第二类分析引擎正在执行的所有分析任务调度至除所述至少一个第二类分析引擎以外的第二类分析引擎。
3.根据权利要求2所述的方法,其特征在于,所述将至少一个第二类分析引擎正在执行的所有任务调度至除所述至少一个第二类分析引擎以外的第二类分析引擎,包括:
针对至少一个第二类分析引擎正在执行的每个分析任务,将该分析任务调度至除所述至少一个第二类分析引擎以外加载有用于执行该分析任务的分析算法的第二类分析引擎中负载最低的分析引擎。
4.根据权利要1所述的方法,其特征在于,在所述判断是否所有加载目标分析算法的第一类分析引擎处于满载状态之后,所述方法还包括:
如果至少一个第一类分析引擎不处于满载状态,通过负载最低的第一类分析引擎执行所述待执行分析任务。
5.根据权利要求1-4任一所述的方法,其特征在于,所述选取处于空闲状态的第二类分析引擎作为目标分析引擎,包括:
选取处于空闲状态且符合预设筛选条件的第二类分析引擎作为目标分析引擎,其中,所述预设筛选条件包括:同类剩余性能高于预设性能阈值,或,为所有处于空闲状态的第二类分析引擎中同类剩余性能最高的第二类分析引擎,第二类分析引擎的同类剩余性能用于表示所有与该第二类分析引擎加载相同分析算法的分析引擎的剩余性能。
6.根据权利要求1-4任一所述的方法,其特征在于,在所述将所述目标分析引擎所加载的分析算法切换为所述目标分析算法之后,所述方法还包括:
当存在处于空闲状态的第一类分析引擎时,将处于空闲状态的第一类分析引擎所加载的分析算法切换为所述目标分析引擎初始时加载的分析算法。
7.一种视频分析装置,其特征在于,应用于视频处理设备,所述视频处理设备包括多个分析引擎,每个分析引擎预先加载有一种分析算法,所述装置包括:
第一判断模块,用于在接收到针对视频的待执行分析任务后,判断是否所有第一类分析引擎处于满载状态,其中,所述第一类分析引擎为所加载的分析算法为目标分析算法的分析引擎,所述目标分析算法为用于执行所述待执行分析任务的分析算法;
引擎选取模块,用于如果所有第一类分析算法的分析引擎处于满载状态,确定处于空闲状态的第二类分析引擎作为目标分析引擎,其中,所述第二类分析引擎为所加载的分析算法不为所述目标分析算法的分析引擎;
算法切换模块,用于将所述目标分析引擎将所加载的分析算法切换为所述目标分析算法;
任务分配模块,用于通过所述目标分析引擎执行所述待执行分析任务。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括第二判断模块,用于判断是否存在处于空闲状态的第二类分析引擎;
任务调度模块,用于如果不存在处于空闲状态的第二类分析引擎,将至少一个第二类分析引擎正在执行的所有分析任务调度至除所述至少一个第二类分析引擎以外的第二类分析引擎;
所述任务调度模块,具体用于针对至少一个第二类分析引擎正在执行的每个分析任务,将该分析任务调度至除所述至少一个第二类分析引擎以外加载有用于执行该分析任务的分析算法的第二类分析引擎中负载最低的分析引擎;
所述任务分配模块,还用于如果至少一个第一类分析引擎不处于满载状态,通过负载最低的第一类分析引擎执行所述待执行分析任务;
所述引擎选取模块,具体用于选取处于空闲状态且符合预设筛选条件的第二类分析引擎作为目标分析引擎,其中,所述预设筛选条件包括:同类剩余性能高于预设性能阈值,或,为所有处于空闲状态的第二类分析引擎中同类剩余性能最高的第二类分析引擎,第二类分析引擎的同类剩余性能用于表示所有与该第二类分析引擎加载相同分析算法的分析引擎的剩余性能;
所述算法切换模块,还用于当存在处于空闲状态的第一类分析引擎时,将处于空闲状态的第一类分析引擎所加载的分析算法切换为所述目标分析引擎初始时加载的分析算法。
9.一种视频处理设备,其特征在于,所述视频处理设备包括多个分析引擎、存储器以及处理器,其中,每个分析引擎预先加载有一种分析算法;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现如权利要求1-6任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的方法步骤。
CN202110270127.5A 2021-03-12 2021-03-12 一种视频分析方法、装置及视频处理设备 Pending CN115082911A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110270127.5A CN115082911A (zh) 2021-03-12 2021-03-12 一种视频分析方法、装置及视频处理设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110270127.5A CN115082911A (zh) 2021-03-12 2021-03-12 一种视频分析方法、装置及视频处理设备

Publications (1)

Publication Number Publication Date
CN115082911A true CN115082911A (zh) 2022-09-20

Family

ID=83240459

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110270127.5A Pending CN115082911A (zh) 2021-03-12 2021-03-12 一种视频分析方法、装置及视频处理设备

Country Status (1)

Country Link
CN (1) CN115082911A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116579914A (zh) * 2023-07-14 2023-08-11 南京砺算科技有限公司 一种图形处理器引擎执行方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116579914A (zh) * 2023-07-14 2023-08-11 南京砺算科技有限公司 一种图形处理器引擎执行方法、装置、电子设备及存储介质
CN116579914B (zh) * 2023-07-14 2023-12-12 南京砺算科技有限公司 一种图形处理器引擎执行方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US20180052711A1 (en) Method and system for scheduling video analysis tasks
CN108062499B (zh) 一种人脸识别的方法、系统及平台
CN110944146B (zh) 智能分析设备资源调整方法及装置
CN110557419A (zh) 一种任务处理方法、装置及云计算系统
CN112182295B (zh) 基于行为预测的业务处理方法、装置及电子设备
CN111367828B (zh) 内存压缩方法、装置、终端及存储介质
US20140023185A1 (en) Characterizing Time-Bounded Incident Management Systems
US20220138893A9 (en) Distributed image analysis method and system, and storage medium
CN115543577A (zh) 基于协变量的Kubernetes资源调度优化方法、存储介质及设备
CN115220921A (zh) 资源调度方法及相关装置、图形处理器、摄像器件和介质
CN113792341A (zh) 应用程序的隐私合规自动化检测方法、装置、设备及介质
WO2014091667A1 (ja) 解析制御システム
CN115082911A (zh) 一种视频分析方法、装置及视频处理设备
CN115373764B (zh) 一种容器自动加载方法和装置
CN111539281A (zh) 分布式人脸识别方法及系统
CN110932935A (zh) 资源控制方法、装置、设备及计算机存储介质
US20220171664A1 (en) Parallel execution controller for partitioned segments of a data model
CN116319810A (zh) 分布式系统的流量控制方法、装置、设备、介质及产品
CN110659125A (zh) 一种分析任务执行方法、装置、系统及电子设备
CN111737371B (zh) 可动态预测的数据流量检测分类方法及装置
CN114356712A (zh) 数据处理方法、装置、设备、可读存储介质及程序产品
US9479579B2 (en) Grouping processing method and system
CN112948229A (zh) 调度集群的性能确定方法、装置、计算机设备及存储介质
US20200042354A1 (en) Analysis node, method for managing resources, and program recording medium
CN115396319B (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