一种实时视频的目标检测与识别方法和系统与流程

文档序号:18475904发布日期:2019-08-20 21:03阅读:344来源:国知局
一种实时视频的目标检测与识别方法和系统与流程

本发明涉及人工智能和图像识别技术领域,尤其涉及一种用于实时视频的目标检测与识别的方法和系统。



背景技术:

随着识别精度地不断提高,用卷积神经网络(cnn)来进行图像识别和分类的方法已逐渐被业界接受。在评价模型或者算法的性能时,则多采用imagenet(图像网络)数据集作为测试数据集。近年来,各种新的cnn网络结构被不断提出,从2012年的alexnet(alex网络)模型,到2014年的vgg(visualgeometrygroup,视觉几何组)和随后的googlenet(谷歌的lecun网络)和resnet(residualnetwork,残差网络)模型,cnn在最初的lenet(lecun网络)基础上取得了长足进展,imagenet数据集的最佳定位和分类成绩也在不断刷新。imagenet大规模视觉识别挑战赛(ilsvrc)的历年成绩中,top-5的错误率从2012年alexnet的16.4%逐年下降到2015年resnet的3.57%,在2016年更进一步下降到3%以下。与模型精度的提高向对应的,是网络结构的深度也在不断增加,ilsvrc2012时,alexnet只有8层,到ilsvrc2015,resnet网络深度已经达到152层,当前resnet的层数更是已经可以达到10^3的数量级。虽然比起alexnet和vgg,googlenet和resnet的全连接层数和全连接层的节点数量都有所减少,但由于层数的大量增加,总的模型运算量还是远增。

在目标定位和分类联合应用的场景(例如,手势识别这样的典型场景),上述介绍的各种网络结构目前基本都只能在图像目标区域占图像比例大于50%的情况下才能取得较好的分类效果。以手势识别为例,对于手势区域占比较小的情况,就很难聚焦到手势区域学习到手势相关特征,无法识别出相应的手势。

为了解决这一问题,一种处理方式是使用级联的cnn网络,在两级cnn网络中依次进行物体定位和分类识别。为了取得更好的识别效果,随着神经网络的深度增加,运算量也逐步加大,两级神经网络的运算将占用大量cpu资源,对于实时视频播放过程中的同步目标分类和识别这样的应用场景,将会给cpu带来巨大负担,对cpu的运算能力提出了更高的要求。此外,在移动终端的应用中,cpu高负荷运行产生的巨大热量也几乎是现有移动终端设备的硬件无法解决和承受的问题。



技术实现要素:

本发明旨在至少在一定程度上解决上述相关技术中的技术问题之一。提供一种用于实时视频的目标检测与识别方法和系统。

为了达到上述目的,根据本发明第一方面的实施例提出了一种用于实时视频的目标检测与识别的方法,其包括:

获取当前视频帧图像中目标物体的位置范围cx,其中,所述获取当前视频帧图像中目标物体的位置范围cx包括:

判断当前视频帧的前一帧图像的目标物体识别结果rx-1和两帧之前的图像的目标物体识别结果rx-2是否相同;

当两个识别结果rx-1和rx-2不相同时,通过第一级神经网络对当前视频帧的图像进行目标物体位置检测,获取当前帧图像中的目标物体位置范围cx;

当两个识别结果rx-1和rx-2相同时,不经过第一级神经网络,根据上一帧图像中的目标物体位置范围cx-1确定当前帧图像中的目标物体位置范围cx;以及

通过第二级神经网络,根据当前帧图像中目标物体的位置范围cx,对当前帧图像进行目标物体识别,得到当前帧图像的目标物体识别结果rx。

在一些实施例中,第一级神经网络对当前视频帧的图像进行目标物体位置检测,包括:

判断当前帧图像中是否包含目标物体;

若当前帧图像包含目标物体,则进一步获取当前帧图像中的目标物体位置范围cx;

若当前帧图像不含目标物体,则将判断当前帧图像中是否包含目标物体的间隔设置为每隔预定帧数执行一次,并持续进行判断直至帧图像中包含目标物体。

在一些实施例中,第二级神经网络根据目标物体在当前帧图像中的位置范围cx,对当前帧图像进行目标物体识别,得到识别结果rx,包括:

将目标物体在当前帧图像中的位置范围cx扩展,得到面积增大预定义倍数的扩展位置范围;

并在所述扩展位置范围内进行目标物体识别,得到识别结果rx。

在一些实施例中,根据上一帧图像中的目标物体位置范围cx-1确定当前帧图像中的目标物体位置范围cx,包括:

将上一帧图像中的目标物体位置范围cx-1作为当前帧图像中的目标物体位置范围cx;或者

根据上一帧图像中的目标物体位置范围,以及之前预定义帧数的图像中的目标物体位置范围,预测当前帧图像中的目标物体位置范围cx。

在一些实施例中,所述目标物体为人手;

所述通过第一级神经网络对当前视频帧的图像进行目标物体位置检测,获取当前帧图像中的目标物体位置范围cx包括:识别人手在当前视频帧图像中的位置范围;

所述通过第二级神经网络,根据当前帧图像中目标物体的位置范围cx,对当前帧图像进行目标物体识别,得到当前帧图像的目标物体识别结果rx,包括:对人手进行手势识别,识别结果为手势的姿态。

使用本发明的实时视频的目标检测与识别方法,能够利用前帧图像的目标物体位置检测结果,降低用于位置检测的第一级神经网络的运行频率,加快整个目标物体检测和识别的速度并同时降低cpu和内存资源的占用,从整体上改善识别算法的性能。在两级神经网络分别采用相同结构的前提下,使用本发明的方法与每帧图像的识别均运行第一级神经网络的方案相比,可节约cpu资源50%以上。

根据本发明第二方面的实施例提供了一种实时视频的目标检测与识别系统,其包括:

第一级神经网络,用于对视频帧图像进行目标物体的位置检测,获取目标物体位置范围;

第二级神经网络,用于根据目标物体位置范围,在视频帧图像中进行目标物体的识别,得到识别结果;以及

神经网络运行控制模块,用于根据过往视频帧图像的目标物体识别结果控制第一神经网络和第二神经网络工作,其中:

确定当前视频帧的前一帧图像的目标物体识别结果rx-1和两帧之前的图像的目标物体识别结果rx-2是否相同;

当两个识别结果rx-1和rx-2不相同时,控制第一级神经网络对当前视频帧的图像进行目标物体位置检测,获取当前帧图像中的目标物体位置范围cx;

当两个识别结果rx-1和rx-2相同时,不经过第一级神经网络,根据上一帧图像中的目标物体位置范围cx-1确定当前帧图像中的目标物体位置范围cx;以及

控制第二级神经网络,根据当前帧图像中目标物体的位置范围cx,对当前帧图像进行目标物体识别,得到当前帧图像的目标物体识别结果rx。

在一些实施例中,神经网络运行控制模块控制第一级神经网络对当前视频帧的图像进行目标物体位置检测,包括:

判断当前帧图像中是否包含目标物体;

若当前帧图像包含目标物体,则控制第一神经网络进一步获取当前帧图像中的目标物体位置范围cx;

若当前帧图像不含目标物体,则将判断当前帧图像中是否包含目标物体的间隔设置为每隔预定帧数执行一次,并持续进行判断直至帧图像中包含目标物体。

在一些实施例中,第二级神经网络根据目标物体在当前帧图像中的位置范围cx,对当前帧图像进行目标物体识别,得到识别结果rx,包括:

将目标物体在当前帧图像中的位置范围cx扩展,得到面积增大预定义倍数的扩展位置范围;

并在所述扩展位置范围内进行目标物体识别,得到识别结果rx。

在一些实施例中,神经网络运行控制模块根据上一帧图像中的目标物体位置范围cx-1确定当前帧图像中的目标物体位置范围cx,包括:

将上一帧图像中的目标物体位置范围cx-1作为当前帧图像中的目标物体位置范围cx;或者

根据上一帧图像中,以及之前预定义帧数的图像中的目标物体位置范围,预测当前帧图像中的目标物体位置范围cx。

在一些实施例中,所述目标物体为人手;所述第一级神经网络对当前视频帧的图像进行目标物体位置检测,获取当前帧图像中的目标物体位置范围cx包括:识别人手在当前视频帧图像中的位置范围;所述第二级神经网络,根据当前帧图像中目标物体的位置范围cx,对当前帧图像进行目标物体识别,得到当前帧图像的目标物体识别结果rx,包括:对人手进行手势识别,识别结果为手势的姿态。

使用本发明的实时视频的目标检测与识别系统,能够利用前帧图像的目标物体位置检测结果,降低用于位置检测的第一级神经网络的运行频率,加快整个目标物体检测和识别的速度并同时降低cpu和内存资源的占用,从整体上改善识别算法的性能。在两级神经网络分别采用相同结构的前提下,使用本发明的方法与每帧图像的识别均运行第一级神经网络的方案相比,可节约cpu资源50%以上。

为了实现上述目的,本发明第三方面实施例提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现根据本发明第一方面所述的实时视频的目标检测与识别方法。

为了实现上述目的,本发明第四方面实施例提供了一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,实现根据本发明第一方面所述的实时视频的目标检测与识别方法。

为了实现上述目的,本发明第五方面实施例提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现根据本发明第一方面所述的实时视频的目标检测与识别方法。

根据本发明第三到五方面的非临时性计算机可读存储介质,计算机程序产品和计算设备具有与根据本发明第一和第二方面的实时视频的目标检测与识别方法和系统类似的有益效果,在此不再赘述。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1是根据本发明实施例的目标检测与识别的级联神经网络工作原理示意图;

图2是根据本发明实施例的实时视频的目标检测与识别方法的流程示意图;

图3是根据本发明实施例的第一神网络进行目标物体位置检测的流程示意图;

图4是根据本发明的对目标物体位置范围进行扩展的示意图;

图5是根据本发明实施例的手势检测程序实现流程示意图;

图6是根据本发明实施例的实时视频的目标检测与识别系统的结构框图;

图7是根据本发明实施例的实时视频的目标检测与识别系统的神经网络运行控制模块结构框图;

图8是根据本发明实施例的计算设备的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

在进行实时视频的目标检测与识别之时,需要将视频拆分成一帧帧的图像,在单帧图像的基础上进行目标检测与识别。从肉眼的极限分辨频率角度开率,视频的流速30帧/秒以上人眼就已经无法进一步分辨,因此,目前视频的帧率一般都会设置在30帧/秒或以下。

以30帧/秒为例,经发明人测试,按照每帧图像通过两级cnn神经网络进行目标检测和识别的方法,第一级神经网络使用u-net(u形网络,是全卷积神经网络fcn的一种,适于图像语义分割),第二级神经网络使用vgg结构为例,硬件设备选用iphonex(属于现有移动终端中性能较佳的那一个级别),运行实时视频目标检测和识别时,cpu的占用率可达45%左右。如果采用更复杂的网络结构,cpu的占用率还会进一步增加。

对于边播放视频,边通过摄像头拍摄手势识别用户评价这样的应用场景,或者是视频直播,同时对手势、表情或者其他目标进行识别的场景,由于视频信息处理本身对cpu的使用就非常高,再加上目标物体识别所占用的,cpu会一直处于一种负载非常高的状态。对于移动终端来说,cpu持续高负荷运行会使机身发热发烫,无论对于用户还是机器的硬件本身大部分时候都是无法接受的。

并且,为了使目标识别结果和视频帧同步,也可能会需要阻塞主线程。对于计算能力比较低的中低端设备,由于cpu的算力较差,处理目标识别时间较长,会导致视频渲染帧率下降,视频卡顿等现象,使得目标识别的神经网络在低端机型上无法使用。

为了解决现有的目标识别方案cpu占用高,识别时间长的问题。本文提出一种高性能的目标检测与识别的方法。利用相邻视频帧中,目标物体的大范围位移概率较小的特点,在视频帧之间目标物体不发生位移或者位移不影响识别时,利用历史上的目标物体位置范围识别结果来确定当前视频帧的目标物体位置范围,减少用于位置检测的前级神经网络的运行,从而降低计算量。

下面参考附图对本发明实施例的方法和装置进行详细的说明。

为了更好地理解本发明,首先介绍用级联的两级神经网络进行目标检测与识别的工作原理。图1是根据本发明实施例的目标检测与识别的级联神经网络工作原理示意图。其中,用于目标检测与识别的神经网络可包括第一级神经网络110(也称为前级网络)和第二级神经网络120(也称为后级网络)。

第一级神经网络110,用于对视频帧图像进行目标物体的位置检测,获取目标物体位置范围,即目标物体在图中的区域。位置检测可以通过例如对图像进行语义分割等方式实现。其输出可以是包含目标物体的轮廓信息的位置检测识别结果位置范围,经过裁切和调整大小后得到包含目标物体的图像区域。例如,可以用来识别图像中的人手,并确定人手的位置范围(在图像中的所在区域)。或者是用来识别人脸,得到人脸的位置范围(在图像中的所在区域)。

第二级神经网络120,用于根据目标物体位置范围(在图像中的所在区域),对视频帧图像进行目标物体的细节或者特征的识别,得到识别结果。例如,进行手势分类,得到手势类型。或者是用来识别人脸,得到人脸的表情等。

