视频中的组群定位与异常行为检测方法与流程

文档序号:19252043发布日期:2019-11-27 20:23阅读:196来源:国知局
视频中的组群定位与异常行为检测方法与流程

本发明涉及视频图像处理及视频分析领域,具体而言,本发明涉及视频中的组群识别及几类特定异常行为检测方法。



背景技术:

视频中的组群异常行为分析在智能监控系统及无人机航拍视频处理中具有非常重大的意义,具有广泛的应用前景。异常检测是计算机视觉领域的研究热点,亦是难点。如何从大量的视频数据中有效的提取所需的信息,并对异常行为及时报警甚至提前预警,将对公共安全领域产生重大影响,不仅能节省大量的人力物力,还能最大限度的保障人们的生命财产安全。而当前的大部分视频监控系统需要人为调取视频数据并分析判断,不仅耗费了大量的资源,还不具有实时性和有效性。因此,重要的是设计一个能自动进行视频组群识别与异常检测的算法,以达到智能预警的目的。

随着计算机技术的发展,基于公共安全的需要,视频中的组群识别与异常行为检测算法受到了广泛的关注,智能异常检测具有广泛的应用前景。

组群的识别有助于获取组群的特性,理解组群的状态,从而有助于完成对视频中人群的异常行为分析。目前,异常行为检测算法主要可以分为两类:第一类是基于正常行为与异常行为模式之间的差异来检测异常的方法。这类方法又可以分为两种:

(1)不需要对行为进行建模的方法。这种方法是通过对行为模式进行聚类,将其中小的聚类标注为异常,在进行异常检测时,将行为与数据库中的正常行为做相似度估计,当相似度差异超过一定阈值时,判定为异常。

(2)构建正常行为模式的数据库,然后再将不符合数据库中行为模式的行为判断为异常。

第二类是对异常行为进行建模的方法。首先获取异常行为的图像序列,然后获取其特征,包括轨迹、形状、速度等特征,然后再通过监督学习构建异常检测模型。这类方法理论是能得到较好的效果,但是获取大量的异常行为数据集很困难,手工进行标注也费时费力。



技术实现要素:

基于标准监督学习的方法,获取大量的异常视频,并对视频进行标注,再训练一个异常检测模型。该算法虽然效果相对较好,但由于现实生活中,很难获得大量的含有异常行为的视频数据集,且对视频进行片段级标注会消耗大量的资源。异常事件发生的概率较小,一般持续时间较短,所以难以获取。针对上述问题,本发明提供了一种视频中的组群异常行为检测方法,在异常行为检测之前,先进行组群识别,获得视频中组群位置及人数;在异常学习过程中,同时对正常行为和异常行为进行学习,且不需要进行片段级的标注,节省大量人力物力。

为了达到上述目的,本发明提供的技术方案是:

步骤(1)获取大量的视频图像数据集;

步骤(2)设计多列空洞卷积神经网络,得到人群密度图;

步骤(3)结合canopy方法和dbscan聚类方法对人群密度图进行点聚类来识别组群,快速得到组群的人数和位置信息;

步骤(4)对所有的视频数据集,将组群位置作为检测的感兴趣区域,使用特征提取神经网络提取其视频时空特征,对提取的时空特征按时间顺序转化为若干个时空特征片段,生成训练样本集和测试样本集;

步骤(5)将训练样本集输入至全连接神经网络;

步骤(6)设置好全连接神经网络的训练参数,利用多实例学习排名损失函数进行训练,直至代价损失减小到一定程度且训练达到迭代最大次数,生成训练模型;

步骤(7)将测试样本集输入至训练好的模型中,输出其对应的异常得分。

进一步的,步骤(2)中的多列空洞卷积神经网络,具体包括:

(2.1)每列子网络包含3个卷积层,其中前两个为空洞卷积层,且每列子网络具有相同的网络结构;

(2.2)每列子网络中使用不同大小的卷积核来适应图像中不同大小的人群;

(2.3)对具有较大卷积核的卷积神经网络(convolutionalneuralnetwork,cnn)使用较少数量的滤波器;

(2.4)最后把子网络的输出特征图通过1×1的卷积层做线性加权得到人群密度图。

进一步的,步骤(3)中的具体实现方式如下:

(3.1)首先通过canopy粗聚类方法对密度图进行预聚类:设定的两个距离阈值t1和t2,其中t2<t1;首先从点集中随机选择一个点作为初始类,并在点集中删去该点;之后再随机选择点,计算该点与所有现存类的距离,如果对所有类d>t1,则将该点作为一个新的类中心,并删去该点;若存在类使得d<t2,则将该点归入该类并删去;否则,该点需参与下一次聚类;重复选取点进行以上的操作,直至点集为空;最终将点集生成若干个小簇,每个小簇都含有中心点,记为新的点集q;

(3.2)利用dbscan聚类方法对(3.1)获得的点集q进行聚类,使canopy粗聚类得到的小簇进一步划分成合适的大簇,形成最终的组群:预先设定一组参数(r,min_points)来表征样本的聚集程度,若某一个样本点r-邻域中最少存在min_pionts个样本点,则该点为高密度点;若点q处于高密度点p的r-领域内,则称q从p出发是直接密度可达的,如果序列p1,p2,…,pn中所有的点pi+1到pi直接密度可达,则称pn对p1密度可达,若点a,点b都对于点c密度可达,则称a,b密度相连;dbscan算法从某一高密度点出发不断寻找密度相连的点,直至该类的区域扩充为包含所有高密度点和边界点的最大区域,从而将紧密聚集在一起的高密度点组成一个类,得到几组不同的组群;

(3.3)得到聚类结果之后,对每一个组群内的密度图进行积分得到该组群的人数,根据密度图聚类的位置在原图上标出人群位置。

进一步的,步骤(4)中使用c3d三维卷积神经网络提取其视频时空特征,该网络具有8个卷积层,5个池化层以及2个全连接层,最后是一个softmax输出层,全部3d卷积核大小都是3×3×3,且在时间和空间维度的步幅都为1,第一个池化层的大小为1×2×2,其他所有池化层的核大小都是2×2×2,每个全连接层都有4096个输出单元。

进一步的,步骤(4)中生成训练样本和测试样本的具体实现方式如下,

(a)对步骤(1)中的视频数据集,将其尺寸调整为320x240,帧率调整为30fps,其中视频数据集包含正常视频和异常视频;

(b)对视频数据集中的每一个视频,利用c3d三维卷积神经网络提取时空特征,并将提取到的每一个视频的时空特征按视频时间长度划分为32个时间片段以txt格式保存;

(c)从处理过后的视频特征集中挑选2/3的视频特征作为训练样本集,其中训练样本集中异常视频特征数目占整个数据集异常视频特征总数的2/3,训练样本集中正常视频特征数目占整个数据集正常视频特征总数的2/3,剩余的视频特征作为测试样本集。

进一步的,步骤(5)所述的全连接神经网络结构包括三部分共四层网络,具体包括:

(5.1)第一部分:网络层数,该部分由4个全连接层构成,第一层输入为视频的特征,有4096个维度,含有1024个神经元;第二层为512个神经元;第三层有32个神经元;最后一层有1个神经元,输出异常得分;

(5.2)第二部分:随机失活(dropout),用于设置各全连接层间的dropout值,使检测效果最佳;

(5.3)第三部分:激活函数,第一层、第二层与第三层使用relu激活函数,而最后一层使用sigmoid激活函数。

进一步的,步骤(6)中生成训练模型的具体实现方式如下,

(6.1)将训练样本集输入到全连接网络中进行迭代训练;

(6.2)训练过程中,采用自适应地为各个参数分配不同学习率的adagrad优化器算法,设定初始学习率,迭代若干次;由于损失函数使用多实例学习排名损失,即学习异常视频与正常视频中的最大异常得分片段,进行排名损失,再加上稀疏性与平滑性约束,其损失函数表示为:

其中ba表示异常视频组成的正样本包,bn表示正常视频组成的负样本包,ρa和ρn分别表示异常视频片段和正常视频片段,f(ρa)和f(ρn)则表示预测的相应得分,表示平滑性约束,表示稀疏性约束,其中γ1,γ2分别代表平滑约束系数和稀疏约束系数,n是样本包的个数;表示铰链损失;

(6.3)进行训练,得到一个用于异常行为检测的模型,并输出异常得分。

与现有技术相比,本发明的优点和有益效果:(1)与一般异常行为检测相比,本发明加入了组群这一先验条件,先进行组群识别并只对组群进行异常行为检测,可以提供更多检测信息并提高异常检测效率。

