发明名称 一种拥挤场景下视频异常事件检测方法
摘要 本发明涉及一种拥挤场景下视频异常事件检测方法。具体步骤是:训练阶段,首先对视频分块并提取块的光流信息表示块的局部特征,然后以块的局部特征作为原子构建图,采用拉普拉斯特征映射降维并采用自适应聚类方法对局部特征分类,获得类中心作为码字;最后由码字组成码本。测试阶段,先对视频分块提取局部特征,然后计算与码本的特征距离相似度,并结合前一时刻的8-邻域信息检测事件。本发明只需对光流特征构成的原子集合进行聚类即可建立正常事件模型,历史时刻的邻域信息进一步提高了异常事件检测的准确性。
申请公布号 CN105354542A 申请公布日期 2016.02.24
申请号 CN201510710563.4 申请日期 2015.10.27
申请人 杭州电子科技大学 发明人 陈华华;周灵娟;郭春生
分类号 G06K9/00(2006.01)I;G06K9/62(2006.01)I 主分类号 G06K9/00(2006.01)I
代理机构 杭州君度专利代理事务所(特殊普通合伙) 33240 代理人 杜军
主权项 一种拥挤场景下视频异常事件检测方法,其特征在于包括如下步骤:步骤(1)特征提取,具体如下:将视频中每一帧分割成互不重叠且大小为N×N的块,并连续取M帧,得到大小为N×N×M的立体块,因此M帧长的视频由若干个立体块组成,每个立体块称为原子;设视频帧的分辨率大小为W×H,每一帧得到块的数量<img file="FDA0000831698630000011.GIF" wi="646" he="79" />其中<img file="FDA0000831698630000012.GIF" wi="78" he="77" />表示向下取整;t时刻loci位置块的运动信息用一个直方图表示<img file="FDA0000831698630000013.GIF" wi="412" he="78" />1≤loci≤f_block,loci是整数,其中h<sub>i</sub>,1≤i≤4,是loci位置块根据光流方向按90度间隔量化获得的4个方向上的光流幅值之和;当前时刻为t,结合t时刻的前(M‑1)/2帧与后(M‑1)/2帧的直方图信息,t时刻loci位置上的原子表示为<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>x</mi><mrow><mi>l</mi><mi>o</mi><mi>c</mi><mi>i</mi></mrow></msub><mo>=</mo><mo>&lsqb;</mo><msubsup><mi>h</mi><mrow><mi>l</mi><mi>o</mi><mi>c</mi><mi>i</mi></mrow><mrow><mi>t</mi><mo>-</mo><mrow><mo>(</mo><mi>M</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>/</mo><mn>2</mn></mrow></msubsup><mo>...</mo><msubsup><mi>h</mi><mrow><mi>l</mi><mi>o</mi><mi>c</mi><mi>i</mi></mrow><mrow><mi>t</mi><mo>+</mo><mrow><mo>(</mo><mi>M</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>/</mo><mn>2</mn></mrow></msubsup><mo>&rsqb;</mo><mo>,</mo></mrow>]]></math><img file="FDA0000831698630000014.GIF" wi="590" he="79" /></maths>M取奇数,1≤loci≤f_block;对于一段视频,以M帧为单位分成P小段,得到的原子数量为P×f_block,由这些原子构成该视频的原子集合;步骤(2)特征学习,具体如下:2‑1.采用拉普拉斯特征映射方法把原子集合映射到低维空间中,再对其进行聚类;首先对原子集构建图G=(V,E),顶点集V表示各个原子,带权重的边E表示各个原子之间的相似度,图中第i个原子与第j个原子之间边的权重按式(1)计算,1≤i≤P×f_block,1≤j≤P×f_block:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>w</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mi>exp</mi><mrow><mo>(</mo><mfrac><mrow><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><msubsup><mi>d</mi><mi>f</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msubsup><mo>)</mo></mrow></mrow><mrow><msub><mi>&sigma;</mi><mi>i</mi></msub><msub><mi>&sigma;</mi><mi>j</mi></msub></mrow></mfrac><mo>)</mo></mrow><mi>exp</mi><mrow><mo>(</mo><mfrac><mrow><mo>-</mo><msubsup><mi>d</mi><mi>s</mi><mrow><mi>i</mi><mo>.</mo><mi>j</mi></mrow></msubsup></mrow><msub><mi>&sigma;</mi><mi>s</mi></msub></mfrac><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000831698630000015.GIF" wi="1204" he="157" /></maths>公式(1)右边第一项中<img file="FDA0000831698630000016.GIF" wi="84" he="83" />的数学表达式为:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msubsup><mi>d</mi><mi>f</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msubsup><mo>=</mo><msup><mi>&alpha;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msup><mo>&times;</mo><msub><mi>d</mi><mi>f</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>x</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000831698630000017.GIF" wi="1105" he="79" /></maths>余弦距离<img file="FDA0000831698630000018.GIF" wi="327" he="166" />其中&lt;x<sub>i</sub>,x<sub>j</sub>&gt;表示求x<sub>i</sub>与x<sub>j</sub>的内积,定义<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>d</mi><mi>f</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>x</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>0</mn></mrow><mrow><mn>4</mn><mi>M</mi><mo>-</mo><mn>1</mn></mrow></munderover><mi>m</mi><mi>i</mi><mi>n</mi><mo>&lsqb;</mo><msub><mi>x</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>,</mo><msub><mi>x</mi><mi>j</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>&rsqb;</mo></mrow><mrow><mi>max</mi><mo>&lsqb;</mo><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>0</mn></mrow><mrow><mn>4</mn><mi>M</mi><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>x</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>,</mo><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>0</mn></mrow><mrow><mn>4</mn><mi>M</mi><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>x</mi><mi>j</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>&rsqb;</mo></mrow></mfrac><mo>;</mo><msub><mi>&sigma;</mi><mi>r</mi></msub><mo>=</mo><msqrt><mrow><mo>(</mo><mn>1</mn><mo>-</mo><msubsup><mi>d</mi><mi>f</mi><mrow><mi>r</mi><mo>,</mo><mi>G</mi></mrow></msubsup><mo>)</mo></mrow></msqrt><mo>,</mo></mrow>]]></math><img file="FDA0000831698630000021.GIF" wi="1214" he="271" /></maths>σ<sub>r</sub>是尺度因子,其中x<sub>G</sub>是x<sub>r</sub>第G个近邻点,近邻的距离度量采用欧氏距离,r=i或j;公式(1)右边第二项中,<img file="FDA0000831698630000022.GIF" wi="87" he="78" />表示第i个原子与第j个原子空间上的欧氏距离;σ<sub>s</sub>为空间尺度因子;构建完图后,借助于图对原子进行谱聚类;在图论中,聚类的问题转变为图割的问题;其原则是子图内的边权重最大化和各子图间的边权重最小化;被切断的边权重之和最小,即使式(3)所示目标函数最小化;<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>E</mi><mrow><mo>(</mo><mi>r</mi><mo>)</mo></mrow><mo>=</mo><munder><mo>&Sigma;</mo><mrow><mi>i</mi><mi>j</mi></mrow></munder><msub><mi>w</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>|</mo><mo>|</mo><msub><mi>y</mi><mi>i</mi></msub><mo>-</mo><msub><mi>y</mi><mi>j</mi></msub><mo>|</mo><msup><mo>|</mo><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000831698630000023.GIF" wi="1116" he="118" /></maths>其中w<sub>ij</sub>由公式(1)给出;y<sub>i</sub>和y<sub>j</sub>分别是x<sub>i</sub>和x<sub>j</sub>映射到目标空间上的坐标向量,Y由向量y<sub>i</sub>组成,1≤i≤P×f_block;目标函数最小化的问题等价于求解最优的Y:Y<sub>opt</sub>=argmin(YLY)s.t.Y<sup>T</sup>DY=1   (4)公式(4)中,拉普拉斯矩阵L=D‑W;D是对角阵,其对角线上元素值d<sub>ii</sub>=∑<sub>j</sub>w<sub>ij</sub>;W由w<sub>ij</sub>构成;计算L相对于D的广义特征值和特征向量,选取l个最小非零特征值以及对应的特征向量;将求得的l个特征向量并成一个(P×f_block)×l的特征向量空间,其中每一行代表原子在l维空间的坐标;最后根据每个原子的l维空间坐标,采用Lihi Zelnik‑Manor的自适应聚类方法在l维空间对原子进行聚类,聚类后得到Num0个类,每一类的类中心表示一类事件的局部特征,类中心按式(5)计算:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msub><mi>&mu;</mi><mi>k</mi></msub><mo>=</mo><mfrac><mn>1</mn><msub><mi>N</mi><mi>k</mi></msub></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>N</mi><mi>k</mi></msub></munderover><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000831698630000024.GIF" wi="1317" he="149" /></maths>N<sub>k</sub>表示属于第k类事件的原子个数;类中心作为码字,位置loci上所有可能的码字组成码本;2‑2.在loci位置块上建立码本的过程如下:(a)建立初始码本,将训练数据进行步骤2‑1的特征学习得到Num类事件,Num=Num0;按式(6)计算w<sub>k,loci</sub>,如果w<sub>k,loci</sub>&gt;0,则把第k类的类中心作为码字添加到位置loci上的码本中,同时保存第k类局部特征的训练数据,k={1,2,...........Num0};<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msub><mi>w</mi><mrow><mi>k</mi><mo>,</mo><mi>l</mi><mi>o</mi><mi>c</mi><mi>i</mi></mrow></msub><mo>=</mo><mfrac><msub><mi>n</mi><mrow><mi>k</mi><mo>,</mo><mi>l</mi><mi>o</mi><mi>c</mi><mi>i</mi></mrow></msub><mrow><msub><mi>&Sigma;</mi><mi>k</mi></msub><msub><mi>n</mi><mrow><mi>k</mi><mo>,</mo><mi>l</mi><mi>o</mi><mi>c</mi><mi>i</mi></mrow></msub></mrow></mfrac><mo>,</mo><mi>k</mi><mo>=</mo><mo>{</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo>...</mo><mo>...</mo><mo>...</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mi>N</mi><mi>u</mi><mi>m</mi><mn>0</mn><mo>}</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000831698630000031.GIF" wi="1324" he="142" /></maths>其中n<sub>k,loci</sub>表示位置loci上第k类事件发生的次数,1≤loci≤f_block;(b)输入新的训练数据<img file="FDA0000831698630000032.GIF" wi="125" he="70" />将它与loci位置块上的码本比较,若满足特征距离相似度<img file="FDA0000831698630000033.GIF" wi="300" he="70" />时,th为设定的阈值;将<img file="FDA0000831698630000034.GIF" wi="100" he="71" />加入到一个新的集合U中,否则把<img file="FDA0000831698630000035.GIF" wi="94" he="71" />加入到位置loci上最相似类局部特征的训练数据中,然后重新计算这类局部特征的类中心,更新码本中码字,其中<img file="FDA0000831698630000036.GIF" wi="215" he="70" />是按式(7)计算的特征距离的相似度;<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><msub><mi>d</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub><mrow><mo>(</mo><msubsup><mi>x</mi><mrow><mi>l</mi><mi>o</mi><mi>c</mi><mi>i</mi></mrow><mrow><mi>n</mi><mi>e</mi><mi>w</mi></mrow></msubsup><mo>)</mo></mrow><mo>=</mo><munder><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow><mi>k</mi></munder><mrow><mo>(</mo><msub><mi>d</mi><mi>f</mi></msub><mo>(</mo><mrow><msubsup><mi>x</mi><mrow><mi>l</mi><mi>o</mi><mi>c</mi><mi>i</mi></mrow><mrow><mi>n</mi><mi>e</mi><mi>w</mi></mrow></msubsup><mo>,</mo><msubsup><mi>c</mi><mrow><mi>l</mi><mi>o</mi><mi>c</mi><mi>i</mi></mrow><mi>k</mi></msubsup></mrow><mo>)</mo><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000831698630000037.GIF" wi="1125" he="105" /></maths>其中<img file="FDA0000831698630000038.GIF" wi="88" he="79" />表示在位置loci上的码本中第k个码字,1≤k≤Num;(c)当集合U中的数据数量未达到Q时,返回步骤(b);当集合U中的数据数量达到Q时,重新对集合U进行步骤2‑1操作,聚类成Num1类,更新Num0为Num0=Num1,如果w<sub>k,loci</sub>&gt;0,则就把第k类事件类中心作为码字添加到位置loci上的码本中,同时保存第k类局部特征的训练数据,k={1,2,...........Num0};清空集合U,类目总数Num更新为Num=Num+Num1,判断所有输入的训练数据<img file="FDA0000831698630000039.GIF" wi="92" he="70" />是否训练完毕,若未完毕则返回步骤(b);步骤(3)视频异常事件检测,具体是:将测试数据<img file="FDA00008316986300000310.GIF" wi="91" he="71" />与训练阶段建立的loci位置块的码本进行比较,1≤loci≤f_block,若满足<img file="FDA00008316986300000311.GIF" wi="294" he="71" />时,则初步认为<img file="FDA00008316986300000312.GIF" wi="86" he="72" />在loci位置块上有异常事件发生,否则没有发生;步骤(4)时空后处理,具体是:在t时刻,若loci位置块的初始被判有异常事件发生,则考虑loci位置块在t‑1时刻的8‑邻域,如果在邻域中至少有两个位置存在异常,则判loci位置块上有异常事件发生,否则没有异常事件发生。
地址 310018 浙江省杭州市下沙高教园区2号大街