CN104881640B - 一种获取向量的方法及装置 - Google Patents
一种获取向量的方法及装置 Download PDFInfo
- Publication number
- CN104881640B CN104881640B CN201510249856.7A CN201510249856A CN104881640B CN 104881640 B CN104881640 B CN 104881640B CN 201510249856 A CN201510249856 A CN 201510249856A CN 104881640 B CN104881640 B CN 104881640B
- Authority
- CN
- China
- Prior art keywords
- video frame
- pixel
- adjacent
- flow field
- optical flow
- 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
Classifications
-
- 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/41—Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
- G06V20/42—Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items of sport video content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种获取向量的方法,用于提供一种获取视频中的运动向量的方式。所述方法包括:对视频的X个视频帧按照第一算法进行处理,得到N个像素点一一对应的N条运动轨迹;其中,一条运动轨迹描述了一个像素点在X个视频帧中位置的变化;N个像素点是按照预设规则在X个视频帧中选择出来的;采用预设的深度神经网络对X个视频帧进行处理,得到X个视频帧的深度特征;确定组成每条运动轨迹的像素点在X个视频帧中的位置,并从深度特征中获取每个位置的子深度信息,根据每个位置的子深度信息得到轨迹深度特征向量,轨迹深度特征向量用于表征N条运动轨迹在X个视频帧中的深度信息。本发明还公开了相应的装置。
Description
技术领域
本发明涉及视频识别技术领域,特别涉及一种获取向量的方法及装置。
背景技术
随着视频信息的***式的增长,人工处理大量视频信息已经变得越来越不现实,然而视频监控、视频检索等需求变得越来越大,如何让计算机能够正确理解视频的内容,是一件有挑战也有意义的工作。
在视频识别领域中,识别视频中的人、物的动作和行为等技术,是需求比较广泛的。比如在对视频进行检索和分类时,通常需要对视频中人的行为动作进行比较准确的分类,再比如在监控领域中,需要对被监控的人的行为动作进行分析,这也涉及到对视频中的人的动作行为进行的识别问题,因此动作识别在近几年一直是研究中的热点问题。
在进行视频识别时,一般需要对视频中的运动区域进行分析,得到相应的运动向量,再将得到的运动向量送入分类器进行分类,以得到识别结果。那么首要的就是先得到这个运动向量,而在现有技术中,尚无较好地得到这种运动向量的方法。
发明内容
本发明实施例提供一种获取向量的方法及装置,用于提供一种获取视频中的运动向量的方式。
本发明的第一方面,提供一种获取向量的方法,包括以下步骤:
对视频的X个视频帧按照第一算法进行处理,得到N个像素点一一对应的N条运动轨迹;其中,一条运动轨迹描述了一个像素点在所述X个视频帧中位置的变化;所述N个像素点是按照预设规则在所述X个视频帧中选择出来的;
采用预设的深度神经网络对所述X个视频帧进行处理,得到所述X个视频帧的深度特征;
确定组成每条运动轨迹的像素点在所述X个视频帧中的位置,并从所述深度特征中获取每个位置的子深度信息,根据所述每个位置的子深度信息得到轨迹深度特征向量;所述轨迹深度特征向量用于表征所述N条运动轨迹在所述X个视频帧中的深度信息;
其中,X、N为正整数。
结合第一方面,在第一方面的第一种可能的实现方式中,当X不小于2时,所述X个视频帧是连续的。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述对视频的X个视频帧按照第一算法进行处理,得到N个像素点一一对应的N条运动轨迹,包括:
对于所述X个视频帧中每相邻的两个视频帧,均执行如下操作:获取所述相邻的两个视频帧对应的第一光流场;所述第一光流场用于表示在所述相邻的两个视频帧中,同一个像素点的速度矢量;通过中值滤波器对所述第一光流场进行处理,获取第二光流场,所述第二光流场用于表示,所述相邻的两个视频帧中,前一个视频帧中的像素点在后一个视频帧中的位置;
根据获取的所述X个视频帧中每相邻的两个视频帧之间的第二光流场,获得所述N个像素点对应的所述N条运动轨迹。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,
所述在获取所述相邻的两个视频帧对应的第一光流场之前,所述方法还包括:
对所述X个视频帧中的每个视频帧做如下处理:
在一个视频帧中,将每隔预设数量个普通像素点的一个普通像素点取为目标像素点,计算获取的所有目标像素点的自相关矩阵;其中,所述普通像素点为所述一个视频帧中的任意一个像素点;
在所述一个视频帧中,丢弃所述自相关矩阵中的特征值小于预设值的元素对应的普通像素点;
所述获取所述相邻的两个视频帧对应的第一光流场,包括:
根据处理后的X个视频帧,获取所述相邻的两个视频帧对应的所述第一光流场。
结合第一方面的第二种可能的实现方式或第三种可能的实现方式,在第一方面的第四种可能的实现方式中,
在所述获取第二光流场之后,所述方法还包括:对于所述X个视频帧中每相邻的两个视频帧,均执行如下操作:
获取所述相邻的两个视频帧中的至少一组待匹配点对;所述待匹配点对为:所述相邻的两个视频帧中,前一个视频帧的任意一个像素点和所述任意一个像素点在相邻的后一个视频帧中得到的对应点构成的点对;其中,每组待匹配点对中包括一对或多对待匹配点对;
针对所述至少一组待匹配点对中的每组,分别获得一个仿射变换矩阵;
通过得到的每一个仿射变换矩阵分别确定每一组待匹配点对中的每一对待匹配点对是否匹配;
将确定出的相匹配的待匹配点对数量最多的仿射变换矩阵确定为与所述相邻的两个视频帧对应的第一仿射变换矩阵,并通过所述第一仿射变换矩阵,对所述相邻的两个视频帧中的前一个视频帧作仿射变换,获得所述前一个视频帧中的像素点在所述相邻的两个视频帧中的后一个视频帧中的实际位置;
根据所述第二光流场,以及所述前一个视频帧中的像素点在所述后一个视频帧中的实际位置,获取所述相邻的两个视频帧之间的第三光流场;所述第三光流场用于表示,所述相邻的两个视频帧中,前一个视频帧中的像素点在后一个视频帧中的实际位置;
所述根据获取的所述X个视频帧中每相邻的两个视频帧之间的第二光流场,获得所述N个像素点对应的所述N条运动轨迹,包括:
根据获取的所述X个视频帧中每相邻的两个视频帧之间的第三光流场,获得所述N个像素点对应的所述N条运动轨迹。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,获得所述N个像素点对应的所述N条运动轨迹,包括:
根据获得的各像素点的运动轨迹,分别获取其中每个像素点的位移;
丢弃其中位移大于预设位移的像素点对应的运动轨迹,获得所述N个像素点对应的所述N条运动轨迹。
结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述采用预设的深度神经网络对所述X个视频帧处理,得到所述X个视频帧的深度特征,包括:
将所述X个视频帧、以及所述X个视频帧对应的第三光流场输入到所述深度神经网络中;
获取所述深度神经网络输出的所述X个视频帧对应的所述深度特征。
结合第一方面的第六种可能的实现方式,在第一方面的第七种可能的实现方式中,在所述获取所述深度神经网络输出的所述X个视频帧对应的所述深度特征之后,还包括:
对所述深度特征进行归一化处理,得到归一化后的深度特征。
结合第一方面的第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述对所述深度特征进行归一化处理,得到归一化后的深度特征,包括:
对所述深度特征中包括的每个元素,分别在所述深度神经网络中该元素所在的通道上进行归一化,得到每个元素的单通道归一化结果;
将每个元素的单通道归一化结果分别在所述深度神经网络中的所有通道上进行归一化,得到每个元素的多通道归一化结果;
根据每个元素的多通道归一化结果得到所述归一化后的深度特征。
结合第一方面的第八种可能的实现方式,在第一方面的第九种可能的实现方式中,
所述对所述深度特征中包括的每个元素,分别在所述深度神经网络中该元素所在的通道上进行归一化,得到每个元素的单通道归一化结果,包括:
对所述深度特征中包括的每个元素,分别除以该元素在所述深度神经网络中该元素所在的通道内的第一给定值,得到每个元素的单通道归一化结果;
所述将每个元素的单通道归一化结果分别在所述深度神经网络中的所有通道上进行归一化,得到每个元素的多通道归一化结果,包括:
将每个元素的单通道归一化结果分别除以所述深度神经网络中的所有通道内与该元素位于同一位置的元素对应的第二给定值,得到每个元素的多通道归一化结果。
结合第一方面的第七种可能的实现方式至第九种可能的实现方式中的任一种可能的实现方式,在第一方面的第十种可能的实现方式中,所述从所述深度特征中获取所述每个位置的子深度信息,包括:
从所述归一化后的深度特征中获取所述每个位置的子深度信息。
本发明的第二方面,提供一种获取向量的装置,包括:
第一获取模块,用于对视频的X个视频帧按照第一算法进行处理,得到N个像素点一一对应的N条运动轨迹;其中,一条运动轨迹描述了一个像素点在所述X个视频帧中位置的变化;所述N个像素点是按照预设规则在所述X个视频帧中选择出来的;
第二获取模块,用于采用预设的深度神经网络对所述X个视频帧进行处理,得到所述X个视频帧的深度特征;
第三获取模块,用于确定组成所述第一获取模块得到的每条运动轨迹的像素点在所述X个视频帧中的相应位置,并从所述第二获取模块得到的所述深度特征中获取每个位置的子深度信息,根据所述每个位置的子深度信息得到轨迹深度特征向量;所述轨迹深度特征向量用于表征所述N条运动轨迹在所述X个视频帧中的深度信息;
其中,X、N为正整数。
结合第二方面,在第二方面的第一种可能的实现方式中,当X不小于2时,所述X个视频帧是连续的。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第一获取模块具体用于:
对于所述X个视频帧中每相邻的两个视频帧,均执行如下操作:获取所述相邻的两个视频帧对应的第一光流场;所述第一光流场用于表示在所述相邻的两个视频帧中,同一个像素点的速度矢量;通过中值滤波器对所述第一光流场进行处理,获取第二光流场,所述第二光流场用于表示,所述相邻的两个视频帧中,前一个视频帧中的像素点在后一个视频帧中的位置;
根据获取的所述X个视频帧中每相邻的两个视频帧之间的第二光流场,获得所述N个像素点对应的所述N条运动轨迹。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述装置还包括处理模块;
所述处理模块用于在所述第一获取模块获取所述相邻的两个视频帧对应的第一光流场之前,对所述X个视频帧中的每个视频帧做如下处理:
在一个视频帧中,将每隔预设数量个普通像素点的一个普通像素点取为目标像素点,计算获取的所有目标像素点的自相关矩阵;其中,所述普通像素点所述一个视频帧中的任意一个像素点;
在所述一个视频帧中,丢弃所述自相关矩阵中的特征值小于预设值的元素对应的普通像素点;
所述第一获取模块具体用于获取所述相邻的两个视频帧对应的第一光流场,包括:
根据所述处理模块处理后的X个视频帧,获取所述相邻的两个视频帧对应的所述第一光流场。
结合第二方面的第二种可能的实现方式或第三种可能的实现方式,在第二方面的第四种可能的实现方式中,
所述第一获取模块在获取第二光流场之后,还用于对于所述X个视频帧中每相邻的两个视频帧,均执行如下操作:
获取所述相邻的两个视频帧中的至少一组待匹配点对;所述待匹配点对为:所述相邻的两个视频帧中,前一个视频帧的任意一个像素点和所述像素点在相邻的后一个视频帧中得到的对应点构成的点对;其中,每组待匹配点对中包括一对或多对待匹配点对;
针对所述至少一组待匹配点对中的每组,分别获得一个仿射变换矩阵;
通过得到的每一个仿射变换矩阵分别确定每一组待匹配点对中的每一对待匹配点对是否匹配;
将确定出的相匹配的待匹配点对数量最多的仿射变换矩阵确定为与所述相邻的两个视频帧对应的第一仿射变换矩阵,并通过所述第一仿射变换矩阵,对所述相邻的两个视频帧中的前一个视频帧作仿射变换,获得所述前一个视频帧中的像素点在所述相邻的两个视频帧中的后一个视频帧中的实际位置;
根据所述第二光流场,以及所述前一个视频帧中的像素点在所述后一个视频帧中的实际位置,获取所述相邻的两个视频帧之间的第三光流场;所述第三光流场用于表示,所述相邻的两个视频帧中,前一个视频帧中的像素点在后一个视频帧中的实际位置;
所述第一获取模块具体用于,包括:
根据获取的所述X个视频帧中每相邻的两个视频帧之间的第三光流场,获得所述N个像素点对应的所述N条运动轨迹。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述第一获取模块具体用于:
根据获得的各像素点的运动轨迹,分别获取其中每个像素点的位移;
丢弃其中位移大于预设位移的像素点对应的运动轨迹,获得所述N个像素点对应的所述N条运动轨迹。
结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述第二获取模块具体用于:
将所述X个视频帧、以及所述第一获取模块获取的所述X个视频帧对应的第三光流场输入到所述深度神经网络中;
获取所述深度神经网络输出的所述X个视频帧对应的所述深度特征。
结合第二方面的第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述装置还包括归一化模块,所述归一化模块用于:
在所述第二获取模块获取所述深度神经网络输出的、所述X个视频帧对应的所述深度特征之后,对所述第二获取模块获取的所述深度特征进行归一化处理,得到归一化后的深度特征。
结合第二方面的第七种可能的实现方式,在第二方面的第八种可能的实现方式中,所述归一化模块具体用于:
对所述第二获取模块获取的所述深度特征中包括的每个元素,分别在所述深度神经网络中该元素所在的通道上进行归一化,得到每个元素的单通道归一化结果;
将每个元素的单通道归一化结果分别在所述深度神经网络中的所有通道上进行归一化,得到每个元素的多通道归一化结果;
根据每个元素的多通道归一化结果得到所述归一化后的深度特征。
结合第二方面的第八种可能的实现方式,在第二方面的第九种可能的实现方式中,所述归一化模块具体用于:
对所述第二获取模块获取的所述深度特征中包括的每个元素,分别除以该元素在所述深度神经网络中该元素所在的通道内的第一给定值,得到每个元素的单通道归一化结果;
将每个元素的单通道归一化结果分别除以所述深度神经网络中的所有通道内与该元素位于同一位置的元素对应的第二给定值,得到每个元素的多通道归一化结果。
结合第二方面的第七种可能的实现方式至第九种可能的实现方式中的任一种可能的实现方式,在第二方面的第十种可能的实现方式中,所述第三获取模块具体用于:
从所述归一化模块根据所述第二获取模块得到的所述深度特征得到的归一化后的深度特征中获取所述每个位置的子深度信息。
本发明的第三方面,提供一种获取向量的装置,包括存储器、以及与所述存储器连接的处理器;
所述存储器,用于存储指令;
所述处理器,用于执行所述指令,对视频的X个视频帧按照第一算法进行处理,得到N个像素点一一对应的N条运动轨迹;其中,一条运动轨迹描述了一个像素点在所述X个视频帧中位置的变化;所述N个像素点是按照预设规则在所述X个视频帧中选择出来的;采用预设的深度神经网络对所述X个视频帧进行处理,得到所述X个视频帧的深度特征;以及,确定组成每条轨迹的像素点在所述X个视频帧中的相应位置,并从所述深度特征中获取每个位置的子深度信息,根据所述每个位置的子深度信息得到轨迹深度特征向量;所述轨迹深度特征向量用于表征所述N条运动轨迹在所述X个视频帧中的深度信息;其中,X、N为正整数。
结合第三方面,在第三方面的第一种可能的实现方式中,当X不小于2时,所述X个视频帧是连续的。
结合第三方面或第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述处理器具体用于:
对于所述X个视频帧中每相邻的两个视频帧,均执行如下操作:获取所述相邻的两个视频帧对应的第一光流场;所述第一光流场用于表示在所述相邻的两个视频帧中,同一个像素点的速度矢量;通过中值滤波器对所述第一光流场进行处理,获取第二光流场,所述第二光流场用于表示,所述相邻的两个视频帧中,前一个视频帧中的像素点在后一个视频帧中的位置;
根据获取的所述X个视频帧中每相邻的两个视频帧之间的第二光流场,获得所述N个像素点对应的所述N条运动轨迹。
结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,
所述处理器在获取所述相邻的两个视频帧对应的第一光流场之前,还用于对所述X个视频帧中的每个视频帧做如下处理:在一个视频帧中,将每隔预设数量个普通像素点的一个普通像素点取为目标像素点,计算获取的所有目标像素点的自相关矩阵;其中,所述普通像素点为所述一个视频帧中的任意一个像素点;在所述一个视频帧中,丢弃所述自相关矩阵中的特征值小于预设值的元素对应的普通像素点;
所述处理器具体用于:根据处理后的X个视频帧,获取所述相邻的两个视频帧对应的所述第一光流场。
结合第三方面的第二种可能的实现方式或第三种可能的实现方式,在第三方面的第四种可能的实现方式中,
所述处理器在获取第二光流场之后,还用于:对于所述X个视频帧中每相邻的两个视频帧,均执行如下操作:
获取所述相邻的两个视频帧中的至少一组待匹配点对;所述待匹配点对为:所述相邻的两个视频帧中,前一个视频帧的任意一个像素点和所述任意一个像素点在相邻的后一个视频帧中得到的对应点构成的点对;其中,每组待匹配点对中包括一对或多对待匹配点对;
针对所述至少一组待匹配点对中的每组,分别获得一个仿射变换矩阵;
通过得到的每一个仿射变换矩阵分别确定每一组待匹配点对中的每一对待匹配点对是否匹配;
将确定出的相匹配的待匹配点对数量最多的仿射变换矩阵确定为与所述相邻的两个视频帧对应的第一仿射变换矩阵,并通过所述第一仿射变换矩阵,对所述相邻的两个视频帧中的前一个视频帧作仿射变换,获得所述前一个视频帧中的像素点在所述相邻的两个视频帧中的后一个视频帧中的实际位置;
根据所述第二光流场,以及所述前一个视频帧中的像素点在所述后一个视频帧中的实际位置,获取所述相邻的两个视频帧之间的第三光流场;所述第三光流场用于表示,所述相邻的两个视频帧中,前一个视频帧中的像素点在后一个视频帧中的实际位置;
所述处理器具体用于:
根据获取的所述X个视频帧中每相邻的两个视频帧之间的第三光流场,获得所述N个像素点对应的所述N条运动轨迹。
结合第三方面的第四种可能的实现方式,在第三方面的第五种可能的实现方式中,所述处理器具体用于:
根据获得的各像素点的运动轨迹,分别获取其中每个像素点的位移;
丢弃其中位移大于预设位移的像素点对应的运动轨迹,获得所述N个像素点对应的所述N条运动轨迹。
结合第三方面的第五种可能的实现方式,在第三方面的第六种可能的实现方式中,所述处理器具体用于:
将所述X个视频帧、以及所述X个视频帧对应的第三光流场输入到所述深度神经网络中;
获取所述深度神经网络输出的所述X个视频帧对应的所述深度特征。
结合第三方面的第六种可能的实现方式,在第三方面的第七种可能的实现方式中,所述处理器在获取所述深度神经网络输出的所述X个视频帧对应的所述深度特征之后,还用于:
对所述深度特征进行归一化处理,得到归一化后的深度特征。
结合第三方面的第七种可能的实现方式,在第三方面的第八种可能的实现方式中,所述处理器具体用于:
对所述深度特征中包括的每个元素,分别在所述深度神经网络中该元素所在的通道上进行归一化,得到每个元素的单通道归一化结果;
将每个元素的单通道归一化结果分别在所述深度神经网络中的所有通道上进行归一化,得到每个元素的多通道归一化结果;
根据每个元素的多通道归一化结果得到所述归一化后的深度特征。
结合第三方面的第八种可能的实现方式,在第三方面的第九种可能的实现方式中,所述处理器具体用于:
对所述深度特征中包括的每个元素,分别除以该元素在所述深度神经网络中该元素所在的通道内的第一给定值,得到每个元素的单通道归一化结果;
将每个元素的单通道归一化结果分别除以所述深度神经网络中的所有通道内与该元素位于同一位置的元素对应的第二给定值,得到每个元素的多通道归一化结果。
结合第三方面的第七种可能的实现方式至第九种可能的实现方式中的任一种可能的实现方式,在第三方面的第十种可能的实现方式中,所述处理器具体用于:
从所述归一化后的深度特征中获取所述每个位置的子深度信息。
本发明实施例中,可以获取X个视频帧中的像素点对应的运动轨迹,以及通过深度神经网络获取X个视频帧的深度特征,从而根据运动轨迹和深度特征获得X个视频帧对应的轨迹深度特征向量(因为轨迹深度特征向量是视频中的运动物体对应的,因此也可以称为运动向量),该轨迹深度特征向量可以用于表示视频中的运动物体的轨迹以及轨迹上的每个点对应的深度特征,即,本发明实施例提供了一种较好地获取视频中的运动向量的方式。
本发明实施例中,视频帧的深度特征是通过深度神经网络获取的,因此准确度较高,且本发明实施例中的深度神经网络只需要获取深度特征,而无需对所有视频帧从头进行识别,因此本发明实施例中的深度神经网络在进行训练时的训练方式较为简单,也无需大量的复杂样本进行训练,减少了训练深度神经网络所带来的工作量。本发明实施例中的轨迹深度特征向量既可以体现出像素点的运动轨迹,也可以体现出像素点在每个位置时的深度信息,从而便于后续对轨迹深度特征向量加以利用,例如可以将轨迹深度特征向量应用到动作识别、视频检索、视频监控分析等等不同的场景中。
附图说明
图1为本发明实施例中获取向量的方法的主要流程图;
图2A为本发明实施例中运动轨迹与与视频帧之间的交点的示意图;
图2B为本发明实施例中相邻的两帧图像中像素点的移动情况示意图;
图3A为本发明实施例中获取向量的装置的一种结构框图;
图3B为本发明实施例中获取向量的装置的另一种结构框图;
图4为本发明实施例中获取向量的装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先介绍一下本发明实施例的应用场景。
例如有一个视频,该视频包括多个视频帧。在该视频帧中包括有一个或多个运动物体,现在需要对该视频中的运动物体所在的运动区域进行分析,得到相应的运动向量,具体的,可以对该视频中包括的所有视频帧进行分析,或者也可以对该视频中包括的部分视频帧进行分析。具体的,可以采用本发明实施例中的方法来得到运动向量。
下面结合说明书附图对本发明实施例作进一步详细描述。
请参见图1,本发明实施例提供一种获取向量的方法,所述方法的主要流程描述如下。
步骤101:对视频的X个视频帧按照第一算法进行处理,得到N个像素点一一对应的N条运动轨迹;其中,一条运动轨迹描述了一个像素点在X个视频帧中位置的变化;N个像素点是按照预设规则在X个视频帧中选择出来的。
本发明实施例中,N个像素点可以是X个视频帧中的运动物体对应的像素点,即,这里的预设规则可以是指:从X个视频帧中选择位移不为0的像素点。当然,N个像素点可以是X个视频帧中的位移不为0的全部像素点或部分像素点。因为这N个像素点都是运动物体对应的像素点,那么,在下文中可以将这N个像素点中的每个都称为运动像素点,即,N个像素点也可以描述为N个运动像素点。
本发明实施例中,X和N均为正整数。
本发明实施例中,当X大于等于2时,X个视频帧可以是连续的视频帧,当然也可以是不连续的视频帧。
本发明实施例中,例如对于运动像素点1对应的运动轨迹为运动轨迹1,那么,运动轨迹1与X个视频帧中的每个视频帧都可以有交点,即X个视频帧中的每个视频帧中都有运动像素点1对应的位置,或者,运动轨迹1只与X个视频帧中的部分视频帧有交点,而与剩余部分的视频帧没有交点,即X个视频帧中只有部分视频帧中有运动像素点1对应的位置。其中,运动像素点1为N个运动像素点中的任意一个运动像素点。另外,对于不同的运动像素点,与其有交点的视频帧可以不同。
本发明实施例中,例如运动轨迹A与视频帧A有一个交点,那么这个交点就是运动轨迹A在视频帧A中对应的位置。
例如请参见图2A,为本发明实施例中一种可能的运动轨迹与视频帧之间的交点的示意图。图2A中X=5,即共有5个视频帧,分别为视频帧A(即图2A中的A)、视频帧B(即图2A中的B)、视频帧C(即图2A中的C)、视频帧D(即图2A中的D)和视频帧E(即图2A中的E),以及共有五个运动像素点,分别为运动像素点1、运动像素点2、运动像素点3、运动像素点4和运动像素点5,运动像素点1对应于运动轨迹1(即图2A中的1),运动像素点2对应于运动轨迹2(即图2A中的2),运动像素点3对应于运动轨迹3(即图2A中的3),运动像素点4对应于运动轨迹4(即图2A中的4),以及运动像素点5对应于运动轨迹5(即图2A中的5)。其中,运动轨迹1与5个视频帧均有交点,运动轨迹2与其中的3个视频帧有交点,运动轨迹3与其中的四个视频帧有交点,运动轨迹4与其中的3个视频帧有交点,运动轨迹5也与其中的3个视频帧有交点。其中,与运动像素点2有交点的视频帧分别为视频帧A、视频帧B和视频帧C,与运动像素点3有交点的视频帧分别为视频帧A、视频帧C、视频帧D和视频帧E,与运动像素点4有交点的视频帧分别为视频帧A、视频帧C和视频帧E,与运动像素点5有交点的视频帧分别为视频帧A、视频帧B和视频帧C。
图2A中,对于每条运动轨迹,如果一个视频帧与它没有交点,则用虚线表示出来,即图2A中的虚线是一个示意,表示运动轨迹与相应的视频帧没有交点。另外,图2A中的运动轨迹都是以直线进行示意的,这只是为了举例,在实际应用中,运动轨迹可能是各种不同的形状。
可以看到,在图2A中,各个运动像素点有交点的视频帧可能相同也可能不同,以及,与一个运动像素点有交点的各个视频帧可能是连续的视频帧,也可能是不连续的视频帧。
例如,X个视频帧中有一个运动物体A,该运动物体A可能对应一条或多条运动轨迹,例如其对应的一条运动轨迹为运动轨迹1。例如运动物体A是用户的一只手,在拍摄视频的设备进行拍摄时,用户在进行甩手动作,在设备拍摄X个视频帧中的第一个视频帧、第二个视频帧和第三个视频帧时,用户的手位于设备的拍摄范围内,而从设备拍摄X个视频帧中的第四个视频帧开始,用户的运动出了设备的拍摄范围,例如用户可能将手向上甩,则设备拍摄不到了,而在设备拍摄X个视频帧中的第八个视频帧时,用户的手又回到了设备的拍摄范围内,那么,在X个视频帧中的第一个视频帧、第二个视频帧、第三个视频帧和第八个视频帧中(当然还可能有后面的视频帧,这里不多举例)都有与运动轨迹1对应的位置,即运动轨迹1与这几个视频帧都有交点,而在第四个视频帧、第五个视频帧、第六个视频帧和第七个视频帧(当然还可能有后面的视频帧,这里不多举例)中,都没有与运动轨迹1对应的位置,即运动轨迹1与这几个视频帧都没有交点,在这种情况下,就出现了与一个运动像素点有交点的各个视频帧不是连续视频帧的情况。
获取X个视频帧中的N个运动像素点对应的N个运动轨迹,即可以认为是提取X个视频帧中的运动轨迹。原则上来讲,本发明实施例中的该步骤可以使用多种不同的提取运动轨迹的方式,例如可以采用Kanade-Lucas-Tomasi trajecotry(KLT轨迹)方法、densetrajectory(稠密轨迹)方法、Improved Trajectories(优化轨迹)方法等等不同的方法,即本发明实施例中的第一算法可以是指多种不同的算法。具体的,本发明实施例以第一算法是优化轨迹方法为例。
可选的,本发明实施例中,对视频的X个视频帧按照第一算法进行处理,得到N个像素点一一对应的N条运动轨迹,包括:
对于X个视频帧中每相邻的两个视频帧,均执行如下操作:获取相邻的两个视频帧对应的第一光流场;第一光流场用于表示在相邻的两个视频帧中,同一个像素点的速度矢量;通过中值滤波器对第一光流场进行处理,获取第二光流场,第二光流场用于表示,相邻的两个视频帧中,前一个视频帧中的像素点在后一个视频帧中的位置;
根据获取的X个视频帧中每相邻的两个视频帧之间的第二光流场,获得N个像素点对应的N条运动轨迹。
本发明实施例中,可以认为X个视频帧中包括的各个视频帧中,所包括的普通像素点都是相同的,即,例如,若X个视频帧中的第一个视频帧包括普通像素点1、普通像素点2和普通像素点3,则X个视频帧中包括的其他视频帧中也包括普通像素点1、普通像素点2和普通像素点3。其中,普通像素点可以是指X个视频帧中的任意一个像素点。本发明实施例中,可按照普通像素点对应的对象是否处于运动状态,而将普通像素点分为运动像素点和非运动像素点,即,普通像素点中包括了运动像素点和非运动像素点。
本发明实施例中,第一光流场中可以考虑所有的普通像素点,或者也可以只考虑运动像素点。
本发明实施例中,每相邻的两个视频帧中,同一个运动像素点可以对应一个速度矢量,这个速度矢量用于描述该运动像素点的在x方向和y方向上的位移量,那么每相邻的两个视频帧中,所有运动像素点的速度矢量就形成了这相邻的两个视频帧的光流场。即,光流场用于表明相邻两个视频帧中,对应的运动像素点的运动速率和运动方向。
光流场可以描述空间运动物体在观察成像平面上的各个运动像素点运动的瞬时速度,是利用图像序列中运动像素点在时间域上的变化以及相邻两个视频帧之间的相关性来找到上一个视频帧跟当前视频帧之间存在的对应关系,从而计算出相邻两个视频帧之间物体的运动信息的一种方法。简单的说,把每相邻的两个视频帧中每个运动像素点的运动速率和运动方向找出来,就是这相邻的两个视频帧之间的光流场。
例如请参见图2B,图2B中的两幅图像表示相邻的两个视频帧,左边的表示其中的前一个视频帧,右边的表示其中的后一个视频帧,这两个视频帧中的每个格子代表一个普通像素点。可以看到,在这两个视频帧中,左边有一个格子用斜线填充,右边也有一个格子用斜线填充,这用于表示,左边的这个运动像素点,在下一个视频帧中分别在x方向和y方向上移动了一个单位,则,这两个视频帧之间的光流场可以用表1来表示:
表1
0,0 | 0,0 | 0,0 | 0,0 |
0,0 | 1,1 | 0,0 | 0,0 |
0,0 | 0,0 | 0,0 | 0,0 |
0,0 | 0,0 | 0,0 | 0,0 |
表1中的(0,0)表示运动像素点没有移动,(1,1)表示运动像素点在x方向和y方向上各移动了一个单位。即,表1中的值表示的是运动像素点的移动情况,而不用于表示运动像素点的位置坐标。
在获得该视频中每相邻的两个视频帧之间的光流场后,可以采用中值滤波器对获得的每个光流场进行处理,处理方式例如可以是滤波,这样就可以获取每相邻的两个视频帧中,前一个视频帧中的每个运动像素点在后一个视频帧中的位置,通过对多个光流场进行滤波,则对于X个视频帧中的每个视频帧中包括的运动像素点,都可以得到其在每个视频帧中对应的位置,这样也就相当于得到了运动像素点的运动轨迹。
本发明实施例中,为了便于区分,将初次获得的光流场称为第一光流场,将采用中值滤波器对第一光流场进行滤波之后得到的光流场称为第二光流场。
具体的,使用中值滤波器对第一光流场滤波,可以采用如下公式:
公式(1)中,(xt,yt)是X个视频帧中第t个视频帧的运动像素点的坐标,M是中值滤波器的核,*是卷积运算,ωt=(ut,vt)是第t个视频帧中的运动像素点(xt,yt)在第一光流场中的矢量,|表示在(xt,yt)坐标处,是(xt,yt)四舍五入后的坐标值。在使用中值滤波器对X个视频帧中每两个视频帧之间的第一光流场进行滤波后,根据第二光流场,把X个视频帧中同一个运动像素点的位置组合起来,就得到了该运动像素点的运动轨迹。
可选的,本发明实施例中,
在获取相邻的两个视频帧对应的第一光流场之前,所述方法还包括:
对X个视频帧中的每个视频帧做如下处理:
在一个视频帧中,将每隔预设数量个普通像素点的一个普通像素点取为目标像素点,计算获取的所有目标像素点的自相关矩阵;其中,普通像素点为一个视频帧中的任意一个像素点;
在一个视频帧中,丢弃自相关矩阵中的特征值小于预设值的元素对应的普通像素点;
获取相邻的两个视频帧对应的第一光流场,包括:
根据处理后的X个视频帧,获取相邻的两个视频帧对应的第一光流场。
例如,对于X个视频帧中的每个视频帧,都每隔5个普通像素点取一个普通像素点,本发明实施例中将取出的普通像素点称为目标像素点,将获取的目标像素点组成一个矩阵,求得这个矩阵的自相关矩阵,即,对于每个视频帧,都可以得到一个自相关矩阵,自相关矩阵中的元素与目标像素点为一一对应的关系。例如对于一个视频帧来说,该视频帧中所有目标像素点在时间序列上的二阶导数组成的矩阵就是该视频帧对应的自相关矩阵。
预设值可以是根据经验值设定的值,或者也可以是***预先设定的值,在得到自相关矩阵后,可以获得每个自相关矩阵的特征值,自相关矩阵的每个特征值都对应于自相关矩阵中的一个或多个元素。因为一般认为特征值小于预设值的像素点属于噪点,因此对于一个自相关矩阵来说,如果该自相关矩阵的一个或多个特征值小于预设值,那么可以从该自相关矩阵中确定出与这些特征值对应的元素,再从该自相关矩阵对应的视频帧中确定这些元素对应的目标像素点,从而可以从该视频帧中,删除这些像素点,对X个视频帧中的每个视频帧都可以进行同样的处理,那么在后续,计算运动像素点的运动轨迹时,可以不再计算这些已删除的普通像素点的运动轨迹,即,在进行运动轨迹提取时,不再考虑这些已删除的普通像素点,即去除了噪点的影响,使得计算结果更为准确。
另外,在计算运动像素点的运动轨迹时,除了要考虑到运动像素点本身的移动情况,较佳的,还要考虑到拍摄该视频的设备的移动情况,例如,用户在使用设备进行拍摄的过程中可能进行了移动,或者手可能发生了抖动,等等,那么为了使得到的运动像素点的运动轨迹能够更为真实地反映运动像素点本身的移动情况,就需要去除设备的位移。
为了进一步考虑设备本身的移动情况,本发明实施例可以采用RANSAC(RandomSample Consensus,随机样本一致)算法来去除设备位移的影响,当然也可以采用其他算法,本发明实施例只是以RANSAC算法进行举例。具体的,如下:
可选的,本发明实施例中,
在获取第二光流场之后,所述方法还包括:对于X个视频帧中每相邻的两个视频帧,均执行如下操作:
获取相邻的两个视频帧中的至少一组待匹配点对;待匹配点对为:相邻的两个视频帧中,前一个视频帧的任意一个像素点和该任意一个像素点在相邻的后一个视频帧中得到的对应点构成的点对;其中,每组待匹配点对中包括一对或多对待匹配点对;
针对至少一组待匹配点对中的每组,分别获得一个仿射变换矩阵;
通过得到的每一个仿射变换矩阵分别确定每一组待匹配点对中的每一对待匹配点对是否匹配;
将确定出的相匹配的待匹配点对数量最多的仿射变换矩阵确定为与相邻的两个视频帧对应的第一仿射变换矩阵,并通过第一仿射变换矩阵,对相邻的两个视频帧中的前一个视频帧作仿射变换,获得前一个视频帧中的像素点在相邻的两个视频帧中的后一个视频帧中的实际位置;
根据第二光流场,以及前一个视频帧中的像素点在后一个视频帧中的实际位置,获取相邻的两个视频帧之间的第三光流场;第三光流场用于表示,相邻的两个视频帧中,前一个视频帧中的像素点在后一个视频帧中的实际位置;
根据获取的所述X个视频帧中每相邻的两个视频帧之间的第二光流场,获得N个像素点对应的N条运动轨迹,包括:
根据获取的X个视频帧中每相邻的两个视频帧之间的第三光流场,获得N个像素点对应的N条运动轨迹。
本发明实施例中,将去除设备位移影响之后得到的光流场称为第三光流场。
本发明实施例中,凡是称为像素点的,可以认为是运动像素点。
本发明实施例中,第三光流场是根据第二光流场得到的,因此,根据第二光流场获取运动像素点的运动轨迹,可以进一步认为具体是根据第三光流场获取运动像素点的运动轨迹。
例如,对于相邻的两个视频帧,可以将其中的全部运动像素点或者部分运动像素点作为待匹配点对。说是“点对”,其实对应的是一个对象,即,是一个对象在前后两个视频帧中对应的两个位置,因此就将其称为“点对”。本发明实施例中将其称为待匹配点对,是因为这些点对是尚未去除设备位移影响的点对,并不是说这些点对没有对应同一对象。
例如,对于相邻的两个视频帧,视频帧1和视频帧2,根据其中的若干组待匹配点对分别获得仿射变换矩阵,则,获得的仿射变换矩阵的数量与其中的待匹配点对的组的数量相同。通过每个仿射变换矩阵分别对所有的待匹配点对进行处理,例如对于任意一个待匹配点对,处理方式可以是:将该运动像素点在前一个视频帧中的位置通过仿射变换矩阵进行映射,判断得到的位置与该运动像素点在后一个视频帧中的位置是否相匹配,这里的相匹配可以是指完全相同,或者也可以是指两个位置之间的距离小于预设距离。若得到的位置与该运动像素点在后一个视频帧中的位置相匹配,则确定该待匹配点对在通过该仿射变换矩阵进行处理时得到了匹配,否则,若得到的位置与该运动像素点在后一个视频帧中的位置不相匹配,则确定该待匹配点对在通过该仿射变换矩阵进行处理时得不到匹配。
那么,将视频帧1和视频帧2中的所有待匹配点对分别采用仿射变换矩阵1进行处理,就可以得到该仿射变换矩阵1对应的、能够匹配的待匹配点对的数量,进一步,将视频帧1和视频帧2中的所有待匹配点对分别采用每个仿射变换矩阵进行处理,就可以得到每个仿射变换矩阵分别对应的、能够匹配的待匹配点对的数量。从而,也就可以从中确定,究竟哪个仿射变换矩阵所对应的能够匹配的待匹配点对的数量最多,从而确定采用这个仿射变换矩阵来确定用于拍摄视频的设备对应于视频帧1和视频帧2中每个运动像素点的设备位移。
例如一共选出4个待匹配点对组,分别为点对组1、点对组2、点对组3和点对组4,其中,每个待匹配点对组中包括一个或多个待匹配点对,且不同的待匹配点对组中包括的待匹配点对的数量可以相同也可以不同。通过这4个待匹配点对组中的每组,分别得到一个仿射变换矩阵,共得到4个仿射变换矩阵,分别为矩阵1、矩阵2、矩阵3和矩阵4。则,通过矩阵1对所有待匹配点对进行处理,通过矩阵2对所有待匹配点对进行处理,通过矩阵3对所有待匹配点对进行处理,以及通过矩阵4对所有待匹配点对进行处理,其中,点对组1包括2对待匹配点对,点对组2包括1对待匹配点对,点对组3包括3对待匹配点对,点对组4包括4对待匹配点对,即共有10对待匹配点对。例如处理结果为:通过矩阵1进行处理时,有4对待匹配点对能够相匹配,有6对待匹配点对不能匹配,通过矩阵2进行处理时,有2对待匹配点对能够相匹配,有8对待匹配点对不能匹配,通过矩阵3进行处理时,有7对待匹配点对能够匹配,有3对待匹配点对不能匹配,通过矩阵4进行处理时,有5对待匹配点对能够匹配,有5对待匹配点对不能匹配。则,显然可以确定出矩阵3所对应的能够匹配的待匹配点对的数量最多。
本发明实施例中,将确定出的仿射变换矩阵称为第一仿射变换矩阵。通过第一仿射变换矩阵对相邻的两个视频帧中的前一个视频帧中的运动像素点进行处理,就可以得到后一个视频帧中的每个运动像素点的实际位置,这里所说的相邻的两个视频帧,是指与第一仿射变换矩阵对应的两个视频帧。
例如仿射变换矩阵1是对应于视频帧1和视频帧2的仿射变换矩阵,那么,通过仿射变换矩阵1对视频帧1中的运动像素点进行处理,就可以得到视频帧2中每个运动像素点的实际位置,相当于得到了新的视频帧2,而这个新的视频帧2,可以认为是去除了设备位移影响的视频帧2。
具体的,通过第一仿射变换矩阵对相邻的两个视频帧中的前一个视频帧中的运动像素点进行处理,可以是令前一个视频帧中的运动像素点的值与第一仿射变换矩阵相乘,那么对于后一个视频帧中的每个运动像素点都会得到一个新的位置,这个新的位置就可以认为是相应运动像素点在后一视频帧中的实际位置。
可选的,本发明实施例中,获得N个像素点对应的N条运动轨迹,包括:
根据获得的各像素点的运动轨迹,分别获取其中每个像素点的位移;
丢弃其中位移大于预设位移的像素点对应的运动轨迹,获得N个像素点对应的N条运动轨迹。
本发明实施例中,获取的运动轨迹的数量可能大于等于N,其中包括了所述N条运动轨迹。
本发明实施例中,对于每相邻的两个视频帧,都可以通过去除设备位移的方式确定其中后一个视频帧中的运动像素点的实际位置,那么,对于该X个视频帧,可以根据去除设备位移后的视频帧来确定其中的运动像素点的位置,从而确定运动像素点的运动轨迹。
在得到运动像素点的运动轨迹后,可以获得每个运动像素点的实际位移,预设位移可以是根据经验值设定的,或者可以是由***设定的,或者也可以是通过其他方式设定的,总之可以认为,位移大于预设位移的运动像素点属于噪点,因此,可以将位移大于预设位移的运动像素点删除,从而剩下的运动像素点就是所述N个,所述N个运动像素点就对应于所述N个运动轨迹,这样可以进一步去除噪点的影响。
可以认为,X个视频帧中的每个视频帧中原本共包括有Y个运动像素点(Y为正整数),通过计算自相关矩阵,可能从Y个运动像素点中删除了部分运动像素点,例如共删除了K个运动像素点(K为小于等于Y的正整数),之后,将位移大于预设位移的运动像素点删除,即可能又从K个运动像素点中删除了部分运动像素点,即,例如共删除了H个运动像素点(H为小于等于K的正整数),即,K-H=N。
步骤102:采用预设的深度神经网络对X个视频帧进行处理,得到X个视频帧的深度特征。
本发明实施例中,因为采用的是深度神经网络对X个视频帧进行处理,因此将得到的信息称为X个视频帧的深度特征。深度特征里深度的含义,是指该信息是通过深度神经网络得到的,一般来说,将层数大于3的神经网络称为深度神经网络。
可选的,本发明实施例中,采用预设的深度神经网络对X个视频帧处理,得到X个视频帧的深度特征,包括:
将X个视频帧、以及X个视频帧对应的第三光流场输入到深度神经网络中;
获取深度神经网络输出的X个视频帧对应的深度特征。
在实际应用中,本发明实施例中可以使用任何深度神经网络,下面以ConvNets(一种深度神经网络)为例。
本发明实施例采用了双输入的ConvNets结构:其中第一组输入是针对每一个视频帧,即把每一个视频帧缩放到一定大小(例如推荐224*224*3)后输入到ConvNets中,我们把ConvNets中处理这一组数据的网络叫做空间网络;其中另一组输入是针对时间上连续的一组视频帧的光流场(位移矢量),本发明实施例将这些连续视频帧的光流场缩放到一定大小上作为输入,例如本发明实施例中可将光流场缩放到224*224*2F,其中F是预先给定的一个数,我们把ConvNets中处理这一组数据的网络叫做时间网络。其中,在一次输入中,第二组输入的光流场是第一组输入的视频帧所对应的光流场。例如,在一次输入中,第一组输入了一个视频帧,那么在第二组中输入的可能是这一个视频帧的前m个视频帧或后m个视频帧所对应的光流场,m为正整数。
传统的ConvNets的各层的参数如表2所示。在本发明实施例中,暂时没有使用从Conv5到full8的各层。
表2
其中,表2中,Layer表示ConvNets中的层,size表示卷积核的大小,stride表示卷积步长,channel表示卷积核的个数,map size ratio表示影射比率,即输入矩阵和输出矩阵大小的比值,receptive field表示感受野,conv表示卷积层,pool层需要做取最大值的操作,full为全连接层。
在使用深度神经网络对X个视频帧中各个视频帧和各段连续视频帧的光流场进行处理之后,我们就可以得到一组特征:
其中,M表示深度神经网络的层数(这里的层即表2中所表示的层),公式中的第i个元素是空间网络处理时得到的第i层输出矩阵,其大小为Hm×Wm×L×Nm,其中Hm,Wm分别是空间网络第i层输出的高和宽,L是视频长度(帧数),Nm是表2中的通道数(卷积核的个数),公式中的第i个元素是时间网络处理时得到的第i层输出矩阵,其大小为Hm×Wm×L×Nm,其中Hm,Wm分别是时间网络第i层输出的高和宽,L是视频长度(帧数),在处理的时候每预先设定数目的光流场放在一起组成一个volume(卷)作为时间网络的输入,Nm是表2中的通道数,V是给定的视频。本发明实施例中,将C(V)称为深度特征。
其中,对应于输入到ConvNets的空间网络中的每个视频帧,都会得到如公式(2)所示的一组特征。
可选的,本发明实施例中,在获取深度神经网络输出的X个视频帧对应的深度特征之后,还包括:
对深度特征进行归一化处理,得到归一化后的深度特征。
可选的,本发明实施例中,对深度特征进行归一化处理,得到归一化后的深度特征,包括:
对深度特征中包括的每个元素,分别在深度神经网络中该元素所在的通道上进行归一化,得到每个元素的单通道归一化结果;
将每个元素的单通道归一化结果分别在深度神经网络中的所有通道上进行归一化,得到每个元素的多通道归一化结果;
根据每个元素的多通道归一化结果得到归一化后的深度特征。
这里的通道指的是表2中的通道。即,对深度特征进行归一化处理,首先是在单通道进行归一化,之后是在所有通道进行归一化。
可选的,本发明实施例中,
对深度特征中包括的每个元素,分别在深度神经网络中该元素所在的通道上进行归一化,得到每个元素的单通道归一化结果,包括:
对深度特征中包括的每个元素,分别除以该元素在深度神经网络中该元素所在的通道内的第一给定值,得到每个元素的单通道归一化结果;
将每个元素的单通道归一化结果分别在深度神经网络中的所有通道上进行归一化,得到每个元素的多通道归一化结果,包括:
将每个元素的单通道归一化结果分别除以深度神经网络中的所有通道内与该元素位于同一位置的元素对应的第二给定值,得到每个元素的多通道归一化结果。
具体的,本发明实施例中,对深度特征中的每个元素进行归一化处理,包括两个步骤:
第一步,对于C(V)的每一个元素C,使用下面的公式做时空归一化(即单通道归一化):
公式(3)中,x,y,z,n是元素C(即C(V)中的任一个元素)在空间Hm×Wm×L×Nm中的坐标,表示元素C在通道n上的最大值(这里是以第一给定值是最大值为例),通道n,可以是指表2中的任一通道。C(x,y,z,n)是C(V)中的元素,x,y,z,n是其在深度神经网络特征空间中的坐标。
公式(3)即表示,对深度特征中包括的每个元素,可以分别在相应的元素对应的通道上进行归一化,因为这一步对于每个元素都只在一个通道上进行归一化,因此这一步得到的结果为元素在单通道上的归一化结果,本发明实施例中将其称为单通道归一化结果。
第二步,全通道归一化。
我们把第一步归一化也可以称为时空归一化。在做完时空归一化之后再做第二步归一化,我们把第二步归一化也可以叫做通道归一化。通道归一化的公式如下:
公式(4)中,x,y,z,n是元素C在空间Hm×Wm×L×Nm中的坐标,表示在深度神经网络的所有通道上与元素C位于同一位置处的最大值(这里是以第二给定值是最大值为例)。且公式(4)中,C(x,y,z,n)可以是公式(3)中的
公式(4)即表示,对深度特征中包括的每个元素,在根据公式(3)得到单通道归一化结果后,可以继续将每个元素的单通道归一化结果在所有通道上进行归一化。因为这一步对于每个元素都是在所有通道上进行归一化,因此这一步得到的结果为元素在多通道上的归一化结果,本发明实施例中将其称为多通道归一化结果。
在获得各个元素的多通道归一化结果后,可以把得到的各个元素的多通道归一化结果组合起来,例如就是将各个元素的多通道归一化结果首尾拼接起来,构成X个视频帧的深度特征。
本发明实施例中所述的将得到的各个元素的多通道归一化结果组合起来,可以是指每个元素的多通道归一化结果进行简单拼接,例如,如果将每个多通道归一化结果看做一个向量,那么将两个向量首尾相连构成一个向量,就可以看做是将两个多通道归一化结果进行组合。
步骤103:确定组成每条运动轨迹的像素点在X个视频帧中的相应位置,并从深度特征中获取每个位置的子深度信息,根据每个位置的子深度信息得到轨迹深度特征向量;轨迹深度特征向量用于表征N条运动轨迹在X个视频帧中的深度信息。
可选的,本发明实施例中,从深度特征中获取每个位置的子深度信息,包括:
从归一化后的深度特征中获取每个位置的子深度信息。
本发明实施例中,在步骤101中获得了N个运动像素点的运动轨迹,以及在步骤102中获得了X个视频帧的归一化后的深度特征,则可以进一步获得X个视频帧对应的运动向量,本发明实施例中,将这样获得的运动向量也称为TDD(Trajectory-pooled Deep-convolutional Descriptor,轨道层深度卷机码描述符),即如前所述的轨迹深度特征向量。
具体的,在做完第二步多通道归一化之后,沿每个运动轨迹在每个视频帧中的位置,使用如下公式对深度特征进行编码:
例如本发明实施例中用T(V)表示任意一条运动轨迹,公式(5)中, 是T(V)中第p个位置的坐标,rm是第m层的深度特征相对于输入的比率(即中的map size ratio的值),是四舍五入操作,本发明实施例把称为TDD。其中,Tk表示第k个运动像素点的运动轨迹,可以认为是第m层的深度特征,其中的a即为公式(2)中的s或t。
每个运动轨迹都是由相应的运动像素点与多个视频帧的交点(即相应的运动像素点在视频帧中的许多相应位置)构成的,那么可以分别确定出每个运动轨迹在X个视频帧中的位置,对于其中的每个位置,分别在归一化后的深度特征中确定该位置对应的深度信息(本发明实施例中将其称为子深度信息),最后,沿每个运动轨迹中每个位置对应的子深度信息进行编码,就构成了轨迹深度特征向量。这就是公式(5)的含义。
另外,如前面介绍的,例如对于一个运动轨迹A来说,可能是在X个视频帧上都有相应位置,即与X个视频帧中的每个视频帧都有交点,或者也可能只在X个视频帧中的部分视频帧上有相应位置,即只与X个视频帧中的部分视频帧有交点。那么,在确定运动轨迹A对应的每个位置的子深度信息时,若运动轨迹A与X个视频帧都有交点,那么就是根据公式(5)确定X个视频帧中与运动轨迹A相应的X个位置的子深度信息,而,若运动轨迹A只与X个视频帧中的部分视频帧有交点,那么就是根据公式(5)确定X个视频帧中与运动轨迹A有交点的P个视频帧中的P个位置的子深度信息,P个位置为与运动轨迹A相应的位置,P为小于X的正整数,则对于剩余的X-P个视频帧,其中没有与运动轨迹A相应的位置,即运动轨迹A与剩余的X-P个视频帧没有交点,那么在确定运动轨迹A的深度特征时,也就不考虑这X-P个视频帧,即,X-P个视频帧中没有与运动轨迹A对应的位置的子深度信息,自然也就无需采用公式(5)去确定X-P个视频帧中与运动轨迹A对应的位置的子深度信息。
需要注意的是,以上描述的方法中,只在每个视频帧的原始尺度上提取了特征,在实际处理中,也可以把X个视频帧中的每个视频帧缩放到不同尺度上来提取TDD,例如对于一帧500*500的视频帧,可以分别将其缩放到250*250、120*120等不同的尺度上,这样,对于X个视频帧,可能在每个尺度上会对应于一个TDD,最后可以把各个尺度对应的TDD进行组合,以形成X个视频帧对应的TDD。这里对于组合方式并不限定,例如可以是将每个TDD的首尾相接,或者也可以是其他可能的组合方式。
在得到TDD之后,可以有多种应用,例如可以利用TDD进行动作识别、视频检索、拷贝视频检测、视频监控分析等等,本发明对于TDD的具体应用方式不作限制。
例如,若要利用TDD进行动作识别,那么可以对TDD进行高级编码,再将编码后得到的特征输入到分类器中。本发明实施例中对于高级编码方式不做限定,例如可以使用FV(Fisher Vector,菲西矢量)方式进行高级编码,之后可以把得到的特征输入到SVM(Support Vector Machine,支持向量机)中即可完成识别。对TDD进行高级编码、以及将得到的特征送入分类器的方式,均可参照现有技术,本发明对此不作限制。
以下结合附图介绍本发明实施例中的装置。
请参见图3A,基于同一发明构思,本发明实施例提供一种获取向量的装置,所述装置可以包括第一获取模块301、第二获取模块302和第三获取模块303。
第一获取模块301,用于对视频的X个视频帧按照第一算法进行处理,得到N个像素点一一对应的N条运动轨迹;其中,一条运动轨迹描述了一个像素点在所述X个视频帧中位置的变化;所述N个像素点是按照预设规则在所述X个视频帧中选择出来的;
第二获取模块302,用于采用预设的深度神经网络对所述X个视频帧进行处理,得到所述X个视频帧的深度特征;
第三获取模块303,用于确定组成第一获取模块301得到的每条运动轨迹的像素点在所述X个视频帧中的相应位置,并从第二获取模块302得到的所述深度特征中获取每个位置的子深度信息,根据所述每个位置的子深度信息得到轨迹深度特征向量;所述轨迹深度特征向量用于表征所述N条运动轨迹在所述X个视频帧中的深度信息;其中,X、N为正整数。
可选的,本发明实施例中,当X不小于2时,所述X个视频帧是连续的。
可选的,本发明实施例中,第一获取模块301具体用于:
对于所述X个视频帧中每相邻的两个视频帧,均执行如下操作:获取所述相邻的两个视频帧对应的第一光流场;所述第一光流场用于表示在所述相邻的两个视频帧中,同一个像素点的速度矢量;通过中值滤波器对所述第一光流场进行处理,获取第二光流场,所述第二光流场用于表示,所述相邻的两个视频帧中,前一个视频帧中的像素点在后一个视频帧中的位置;
根据获取的所述X个视频帧中每相邻的两个视频帧之间的第二光流场,获得所述N个像素点对应的所述N条运动轨迹。
可选的,请参见图3B,本发明实施例中,所述装置还包括处理模块304,处理模块304用于在第一获取模块301获取所述相邻的两个视频帧对应的第一光流场之前,对所述X个视频帧中的每个视频帧做如下处理:
在一个视频帧中,将每隔预设数量个普通像素点的一个普通像素点取为目标像素点,计算获取的所有目标像素点的自相关矩阵;其中,所述普通像素点所述一个视频帧中的任意一个像素点;
在所述一个视频帧中,丢弃所述自相关矩阵中的特征值小于预设值的元素对应的普通像素点;
第一获取模块301具体用于:
根据所述处理模块处理后的X个视频帧,获取所述相邻的两个视频帧对应的所述第一光流场。
可选的,本发明实施例中,第一获取模块301在获取第二光流场之后,还用于对于所述X个视频帧中每相邻的两个视频帧,均执行如下操作:
获取所述相邻的两个视频帧中的至少一组待匹配点对;所述待匹配点对为:所述相邻的两个视频帧中,前一个视频帧的任意一个像素点和所述运动像素点在相邻的后一个视频帧中得到的对应点构成的点对;其中,每组待匹配点对中包括一对或多对待匹配点对;
针对所述至少一组待匹配点对中的每组,分别获得一个仿射变换矩阵;
通过得到的每一个仿射变换矩阵分别确定每一组待匹配点对中的每一对待匹配点对是否匹配;
将确定出的相匹配的待匹配点对数量最多的仿射变换矩阵确定为与所述相邻的两个视频帧对应的第一仿射变换矩阵,并通过所述第一仿射变换矩阵,对所述相邻的两个视频帧中的前一个视频帧作仿射变换,获得所述前一个视频帧中的像素点在所述相邻的两个视频帧中的后一个视频帧中的实际位置;
根据所述第二光流场,以及所述前一个视频帧中的运动像素点在所述后一个视频帧中的实际位置,获取所述相邻的两个视频帧之间的第三光流场;所述第三光流场用于表示,所述相邻的两个视频帧中,前一个视频帧中的像素点在后一个视频帧中的实际位置;
第一获取模块301具体用于:
根据获取的所述X个视频帧中每相邻的两个视频帧之间的第三光流场,获得所述N个像素点对应的所述N条运动轨迹。
可选的,本发明实施例中,第一获取模块301具体用于:
根据获得的各像素点的运动轨迹,分别获取其中每个像素点的位移;
丢弃其中位移大于预设位移的像素点对应的运动轨迹,获得所述N个像素点对应的所述N条运动轨迹。
可选的,本发明实施例中,第二获取模块302具体用于:
将所述X个视频帧、以及第一获取模块301获取的所述X个视频帧对应的第三光流场输入到所述深度神经网络中;
获取所述深度神经网络输出的所述X个视频帧对应的所述深度特征。
可选的,请继续参见图3B,本发明实施例中,所述装置还包括归一化模块305,归一化模块305用于:
在第二获取模块302获取所述深度神经网络输出的、所述X个视频帧对应的所述深度特征之后,对第二获取模块302获取的所述深度特征进行归一化处理,得到归一化后的深度特征。
可选的,本发明实施例中,归一化模块305具体用于:
对第二获取模块302获取的所述深度特征中包括的每个元素,分别在所述深度神经网络中该元素所在的通道上进行归一化,得到每个元素的单通道归一化结果;
将每个元素的单通道归一化结果分别在所述深度神经网络中的所有通道上进行归一化,得到每个元素的多通道归一化结果;
根据每个元素的多通道归一化结果得到所述归一化后的深度特征。
可选的,本发明实施例中,
归一化模块305具体用于:
对第二获取模块302获取的所述深度特征中包括的每个元素,分别除以该元素在所述深度神经网络中该元素所在的通道内的第一给定值,得到每个元素的单通道归一化结果;
将每个元素的单通道归一化结果分别除以所述深度神经网络中的所有通道内与该元素位于同一位置的元素对应的第二给定值,得到每个元素的多通道归一化结果。
可选的,本发明实施例中,第三获取模块303具体用于:
从归一化模块305根据第二获取模块302得到的所述深度特征得到的归一化后的深度特征中获取所述每个位置的子深度信息。
请参见图4,基于同一发明构思,本发明实施例提供另一种获取向量的装置,所述装置可以包括存储器401,以及与存储器401相连的处理器402。
存储器401,用于存储处理器402执行任务所需的指令;
处理器402,用于执行存储器401存储的指令,对视频的X个视频帧按照第一算法进行处理,得到N个像素点一一对应的N条运动轨迹;其中,一条运动轨迹描述了一个运动像素点在所述X个视频帧中位置的变化;所述N个运动像素点是按照预设规则在所述X个视频帧中选择出来的;采用预设的深度神经网络对所述X个视频帧进行处理,得到所述X个视频帧的深度特征;以及,确定组成每条运动轨迹的像素点在视频帧中的位置,并从所述深度特征中获取每个位置的子深度信息,根据所述每个位置的子深度信息得到轨迹深度特征向量;所述轨迹深度特征向量用于表征所述N条运动轨迹在所述X个视频帧中的深度信息;其中,X、N为正整数。
可选的,本发明实施例中,当X不小于2时,所述X个视频帧是连续的。
可选的,本发明实施例中,处理器402具体用于:
对于所述X个视频帧中每相邻的两个视频帧,均执行如下操作:获取所述相邻的两个视频帧对应的第一光流场;所述第一光流场用于表示在所述相邻的两个视频帧中,同一个运动像素点的速度矢量;通过中值滤波器对所述第一光流场进行处理,获取第二光流场,所述第二光流场用于表示,所述相邻的两个视频帧中,前一个视频帧中的像素点在后一个视频帧中的位置;
根据获取的所述X个视频帧中每相邻的两个视频帧之间的第二光流场,获得所述N个像素点对应的所述N条运动轨迹。
可选的,本发明实施例中,
处理器402在获取所述相邻的两个视频帧对应的第一光流场之前,还用于对所述X个视频帧中的每个视频帧做如下处理:在一个视频帧中,将每隔预设数量个普通像素点的一个普通像素点取为目标像素点,计算获取的所有目标像素点的自相关矩阵;其中,所述普通像素点为所述一个视频帧中的任意一个像素点;在所述一个视频帧中,丢弃所述自相关矩阵中的特征值小于预设值的元素对应的普通像素点;
处理器402具体用于:根据处理后的X个视频帧,获取所述相邻的两个视频帧对应的所述第一光流场。
可选的,本发明实施例中,处理器402在获取第二光流场之后,还用于:对于所述X个视频帧中每相邻的两个视频帧,均执行如下操作:
获取所述相邻的两个视频帧中的至少一组待匹配点对;所述待匹配点对为:所述相邻的两个视频帧中,前一个视频帧的任意一个像素点和所述任意一个像素点在相邻的后一个视频帧中得到的对应点构成的点对;其中,每组待匹配点对中包括一对或多对待匹配点对;
针对所述至少一组待匹配点对中的每组,分别获得一个仿射变换矩阵;
通过得到的每一个仿射变换矩阵分别确定每一组待匹配点对中的每一对待匹配点对是否匹配;
将确定出的相匹配的待匹配点对数量最多的仿射变换矩阵确定为与所述相邻的两个视频帧对应的第一仿射变换矩阵,并通过所述第一仿射变换矩阵,对所述相邻的两个视频帧中的前一个视频帧作仿射变换,获得所述前一个视频帧中的像素点在所述相邻的两个视频帧中的后一个视频帧中的实际位置;
根据所述第二光流场,以及所述前一个视频帧中的像素点在所述后一个视频帧中的实际位置,获取所述相邻的两个视频帧之间的第三光流场;所述第三光流场用于表示,所述相邻的两个视频帧中,前一个视频帧中的像素点在后一个视频帧中的实际位置;
处理器402具体用于:
根据获取的所述X个视频帧中每相邻的两个视频帧之间的第三光流场,获得所述N个像素点对应的所述N条运动轨迹。
可选的,本发明实施例中,处理器402具体用于:
根据获得的各像素点的运动轨迹,分别获取其中每个像素点的位移;
丢弃其中位移大于预设位移的像素点对应的运动轨迹,获得所述N个像素点对应的所述N条运动轨迹。
可选的,本发明实施例中,处理器402具体用于:
将所述X个视频帧、以及所述X个视频帧对应的第三光流场输入到所述深度神经网络中;
获取所述深度神经网络输出的所述X个视频帧对应的所述深度特征。
可选的,本发明实施例中,处理器402在获取所述深度神经网络输出的所述X个视频帧对应的所述深度特征之后,还用于:
对所述深度特征进行归一化处理,得到归一化后的深度特征。
可选的,本发明实施例中,处理器402具体用于:
对所述深度特征中包括的每个元素,分别在所述深度神经网络中该元素所在的通道上进行归一化,得到每个元素的单通道归一化结果;
将每个元素的单通道归一化结果分别在所述深度神经网络中的所有通道上进行归一化,得到每个元素的多通道归一化结果;
根据每个元素的多通道归一化结果得到所述归一化后的深度特征。
可选的,本发明实施例中,处理器402具体用于:
对所述深度特征中包括的每个元素,分别除以该元素在所述深度神经网络中该元素所在的通道内的第一给定值,得到每个元素的单通道归一化结果;
将每个元素的单通道归一化结果分别除以所述深度神经网络中的所有通道内与该元素位于同一位置的元素对应的第二给定值,得到每个元素的多通道归一化结果。
可选的,本发明实施例中,处理器402具体用于:
从所述归一化后的深度特征中获取所述每个位置的子深度信息。
本发明实施例中,可以获取X个视频帧中的像素点对应的运动轨迹,以及通过深度神经网络获取X个视频帧的深度特征,从而根据运动轨迹和深度特征获得X个视频帧对应的轨迹深度特征向量(因为轨迹深度特征向量是视频中的运动物体对应的,因此也可以称为运动向量),该轨迹深度特征向量可以用于表示视频中的运动物体的轨迹以及轨迹上的每个点对应的深度信息,即,本发明实施例提供了一种较好地获取视频中的运动向量的方式。
本发明实施例中,视频帧的深度特征是通过深度神经网络获取的,因此准确度较高,且本发明实施例中的深度神经网络只需要获取深度特征,而无需对所有视频帧从头进行识别,因此本发明实施例中的深度神经网络在进行训练时的训练方式较为简单,也无需大量的复杂样本进行训练,减少了训练深度神经网络所带来的工作量。本发明实施例中的轨迹深度特征向量既可以体现出像素点的运动轨迹,也可以体现出像素点在每个位置时的深度信息,从而便于后续对轨迹深度特征向量加以利用。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将装置的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,不应理解为对本发明的限制。本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (22)
1.一种获取向量的方法,其特征在于,包括以下步骤:
对视频的X个视频帧按照第一算法进行处理,得到N个像素点一一对应的N条运动轨迹;其中,一条运动轨迹描述了一个像素点在所述X个视频帧中位置的变化;所述N个像素点是按照预设规则在所述X个视频帧中选择出来的;
采用预设的深度神经网络对所述X个视频帧进行处理,得到所述X个视频帧的深度特征;
确定组成每条运动轨迹的像素点在所述X个视频帧中的位置,并从所述深度特征中获取每个位置的子深度信息,根据所述每个位置的子深度信息得到轨迹深度特征向量;所述轨迹深度特征向量用于表征所述N条运动轨迹在所述X个视频帧中的深度信息;
其中,X、N为正整数。
2.如权利要求1所述的方法,其特征在于,当X不小于2时,所述X个视频帧是连续的。
3.如权利要求1或2所述的方法,其特征在于,所述对视频的X个视频帧按照第一算法进行处理,得到N个像素点一一对应的N条运动轨迹,包括:
对于所述X个视频帧中每相邻的两个视频帧,均执行如下操作:获取所述相邻的两个视频帧对应的第一光流场;所述第一光流场用于表示在所述相邻的两个视频帧中,同一个像素点的速度矢量;通过中值滤波器对所述第一光流场进行处理,获取第二光流场,所述第二光流场用于表示,所述相邻的两个视频帧中,前一个视频帧中的像素点在后一个视频帧中的位置;
根据获取的所述X个视频帧中每相邻的两个视频帧之间的第二光流场,获得所述N个像素点对应的所述N条运动轨迹。
4.如权利要求3所述的方法,其特征在于,
在所述获取所述相邻的两个视频帧对应的第一光流场之前,所述方法还包 括:
对所述X个视频帧中的每个视频帧做如下处理:
在一个视频帧中,将每隔预设数量个普通像素点的一个普通像素点取为目标像素点,计算获取的所有目标像素点的自相关矩阵;其中,所述普通像素点为所述一个视频帧中的任意一个像素点;
在所述一个视频帧中,丢弃所述自相关矩阵中的特征值小于预设值的元素对应的普通像素点;
所述获取所述相邻的两个视频帧对应的第一光流场,包括:
根据处理后的X个视频帧,获取所述相邻的两个视频帧对应的所述第一光流场。
5.如权利要求3所述的方法,其特征在于,
在所述获取第二光流场之后,所述方法还包括:对于所述X个视频帧中每相邻的两个视频帧,均执行如下操作:
获取所述相邻的两个视频帧中的至少一组待匹配点对;所述待匹配点对为:所述相邻的两个视频帧中,前一个视频帧的任意一个像素点和所述任意一个像素点在相邻的后一个视频帧中得到的对应点构成的点对;其中,每组待匹配点对中包括一对或多对待匹配点对;
针对所述至少一组待匹配点对中的每组,分别获得一个仿射变换矩阵;
通过得到的每一个仿射变换矩阵分别确定每一组待匹配点对中的每一对待匹配点对是否匹配;
将确定出的相匹配的待匹配点对数量最多的仿射变换矩阵确定为与所述相邻的两个视频帧对应的第一仿射变换矩阵,并通过所述第一仿射变换矩阵,对所述相邻的两个视频帧中的前一个视频帧作仿射变换,获得所述前一个视频帧中的像素点在所述相邻的两个视频帧中的后一个视频帧中的实际位置;
根据所述第二光流场,以及所述前一个视频帧中的像素点在所述后一个视频帧中的实际位置,获取所述相邻的两个视频帧之间的第三光流场;所述第三光流场用于表示,所述相邻的两个视频帧中,前一个视频帧中的像素点在后一个视频帧中的实际位置;
所述根据获取的所述X个视频帧中每相邻的两个视频帧之间的第二光流场,获得所述N个像素点对应的所述N条运动轨迹,包括:
根据获取的所述X个视频帧中每相邻的两个视频帧之间的第三光流场,获得所述N个像素点对应的所述N条运动轨迹。
6.如权利要求5所述的方法,其特征在于,所述获得所述N个像素点对应的所述N条运动轨迹,包括:
根据获得的各像素点的运动轨迹,分别获取其中每个像素点的位移;
丢弃其中位移大于预设位移的像素点对应的运动轨迹,获得所述N个像素点对应的所述N条运动轨迹。
7.如权利要求6所述的方法,其特征在于,所述采用预设的深度神经网络对所述X个视频帧处理,得到所述X个视频帧的深度特征,包括:
将所述X个视频帧、以及所述X个视频帧对应的第三光流场输入到所述深度神经网络中;
获取所述深度神经网络输出的所述X个视频帧对应的所述深度特征。
8.如权利要求7所述的方法,其特征在于,在所述获取所述深度神经网络输出的所述X个视频帧对应的所述深度特征之后,还包括:
对所述深度特征进行归一化处理,得到归一化后的深度特征。
9.如权利要求8所述的方法,其特征在于,所述对所述深度特征进行归一化处理,得到归一化后的深度特征,包括:
对所述深度特征中包括的每个元素,分别在所述深度神经网络中该元素所在的通道上进行归一化,得到每个元素的单通道归一化结果;
将每个元素的单通道归一化结果分别在所述深度神经网络中的所有通道上进行归一化,得到每个元素的多通道归一化结果;
根据每个元素的多通道归一化结果得到所述归一化后的深度特征。
10.如权利要求9所述的方法,其特征在于,
所述对所述深度特征中包括的每个元素,分别在所述深度神经网络中该元素所在的通道上进行归一化,得到每个元素的单通道归一化结果,包括:
对所述深度特征中包括的每个元素,分别除以该元素在所述深度神经网络中该元素所在的通道内的第一给定值,得到每个元素的单通道归一化结果;
所述将每个元素的单通道归一化结果分别在所述深度神经网络中的所有通道上进行归一化,得到每个元素的多通道归一化结果,包括:
将每个元素的单通道归一化结果分别除以所述深度神经网络中的所有通道内与该元素位于同一位置的元素对应的第二给定值,得到每个元素的多通道归一化结果。
11.如权利要求8-10任一所述的方法,其特征在于,所述从所述深度特征中获取所述每个位置的子深度信息,包括:
从所述归一化后的深度特征中获取所述每个位置的子深度信息。
12.一种获取向量的装置,其特征在于,包括:
第一获取模块,用于对视频的X个视频帧按照第一算法进行处理,得到N个像素点一一对应的N条运动轨迹;其中,一条运动轨迹描述了一个像素点在所述X个视频帧中位置的变化;所述N个像素点是按照预设规则在所述X个视频帧中选择出来的;
第二获取模块,用于采用预设的深度神经网络对所述X个视频帧进行处理,得到所述X个视频帧的深度特征;
第三获取模块,用于确定组成所述第一获取模块得到的每条运动轨迹的像素点在所述X个视频帧中的位置,并从所述第二获取模块得到的所述深度特征中获取每个位置的子深度信息,根据所述每个位置的子深度信息得到轨迹深度特征向量;所述轨迹深度特征向量用于表征所述N条运动轨迹在所述X个视频帧中的深度信息;
其中,X、N为正整数。
13.如权利要求12所述的装置,其特征在于,当X不小于2时,所述X个视频帧是连续的。
14.如权利要求12或13所述的装置,其特征在于,所述第一获取模块具体用于:
对于所述X个视频帧中每相邻的两个视频帧,均执行如下操作:获取所述相邻的两个视频帧对应的第一光流场;所述第一光流场用于表示在所述相邻的两个视频帧中,同一个像素点的速度矢量;通过中值滤波器对所述第一光流场进行处理,获取第二光流场,所述第二光流场用于表示,所述相邻的两个视频帧中,前一个视频帧中的像素点在后一个视频帧中的位置;
根据获取的所述X个视频帧中每相邻的两个视频帧之间的第二光流场,获得所述N个像素点对应的所述N条运动轨迹。
15.如权利要求14所述的装置,其特征在于,所述装置还包括处理模块;
所述处理模块用于在所述第一获取模块获取所述相邻的两个视频帧对应的第一光流场之前,对所述X个视频帧中的每个视频帧做如下处理:
在一个视频帧中,将每隔预设数量个普通像素点的一个普通像素点取为目标像素点,计算获取的所有目标像素点的自相关矩阵;其中,所述普通像素点所述一个视频帧中的任意一个像素点;
在所述一个视频帧中,丢弃所述自相关矩阵中的特征值小于预设值的元素对应的普通像素点;
所述第一获取模块具体用于:
根据所述处理模块处理后的X个视频帧,获取所述相邻的两个视频帧对应的所述第一光流场。
16.如权利要求14所述的装置,其特征在于,所述第一获取模块在获取第二光流场之后,还用于对于所述X个视频帧中每相邻的两个视频帧,均执行如下操作:
获取所述相邻的两个视频帧中的至少一组待匹配点对;所述待匹配点对 为:所述相邻的两个视频帧中,前一个视频帧的任意一个像素点和所述像素点在相邻的后一个视频帧中得到的对应点构成的点对;其中,每组待匹配点对中包括一对或多对待匹配点对;
针对所述至少一组待匹配点对中的每组,分别获得一个仿射变换矩阵;
通过得到的每一个仿射变换矩阵分别确定每一组待匹配点对中的每一对待匹配点对是否匹配;
将确定出的相匹配的待匹配点对数量最多的仿射变换矩阵确定为与所述相邻的两个视频帧对应的第一仿射变换矩阵,并通过所述第一仿射变换矩阵,对所述相邻的两个视频帧中的前一个视频帧作仿射变换,获得所述前一个视频帧中的像素点在所述相邻的两个视频帧中的后一个视频帧中的实际位置;
根据所述第二光流场,以及所述前一个视频帧中的像素点在所述后一个视频帧中的实际位置,获取所述相邻的两个视频帧之间的第三光流场;所述第三光流场用于表示,所述相邻的两个视频帧中,前一个视频帧中的像素点在后一个视频帧中的实际位置;
所述第一获取模块具体用于:
根据获取的所述X个视频帧中每相邻的两个视频帧之间的第三光流场,获得所述N个像素点对应的所述N条运动轨迹。
17.如权利要求16所述的装置,其特征在于,所述第一获取模块具体用于:
根据获得的各像素点的运动轨迹,分别获取其中每个像素点的位移;
丢弃其中位移大于预设位移的像素点对应的运动轨迹,获得所述N个像素点对应的所述N条运动轨迹。
18.如权利要求17所述的装置,其特征在于,所述第二获取模块具体用于:
将所述X个视频帧、以及所述第一获取模块获取的所述X个视频帧对应的第三光流场输入到所述深度神经网络中;
获取所述深度神经网络输出的所述X个视频帧对应的所述深度特征。
19.如权利要求18所述的装置,其特征在于,所述装置还包括归一化模块,所述归一化模块用于:
在所述第二获取模块获取所述深度神经网络输出的、所述X个视频帧对应的所述深度特征之后,对所述第二获取模块获取的所述深度特征进行归一化处理,得到归一化后的深度特征。
20.如权利要求19所述的装置,其特征在于,所述归一化模块具体用于:
对所述第二获取模块获取的所述深度特征中包括的每个元素,分别在所述深度神经网络中该元素所在的通道上进行归一化,得到每个元素的单通道归一化结果;
将每个元素的单通道归一化结果分别在所述深度神经网络中的所有通道上进行归一化,得到每个元素的多通道归一化结果;
根据每个元素的多通道归一化结果得到所述归一化后的深度特征。
21.如权利要求20所述的装置,其特征在于,所述归一化模块具体用于:
对所述第二获取模块获取的所述深度特征中包括的每个元素,分别除以该元素在所述深度神经网络中该元素所在的通道内的第一给定值,得到每个元素的单通道归一化结果;
将每个元素的单通道归一化结果分别除以所述深度神经网络中的所有通道内与该元素位于同一位置的元素对应的第二给定值,得到每个元素的多通道归一化结果。
22.如权利要求19-21任一所述的装置,其特征在于,所述第三获取模块具体用于:
从所述归一化模块根据所述第二获取模块得到的所述深度特征得到的所述归一化后的深度特征中获取所述每个位置的子深度信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510249856.7A CN104881640B (zh) | 2015-05-15 | 2015-05-15 | 一种获取向量的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510249856.7A CN104881640B (zh) | 2015-05-15 | 2015-05-15 | 一种获取向量的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104881640A CN104881640A (zh) | 2015-09-02 |
CN104881640B true CN104881640B (zh) | 2018-06-15 |
Family
ID=53949128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510249856.7A Active CN104881640B (zh) | 2015-05-15 | 2015-05-15 | 一种获取向量的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104881640B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107563257B (zh) * | 2016-07-01 | 2021-06-15 | 北京旷视科技有限公司 | 视频理解方法及装置 |
CN106250863B (zh) * | 2016-08-09 | 2019-07-26 | 北京旷视科技有限公司 | 对象追踪方法和装置 |
CN106422358A (zh) * | 2016-12-19 | 2017-02-22 | 深圳高灿科技有限公司 | 基于视觉控制的悬停和近距离跟踪装置及方法、电动玩具 |
CN108509830B (zh) * | 2017-02-28 | 2020-12-01 | 华为技术有限公司 | 一种视频数据处理方法及设备 |
CN108229407A (zh) * | 2018-01-11 | 2018-06-29 | 武汉米人科技有限公司 | 一种视频分析中的行为检测方法与*** |
CN110324659B (zh) | 2018-03-29 | 2020-08-28 | 北京字节跳动网络技术有限公司 | 一种视频特征提取方法及装置 |
CN110062272B (zh) | 2019-04-30 | 2021-09-28 | 腾讯科技(深圳)有限公司 | 一种视频数据处理方法和相关装置 |
CN114339395A (zh) * | 2021-12-14 | 2022-04-12 | 浙江大华技术股份有限公司 | 视频抖动检测方法、检测装置、电子设备和可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577793A (zh) * | 2012-07-27 | 2014-02-12 | 中兴通讯股份有限公司 | 手势识别方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8774499B2 (en) * | 2011-02-28 | 2014-07-08 | Seiko Epson Corporation | Embedded optical flow features |
-
2015
- 2015-05-15 CN CN201510249856.7A patent/CN104881640B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577793A (zh) * | 2012-07-27 | 2014-02-12 | 中兴通讯股份有限公司 | 手势识别方法及装置 |
Non-Patent Citations (2)
Title |
---|
Action Recognition with Improved Trajectories;Heng Wang etc;《IEEE International Conference on Computer Vision》;20141231;第159卷;第3551-3558页 * |
Two-Stream Convolutional Networks for Action Recognition in Videos;Karen Simonyan etc;《Advances in Neural Information Processing Systems》;20140430;第1卷(第4期);第568-576页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104881640A (zh) | 2015-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104881640B (zh) | 一种获取向量的方法及装置 | |
Zhang et al. | Ga-net: Guided aggregation net for end-to-end stereo matching | |
Zhang et al. | A bi-directional message passing model for salient object detection | |
Bhatti et al. | Playing doom with slam-augmented deep reinforcement learning | |
Ding et al. | Investigation of different skeleton features for cnn-based 3d action recognition | |
Tran et al. | Learning spatiotemporal features with 3d convolutional networks | |
WO2020259481A1 (zh) | 定位方法及装置、电子设备、可读存储介质 | |
CN108038420B (zh) | 一种基于深度视频的人体行为识别方法 | |
CN106600583B (zh) | 基于端到端神经网络的视差图获取方法 | |
CN107180226A (zh) | 一种基于组合神经网络的动态手势识别方法 | |
CN107808150A (zh) | 人体视频动作识别方法、装置、存储介质及处理器 | |
CN108399435B (zh) | 一种基于动静特征的视频分类方法 | |
CN110419049A (zh) | 房间布局估计方法和技术 | |
CN110073359A (zh) | 用于卷积神经网络的有效数据布局 | |
Kwon et al. | First person action recognition via two-stream convnet with long-term fusion pooling | |
JP6412998B1 (ja) | 動体追跡装置、動体追跡方法、動体追跡プログラム | |
CN110363210A (zh) | 一种图像语义分割模型的训练方法和服务器 | |
CN112818843B (zh) | 基于通道注意力导向时间建模的视频行为识别方法及*** | |
CN110220493A (zh) | 一种双目测距方法及其装置 | |
CN107563357B (zh) | 基于场景分割的直播服饰装扮推荐方法、装置及计算设备 | |
CN109033985A (zh) | 商品识别的处理方法、装置、设备、***及存储介质 | |
CN109859314A (zh) | 三维重建方法、装置、电子设备和存储介质 | |
Hiley et al. | Explaining motion relevance for activity recognition in video deep learning models | |
CN112541972A (zh) | 一种视点图像处理方法及相关设备 | |
Cui et al. | End-to-end visual target tracking in multi-robot systems based on deep convolutional neural network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |