发明内容
本发明实施例一种视频流中目标的检测方法、装置、设备和计算机存储介质,提高了对视频流中目标的实时检测的准确性。
根据本发明实施例的一方面,提供一种视频流中目标的检测方法,该方法包括:
获取待检测视频流,从待检测视频流中选取当前待检测的当前帧,并获取当前帧的上一帧中目标的检测结果;
若当前帧的上一帧中包含目标,则利用当前帧的上一帧的检测结果中目标的位置区域、目标的置信度和目标检测分类器,对当前帧的多个候选窗口进行帧间加权滤波,并根据多个候选窗口的帧间加权滤波的结果和预设阈值,确定当前帧中目标的检测结果,目标检测分类器是基于预设样本图像的像素点对特征训练得到的分类器;
若当前帧的上一帧不包含目标,或当前帧为视频流的第一帧图像,则利用目标检测分类器,确定当前帧中目标的检测结果。
在一个实施例中,在利用当前帧的上一帧的检测结果中目标的位置区域、目标的置信度和目标检测分类器,对当前帧的多个候选窗口进行帧间加权滤波之前,方法还包括:
从预设样本图像中提取像素点对特征,并利用像素点对特征训练得到由多棵二叉决策树构成、并具有级联结构的目标检测分类器。
在一个实施例中,在确定当前帧中目标的检测结果之后,方法还包括:
将当前帧的下一帧更新为当前帧,执行获取当前帧的上一帧中目标的检测结果,直至遍历视频流中的所有图像,以实现对待检测视频流中目标的跟踪。
在一个实施例中,利用下面的表达式计算像素点对特征bintest:
其中,l1和l2为图像I中的任意两点,I(l1)为l1点处的像素强度,I(l2)为l2点处的像素强度,bintest(I;l1,l2)为图像I在任意两个点l1和l2处的像素点对特征。
在一个实施例中,利用当前帧的上一帧的检测结果中目标的位置区域、目标的置信度和目标检测分类器,对当前帧的多个候选窗口进行帧间加权滤波,包括:
利用当前帧的上一帧的检测结果中目标的位置区域,确定当前帧的搜索区域,并从搜索区域中选取当前帧的多个候选窗口;
利用目标检测分类器确定多个候选窗口中各候选窗口中目标的检测结果;
根据当前帧的上一帧的检测结果中目标的置信度和各候选窗口中目标的检测结果,对各候选窗口进行帧间加权滤波。
在一个实施例中,从搜索区域中选取当前帧的多个候选窗口,包括:
通过不同尺度的滑动窗口对搜索区域进行遍历得到多个子窗口,并计算多个子窗口中每一个子窗口与当前帧的上一帧中目标的位置区域之间的匹配度;
按照从高到低的顺序,选取匹配度的排名结果中前n名的每个子窗口为候选窗口,n为正整数。
在一个实施例中,计算多个子窗口中每一个子窗口与当前帧的上一帧中目标的位置区域之间的匹配度,包括:
获取当前帧的上一帧中目标的位置区域对应的颜色直方图和目标的物体轮廓,以建立匹配模型;
获取每一个子窗口对应的颜色直方图和目标的物体轮廓,并将每个子窗口的颜色直方图和目标的物体轮廓与匹配模型进行匹配,计算每个子窗口的匹配度。
在一个实施例中,利用目标检测分类器,确定当前帧中目标的检测结果,包括:
利用具有不同尺度的滑动窗口分别对当前帧进行遍历,得到当前帧的多个窗口图像;
利用目标检测分类器确定当前帧的多个窗口图像中各窗口图像中目标的检测结果,并根据各窗口图像中目标的检测结果确定包含目标的窗口图像;
对包含目标的窗口图像中目标的检测结果进行聚类,以获取当前帧中目标的检测结果。
在一个实施例中,根据多个候选窗口的帧间加权滤波的结果和预设阈值,确定当前帧中目标的检测结果,包括:
确定候选窗口的帧间加权滤波的结果大于预设阈值,则候选窗口包含目标;
从包含目标的候选窗口中,选取具有最大帧间加权滤波结果的候选窗口对应的目标的检测结果,作为当前帧中目标的检测结果。
在一个实施例中,利用下面的表达式计算候选窗口的帧间加权滤波的结果Rn:
Rn=K*Mn*Dp+(1-K)*Dn
其中,Dn为当前帧的多个候选窗口中的第n个候选窗口中目标的置信度,Mn为第n个候选窗口对应的匹配度;Dp为当前帧的上一帧中目标的置信度;K为大于零且小于1的常数。
在一个实施例中,目标包括人手和/或人的手臂。
根据本发明实施例的另一方面,提供一种视频流中目标的检测装置,该装置包括:
获取模块,用于获取待检测视频流,从待检测视频流中选取当前待检测的当前帧,并获取当前帧的上一帧中目标的检测结果;
检测模块,用于若当前帧的上一帧中包含目标,则利用当前帧的上一帧的检测结果中目标的位置区域、目标的置信度和目标检测分类器,对当前帧的多个候选窗口进行帧间加权滤波,并根据多个候选窗口的帧间加权滤波的结果和预设阈值,确定当前帧中目标的检测结果,目标检测分类器是基于预设样本图像的像素点对特征训练得到的分类器;
若当前帧的上一帧不包含目标,或当前帧为视频流的第一帧图像,则利用目标检测分类器,确定当前帧中目标的检测结果。
根据本发明实施例的再一方面,提供一种视频流中目标的检测设备,该设备包括:处理器以及存储有计算机程序指令的存储器;
处理器执行计算机程序指令时实现本发明实施例提供的视频流中目标的检测方法。
根据本发明实施例的再一方面,提供一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现本发明实施例提供的视频流中目标的检测方法。
根据本发明实施例中的视频流中目标的检测方法、装置、设备和计算机存储介质,通过利用当前帧的上一帧的检测结果和基于像素点对特征训练的目标检测分类器,对当前帧的多个候选窗口进行帧间加权滤波,并根据多个候选窗口的帧间加权滤波的结果和预设阈值,确定当前帧的检测结果,提高了对视频流中目标的实时检测的准确性和稳定性。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了提高对视频流中目标的实时检测的准确性,本发明实施例提供了一种视频流中目标的检测方法、装置、设备和介质,通过利用基于像素点对特征训练的目标检测分类器,以及视频流中当前帧的上一帧的检测结果对当前帧的多个候选窗口进行帧间加权滤波,实现了对视频流中目标的快速稳定的实时检测。
下面首先结合附图对本发明实施例提供的视频流中目标的检测方法进行详细说明。
图1示出根据本发明实施例提供的视频流中目标的检测方法的流程示意图。如图1所示,本实施例中的视频流中目标的检测方法100包括以下步骤:
S10,获取待检测视频流,从待检测视频流中选取当前待检测的当前帧,并获取当前帧的上一帧中目标的检测结果。
在本发明的实施例中,待检测视频流可以从手机、无人机等采用嵌入式系统的电子产品中获取,也可以从摄像头或其他视频终端中获取待检测的视频流。对于待检测视频流的获取方式以及视频终端的种类,本发明实施例不做具体限制。
在本发明的实施例中,当获取待检测视频流后,从待检测视频流中选取目前待检测的当前帧。其中,为了保证视频流中目标检测的准确性,一般按照视频流中图像的先后顺序依次进行检测。
在本发明的实施例中,为了保证视频流中目标实时检测的稳定性,在对当前帧进行目标检测时,需要先获取当前帧的上一帧中目标的检测结果,并根据当前帧的上一帧图像中目标的检测结果进一步确定当前帧中目标的检测结果。
在本发明的实施例中,目标包括人手和/或手臂,其中,手臂为肩以下手腕以上的部位。目标可以为各种姿态的人手和/或手臂,对于目标的姿态和类型,本发明实施例不做具体限制,可视具体应用场景进行选择。
S11,若当前帧的上一帧中包含目标,则利用当前帧的上一帧的检测结果中目标的位置区域、目标的置信度和目标检测分类器,对当前帧的多个候选窗口进行帧间加权滤波,并根据多个候选窗口的帧间加权滤波的结果和预设阈值,确定当前帧中目标的检测结果,目标检测分类器是基于预设样本图像的像素点对特征训练得到的分类器。
在本发明的实施例中,步骤S11包括以下步骤:
S111,利用当前帧的上一帧的检测结果中目标的位置区域,确定当前帧的搜索区域,并从搜索区域中选取当前帧的多个候选窗口。
在本发明的实施例中,根据当前帧的上一帧的检测结果中目标的位置区域的位置和大小,确定当前帧的搜索区域。作为一个具体示例,在当前帧的上一帧中,目标位于以P(x,y)为中心n×m的矩形区域内,那么在当前帧中,则将以P(x,y)为中心的(x+r*m)×(y+r*m)的矩形区域作为当前帧的搜索区域,r由视频的分辨率和具体应用场景来确定,通常不大于8。对于当前帧中搜索区域的确定方式,本发明实施例不做具体限制。
在本发明的实施例中,当确定当前帧的搜索区域后,为了提高当前帧中目标的检测速率,因此从搜索区域中选取多个候选窗口进行检测。其中,步骤S111包括以下步骤:
S1111,通过不同尺度的滑动窗口对搜索区域进行遍历得到多个子窗口,并计算多个子窗口中每一个子窗口与当前帧的上一帧中目标的位置区域之间的匹配度。
在本发明的实施例中,在对当前帧中的目标进行检测时,启动窗口搜索。具体地,通过将具有初始尺度的搜索窗口(即滑动窗口)按照预设间隔进行移动,以实现对当前帧的搜索区域进行遍历。然后,通过对滑动窗口的尺寸进行改变,比如放大或缩小滑动窗口,实现利用不同尺度的滑动窗口对搜索区域的遍历。具体地,滑动窗口从搜索区域的左上角开始向右下角移动,每次在水平方向或竖直方向移动预设步长,直至遍历完所有的可能情况,从而保证对当前帧的搜索区域中的所有区域进行检测。
作为一个具体示例,对于当前帧的搜索区域,首先以20像素×35像素的滑动窗口以5像素的间隔进行移动,进行遍历搜索区域;然后将20像素×35像素的滑动窗口以1.2的比例进行放大,直至最大尺度比例为4为止。对于滑动窗口的尺度以及移动步长,本发明实施例不做具体限制,可视具体应用场景而定。其中,每个不同尺度的滑动窗口以及尺度相同但位置不同的滑动窗口均为当前帧搜索区域的子窗口。
在本发明的实施例中,当获取搜索区域的多个子窗口后,为了进一步减少检测次数,提升检测的速度,以及对目标的跟踪,需要计算多个子窗口中每一个子窗口与当前帧的上一帧中目标的位置区域之间的匹配度,以选取当前帧的候选窗口。
在本发明的实施例中,步骤S1111包括以下步骤:
S1111-1,获取当前帧的上一帧中目标的位置区域对应的颜色直方图和目标的物体椭圆轮廓,以建立匹配模型。
在本发明的实施例中,当前帧的上一帧中目标的位置区域的颜色直方图,可以通过分别统计该目标在当前帧的上一帧中的位置区域内的R、G、B三个通道的直方图信息得到。目标的物体轮廓通过计算当前帧的上一帧中目标的位置区域的灰度图的梯度图得到。其中,梯度图通过采用Sobel算子提取目标在当前帧的上一帧中的位置区域的灰度图的横向和纵向的边缘信息进行获取。在本发明的实施例中,Sobel算子分为水平和垂直方向两种,分别如下所示:
当获取目标在当前帧的上一帧中的位置区域对应的颜色直方图和目标的物体轮廓后,根据该颜色直方图和物体轮廓建立匹配模型,用于搜索区域的子窗口进行匹配计算。对于匹配模型的具体形式,本发明实施例不做具体限制,能够体现当前帧的搜索区域与当前帧的上一帧中目标的位置区域的相似度即可。
S1111-2,获取每一个子窗口对应的颜色直方图和目标的物体轮廓,并将每个子窗口的颜色直方图和目标的物体轮廓与匹配模型进行匹配,计算每个子窗口的匹配度。
在本发明的实施例中,利用与步骤S1111-1中相同的方法,获取搜索区域中每一个子窗口的颜色直方图和以及每个子窗口中目标的物体轮廓。并将每个子窗口的颜色直方图和子窗口中目标的物体轮廓,与匹配模型进行匹配,从而计算每个子窗口与目标在当前帧的上一帧中的位置区域的匹配度。
S1112,按照从高到低的顺序,选取匹配度的排名结果中前n名的每个子窗口为候选窗口,n为正整数。
在本发明的实施例中,当获取每个子窗口与目标在当前帧的上一帧中的位置区域的匹配度后,将每个子窗口的匹配度按照从高到低排序。将匹配度在前n名的子窗口作为当前帧的候选窗口。对于n的具体取值,本发明实施例不做具体限制,可视具体应用场景而定。
S112,利用目标检测分类器确定多个候选窗口中各候选窗口中目标的检测结果。
在本发明的实施例中,当获取当前帧的候选窗口后,利用目标检测分类器获取每个候选窗口中目标的检测结果。其中,目标检测分类器是基于预设样本图像的像素点对特征训练得到的分类器。
由于视频流中目标的检测需要利用目标检测分类器,因此在步骤S11之前,还需要离线训练目标检测分类器。其中,目标检测分类器的离线训练包括以下步骤:
从预设样本图像中提取像素点对特征,并利用像素点对特征训练得到由多棵二叉决策树构成、并具有级联结构的目标检测分类器。
在本发明的实施例中,像素点对特征bintest可以利用下面的表达式进行计算:
其中,l1和l2为图像I中的任意两点,I(l1)为l1点处的像素强度,I(l2)为l2点处的像素强度,bintest(I;l1,l2)为图像I在任意两个点l1和l2处的像素点对特征。并且,l1和l2是归一化坐标,即这两点来自区域[-1,+1]×[-1,+1]。
本发明的实施例中,目标检测分类器由多级强分类器级联构成,每一级强分类器由基于像素点对特征的二叉决策树训练而成。其中,二叉决策树是一种二叉树形结构,每个内部节点表示一个属性上的测试,每个节点有两个分支,每个分支代表一个测试输出,每个叶节点代表一种类别。
在本发明的实施例中,在利用像素点对特征训练的目标检测分类器进行检测视频流中的目标时,能有效处理各种光照和环境的变化,无需对需要检测的视频流中的图像做预处理;且无需计算积分图、图像放大或者其他数据结构的转换,因此能够取得较高的检测准确率和检测速度。
在本发明的实施例中,所有的二叉决策树都基于同一种特征类型,最大程度减少了图像的处理步骤,减少了检测时的总体判断次数,从而加快了检测速度。
下面结合一实施例说明目标检测分类器的训练,图2示出本发明一实施例提供的目标检测分类器的训练方法200的流程示意图,其中目标检测分类器的训练包括以下步骤:
S210,采集样本图像。
在本发明的实施例中,预设样本图像包括正训练样本和负训练样本。其中,正训练样本为包含目标的图像,负训练样本为不包含目标的图像。
对于预设样本图像的产生,结合一具体示例进行说明。假设检测的目标为人手,对于正训练样本图像,可首先采集8000张已手工标注的人手彩色图片,分辨率不限;然后对每张人手图片做镜面、长宽和大小的7次变换,这样共得到8000*15=120000个正训练样本图像。对于正训练样本图像,记录每张正训练样本图像的中心点坐标、尺寸大小和标识信息。
负训练样本可以通过抠取正训练样本图像中的人手进行获得,或者可以采用其他不包含人手的图片作为负训练样本。负训练样本图像可以不做类似正训练样本图像的变换,负训练样本图像的中心点坐标在负训练样本图像上随机选取,尺寸则在负训练样本图像的尺寸数组中随机采样,直至负训练样本图像的数量与正负训练样本图像相同。
在本发明的实施例中,采集正训练样本图像和负训练样本图像后,将该正练样本图像和负训练样本图像按照预设存储格式进行存储,以用于目标检测分类器的训练。作为一个具体示例,训练样本图像的预设存储数据包括:图像尺寸、图像的中心坐标、二进制格式的图像字符串数据和图像的类别标识。
S220,训练新层。
在本发明的实施例中,步骤S220包括以下步骤:
S2201,初始化新层的训练参数。
在本发明的实施例中,目标检测分类器采用多层级联结构,每层由多棵二叉决策树组成。其中,需要训练的新层的训练参数包括该新层的最低召回率和最高误检率,以及该新层中二叉决策树的最大的数量H。
在本发明的实施例中,首先将采集的正训练样本图像和负训练样本图像生成训练样本图像集。假设训练样本图像集中共包含S个图像,利用Is表示第s个图像,并利用vs表示训练样本图像Is对应的类别,s=1,2,3.....S。其中,当vs=1时,代表对应的训练样本图像包含目标;当vs=-1时,代表对应的训练样本图像不包含目标。若要训练新层,需要初始化每个训练样本图像的权值并作归一化其权值。其中,每个训练样本图像Is的初始权重值可以利用下面的表达式进行计算:
其中,M为训练样本图像集中正训练样本的个数,N为训练样本图像集中负训练样本的个数。
S2202,根据最小化均方误差生成弱分类器。
在本发明的实施例中,从S2201中生成的训练样本图像集中每个训练样本图像中随机选取像素点对,并得出每个样本图像Is的像素点对的像素点对特征。然后对所有像素点对依次计算在所有训练数据上的加权均值平方误差,并将使加权均值平方误差最小的像素点对作为二叉决策树的节点的像素点对。利用使加权均值平方误差最小的像素点对将训练数据分为两部分,生成两棵子树,然后利用贪心算法构建弱分类器,即二叉决策树。其中,当前训练的二叉决策树为第k棵决策树Tk,其中,k=1,2,3…H。
在本发明的实施例中,加权均值平方误差的表达式如下:
其中,C
0和C
1是聚类中心分别为0和1的特征值的集合,
和
分别为像素点对特征的特征值(0和1)集合中样本图像对应类别的加权平均值,v为第k棵二叉决策树的输出。
S2203,更新训练样本图像的权重。
在本发明的实施例中,利用GentleBoost算法公式更新样本图像的权重ws,GentleBoost算法公式如下:
ws=wsexp(-vsTk(Is)) (4)
其中,Tk(Is)表示第k棵二叉决策树对于图像Is的输出。
在本发明的实施例中,更新样本图像的权重后,将更新后的权重归一化,使所有样本图像的权重之和为1。
S2204,判断是否达到该新层的训练结束条件。
在本发明的实施例中,判断是否结束新层的条件是该新层的误检率低于最高误检率,或该层中二叉决策树的数量大于预设数量H。其中,最低召回率决定该新层的阈值。
作为一个示例,该新层中二叉决策树的最大的数量H,则判断k是否大于等于H。若是,则结束该新层的训练,得到由H棵二叉决策树构成的强分类器,并返回步骤S2201继续下一个新层的训练。若k小于H,则令k=k+1,并循环S2202-S2204,继续训练下一棵二叉决策树。其中,H为训练一个新层(即强分类器)时需要迭代的次数,也是训练的强分类器中二叉决策树的棵数。
S230,确定满足目标检测分类器的结束条件,将S220中训练的得到的强分类器级联,产生最终的目标检测分类器。
在本发明的实施例中,通过重复步骤S220可以训练多个强分类器,当满足目标检测分类器的结束条件后,将训练的多个强分类器进行级联,即可得到目标检测分类器。若没有满足目标检测分类的结束条件,则继续返回步骤S220进行新层的训练。其中,目标检测分类器的结束条件可以由预设的目标检测分类器的检测率和误检率进行确定,本发明实施例不做具体限制。
在本发明的实施例中,利用离线训练的目标检测分类器即可实现对视频流中目标的检测。下面结合目标检测分类器对单帧图像的检测方法进行说明目标检测分类器对候选窗口的检测。图3示出本发明一实施例提供的目标检测分类器的检测方法300的流程示意图。其中,目标检测分类器对待检测图像的检测包括以下步骤:
S310,对待检测图像启动滑动窗口搜索,并确定初始尺度下的初始滑动窗口。
在本发明的实施例中,接收待检测的图像后,确定滑动窗口的初始尺度后,确定初始尺度下的初始滑动窗口。然后将初始尺度下的初始滑动窗口按预设步长移动,以遍历待检测图像的所有区域。其中,每一个滑动窗口为具有一定尺寸的窗口图像。
S320,利用目标检测分类器对初始尺度的滑动窗口进行检测。
在本发明的实施例中,首先利用离线训练的目标检测分类器对具有初始尺度的初始滑动窗口进行检测。然后依次对将初始尺度的每一个滑动窗口图像依次通过目标检测分类器中的所有二叉决策树,直至遍历具有初始尺度的每一个滑动窗口。
S330,判断初始尺度下滑动窗口中是否包含目标,若滑动窗口中包含目标,记录该目标的检测结果后,进入步骤S340,否则,直接进入步骤S340。
在本发明的实施例中,每一个具有初始尺度的滑动窗口图像通过一棵二叉决策树后会得到一个分类结果,这个分类结果在通过每棵二叉决策树的过程中不断累加。当某一级二叉决策树输出的结果小于预定阈值时,则拒绝该具有初始尺度的滑动窗口,并判定该具有初始尺度的滑动窗口中不包含目标。对于预定阈值的设定,本发明实施例不做具体限制。
若具有初始尺度的一滑动窗口通过了目标检测分类器中所有的二叉决策树,且分类结果大于等于预定阈值,则接收该滑动窗口,并判定该滑动窗口包含目标,该分类结果为该目标的置信度。当判定滑动窗口中包含目标时,记录该目标的置信度以及该目标在滑动窗口中的位置区域。也就是说,若一图像包含目标,则该图像通过目标检测分类器后得到的检测结果包括该目标的置信度以及该目标在图像中的位置区域。其中目标在图像中的位置区域可以用坐标和该区域的大小进行表征。
S340,判断具有初始尺度的滑动窗口是否搜索完毕。
在本发明的实施例中,若具有初始尺度的滑动窗口已经遍历完毕,则进入步骤S350;否则,移动到下一个具有初始尺度的滑动窗口,然后进入步骤S320。
S350,判断步骤S340中滑动窗口的尺度是否达到尺度上限。
在本发明的实施例中,若步骤S340中滑动窗口的尺度达到预设的尺度上限,则进入步骤S360。若步骤S340中滑动窗口的尺度没有达到尺度上限,则改变滑动窗口的尺度,并确定该尺度下的初始滑动窗口后,进入步骤S320,采用相似的检测方法对改变尺度后的滑动窗口依次进行检测,并获取检测结果。
S360,对滑动窗口的检测结果进行聚类。
在本发明的实施例中,利用目标检测分类器检测完所有尺度的滑动窗口后,对所有滑动窗口的结果进行聚类。具体地,第一滑动窗口中包含目标,该目标在第一滑动窗口中位于第一位置区域,置信度为D1。第二滑动窗口中包含目标,该目标在第二滑动窗口中位于第二位置区域,置信度为D2。将第一位置区域和第二位置区域的交集比上并集得出比值,若该比值大于预设数值,则判定这两个滑动窗口中的目标为同一目标。并且,该目标的置信度为D1和D2累加后的结果,该目标在图像中的位置区域为第一位置区域和第二位置区域的坐标和大小的均值。
作为一个示例,目标检测分类器可以为人手检测分类器。其中,人手包括手掌向前且五指并拢的人手或手掌向前且五指张开的人手。利用本发明实施例提供的方法,可以搜索到的最小人手的尺寸为18像素×30像素。在对图像中的人手进行搜索时,滑动窗口以5像素的间隔进行移动,遍历图像的搜索区域;然后将18像素×30像素的滑动窗口以1.12的比例进行放大,直至最大尺度比例为4为止。通过这种不同尺度的滑动窗口进行搜索,可以保证检测到1~4米范围内的人手。对于0.5~1米距离内的人手,可采用降低图像分辨率的方法。
在本发明的实施例中,利用步骤S310-S360中的方法可以实现对当前帧中各候选窗口的检测,并获取各候选窗口的检测结果。其中,候选窗口的检测结果分为包含目标或不包含目标。若候选窗口包含目标,则候选窗口的检测结果还包括该目标的置信度以及该目标在候选窗口中的位置区域。
S113,根据当前帧的上一帧的检测结果中目标的置信度和各候选窗口中目标的检测结果,对各候选窗口进行帧间加权滤波。
在本发明的实施例中,如果当前帧的上一帧中包含目标,则从该目标的检测结果中获取该目标的置信度。
在本发明的实施例中,可以根据当前帧的上一帧中目标的置信度、各候选窗口中目标的置信度以及各候选窗口与当前帧的上一帧中目标的位置区域的匹配度,对各候选窗口进行帧间加权滤波。
具体地,可以利用下面的表达式计算各候选窗口与当前帧的上一帧图像的帧间加权滤波的结果:
Rn=K*Mn*Dp+(1-K)*Dn (5)
其中,Dn为当前帧的多个候选窗口中的第n个候选窗口中目标的置信度,Mn为第n个候选窗口对应的匹配度;Dp为当前帧的上一帧中目标的置信度;K为大于零且小于1的常数。其中,K为当前帧的上一帧中目标的位置区域所占的权重,对于K的具体取值,本发明实施例不做具体限制,可视具体应用场景而定。
S114,确定候选窗口的帧间加权滤波的结果大于预设阈值,则候选窗口包含目标。
在本发明的实施例中,获取当前帧中各候选窗口的帧间加权滤波结果后,需要结合预设阈值,确定当前帧中目标的检测结果。具体地,将各候选窗口的帧间加权滤波结果与预设阈值进行比较,若候选窗口的帧间加权滤波的结果大于预设阈值,则判定该候选窗口包含目标。若候选窗口的帧间加权滤波的结果小于等于预设阈值,则判定该候选窗口不包含目标。
S115,从包含目标的候选窗口中,选取具有最大帧间加权滤波结果的候选窗口对应的目标的检测结果,作为当前帧中目标的检测结果。
在本发明的实施例中,从步骤S114中可以获取包含目标的多个候选窗口,将具有最大帧间滤波结果的候选窗口对应的检测结果作为当前帧中目标的检测结果。对于预设阈值的取值,本发明实施例不做具体限制。
S12,若当前帧的上一帧不包含目标,或当前帧为视频流的第一帧图像,则利用目标检测分类器,确定当前帧中目标的检测结果。
在本发明的实施例中,若当前帧为视频流的第一帧图像,或者当前帧的上一帧中不包含目标,则无法利用当前帧的上一帧的检测结果获取当前帧的搜索区域,从而无法获取当前帧的候选窗口,也就不存在帧间加权滤波的情况。因此,若当前帧的上一帧不包含目标,或当前帧为视频流的第一帧图像,直接利用训练的目标检测分类器进行确定当前帧中目标的检测结果。
其中,利用目标检测分类器,确定当前帧中目标的检测结果包括以下步骤:
A,利用具有不同尺度的滑动窗口分别对当前帧进行遍历,得到当前帧的多个窗口图像;
B,利用目标检测分类器确定当前帧的多个窗口图像中各窗口图像中目标的检测结果,并根据各窗口图像中目标的检测结果确定包含目标的窗口图像;
C,对包含目标的窗口图像中目标的检测结果进行聚类,以获取当前帧中目标的检测结果。
其中,对于步骤A-步骤C的方法,与步骤S310-S360中叙述的方法相似,在此不再赘述。
根据本发明实施例提供的视频流中目标的检测方法,通过采用基于像素点对特征训练的目标检测分类器,加快了对目标的检测速度,因此可以实现对视频流中目标的实时检测。并且,利用目标检测分类器结合颜色直方图和目标的物体轮廓模型,对当前帧的候选窗口与当前帧的上一帧进行帧间加权滤波,提高了对视频流中的目标进行实时检测的稳定性和准确性。
在一些人机交互的应用场景中,通过本发明实施例提供的视频流中目标的检测方法,可以训练对特定的人手手势进行识别的人手检测分类器,以实现对人机交互场景中,对人手手势进行识别。
由于本发明实施例提供的视频流中目标的检测方法,可以实现对视频流中人手的快速稳定检测,因此可以应用在手机、无人机等采用嵌入式系统的电子产品在各种复杂环境下对人手的实时检测的场景,同时也可以实现多人手的检测。
在本发明的一些实施例中,在步骤S12之后还包括:
S13,将当前帧的下一帧更新为当前帧,执行获取当前帧的上一帧中目标的检测结果,直至遍历视频流中的所有图像,以实现对待测视频流中目标的跟踪。
在本发明的实施例中,通过步骤S10-S12得出当前帧中目标的检测结果后,将当前帧的下一帧作为当前帧,并重复步骤S10-S12,直至将视频流中的所有帧图像进行遍历,以获取视频流中所有图像中目标的检测结果。根据本实施例提供的视频流中目标的检测方法,视频流中图像中目标的检测结果包括该目标在图像中的位置区域,因此可以实现对视频流中目标的追踪。
本发明实施例提供的视频流中的目标的检测方法,首先根据视频流中相邻帧图像的特性,根据当前帧的上一帧中目标的位置区域大致确定当前帧的搜索区域,实现了初步追踪,同时也减少了检测次数。然后根据颜色直方图和图像中目标的物体轮廓模型对视频流中的目标实现从当前帧的上一帧到当前帧的进一步跟踪。通过基于像素点对特征训练的目标检测分类器、颜色直方图和图像中目标的物体轮廓模型实现了对视频流中目标的快速和稳定的追踪。
通过本发明实施例提供的视频流中目标的检测方法,可以实现嵌入式系统的电子产品在各种复杂环境下对视频流中目标的动态追踪。
图4示出本发明一实施例的视频流中目标的检测装置400的结构示意图,该装置包括:
获取模块410,用于获取待检测视频流,从所述待检测视频流中选取当前待检测的当前帧,并获取所述当前帧的上一帧中目标的检测结果。
检测模块420,用于若所述当前帧的上一帧中包含所述目标,则利用所述当前帧的上一帧的检测结果中所述目标的位置区域、所述目标的置信度和所述目标检测分类器,对所述当前帧的多个候选窗口进行帧间加权滤波,并根据所述多个候选窗口的帧间加权滤波的结果和预设阈值,确定所述当前帧中所述目标的检测结果;所述目标检测分类器是基于预设样本图像的像素点对特征训练得到的分类器;
若所述当前帧的上一帧不包含所述目标,或所述当前帧为所述视频流的第一帧图像,则利用所述目标检测分类器,确定所述当前帧中所述目标的检测结果。
本发明实施例提供的视频流中目标的检测装置,通过利用基于像素点对特征训练的目标检测分类器结合颜色直方图和目标在图像中的物体轮廓模型,实现了对视频流中的目标的快速且稳定的实时检测。
在本发明的实施例中,视频流中目标的检测装置还包括:
训练模块430,用于从预设样本图像中提取像素点对特征,并利用所述像素点对特征训练得到由多棵二叉决策树构成、并具有级联结构的所述目标检测分类器。
在本发明实施例提供的视频流中目标的检测装置,所有的二叉决策树都是基于同一种特征类型进行训练,减少了图像的处理步骤,提高了检测的次数,因此可以对视频流中的目标进行实时检测。
在本发明的实施例中,视频流中目标的检测装置还包括:
更新模块440,用于将所述当前帧的下一帧更新为当前帧,执行所述获取所述当前帧的上一帧中所述目标的检测结果,直至遍历所述视频流中的所有图像,以实现对所述待测视频流中所述目标的跟踪。
本发明实施例提供的视频流中目标的检测装置,通过利用视频流中的相邻帧的图像中的颜色直方图和目标在图像中的物体轮廓模型进行匹配,实现了对视频流中目标的动态追踪。
在本发明的实施例中,利用公式(1)计算像素点对特征。
在本发明的实施例中,检测模块420,包括:
候选窗口确定单元4201,用于利用所述当前帧的上一帧的检测结果中所述目标的位置区域,确定所述当前帧的搜索区域,并从所述搜索区域中选取所述当前帧的多个候选窗口;
候选窗口检测单元4202,用于利用所述目标检测分类器确定所述多个候选窗口中各候选窗口中所述目标的检测结果;
帧间加权滤波单元4203,用于根据所述当前帧的上一帧的检测结果中所述目标的置信度和所述各候选窗口中所述目标的检测结果,对所述各候选窗口进行帧间加权滤波。
在本发明的实施例中,检测模块420,还包括:
候选窗口检测结果确定单元4204,用于确定所述候选窗口的帧间加权滤波的结果大于所述预设阈值,则所述候选窗口包含所述目标;
当前帧检测结果确定单元4205,用于从包含所述目标的候选窗口中,选取具有最大帧间加权滤波结果的候选窗口对应的所述目标的检测结果,作为所述当前帧中所述目标的检测结果。
在本发明的实施例中,候选窗口确定单元4201,包括:
匹配度计算子单元4201-1,用于通过不同尺度的滑动窗口对所述搜索区域进行遍历得到多个子窗口,并计算所述多个子窗口中每一个子窗口与所述当前帧的上一帧中所述目标的位置区域之间的匹配度;
匹配度选取子单元4201-2,用于按照从高到低的顺序,选取所述匹配度的排名结果中前n名的每个子窗口为所述候选窗口,n为正整数。
在本发明的实施例中,匹配度计算子单元4201-1,具体用于:
获取所述当前帧的上一帧中所述目标的位置区域对应的颜色直方图和所述目标的物体轮廓,以建立匹配模型;
获取所述每一个子窗口对应的颜色直方图和所述目标的物体轮廓,并将所述每个子窗口的颜色直方图和所述目标的物体轮廓与所述匹配模型进行匹配,计算所述每个子窗口的匹配度。
在本发明的实施例中,检测模块420,具体用于:
利用具有不同尺度的滑动窗口分别对所述当前帧进行遍历,得到所述当前帧的多个窗口图像;
利用所述目标检测分类器确定所述当前帧的多个窗口图像中各窗口图像中所述目标的检测结果,并根据所述各窗口图像中所述目标的检测结果确定包含所述目标的窗口图像;
对包含所述目标的窗口图像中所述目标的检测结果进行聚类,以获取所述当前帧中所述目标的检测结果。
在本发明的实施例中,利用公式(5)计算候选窗口的帧间加权滤波的结果。
在本发明的实施例中,目标包括人手和/或人的手臂。
本发明实施例提供的视频流中目标的检测装置,可以实现手机、无人机等采用嵌入式系统的电子产品在各种复杂环境下,对视频流中的目标进行稳定和准确的实时检测。
根据本发明实施例的视频流中目标的检测装置的其他细节与以上结合图1至图3描述的根据本发明实施例的视频流中目标的检测方法类似,在此不再赘述。
结合图1至图4描述的根据本发明实施例的视频流中目标的检测方法和装置可以由视频流中目标的检测设备来实现。图5是示出根据发明实施例的视频流中目标的检测设备的硬件结构500示意图。
如图5所示,本实施例中的视频流中目标的检测设备500包括:处理器501、存储器502、通信接口503和总线510,其中,处理器501、存储器502、通信接口503通过总线510连接并完成相互间的通信。
具体地,上述处理器501可以包括中央处理器(CPU),或者特定集成电路(ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。
存储器502可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器502可包括HDD、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器502可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器502可在视频流中目标的检测设备500的内部或外部。在特定实施例中,存储器502是非易失性固态存储器。在特定实施例中,存储器502包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
通信接口503,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
总线510包括硬件、软件或两者,将视频流中目标的检测设备500的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频流电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线510可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
也就是说,图5所示的视频流中目标的检测设备500可以被实现为包括:处理器501、存储器502、通信接口503和总线510。处理器501、存储器502和通信接口503通过总线510连接并完成相互间的通信。存储器502用于存储程序代码;处理器501通过读取存储器502中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行本发明任一实施例中的视频流中目标的检测方法,从而实现结合图1至图4描述的视频流中目标的检测方法和装置。
本发明实施例还提供一种计算机存储介质,该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本发明实施例提供的视频流中目标的检测方法。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。