参见图1,其中,待识别的图像210为一幅包含人手的图像,图像210可以是一段人手动作的视频中的一帧。目标物体为人手,目的是识别人手的手势。首先经过第一级神经网络110,通过语义分割进行目标位置检测,得到图像中目标物体——人手的轮廓。根据人手的轮廓可确定目标物体的位置范围。根据位置范围,获取图像210中对应目标物体位置范围的子图像,即可用于下一步的目标物体的进一步识别。例如,可对图像210进行裁切和调整大小,得到含有人手,且人手占据绝大部分画面面积的适于手势识别的子图像240。之后,将子图像240输入到第二神经网络120,进行手势识别,得到处理后的输出图像250和输出的对应手势类别的特征向量(以柱状图260表示),例如,在本实施例中,该柱状图260表示的是手势的含义是“好”或者“称赞”。

通过对第一级神经网络和第二级神经网络运行的分析,就目前常用的几种cnn结构来说,目标物体的位置检测任务由于可能涉及区分目标物体和背景,以及目标物体的边缘检测等,可能需要较多的卷积层,所需的计算量也相对较大。相对于目标检测,分类任务的特征更加容易提取,因此第二神经网络所需的网络结构相对没有那么复杂。以手势识别为例,实验也证明,在整个手势识别过程中,第一级神经网络的耗时和cpu占用约是第二级神经网络的五倍。也就是说,目标检测和识别过程中的主要消耗是在第一级神经网络上。

在实际场景中,例如利用移动终端进行直播时,用户在对着手机比手势或者做表情的时候,手势和表情可能会不断变换,但是手的位置或脸的位置大部分时间是变化很小的,基本不动或者缓慢移动,对于前级网络,可以参用上一次前级的结果对当前帧的手或脸的范围进行估计,并用后级网络计算出的结果对估计的范围进行有效性验证。

图2是根据本发明实施例的实时视频的目标检测与识别方法的流程示意图。其中,对各个视频帧中目标物体的检测与识别,可以包括步骤s100和s200,其中步骤s100进一步包括子步骤s110到s130。

第一级神经网络和第二级神经网络可以均使用卷积神经网络。并且预先进行训练,得到相应的模型参数后,在进行目标检测与识别的过程中直接根据训练好的模型参数进行计算。

其中,第一级神经网络可以使用现有技术中各种适用于进行目标物体位置检测的网络模型,例如,全卷积神经网络(fcn)模型,本发明对此没有限制。在一些实施例中,第一级神经网络可以使用适于实现图像语义分割的u-net模型。

关于使用fcn以及u-net实现视频帧图像语义分割的具体方式,与相关技术中的图像语义分割实现类似,在此不再赘述。例如,使用fcn实现图片语义分割的一种实现方式可以参见jonathanlong,evanshelhamer,trevordarrell,fullyconvolutionalnetworksforsemanticsegmentation,https://arxiv.org/abs/1411.4038v2。使用u-net实现图片语义分割的一种实现方式可以参见:olafronneberger,philippfischer,thomasbrox,u-net:convolutionalnetworksforbiomedicalimagesegmentation,https://arxiv.org/abs/1505.04597。

第二级神经网络可以使用现有技术中各种适用于进行目标物体识别的网络模型,例如,alexnet、vgg、googlenet和resnet等,本发明对此没有限制。可以根据识别的精度需求和硬件计算能力选择相应的网络模型。

例如,对于手势识别,综合考虑模型复杂度和识别精度的需求,第二级神经网络可以使用vgg模型。相关技术中使用vgg进行目标物体特征识别的各种方法均可以用于本发明的第二神经网络,对此没有特殊的要求,也不再赘述细节。对于表情识别,随着深度学习技术的飞速发展,使用深度神经网络进行基于非显示特征的表情识别的精确度已经越来越高,直接使用级联的两级神经网络进行人脸的表情识别已展现出非常好的应用前景。alexnet、vgg、googlenet和resnet等网络结构也均可用于表情识别和手势识别。

第一级神经网络参数可按照目标位置检测目的进行模型训练得到,而第二级神经网络的参数可按照目标识别的目的训练,例如按照自适应分类,或者根据给定类别分类的标注数据进行模型训练得到。

在进行实时视频的目标检测与识别的过程中,对于拆分的每幅视频帧图像,首先,在步骤s100,获取当前视频帧图像中目标物体的位置范围cx。

所述目标物体的位置范围cx可以是根据目标物体的轮廓确定的一个规则形状的范围,例如,图1中图像240所示的矩形范围,以便于后续的图像中目标物体的进一步识别。位置范围cx可以用能够表征其的坐标范围来表示。例如,矩形的4个顶点,圆形的圆心和半径等,在图像处理中,以矩形范围的使用居多。根据目标物体的位置范围cx即可以从当前帧图像中获得相应的适用于第二神经网络进一步识别的子图像。

