多用户视频流深度学习共享计算复用方法与流程

文档序号:18704566发布日期:2019-09-17 23:28阅读:217来源:国知局
多用户视频流深度学习共享计算复用方法与流程

本发明涉及计算机、视频处理,具体涉及多用户视频流深度学习共享计算复用方法。



背景技术:

当前,深度学习已经成为推动人工智能应用落地与普及的重要引擎。尤其是在计算机视觉领域,深度学习的快速发展为该领域带来了深刻的变革,其中最为具有代表性的是图像分析技术如目标检测与目标识别等技术的不断发展。目标检测可用来对目标进行分类,例如识别出图像中是否有狗,有人,有桌子,但是无法识别出该人的姓名;目标识别则可识别出该人的具体身份。对于一张图像,应用目标检测模型可以快速的识别图像中所有的目标,这为视频分析过程带来了巨大的变化。

在传统的视频分析过程中,主要通过手动打标签的方式为用户提供查询服务。借助于深度学习的发展,通过目标识别、目标检测等技术可自动分析视频内容,提供更加优质与丰富的查询服务。例如,当用户剪辑视频时,可以通过目标识别算法自动地找到视频中某人出现的所有片段,这为用户带来了极大的便利性。因此,使用基于深度学习的视频流分析替代传统的手动标签式视频查询方式已经逐渐成为一种趋势。不过,因为深度学习模型资源需求高,训练时间长等特点,通常会采用资源共享的方式让多个用户共享一个计算平台,从而提高深度学习系统计算资源的利用率和降低企业成本。

现有技术的缺点

现有的基于深度学习的视频分析技术大多具有两个方面的缺点:一是查询结果单一,二是没有解决共享平台下多用户查询的局部性。查询结果单一在noscope,chameleon等系统中体现的尤为明显。一般来说,目标检测模型可以识别出数千种不同的目标类别,但识别速度较慢。因此,为解决深度学习模型处理视频数据过慢的问题,noscope提出通过训练网络层数更少的专有模型来对车辆进行识别,大大提高了识别速度。但是这个方式放弃了深度学习模型的通用性,当用户需要查询多个目标时便无法满足其需求。

另一方面,noscope、chameleon、videostorm这些模型没有解决共享平台下多用户查询的局限性。局限性体现在以下几个方面:

时间维度的局部性。时间维度的局部性表现在不同时段查询在查询数据上具有重复性,当新的查询到来时,前面已经有一些用户对相同的内容进行了查询关注。这在一些热门视频上表现尤为明显。时间维度的局部性还体现在连续帧内容上的相似性。由于视频数据本身所独有的特点,连续帧之间具有极高的相似性以保持视频的连贯性。另外,在一些监控视频如公园中的摄像头监控,该视频中部分时间(如晚间)内容上的变化极小。当通过深度学习模型识别视频帧中的目标时,这些连续帧之间的识别结果也会基本相同,因此这些连续帧带来了大量的重复计算。

空间维度的局部性。主要表现在同一段数据会被同时到来的多个推理请求同时进行查询处理。这些查询往往存在着相同和相似性。对于这些查询计算,往往可以对其进行裁剪合并操作,以避免不必要的冗余计算。

数据结果逻辑间的局部性。体现在不同模型间的数据结果存在逻辑上的复用的可能性。例如物体检测和物体识别彼此往往存在着逻辑上的复用关系。例如,对于一个视频的某一帧,当物体检测表明没有人的时候,物体识别算法则不可能识别出张三,从而避免了物体识别人的计算。反之,物体识别的结果也能直接在一定情况下复用到物体检测当中。如通过物体识别算法表明存在张三,则表明是有人,直接避免了对于人的物体检测。



技术实现要素:

为克服现有技术的不足,本发明旨在提出一种多用户视频流深度学习共享计算复用方法。实现在多用户场景下,通过目标识别和目标检测等技术提供视频查询的服务。并针对共享计算环境下多用户视频查询存在的局部性进行优化,使得多用户间能够针对深度学习推理结果进行共享,从而提高运行速度,解决深度学习模型在处理视频数据时速度过低的问题。同时,解决因共享带来的速度与精度的平衡问题。为此,本发明采取的技术方案是,多用户视频流深度学习共享计算复用方法,首先,当带有检测操作或识别操作的请求到来时,根据空间维度的关联性,对请求进行合并,裁剪掉请求中存在重叠的部分;然后,根据时间维度的关联性,请求到物体检测数据库或物体识别数据库中进行检索,查询是否已有合适的数据可供复用,当不存在可复用的数据时,根据逻辑间的关联性,应用物体识别数据库或物体检测数据库中数据对检测操作或识别操作进行过滤减少无效计算,再调用配置好参数的深度学习模型进行分析;对于不可复用的部分,首先根据速度精度的平衡关系,找到分析过程中最合适的参数配置,然后据此调用差异检测器与深度学习模型进行视频分析,最终将分析结果输出并存入数据仓库,提升模块则用来提升数据库中原有的结果精度以便于复用给高精度的查询请求。

需要对相关参数如分辨率、深度学习模型的选择、跳帧率进行合理配置。

时间维度的复用具体步骤:

1)采用差异检测的方式检测连续帧之间的相似度,差异检测器获取连续帧的直方图并计算直方图距离,进一步计算出相似度,然后根据相似度判断数据是否可进行复用;

2)新的请求到来时,首先对请求进行拆分为两部分,可复用部分与不可复用部分,可复用部分的数据已存在于数据库中,可直接通过运行时间更快的数据库查询操作获取结果;对于不可复用的部分,仍通过深度学习模型进行处理获取请求结果,然后将请求到的结果反馈给数据库,以便于后续查询进行复用。

空间维度的复用:采用请求裁剪合并的方式对请求进行合并,裁剪掉其中的重叠部分,减少多次的重复请求。

逻辑维度的复用:对物体检测与物体识别的数据建立关联,找到不同模型间存在关联性的数据从而进行互相过滤。

逻辑维度的复用具体步骤:

一个视频中含有m帧图像,共有l类物体可检测和k个人物可识别,使用dl*m和rk*m两个矩阵来对数据进行存储,dl*m为代表物体矩阵,rk*m为代表人物矩阵,当新的查询到来时,首先查询dl*m和rk*m中是否有对应数据存在,若有则直接使用,dij为1表示第i帧图片中存在j物体,为0则表示不存在该物体;

定理一:如果d1j为0,那么当0<j<=m时,r*j也为0;

定理二:如果rij为1,那么当0<j<=m时,d1j也为1;

定理一表示,当第j帧检测到没有人时,那么目标识别模型在第j帧将会检测不到任何人;定理二表示,当第j帧中识别出人物i时,目标检测矩阵会自动更新第j帧中有人,由此,在进行逻辑复用时,根据定理一与定理二动态更新数据库数据,为目标检测和目标识别建立关联。

平衡查询的精度与速度具体步骤:

步骤一、对不同参数下的不同模型的精度与速度关系进行拟合,获取各个模型速度与精度的对应关系,在查询到来时便可选择最优的参数进行视频分析,以达到用户需求;

步骤二、根据马尔科夫链法则,由前一帧的精度以及两帧之间的差异度,再加上相应的调节参数,来预测后一帧的精度,通过验证实验来不断更正调节参数的数值,从而能够进行准确的精度评价,具体使用δdiff代表两帧之间的差异度,使用a(fi-1)代表i-1帧的精度,使用k作为调节参数,那么根据马尔科夫链法则,第i帧的精度为:

a(fi-1)=k*δdiff*a(fi-1).

最后,推理请求之间的结果复用是有条件的复用;

步骤三、保留深度学习模型的结果,对差异检测器的部分结果使用高精度模型进行重新检测,并充分复用差异检测器关于两帧之间相似度的计算结果,重新评估连续帧之间的精度,从而在整体上提高检测精度。

有条件的复用具体包括采用增加使用深度学习模型的频次。

本发明的特点及有益效果是:

本发明搭建了多样的深度学习模型,因而能够实现在多用户场景下,通过目标识别目标检测等技术提供视频查询的服务。并针对共享计算环境下多用户视频查询存在的局限性进行优化,使得多用户间能够针对深度学习推理结果进行共享,从而提高运行速度,解决深度学习模型在处理视频数据时速度过低的问题。同时,解决因共享带来的速度与精度的平衡问题。

附图说明:

图1:同类型数据的请求结果复用。

图2:查询的合并处理。

图3:逻辑维度的复用。

图4:多推理请求结果复用整体架构。

具体实施方式

本发明涉及计算机视觉与高性能计算领域,提出了一种多用户视频流深度学习共享计算复用方法。该方法实现了在多用户场景下,通过目标识别目标检测等技术提供视频查询的服务。并针对共享计算环境下多用户视频查询存在的局部性进行优化,使得多用户间能够针对深度学习推理结果进行共享,从而提高运行速度,解决深度学习模型在处理视频数据时速度过低的问题。同时,解决因共享带来的速度与精度的平衡问题。

针对现有技术的局限性,我们提出一个新的视频流分析方法,支持多用户共享环境下的数据共享从而提高分析速度。在共享计算环境中,用户提交的推理请求内容包括几个方面:请求类型(物体检测,物体识别,物体追踪等),请求数据及范围,需求精度等。为满足用户多样化的推理请求内容,需在共享计算环境中搭建多样的深度学习模型,在请求到来时动态地选择合适的模型以满足用户需求。在多推理请求结果复用问题中,研究重点便是在这多样化的请求内容之中,找到多推理请求之间的联系,构建多请求之间的关联性关系进行复用从而加快运行时间,同时解决因复用而带来的精度等问题,达到满足用户需求的效果。

本方法主要包括两大模块,一是构建请求间的关联性,二是解决因复用带来的精度与速度的平衡问题。

构建请求间的关联性

步骤一,时间维度的复用。针对视频数据,时间维度的关联性体现在两个方面:一是在视频分析中,连续帧之间在内容上具有高度的相似性;二是对于热门数据,会有大量不同时段的查询会对其进行检索分析。这两个方面带来了大量复用的可能性。首先对于连续帧的相似性,由于深度学习模型推理请求时间较长,因此对于高度相似的两帧,可将前一帧(称之为参考帧)的结果复用给后一帧使用,从而避免了深度学习模型对后一帧的检测,提高速度。为此,我们采用差异检测的方式检测连续帧之间的相似度,差异检测器获取连续帧的直方图并计算直方图距离,进一步计算出相似度。然后根据相似度判断数据是否可进行复用。

不同时段查询在查询数据上的重复性同样也为系统带来了大量的冗余计算。由于没有对查询之间进行关联,因此每一次的查询都会独立地对视频数据进行请求分析,带来了巨大的资源浪费。针对此问题,针对请求结果进行存储,当新的查询到来时找出重复的部分直接复用。如图1所示,新的请求到来时,首先对请求进行拆分为两部分,可复用部分与不可复用部分。可复用部分的数据已存在于数据库中,可直接通过运行时间更快的数据库查询操作获取结果。对于不可复用的部分,仍通过深度学习模型进行处理获取请求结果。然后将请求到的结果反馈给数据库,以便于后续查询进行复用。假定一个视频中含有m帧图像,共有l类物体可检测和k个人物可识别,我们使用dl*m和rk*m两个矩阵来对数据进行存储,当新的查询到来时,首先查询dl*m和rk*m中是否有对应数据存在,若有则直接使用,避免了重复计算。dij为1表示第i帧图片中存在j物体,为0则表示不存在该物体。

步骤二,空间维度的复用。在共享计算环境中,存在着大量的并发查询操作,当这些并发的查询请求对于同一部分数据感兴趣时,便导致了大量的重复计算。本发明采用请求裁剪合并的方式对请求进行合并,裁剪掉其中的重叠部分,减少多次的重复请求。如图2所示。两个同时到来的请求查询q1与q2对部分数据存在着重叠。通过查询合并的方式,合理的将两个请求合并为一个请求q1’,避免重部分的重复计算。当多个查询同时到来时也是一样,对多个查询进行合并,最大限度地找到多请求间的重叠部分以减少重复检测。

步骤三,逻辑维度的复用。视频分析系统中提供多样化的分析方式,包括对视频中的数据进行物体检测、物体识别、物体追踪等各方面,这便需要多样的深度学习模型提供不同的检测能力。然而在这些不同的模型之间,互相也存在着复用的可能性。最直观的一点,物体检测在某些帧若检测不到人,便可直接免去物体识别模型在这些帧识别人的过程。反之,若物体识别已识别到有人,则物体检测也可免去对这些帧中对于人的检测。如图3所示,我们对物体检测与物体识别的数据建立关联,找到不同模型间存在关联性的数据从而进行互相过滤。例如,当物体识别模型识别到人时,在更新物体识别数据库的同时,也会将数据反馈给物体检测数据库进行更新,将检测结果标记为有人。当新的推理请求查询是否有人时便可直接根据此结果进行过滤。我们使用d1j记录第j帧中是否有人存在,使用rij记录第j帧中是否有人物i,r*j表示第j帧中所有的人物。根据这些性质,我们总结出如下两条定理。

定理一:如果d1j为0,那么当0<j<=m时,r*j也为0。

定理二:如果rij为1,那么当0<j<=m时,d1j也为1。

定理一表示,当第j帧检测到没有人时,那么目标识别模型在第j帧将会检测不到任何人。定理二表示,当第j帧中识别出人物i时,目标检测矩阵会自动更新第j帧中有人。由此,在进行逻辑复用时,我们便可根据定理一与定理二动态更新数据库数据,为目标检测和目标识别建立关联。

平衡查询的精度与速度

在目前的深度学习模型中,虽然分析精度在逐步提升,但随着精度提升而带来的资源消耗也越来越大,这就要求更长的运行时间。一般来说,精度高的模型,运行速度较慢,精度低的模型,运行速度较快。另一方面,视频分析流程中的图片分辨率,差异检测器的跳帧数等也都会对精度与速度产生影响。这就为分析过程中的参数配置带来了挑战。因为在实际应用中,不同的推理请求对于精度与速度的要求各不相同。部分请求如对绑架抢劫的检测需要较高的精度以保持正确性,为此可以牺牲掉部分速度;而诸如红绿灯检测等请求则需要较高的时效性,精度达到合适的水平即可。为此,如何合理的选择视频分析过程中的模型,分辨率,跳帧数等参数是面临的首要问题。

步骤一、对不同参数下的不同模型的精度与速度关系进行拟合,获取各个模型速度与精度的对应关系。在查询到来时便可选择最优的参数进行视频分析,以达到用户需求。

另一方面,差异检测器为精度的测量带来了不确定性。差异检测器检测当前帧与前一帧(参考帧)的相似度,在高度相似的情况下直接复用前一帧的分析结果,从而避免代价高昂的推理计算。但是,直接复用导致了复用结果与实际结果存在偏差,降低了检测精度。所以需要对差异检测器进行有效的精度评估,从而能够计算整体的有效精度,准确的满足用户的精度需求。由于差异检测器是对连续的前后两帧进行检测,那么显然后一帧的精度与前一帧的精度以及两帧之间的差异度密切相关。连续帧之间的这个特性符合马尔科夫链法则。

步骤二、根据马尔科夫链法则,由前一帧的精度以及两帧之间的差异度,再加上相应的调节参数,来预测后一帧的精度。通过大量的验证实验来不断更正调节参数的数值,从而能够进行准确的精度评价。我们使用δdiff代表两帧之间的差异度,使用a(fi-1)代表i-1帧的精度,使用k作为调节参数,那么根据马尔科夫链法则,第i帧的精度为:

a(fi-1)=k*δdiff*a(fi-1).

最后,推理请求之间的结果复用是有条件的复用,并不是不加考虑的完全复用,精度在复用中的影响尤其重要。譬如,当一个要求高精度结果的请求到来时,已存在的低精度结果显然无法复用给高精度请求。因此,存在不同精度的数据无法复用的问题。显然最直观的方法为抛弃低精度的结果,使用高精度模型进行重新检测,但这毫无疑问会带来较大开销。考虑到复用的数据是由深度学习模型和差异检测器共同带来的结果,例如深度学习模型检测第一帧,差异检测器用于处理后四帧,其中深度学习模型带来的结果精度相较于差异检测器带来的结果精度要高。例如,对于同一段视频数据,假定查询请求q1要求90%的精度,根据此要求,精度速度平衡部分选择跳帧步数为5的频率进行检测。即,每隔5帧通过深度学习模型进行一次识别,跳过的5帧通过差异检测器获取差异度。一段时间后,新的查询请求q2到来要求95%的精度,显然q1的结果并不能直接用于q2,此时,通过计算得知跳帧步数为2时可达到精度需求。首先,复用q1中的数据,即复用已检测过的帧,对使用差异检测器跳过的5帧,使用深度学习模型检测第3帧,这样即可达到跳帧步数为2的要求。最终达到有条件复用的效果。

步骤三、保留深度学习模型的结果,对差异检测器的部分结果(如后四帧中的某一帧)使用高精度模型进行重新检测。并充分复用差异检测器关于两帧之间相似度的计算结果,重新评估连续帧之间的精度,从而在整体上提高检测精度。

综合以上几个部分,针对多推理请求的数据复用模型总体架构如图4所示。该系统中提供多样化的视频分析请求,这些请求最终用到的深度学习模型主要有两类:物体识别模型与物体检测模型。首先。当带有检测操作(或识别操作)的请求到来时,根据空间维度的关联性,系统首先对请求进行合并,裁剪掉请求中存在重叠的部分。然后,在图中复用模块部分,根据时间维度的关联性,请求到物体检测数据库(或物体识别数据库)中进行检索,查询是否已有合适的数据可供复用。另外,根据逻辑间的关联性,应用物体识别数据库(或物体检测数据库)中数据对检测操作(或识别操作)进行过滤减少无效计算。当不存在可复用的数据时,调用配置好参数的深度学习模型进行分析。在调用深度学习模型之前,首先要根据用户关于精度与速度的需求,通过速度-精度平衡部分对相关参数进行配置,在满足用户精度需求的同时,达到尽可能高的速度。在图中inference部分,需要对相关参数如分辨率、深度学习模型的选择、跳帧率等进行合理配置,然后调用差异检测器与深度学习模型进行视频分析,最终将分析结果输出并存入数据仓库。精度提升模块则不断更新数据库中的结果精度,以便高精度的查询请求能够复用。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1