(2)与基于正常行为建模的方法相比,本发明同时学习正常行为和异常行为,针对几类特定异常行为可以得到更好的学习结果。

(3)与基于异常行为建模的算法相比,本发明的不需要对异常视频进行片段级标注,且异常视频不需要整个视频都包含异常行为,只需要其中某个片段存在异常行为即可。本发明对数据集进行视频级标注,让网络基于多实例学习排名模型自动学习异常片段得分,节省人力物力。

附图说明

图1是本发明实施例的整体流程图;

图2是本发明实施例中,组群识别方法的流程示意图;

图3是本发明实施例中,提取视频时空特征的三维卷积神经网络结构示意图;

图4是本发明实施例中学习异常得分的全连接网络结构示意图;

图5是本发明实施例的检测结果示意图。

具体实施方式

下面结合附图和实施例对本发明进行详细的描述,但本发明要求保护的范围并不局限于实施方式表述的范围。

本发明的流程示意图如图1所示,具体包含以下步骤:

步骤(1)获取大量的视频图像数据集,主要来源于个各大数据网站下载,以及其他常用数据集里面截取;

步骤(2)设计了一个多列空洞卷积神经网络,其网络结构如图2所示。使用不同大小的卷积核来提取不同大小人头的特征,得到人群密度图。

步骤(2)中的多列空洞卷积神经网络具体包括:

(2.1)每列子网络使用相同的网络结构,都包含3个卷积层,其中前两个为空洞卷积层。引入空洞卷积保证了输入输出的尺寸一致,同时增加了感受野。空洞卷积核是把紧凑的卷积核拆分开,在膨胀处补上0。例如对3×3网络作空洞率为3的填充,就形成感受野7×7的空洞卷积核。卷积核遍历整幅图像区域,与滑窗中的矩阵进行点积求和运算,其中实际参与计算的只有原卷积核的点,最终逐一得到该层输出值,并作为下一层的输入。

(2.2)子网络中使用不同大小的卷积核来适应图像中不同大小的人群,分别为9×9、7×7和5×5;

(2.3)对具有较大卷积核的cnn使用较少数量的滤波器,可以有效降低计算复杂度。在本网络中,对卷积核为7×7,5×5和3×3的网络在第二层使用32,40,48个滤波器,在第三层中分别使用16,20,24个滤波器;

(2.3)最后把子网络的输出特征图通过1×1的卷积层做线性加权得到人群密度图。

步骤(3)结合canopy方法和dbscan聚类方法对密度图进行点聚类来识别组群,快速得到组群的人数和位置信息。

步骤(3)中的快速组群识别方法具体包括:

(3.1)首先通过canopy粗聚类方法对密度图进行预聚类。设定的两个距离阈值t1和t2,其中t2<t1。首先从点集中随机选择一个点作为初始类,并在点集中删去该点。之后再随机选择点,计算该点与所有现存类的距离,如果对所有类d>t1,则将该点作为一个新的类中心,并删去该点;若存在类使得d<t2,则将该点归入该类并删去;否则,该点需参与下一次聚类。重复选取点进行以上的操作,直至点集为空。canopy粗聚类的结果将点集生成许多小簇,每个小簇都含有中心点,从而得到新的点集q,用于下一步的dbscan聚类。

(3.2)dbscan聚类方法通过对上一步的点集q进行聚类,使canopy粗聚类得到的小簇进一步划分成合适的大的簇,形成最终的组群。dbscan通过预先设定一组参数(r,min_points)来表征样本的聚集程度,若某一个样本点r-邻域中最少存在min_pionts个样本点,则该点为高密度点。若点q处于高密度点p的r-领域内,则称q从p出发是直接密度可达的。如果序列p1,p2,…,pn中所有的点pi+1到pi直接密度可达,则称pn对p1密度可达。若点a,点b都对于点c密度可达,则称a,b密度相连。dbscan算法从某一高密度点出发不断寻找密度相连的点,直至该类的区域扩充为包含所有高密度点和边界点的最大区域,从而将紧密聚集在一起的高密度点组成一个类,得到几组不同的组群。

(3.3)得到聚类结果之后,我们对每一个组群内的密度图进行积分得到该组群的人数,根据密度图聚类的位置在原图上标出人群位置。