由于相邻视频帧中,目标物体的位置较接近或者不变的概率很大,因此,可根据当前帧之前的历史帧图像的识别结果来确定是否需要运行第一神经网络进行位置检测,从而节约算力。步骤s100可以具体按照下述步骤s110到s130实现。

在步骤s110,判断当前视频帧的前一帧图像的目标物体识别结果rx-1和两帧之前的图像的目标物体识别结果rx-2是否相同。

这一步骤主要为了估计将上一帧图像的位置检测结果用于本帧的可行性。当前一帧和之前的一帧的识别结果rx-1和rx-2相同时,通常意味着目标物体处于较稳定的状态,可能没有发生移动和姿势变化。而rx-1和rx-2不相同时,则目标物体位置发生变化的概率较大。

以手势识别为例,当手势发生变化时,识别结果自然是不同的。除此之外,当目标人手位置发生了变化,而使得第二级网络的输入图像中不含人手时,可能由于背景物体的存在,仍旧可能得出识别结果,也就是说,位置范围cx-1内不含“手”的情况,也可能反映在手势识别结果rx-1的变化上。

因此,当两个识别结果rx-1和rx-2不相同时,执行步骤s130,通过第一级神经网络对当前视频帧的图像进行目标物体位置检测,获取当前帧图像中的目标物体位置范围cx。

参见图3,图3是根据本发明实施例的第一神网络进行目标物体位置检测的流程示意图。第一级神经网络对当前视频帧的图像进行目标物体位置检测,可包括:步骤s131,首先判断当前帧图像中是否包含目标物体;若当前帧图像包含目标物体,则进一步执行步骤s133获取当前帧图像中的目标物体位置范围cx;若当前帧图像不含目标物体,则显然无需进一步的识别。此时,执行步骤s132,对于新的视频帧,可对于每帧或预定帧数重复执行判断是否有手的步骤。

考虑到对于手势识别或者表情识别等应用场景,人体的动作速度一般不会过高,按照30帧/秒的帧率,如果当前帧中不含目标物体(例如,人手或人脸),可能随后的若干帧中,仍然是不含目标物体的。因此,可将判断当前帧图像中是否包含目标物体的间隔设置为每隔预定帧数执行一次,并持续进行判断直至帧图像中包含目标物体。例如,对于手势识别,可每隔10-20帧判断一次帧图像中是否有手。

至于的具体的位置检测过程,则可以使用任意一种相关技术中的位置检测算法,本发明对此没有限定。

当两个识别结果rx-1和rx-2相同时,执行步骤s120,不经过第一级神经网络,根据上一帧图像中的目标物体位置范围cx-1确定当前帧图像中的目标物体位置范围cx。具体而言,可以直接将上一帧图像中的目标物体位置范围cx-1作为当前帧图像中的目标物体位置范围cx。此种方式比较适合目标物体静止或者运动幅度微小的情况。

考虑到有时目标物体可能是移动的,例如手势识别时,用户可能长时间手部保持同一位置会疲惫,可以通过改变手部位置缓解疲劳,此时手在帧图像中的位置则可能是存在较缓慢的变动。或者是,表情识别时,头部可能会转动移动等,导致人脸位置的改变。因此,在一些实施例中,可根据上一帧图像中的目标物体位置范围,以及之前预定义帧数的图像中的目标物体位置范围,预测当前帧图像中的目标物体位置范围cx。基于手部动作的连续性,简单的线性或者低级多项式形式的移动路径拟合算法,即可得到较好的预测效果,从而获取较准确的目标物体位置范围cx。

在步骤s140,通过第二级神经网络,根据当前帧图像中目标物体的位置范围cx,对当前帧图像进行目标物体识别,得到当前帧图像的目标物体识别结果rx。

考虑到目标物体在两帧之间可能发生的小范围移动,为了使利用前帧的位置检测检测结果来预测本帧中目标物体的位置范围的准确度更高,可以将每帧图像中目标物体位置范围进行扩展,以一个更大范围的图像来作为第二级神经网络的输入。

即,在第二级神经网络根据目标物体在当前帧图像中的位置范围cx,对当前帧图像进行目标物体识别之前,将目标物体在当前帧图像中的位置范围cx扩展,得到面积增大预定义倍数的扩展位置范围;并在所述扩展位置范围内进行目标物体识别,得到识别结果rx。

参见图4,其中内圈的方框410中示出的是当前帧图像中的位置范围cx,外圈的方框内的范围表示扩展后用于第二级神经网络的新的位置范围。

在一些实施例中,本发明的方法被用于人的手势识别。其中,所述目标物体为人手;所述通过第一级神经网络对当前视频帧的图像进行目标物体位置检测,获取当前帧图像中的目标物体位置范围cx包括:识别人手在当前视频帧图像中的位置范围;所述通过第二级神经网络,根据当前帧图像中目标物体的位置范围cx,对当前帧图像进行目标物体识别,得到当前帧图像的目标物体识别结果rx,包括:对人手进行手势识别,识别结果为手势的姿态。

下面结合图5,对使用本发明的方法进行手势识别的实施例进行详细说明。图5是根据本发明实施例的手势检测程序实现流程示意图。其中,设置变量dofun用于判断是否需要运行第一级神经网络的标识,dofcn变量可设为二值变量,例如取值“yes”(是)和“no”(否)。分别对应执行和不执行第一级神经网络的目标检测。

在步骤s400,开始执行。

步骤s410,在每帧检测开始前,先对dofcn变量的值进行判断。如果dofcn值为yes则执行步骤s420,如果dofcn值为no则执行步骤s430。

一般来说,dofcn的值可根据上一帧后级网络和上上一帧的第二级神经网络的识别结果而定。假设上一帧后级网络的识别结果为rx-1,上上一帧的后级网络的识别rx-2,如果rx-1不等于rx-2,则dofcn=yes;相等则dofcn=no,第一帧时dofcn=yes。

步骤s420,dofcn为yes,先对此帧执行前级网络,即使用第一神经网络计算,进行帧图像中目标物体的位置检测。

首先,在步骤s422,判断当前帧图像中是否有手。如果有手,则执行步骤s430,无手则执行步骤s424。

步骤s424,由于第一级神经网络判断当前视频帧中没手,则将dofcn值为yes,直接跳过当前帧的后级检测,并此跳过此帧过后的十四帧的前级检测和后级前级,并直接反馈给用户图视频中没有手。第十五帧开始重新恢复检测。当然,本实施例以每隔15帧为例,其它的帧间隔也是可以的。

在步骤s430,第一级神经网络判断当前视频帧中有手,则由第二级神经网络计算,在检测到的目标位置范围内,进行目标识别。利用上一帧中目标物体的位置范围,对当前帧图像进行裁剪,得到目标物体位置范围对应的子图像,第二级神经网络根据子图像的区域进行计算,并得出手势类型识别结果为rx。

之后,由于“手”已经进入了视频帧的范围内,不必再以大的帧间隔进行检测。因此,在接下来的步骤s432,将dofcn置为no,并将步骤s422的执行设置为每帧进行一次判断。

如果是在步骤s410中,dofcn值为no而直接执行的步骤s430,使用第二级神经网络计算,在检测到的目标位置范围内,进行目标识别。则执行之后,可以进一步执行s440,判断dofcn值是否需要修改。

在步骤s440,将当前帧的识别结果与上一帧的识别结果进行比较,从而用于预测下一帧是否可以使用当前帧的目标位置范围和设置相应的dofcn值。在当前帧的识别结果与上一帧的识别结果相同时,执行步骤s444,不同时执行步骤s442。

在步骤s442,将dofcn值设置为yes,并将步骤s422的执行设置为每帧进行一次判断。

在步骤s44,将dofcn值设置为no,并将步骤s422的执行设置为每帧进行一次判断。

在步骤s450,完成对当前帧的处理,判断是否有新的视频帧到达,如果有,则返回步骤s410,重新开始判断dofcn值。如果没有新的视频帧,则执行步骤s460,结束识别过程。

通过上述步骤,可以对手势进行快速准确的识别。进行人脸的表情识别的过程与此类似,只是在将人手和手势替换成人脸和表情,神经网络模型的结构和参数进行相应调整,但是整体的思路是一致的,因此不再赘述。

使用本发明的实时视频的目标检测与识别方法,能够利用前帧图像的目标物体位置检测结果,降低用于位置检测的第一级神经网络的运行频率,加快整个目标物体检测和识别的速度并同时降低cpu和内存资源的占用,从整体上改善识别算法的性能。在两级神经网络分别采用相同结构的前提下,使用本发明的方法与每帧图像的识别均运行第一级神经网络的方案相比,可节约cpu资源50%以上。

以手势识别为例,按照每秒30帧的帧率,设对于每帧图像,第一级神经网络的执行耗时为t1,第二级神经网络的执行耗时为t2,t1=5t2。则,在出现视频帧内无手的情况时,使用本发明方法与不使用的情况的耗时比为:2*t1/30*(t1+t2)=2*10*t2/30*(5t2+t2)=11.11%,相应地,可视为其计算量和cpu占用上约为使用本方法之前的百分之11.11。