步骤(4)对所有的视频数据集,将组群位置作为检测的感兴趣区域,使用c3d三维卷积神经网络提取其视频时空特征,其网络结构如图3所示。该网络具有8个卷积层,5个池化层以及2个全连接层,最后是一个softmax输出层。全部3d卷积核大小都是3×3×3,且在时间和空间维度的步幅都为1,各卷积层的滤波器数量都在框中表示,池化层分别为1到5。除了第一个池化层,其他所有池化层的核大小都是2×2×2,第一个池化层的和大小为1×2×2。每个全连接层都有4096个输出单元。提取c3d特征时,把视频分成16帧长的剪辑片段,两个连续的剪辑片段之间有8帧的重叠,将剪辑片段输入c3d网络来提取全连接fc6层的激活,fc6层激活被平均为4096维的视频描述符并通过l2规范化;然后对提取的时空特征转化为若干个特征片段,生成训练样本集和测试样本集。

步骤(4)所述的对视频数据集提取时空特征生成训练样本集和测试样本集,通过如下步骤实现:

(4.1)步骤(1)中的视频数据集包含了较多的场景,主要是由视频中捕捉真实环境下的场景。数据集包含正常视频和异常视频,异常视频中,某个片段存在异常行为;

(4.2)对步骤(1)中的视频数据集,将其尺寸调整为320x240,帧率调整为30fps。为了能够有效的学习到异常的视频片段,对视频数据集中的每一个视频提取时空特征,并将提取到的每一个视频的时空特征按视频时间长度划分为32个时间片段以txt格式保存;

(4.3)从处理过后的视频特征集中挑选2/3的视频特征作为训练样本集,其中训练样本集中异常视频特征数目占整个数据集异常视频特征总数的2/3,训练样本集中正常视频特征数目占整个数据集正常视频特征总数的2/3,剩余的视频特征作为测试样本集。

步骤(5)将txt格式的训练样本输入至全连接神经网络,本算法全连接神经网络的结构如图4所示;

步骤(5)所述的全连接神经网络结构包括三部分共四层网络,具体包括:

(5.1)第一部分:网络层数。该部分由4个全连接层构成,第一层输入为视频的特征,有4096个维度,含有1024个神经元;第二层为512个神经元;第三层有32个神经元;最后一层有1个神经元,输出异常得分;

(5.2)第二部分:dropout。该部分功能主要为防止训练过拟合,各层间的dropout值为0.6,其与网络层数决定了模型的检测效果。实验证明使用4层网络,dropout值为0.6达到最佳效果;

(5.3)第三部分:激活函数。不同的激活函数,适用的场景有所差异,在该异常检测算法中,第一层、第二层与第三层使用了relu激活函数,而最后一层使用了sigmoid激活函数。

步骤(6)设置好网络的训练使用参数,利用多实例学习排名损失函数训练全连接神经网络,直至代价损失减小到一定程度且训练达到迭代最大次数,生成训练模型;

步骤(6)中生成训练模型的具体实现方式如下,

(6.1)网络结构确定以后,将训练样本集输入到全连接网络中进行迭代训练;

(6.2)训练过程中,采用adagrad优化器,初始学习率为0.001,迭代次数为2万次。由于损失函数使用多实例学习排名损失,即学习异常视频与正常视频中的最大异常得分片段,进行排名损失,再加上稀疏性与平滑性约束;

损失函数可以表示为:

上述损失函数中ba表示异常视频组成的正样本包,bn表示正常视频组成的负样本包,ρa和ρn分别表示异常视频片段和正常视频片段,f(ρa)和f(ρn)则表示预测的相应得分,表示平滑性约束,表示稀疏性约束,其中γ1,γ2分别代表平滑约束系数和稀疏约束系数,γ1越大,对视频片段的平滑性要求越高,相邻包的差异应当较小;γ2越大,视频的稀疏性要求越大,正样本包的得分应当较低;n是样本包的个数。表示铰链损失;

(6.3)进行训练,得到一个用于异常行为检测的模型,该模型输入测试视频片段对应的时空特征,输出异常得分;

步骤(7)将测试视频对应的时空特征输入至训练好的模型中,输出视频的异常得分,图5为本发明算法的异常行为检测结果。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

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