对于视频帧内有手的情况,经统计,在手势变换和正常速度移动情况下,手势位置的预测在每3帧中大约可以命中2帧,使用本发明方法与不使用的情况的耗时比为:(10*t1+30*t2)/30*(t1+t2)=60*t2/30*(5t2+t2)=44.44%,相应地,可视为其计算量和cpu占用上约为使用本方法之前的百分之44.44。

为了实现上述第一方面实施例中的方法,本发明第二方面的实施例提出了一种实时视频的目标检测与识别装置。

所述实时视频的目标检测与识别装置的实现可包括一个或多个计算设备,所述计算设备包括处理器和存储器,所述存储器上存储有包括可在所述处理器上运行的计算机程序指令的应用程序。所述应用程序可以划分为多个程序模块,用于系统各个组成部分的相应功能。其中,程序的模块的划分是逻辑上的而非物理上的,每个程序模块可以运行在一个或多个计算设备上,一个计算设备上也可以运行一个或一个以上的程序模块。以下对本发明的装置按照程序模块的功能逻辑划分进行详细说明。

图6是根据本发明实施例的实时视频的目标检测与识别装置结构框图。其中,根据本发明的装置100可以包括第一级神经网络110,第二级神经网络120和神经网络运行控制模块130。

所述实时视频的目标检测与识别装置100可以采用包括处理器和存储器的计算设备实现,所述存储器中存储有可被所述处理器执行的程序模块,各个程序模块被执行时,控制所述计算设备实现相应的功能。例如,第一级神经网络110,第二级神经网络120和神经网络运行控制模块130可以实现为这样的程序模块。

第一级神经网络110,用于对视频帧图像进行目标物体的位置检测,获取目标物体位置范围。

第二级神经网络120,用于根据目标物体位置范围,在视频帧图像中进行目标物体的识别,得到识别结果。

神经网络运行控制模块130,用于根据过往视频帧图像的目标物体识别结果控制第一神经网络和第二神经网络工作。其中,确定当前视频帧的前一帧图像的目标物体识别结果rx-1和两帧之前的图像的目标物体识别结果rx-2是否相同;当两个识别结果rx-1和rx-2不相同时,控制第一级神经网络对当前视频帧的图像进行目标物体位置检测,获取当前帧图像中的目标物体位置范围cx;当两个识别结果rx-1和rx-2相同时,不经过第一级神经网络110,根据上一帧图像中的目标物体位置范围cx-1确定当前帧图像中的目标物体位置范围cx;以及控制第二级神经网络120,根据当前帧图像中目标物体的位置范围cx,对当前帧图像进行目标物体识别,得到当前帧图像的目标物体识别结果rx。

参见图7,图7是根据本发明实施例的实时视频的目标检测与识别系统的神经网络运行控制模块结构框图。神经网络运行控制模块130可进一步包括:识别结果比较单元131、第一级神经网络运行控制单元132、目标位置物体范围确定单元133和第二级神经网络运行控制单元134。

识别结果比较单元131,用于判断当前视频帧的前一帧图像的目标物体识别结果rx-1和两帧之前的图像的目标物体识别结果rx-2是否相同。

第一级神经网络运行控制单元132,用于当两个识别结果rx-1和rx-2不相同时,控制第一级神经网络对当前视频帧的图像进行目标物体位置检测。

在一些实施例中,控制第一级神经网络110对当前视频帧的图像进行目标物体位置检测,可包括:判断当前帧图像中是否包含目标物体;若当前帧图像包含目标物体,则控制第一神经网络进一步获取当前帧图像中的目标物体位置范围cx;若当前帧图像不含目标物体,则将判断当前帧图像中是否包含目标物体的间隔设置为每隔预定帧数执行一次,并持续进行判断直至帧图像中包含目标物体。

目标位置物体范围确定单元133,用于根据当前帧第一级神经网络的目标物体位置检测结果或者历史确定的目标物体范围,获取当前帧图像中的目标物体位置范围cx。

在一些实施例中,根据上一帧图像中的目标物体位置范围cx-1确定当前帧图像中的目标物体位置范围cx,可包括:将上一帧图像中的目标物体位置范围cx-1作为当前帧图像中的目标物体位置范围cx。或者,在另一些实施例中,可根据上一帧图像中,以及之前预定义帧数的图像中的目标物体位置范围,预测当前帧图像中的目标物体位置范围cx。

第二级神经网络运行控制单元134,用于控制第二级神经网络120,根据当前帧图像中目标物体的位置范围cx,对当前帧图像进行目标物体识别,得到当前帧图像的目标物体识别结果rx。

在一些实施例中,对当前帧图像进行目标物体识别之前,可根据目标物体在当前帧图像中的位置范围cx,将目标物体在当前帧图像中的位置范围cx扩展,得到面积增大预定义倍数的扩展位置范围;并将所述扩展位置范围用于第二级神经网络进行目标物体识别,得到识别结果rx。

特别是,在一些实施例中,所述目标物体可为人手;所述第一级神经网络110对当前视频帧的图像进行目标物体位置检测,获取当前帧图像中的目标物体位置范围cx包括:识别人手在当前视频帧图像中的位置范围;第二级神经网络120根据当前帧图像中目标物体的位置范围cx,对当前帧图像进行目标物体识别,得到当前帧图像的目标物体识别结果rx,包括:对人手进行手势识别,识别结果为手势的姿态。

本发明实时视频的目标检测与识别装置中的各个模块的功能和作用的实现过程具体详情可参见上述方法中对应步骤的实现过程。对于装置实施例而言,由于其基本对应于方法实施例,前述对本发明的方法实施例的解释说明也适用于本发明的装置实施例。为避免冗余,在装置实施例中将不会对所有细节进行重复,相关未尽之处可参见上述结合图1到图5对本发明实时视频的目标检测与识别方法实施例的相关描述。

使用本发明的实时视频的目标检测与识别方法,能够利用前帧图像的目标物体位置检测结果,降低用于位置检测的第一级神经网络的运行频率,加快整个目标物体检测和识别的速度并同时降低cpu和内存资源的占用,从整体上改善识别算法的性能。在两级神经网络分别采用相同结构的前提下,使用本发明的方法与每帧图像的识别均运行第一级神经网络的方案相比可节约cpu资源50%以上。

本发明第三方面的实施例提出了一种非临时性计算机可读存储介质,其上存储有可执行指令,所述可执行指令在处理器上运行时,实现如本发明第一方面实施例所述的实时视频的目标检测与识别方法。该存储介质可以作为设备的一部分设置在其上;或者当该设备可以被服务器远程控制时,该存储介质可以设置在对该设备进行控制的远程服务器上。

用于实现本发明方法的计算机指令的可以采用一个或多个计算机可读的介质的任意组合来承载。所谓非临时性计算机可读介质可以包括任何计算机可读介质,除了临时性地传播中的信号本身。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

本发明第四方面的实施例提供了一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,实现根据本发明第一方面实施例所述的实时视频的目标检测与识别方法。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

本发明第五方面实施例提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现根据本发明第一方面所述的实时视频的目标检测与识别方法。

上述使用根据本发明的存储介质、计算机程序产品和计算设备,其相关部分的具体实施方式可以从相应的本发明的实时视频的目标检测与识别方法或装置的实施例中获得,并具有与相应的本发明的实时视频的目标检测与识别方法或装置相似的有益效果,在此不再赘述。

图8示出了适于用来实现本申请实施方式的示例性计算设备的框图。图8显示的计算设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图8所示,计算设备12可以通用计算设备的形式实现。计算设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industrystandardarchitecture;以下简称:isa)总线,微通道体系结构(microchannelarchitecture;以下简称:mac)总线,增强型isa总线、视频电子标准协会(videoelectronicsstandardsassociation;以下简称:vesa)局域总线以及外围组件互连(peripheralcomponentinterconnection;以下简称:pci)总线。

计算设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(randomaccessmemory;以下简称:ram)30和/或高速缓存存储器32。计算设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性的计算机可读存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图中未显示,通常称为“硬盘驱动器”)。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(compactdiscreadonlymemory;以下简称:cd-rom)、数字多功能只读光盘(digitalvideodiscreadonlymemory;以下简称:dvd-rom)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。

计算设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(localareanetwork;以下简称:lan),广域网(wideareanetwork;以下简称:wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算设备12的其它模块通信。要说明的是,尽管图中未示出,可以结合计算设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的方法。

根据本发明第三到五方面的非临时性计算机可读存储介质,计算机程序产品和计算设备,可以参照根据本发明第一方面实施例具体描述的内容实现,并具有与根据本发明第一方面的实时视频的目标检测与识别方法类似的有益效果,在此不再赘述。

需要说明的是,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,例如两个,三个等,除非另有明确具体的限定。

本技术领域的普通技术人员可以理解实现上述实施例的方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

在本说明书的描述中,流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一个实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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