CN109977863A - 一种基于监控的校园周边危险个体检测系统 - Google Patents

一种基于监控的校园周边危险个体检测系统 Download PDF

Info

Publication number
CN109977863A
CN109977863A CN201910231185.XA CN201910231185A CN109977863A CN 109977863 A CN109977863 A CN 109977863A CN 201910231185 A CN201910231185 A CN 201910231185A CN 109977863 A CN109977863 A CN 109977863A
Authority
CN
China
Prior art keywords
layer
video
image
frame
activation primitive
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.)
Withdrawn
Application number
CN201910231185.XA
Other languages
English (en)
Inventor
刘昱昊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Maritime University
Original Assignee
Shanghai Maritime University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Maritime University filed Critical Shanghai Maritime University
Priority to CN201910231185.XA priority Critical patent/CN109977863A/zh
Publication of CN109977863A publication Critical patent/CN109977863A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30232Surveillance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30241Trajectory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Image Processing (AREA)

Abstract

本发明公开了一种基于监控的校园周边危险个体检测系统,涉及用于对多监控的监控图像中的危险个体进行检测、跟踪并识别的方法,本发明针对校园周边危害学生的危险行为进行识别,考虑到单纯的进行视频识别对于经过伪装的危险行为检出率较低,因此本系统在传统的视频图像模式识别基础上增加了运动路径轨迹识别,通过视频识别和运动路径识别相结合的方式,提高了系统对经过伪装的危险行为的检出率;本发明的模式识别过程采用多个小型的分类器相结合的策略,既能减少每一组深度网络的系统开销又能有较好的识别效果,从而使系统能够适用于处理器性能较弱的监控系统,也可以将分类器分开布置,提高本系统部署在不同架构的监控系统的灵活性。

Description

一种基于监控的校园周边危险个体检测系统
技术领域
本发明涉及计算机视觉监控技术领域,目标检测、目标跟踪和模式识别领域,具体涉及用于对多监控的监控图像中的危险个体进行检测、跟踪并识别的领域。
背景技术
在校园周边经常出现危害学生安全的行为,例如极端个体会通过伤害学生来发泄不满,社会闲散人员也会聚集在学校周围对学生进行骚扰。由于校园周边范围过大,异常行为通常跨多个监控摄像头,传统方式通过经验丰富的监控人员观察多个监控摄像头来判断可能对学生有危害的个体,这种方式高度依赖于监控人员的经验,并且工作强度大。而通过人工对跨越监控摄像头的个体进行识别的工作量将会更大。
本发明所提出的系统就是解决这一难题。考虑到危险行为在监控图像中的表现通常有两种:一种是个体或者群体长时间保持在一个监控摄像头的某一区域内并且其行为具有典型的危险行为特征,例如社会闲散人员在校门口滋事,可以对当前监控区域的个体行为进行行为识别来发现其危险行为;另一种危险行为是有预谋的在校园周边进行踩点观察,其行为通常经过伪装,仅根据其在视频中的动作很难判断出来,而其长时间的路径检测可以暴露出其意图,因此通过对其长时间跨摄像头的运动路径检测可以发现其危险行为。本发明能用行为识别和路径分析相结合的方式来检测校园周边的危险行为,从而提高了该系统在实际应用中的检测成功率。
发明内容
本发明所要解决的技术问题是为了克服校园周边危险行为种类多,传统方法检测成功率不足的问题,提出了一种基于监控的校园周边危险个体检测系统。分别使用行为识别和路径分析方法来对不同类型的危险行为进行有针对性的识别。
本发明解决其技术问题所采用的技术方案是:
一种基于监控的校园周边危险个体检测系统,包括图像预处理模块,人体目标检测模块,人体行为识别模块,跨摄像头拼接模块,人体路径识别模块,识别结果处理显示模块。所述的图像预处理模块对监控摄像头所摄的视频进行预处理,首先对输入图像中可能含的噪声进行去噪处理,然后对去噪后的图像进行光照补偿,然后对光照补偿后的图像进行图像增强,最后将图像增强后的数据传递给人体目标检测模块;所述的人体目标检测模块,对接收到的图像进行目标检测,检测出当前区域内的人体图像,对于检测到的每一个人体图像信息,将其整合成一段视频发送给人体行为识别模块,并将其路径信息发送给跨摄像头拼接模块;所述的人体行为识别模块对接收到的人体视频片段首先进行筛选,过滤掉无意义的视频片段,然后对剩余的视频片段进行行为识别,若识别结果为危险行为,将识别结果及当前视频片段对应于原始图像的坐标发送给识别结果处理显示模块,若识别结果不是危险行为,则将识别结果及其对应的个体信息发送给跨摄像头拼接模块;所述的跨摄像头拼接模块,根据人体行为识别模块传递来的个体信息,寻找到其对应的在每一个监控摄像头下的路径信息,并对路径信息进行整合,从而得到其在整个区域内的运动路径信息,将得到的路径信息发送给人体路径识别模块;所述的人体路径识别模块将得到的路径信息进行过滤,过滤掉无意义的路径信息,然后对剩余的路径信息进行识别,将识别得到的危险行为发送给识别结果处理显示模块;所述的识别结果处理显示模块将接收到的人体目标检测模块和人体路径识别模块的识别结果进行整合,并将识别结果和路径根据其危险等级和在原始图像的位置信息以不同的颜色框显示在监控屏幕上。
所述的图像预处理模块,其方法是:在初始化阶段该模块不工作;在检测过程中:第一步,对监控摄像头所摄的监控图像进行均值去噪,从而得到去噪后的监控图像;第二步,对去噪后的监控图像进行光照补偿,从而得到光照补偿后的图像;第三步,将光照补偿后的图像进行图像增强,将图像增强后的数据传递给人体目标检测模块。
所述的监控摄像头所摄的监控图像进行均值去噪,其方法是:设监控摄像头所摄的监控图像为Xsrc,因为Xsrc为彩色RGB图像,因此存在Xsrc-R,Xsrc-G,Xsrc-B三个分量,对于每一个分量Xsrc′,分别进行如下操作:首先设置一个3×3维的窗口,考虑该图像Xsrc′的每个像素点Xsrc′(i,j),以该点为中心点的3×3维矩阵所对应的像素值分别为[Xsrc′(i-1,j-1),Xsrc′(i-1,j),Xsrc′(i-1,j+1),Xsrc′(i,j-1),Xsrc′(i,j),Xsrc′(i,j+1),Xsrc′(i+1,j-1),Xsrc′(i+1,j),Xsrc′(j+1,j+1)]进行从大到小排列,取其排在中间的值为去噪后图像Xsrc″在像素(i,j)所对应滤波后值赋值给Xsrc″(i,j);对于Xsrc′的边界点,会出现其3×3维的窗口所对应的某些像素点不存在的情况,那么只需计算落在窗口内存在的像素点的中间值即可,若窗口内为偶数个点,将排在中间两个像素值的平均值作为该像素点去噪后的像素值赋值给Xsrc″(i,j),从而,新的图像矩阵Xsrc″即为Xsrc在当前RGB分量的去噪后的图像矩阵,对于Xsrc-R,Xsrc-G,Xsrc-B在三个分量分别进行去噪操作后,将得到的Xsrc-R″,Xsrc-G″,Xsrc-B″分量,将这三个新的分量整合成一张新的彩色图像XDen即为去噪后所得的图像。
所述的对去噪后的监控图像进行光照补偿,设去噪后的监控图像XDen,因为XDen为彩色RGB图像,因此XDen存在RGB三个分量,对于每一个分量XDen′,分别进行光照补偿,然后将得到的Xcpst′整合得到彩色RBG图像Xcpst,Xcpst即为XDen光照补偿后的图像,对每一个分量XDen′分别进行光照补偿的步骤为:第一步,设XDen′为m行n列,构造XDensum和NumDen为同样m行n列的矩阵,初始值均为0,步长窗口大小为l,其中函数min(m,n)表示取m和n的最小值,表示取整数部分,sqrt(l)表示l的平方根,若l<1则l=1;第二步,设XDen左上角坐标为(1,1),从坐标(1,1)开始,根据窗口大小为l和步长s确定每一个候选框,该候选框为[(a,b),(a+l,b+l)]所围成的区域,对于XDen′在候选框区域内所对应的图像矩阵进行直方图均衡化,得到候选区域[(a,b),(a+l,b+l)]的均衡化后的图像矩阵XDen″,然后XDensum对应的[(a,b),(a+l,b+l)]区域的每一个元素计算XDensum(a+iXsum,b+jXsum)=XDensum(a+ixsum,b+jXsum)+XDen″(iXsum,jXsum),其中(iXsum,jXsum)为整数且1≤iXsum≤l,1≤jXsum≤l,并将NumDen对应的[(a,b),(a+l,b+l)]区域内的每一个元素加1;最后,计算 其中(iXsumNum,jXsumNum)为XDen对应的每一个点,从而得到Xcpst即为对当前分量XDen′进行光照补偿。
所述的根据窗口大小为l和步长s确定每一个候选框,其步骤为:
设监控图像为m行n列,(a,b)为选定的区域的左上角坐标,(a+l,b+l)为选定区域的右下角坐标,该区域由[(a,b),(a+l,b+l)]表示,(a,b)的初始值为(1,1);
当a+l≤m时:
b=1;
当b+l≤n时:
选定的区域为[(a,b),(a+l,b+l)];
b=b+s;
内层循环结束;
a=a+s;
外层循环结束;
上述过程中,每次选定的区域[(a,b),(a+l,b+l)]均为候选框。
所述的对于XDen′在候选框区域内所对应的图像矩阵进行直方图均衡化,设候选框区域为[(a,b),(a+l,b+l)]所围成的区域,XDen″即为XDen′在[(a,b),(a+l,b+l)]区域内的图像信息,其步骤为:第一步,构造向量I,I(iI)为XDen″中像素值等于iI的个数,0≤iI≤255;第二步,计算向量第三步,对于XDen″上的每一个点(iXDen,jXDen),其像素值为XDen″(iXDen,jXDen),计算X″Den(iXDen,jXDen)=I′(X″Den(iXDen,jXDen))。待XDen″图像内的所有像素点值都计算并更改后直方图均衡化过程结束,XDen″内保存的即为直方图均衡化的结果。
所述的将光照补偿后的图像进行图像增强,设光照补偿后的图像为Xcpst,其对应的RGB通道分别为XcpstR,XcpstG,XcpstB,对Xcpst图像增强后得到的图像为Xenh。对其进行图像增强的步骤为:第一步,对于Xcpst的所有分量XcpstR,XcpstG,XcpstB计算其按指定尺度进行模糊后的图像;第二步,构造矩阵LXenhR,LXenhG,LXenhB为与XcpstR相同维度的矩阵,对于图像Xcpst的RGB通道中的R通道,计算LXenhR(i,j)=log(XcpstR(i,j))-LXcpstR(i,j),(i,j)的取值范围为图像矩阵中所有的点,对于图像Xcpst的RGB通道中的G通道和B通道采用与R通道同样的算法得到LXenhG和LXenhB;第三步,对于图像Xcpst的RGB通道中的R通道,计算LXenhR中所有点取值的均值MeanR和均方差VarR(注意是均方差),计算MinR=MeanR-2×VarR和MaxR=MeanR+2×VarR,然后计算XenhR(i,j)=Fix((LXcpstR(i,j)-MinR)/(MaxR-MinR)×255),其中Fix表示取整数部分,若取值<0则赋值为0,取值>255则赋值为255;对于RGB通道中的G通道和B通道采用与R通道同样的算法得到XenhG和XenhB,将分别属于RGB通道的XenhR、XenhG、XenhB整合成一张彩色图像Xenh
所述的对于Xcpst的所有分量XcpstR,XcpstG,XcpstB计算其按指定尺度进行模糊后的图像,对于RGB通道中的R通道XcpstR,其步骤为:第一步,定义高斯函数G(x,y,σ)=k×exp(-(x2+y2)/σ2),σ为尺度参数,k=1/∫∫G(x,y)dxdy,则对于XcpstR的每一个点XcpstR(i,j)计算, 其中表示卷积运算,对于距离边界低于尺度σ的点,只计算XcpstR与G(x,y,σ)对应部分的卷积,Fix()表示取整数部分,若取值<0则赋值为0,取值>255则赋值为255。对于RGB通道中的G通道和B通道采用与R通道同样的算法更新XcpstG和XcpstG
所述的人体目标检测模块,在初始化过程中,使用带有已标定人体区域的图像对目标检测算法进行参数初始化;在检测过程中,接收图像预处理模块所传递来的图像,然后对其进行处理,其步骤为:第一步,对每一帧图像使用目标检测算法进行目标检测,得到当前图像的人体图像区域,将该信息发送给识别结果处理显示模块;第二步,对于连续30秒检测到的每一个人体图像,提取视频信息Pic和位置信息Pinf,然后将视频信息发送给人体行为识别模块,将其路径信息发送给跨摄像头拼接模块。
所述的使用带有已标定人体区域的图像对目标检测算法进行参数初始化,其步骤为:第一步,构造特征抽取深度网络;第二步,构造区域选择网络,第三步,根据所述的构造特征抽取深度网络中所使用的数据库中的每一张图像X和对应的人工标定的每个人体区域然后通过ROI层,其输入为图像X和区域输出为7×7×512维度的;第三步,构建坐标精炼网络。
所述的构造特征抽取深度网络,该网络为深度学习网络结构,其网络层结构为:第一层:卷积层,输入为768×1024×3,输出为768×1024×64,通道数channels=64;第二层:卷积层,输入为768×1024×64,输出为768×1024×64,通道数channels=64;第三层:池化层,输入为768×1024×64,输出为384×512×64;第四层:卷积层,输入为384×512×128,输出为384×512×128,通道数channels=128;第五层:卷积层,输入为384×512×128,输出为384×512×128,通道数channels=128;第六层:池化层,输入为384×512×128输出为192×256×128;第七层:卷积层,输入为192×256×256,输出为192×256×256,通道数channels=256;第八层:卷积层,输入为192×256×256,输出为192×256×256,通道数channels=256;第九层:卷积层,输入为192×256×256,输出为192×256×256,通道数channels=256;第十层:池化层,输入为192×256×256输出为96×128×256;第十一层:卷积层,输入为96×128×512,输出为96×128×512,通道数channels=512;第十二层:卷积层,输入为96×128×512,输出为96×128×512,通道数channels=512;第十三层:卷积层,输入为96×128×512,输出为96×128×512,通道数channels=512;第十四层:池化层,输入为96×128×512,输出为48×64×512;第十五层:卷积层,输入为48×64×512,输出为48×64×512,通道数channels=512;第十六层:卷积层,输入为48×64×512,输出为48×64×512,通道数channels=512;第十七层:卷积层,输入为48×64×512,输出为48×64×512,通道数channels=512;第十八层:池化层,输入为48×64×512,输出为24×32×512;第十九层:卷积层,输入为24×32×512,输出为24×32×256,通道数channels=256;第二十层:池化层,输入为24×32×256,输出为12×16×256;第二十一层:卷积层,输入为12×16×256,输出为12×16×128,通道数channels=128;第二十二层:池化层,输入为12×16×128,输出为6×8×128;第二十三层:全连接层,首先将输入的6×8×128维度的数据展开成6144维度的向量,然后输入进全连接层,输出向量长度为768,激活函数为relu激活函数;第二十四层:全连接层,输入向量长度为768,输出向量长度为96,激活函数为relu激活函数;第二十五层:全连接层,输入向量长度为96,输出向量长度为2,激活函数为soft-max激活函数;所有卷积层的参数为卷积核kernel大小=3,步长stride=(1,1),激活函数为relu激活函数;所有池化层均为最大池化层,其参数为池化区间大小kernel_size=2,步长stride=(2,2);设设该深度网络为Fconv25,对于一幅彩色图像X,经过该深度网络所得到的特征图集合用Fconv25(X)表示,该网络的评价函数为对(Fconv25(X)-y)计算其交叉熵损失函数,收敛方向为取最小值,y输入对应的分类。数据库为在自然界采集的包含路人及非路人的图像,每张图像为768×1024维度的彩色图像,按照图像中是否包含行人分成两类,迭代次数为2000次。在训练结束后,取第一层到第十七层为特征抽取深度网络Fconv,对于一幅彩色图像X,经过该深度网络所得到的输出用Fconv(X)表示。
所述的构造区域选择网络,接收Fconv深度网络提取出512个48×64特征图集合Fconv(X),然后第一步经过卷积层得到Conv1(Fconv(X)),该卷积层的参数为:卷积核kernel大小=1,步长stride=(1,1),输入为48×64×512,输出为48×64×512,通道数channels=512;然后将Conv1(Fconv(X))分别输入到两个卷积层(Conv2-1和Conv2-2),Conv2-1的结构为:输入为48×64×512,输出为48×64×18,通道数channels=18,该层得到的输出为Conv2-1(Conv1(Fconv(X))),再对该输出使用激活函数softmax得到softmax(Conv2-1(Conv1(Fconv(X))));Conv2-2的结构为:输入为48×64×512,输出为48×64×36,通道数channels=36;该网络的损失函数有两个:第一个误差函数loss1为对Wshad-cls⊙(Conv2-1(Conv1(Fconv(X)))-Wcls(X))计算softmax误差,第二个误差函数loss2为对Wshad-reg(X)⊙(Conv2-1(Conv1(Fconv(X)))-Wreg(X))计算smooth L1误差,区域选择网络的损失函数=loss1/sum(Wcls(X))+loss2/sum(Wcls(X)),sum(·)表示矩阵所有元素之和,收敛方向为取最小值,Wcls(X)和Wreg(X)分别为数据库图像X对应的正负样本信息,⊙表示矩阵按照对应位相乘,Wshad-cls(X)和Wshad-reg(X)为掩码,其作用为选择Wshad(X)中权值为1的部分进行训练,从而避免正负样本数量差距过大,每次迭代时重新生成Wshad-cls(X)和Wshad-reg(X),算法迭代1000次。
所述的构造特征抽取深度网络中所使用的数据库,对于数据库中的每一张图像,第一步:人工标定每个人体区域,设其在输入图像的中心坐标为(abas_tr,bbas_tr),中心坐标在纵向距离上下边框的距离为lbas_tr,中心坐标在横向距离左右边框的距离为wbas_tr,则其对应于Conv1的位置为中心坐标为半长为半宽为 表示取整数部分;第二步:随机生成正负样本。
所述的随机生成正负样本,其方法为:第一步,构造9个区域框,第二步,对于数据库的每一张图像Xtr,设Wcls为48×64×18维度,Wreg为48×64×36维度,所有初始值均为0,对Wcls和Wreg进行填充。
所述的构造9个区域框,这9个区域框分别为:Ro1(xRo,yRo)=(xRo,yRo,64,64),Ro2(xRo,yRo)=(xRo,yRo,45,90),Ro3(xRo,yRo)=(xRo,yRo,90,45),Ro4(xRo,yRo)=(xRo,yRo,128,128),Ro5(xRo,yRo)=(xRo,yRo,90,180),Ro6(xRo,yRo)=(xRo,yRo,180,90),Ro7(xRo,yRo)=(xRo,yRo,256,256),Ro8(xRo,yRo)=(xRo,yRo,360,180),Ro9(xRo,yRo)=(xRo,yRo,180,360),对于每一个区域块,Roi(xRo,yRo)表示对于第i个区域框,当前区域框的中心坐标(xRo,yRo),第三位表示中心点距离上下边框的像素距离,第四位表示中心点距离左右边框的像素距离,i的取值从1到9。
所述的对Wcls和Wreg进行填充,其方法为:
对于每一个人工标定的人体区间,设其在输入图像的中心坐标为(abas_tr,bbas_tr),中心坐标在纵向距离上下边框的距离为lbas_tr,中心坐标在横向距离左右边框的距离为wbas_tr,则其对应于Conv1的位置为中心坐标为半长为半宽为
对于左上角右下角坐标所围成的区间内的每个点(xCtr,yCtr):
对于i取值从1到9:
对于点(xCtr,yCtr),其在数据库图像的映射区间为左上角点(16(xCtr-1)+1,16(yCtr-1)+1)右下角点(16xCtr,16yCtr)所围成的16×16区间,对于该区间的每一个点(xOtr,yOtr):
计算(xOtr,yOtr)所对应区域Roi(xOtr,yOtr)与当前人工标定的人体区间的重合率;
选择当前16×16区间内重合率最高的点(xIoUMax,yIoUMax),若重合率>0.7,则Wcls(xCtr,yCtr,2i-1)=1,Wcls(xCtr,yCtr,2i)=0,该样本为正样本,Wreg(xCtr,yCtr,4i-3)=(xOtr-16xCtr+8)/8,Wreg(xCtr,yCtr,4i-2)=(yOtr-16yCtr+8)/8,Wreg(xCtr,yCtr,4i-2)=Down1(lbas_tr/Roi的第三位),Wreg(xCtr,yCtr,4i)=Down1(wbas_tr/Roi的第四位),Down1(·)表示若值大于1则取值为1;若重合率<0.3,则Wcls(xCtr,yCtr,2i-1)=0,Wcls(xCtr,yCtr,2i)=1;否则Wcls(xCtr,yCtr,2i-1)=-1,Wcls(xCtr,yCtr,2i)=-1.
若当前人工标定的人体区域没有重合率>0.6的Roi(xOtr,yOtr),则选择重合率最高的Roi(xOtr,yOtr)对Wcls和Wreg赋值,赋值方法与重合率>0.7的赋值方法相同。
所述的计算(xOtr,yOtr)所对应区域Roi(xOtr,yOtr)与当前人工标定的人体区间的重合率,其方法为:设人工标定的人体区间在输入图像的中心坐标为(abas_tr,bbas_tr),中心坐标在纵向距离上下边框的距离为lbas_tr,中心坐标在横向距离左右边框的距离为wbas_tr,设Roi(xOtr,yOtr)的第三位为lOtr,第四位为wOtr,若满足|xOtr-abas_tr|≤lOtr+lbas_tr-1并且|yOtr-bbas_tr|≤wOtr+wbas_tr-1,说明存在重合区域,重合区域=(lOtr+lbas_tr-1-|xOtr-abas_tr|)×(wOtr+wbas_tr-1-|yOtr-bbas_tr|),否则重合区域=0;计算全部区域=(2lOtr-1)×(2wOtr-1)+(2abas_tr-1)×(2wbas_tr-1)-重合区域;从而得到重合率=重合区域/全部区域,|·|表示取绝对值。
所述的Wshad-cls(X)和Wshad-reg(X),其构造方法为:对于该图像X,其对应的正负样本信息为Wcls(X)和Wreg(X),第一步,构造Wshad-cls(X)与和Wshad-reg(X),Wshad-cls(X)与Wcls(X)维度相同,Wshad-reg(X)与Wreg(X)维度相同;第二步,记录所有正样本的信息,对于i=1到9,若Wcls(X)(a,b,2i-1)=1,则Wshad-cls(X)(a,b,2i-1)=1,Wshad-cls(X)(a,b,2i)=1,Wshad-reg(X)(a,b,4i-3)=1,Wshad-reg(X)(a,b,4i-2)=1,Wshad-reg(X)(a,b,4i-1)=1,Wshad-reg(X)(a,b,4i)=1,正样本一共选择了sum(Wshad-cls(X))个,sum(·)表示对矩阵的所有元素求和,若sum(Wshad-cls(X))>256,随机保留256个正样本;第三步,随机选择负样本,随机选择(a,b,i),若Wcls(X)(a,b,2i-1)=1,则Wshad-cls(X)(a,b,2i-1)=1,Wshad-cls(X)(a,b,2i)=1,Wshad-reg(X)(a,b,4i-3)=1,Wshad-reg(X)(a,b,4i-2)=1,Wshad-reg(X)(a,b,4i-1)=1,Wshad-reg(X)(a,b,4i)=1,若已选中的负样本数量为256-sum(Wshad-cls(X))个,或者虽然负样本数量不足256-sum(Wshad-cls(X))个但是在20次生成随机数(a,b,i)内都无法得到负样本,则算法结束。
所述的ROI层,其输入为图像X和区域其方法为:对于图像X通过特征抽取深度网络Fconv所得到的输出Fconv(X)的维度为48×64×512,对于每一个48×64矩阵VRoI_I的信息(一共512个矩阵),提取VROI_I矩阵中左上角 右下角所围成的区域,表示取整数部分;输出为roiI(X)维度为7×7,则步长
对于iROI=1:到7:
对于jROI=1到7:
构造区间
roiI(X)(iRoI,jROI)=区间内最大点的值。
当512个48×64矩阵全部处理结束后,将输出拼接得到7×7×512维度的输出参数表示对于图像X,在区域框范围内的ROI。
所述的构建坐标精炼网络,其方法为:第一步,扩展数据库:扩展方法为对于数据库中的每一张图像X和对应的人工标定的每个人体区域其对应的ROI为其BClass=[1,0],BBox=[0,0,0,0];随机生成取值在-1到1之间随机数arand,brand,lrand,wrand,从而得到新的区间 表示取整数部分,该区间的BBox=[arand,brand,lrand,wrand],若新的区间与的重合率>0.7则BClass=[1,0],若新的区间与的重合率<0.3则BClass=[0,1],二者均不满足,则不赋值。每个区间最多生成10个正样本区域(正样本区域的特征是BClass=[1,0]),设生成Num1个正样本区域,则生成Num1+1个负样本区域(负样本区域的特征是BClass=[0,1]),若负样本区域不够Num1+1个,则扩大arand,brand,lrand,wrand的范围,直到找到足够多的负样本数为止。第二步,构建坐标精炼网路:对于数据库中的每一张图像X和对应的人工标定的每个人体区域其对应的ROI为将将7×7×512维度的ROI展开成25088维向量,然后经过两个全连接层Fc2,得到输出Fc2(ROI),然后将Fc2(ROI)分别通过分类层FClass和区间微调层FBBox,得到输出FClass(Fc2(ROI))和FBBox(Fc2(ROI)),分类层FClass为全连接层,其输入向量长度为512,输出向量长度为2,区间微调层FBBox为全连接层,其输入向量长度为512,输出向量长度为4;该网络的损失函数有两个:第一个误差函数loss1为对FClass(Fc2(ROI))-BClass计算softmax误差,第二个误差函数loss2为对(FBBox(Fc2(ROI))-BBox)计算欧氏距离误差,则该精炼网络的整体损失函数=loss1+BClass(1)×loss2,BClass(1)表示BClass的第一位,若该位为1则同时优化loss2,若该位为0则不优化loss2,算法迭代过程为:首先迭代1000次收敛误差函数loss2,然后迭代1000次收敛整体损失函数。
所述的两个全连接层Fc2,其结构为:第一层:全连接层,输入向量长度为25088,输出向量长度为4096,激活函数为relu激活函数;第二层:全连接层,输入向量长度为4096,输出向量长度为512,激活函数为relu激活函数。
所述的对每一帧图像使用目标检测算法进行目标检测,其步骤为:
第一步,将输入图像Xcpst分割成768×1024维度的子图;
第二步,对于每一个子图Xs
第2.1步,使用在初始化时构造的特征抽取深度网络Fconv进行变换,得到512个特征子图集合Fconv(Xs);
第2.2步,对Fconv(Xs)使用区域选择网络中第一层Conv1、第二层Conv2-1+soffmax激活函数和Conv2-2进变换,分别得到输出soffmax(Conv2-1(Conv1(Fconv(Xs))))和Conv2-2(Conv1(Fconv(Xs))),然后根据输出值得到该区间内的所有的初步候选区间;
第2.3步,对于当前帧图像的所有子图的所有的初步候选区间:
第2.3.1步,根据其当前候选区域的得分大小进行选取,选取最大的50个初步候选区间作为候选区域;
第2.3.2步,调整候选区间集合中所有的越界候选区间,然后剔除掉候选区间中重叠的框,从而得到最终候选区间;
第2.3.3步,将子图Xs和每一个最终候选区间输入到ROI层,得到对应的ROI输出,设当前的最终候选区间为(aBB(1),bBB(2),lBB(3),wBB(4)),然后计算FBBox(Fc2(ROI))得到四位输出(aBB(1)+8×OutBB(1),bBB(2)+8×OutBB(2),lBB(3)+8×OutBB(3),wBB(4)+8×OutBB(4));
第三步,更新所有子图的精炼后的最终候选区间的坐标,更新的方法为设当前候选区域的坐标为(TLx,TLy,RBx,RBy),其对应的子图的左上角坐标为(Seasub,Sebsub),更新后的坐标为(TLx+Seasub-1,TLy+Sebsub-1,RBx+Seasub-1,RBy+Sebsub-1)。
所述的将输入图像Xcpst分割成768×1024维度的子图,其步骤为:设分割的步长为384和512,设窗口大小为m行n列,(asub,bsub)为选定的区域的左上角坐标,(a,b)的初始值为(1,1);当asub<m时:
bsub=1:
当bsub<n时:
选定的区域为[(asub,bsub),(asub+384,bsub+512)],将输入图像Xcpst上该区间所对应的图像区域的信息复制到新的子图中,并附带左上角坐标(asub,bsub)作为位置信息;若选定区域超出输入图像Xcpst区间,则将超出范围内的像素点对应的RGB像素值均赋值为0;
bsub=bsub+512;
内层循环结束;
asub=asub+384;
外层循环结束;
所述的根据输出值得到该区间内的所有的初步候选区间,其方法为:第一步:对于softmax(Conv2-1(Conv1(Fconv(Xs))))其输出为48×64×18,对于Conv2-2(Conv1(Fconv(Xs))),其输出为48×64×36,对于48×64维空间上的任何一点(x,y),softmax(Conv2-1(Conv1(Fconv(Xs))))(x,y)为18维向量II,Conv2-2(Conv1(Fconv(Xs)))(x,y)为36维向量IIII,若II(2i-1)>II(2i),对于i取值从1到9,lOtr为Roi(xOtr,yOtr)的第三位,wOtr为Roi(xOtr,yOtr)的第四位,则初步候选区间为[II(2i-1),(8×IIII(4i-3)+x,8×IIII(4i-2)+y,lOtr×IIII(4i-1),wOtr×IIII(4i))],其中第一位II(2i-1)表示当前候选区域的得分,第二位(8×IIII(4i-3)+x,8×IIII(4i-2)+y,IIII(4i-1),IIII(4i))表示当前候选区间的中心点为(8×IIII(4i-3)+x,8×IIII(4i-2)+y),候选框的半长半宽分别为lOtr×IIII(4i-1)和wOtr×IIII(4i))。
所述的调整候选区间集合中所有的越界候选区间,其方法为:设监控图像为m行n列,对于每一个候选区间,设其[(ach,bch)],候选框的半长半宽分别为lch和wch,若ach+lch>m,则然后更新其ach=a′ch,lch=l′ch;若bch+wch>n,则然后更新其bch=b′ch,wch=w′ch.
所述的剔除掉候选区间中重叠的框,其步骤为:
若候选区间集合不为空:
从候选区间集合中取出得分最大的候选区间iout
计算候选区间iout与候选区间集合中的每一个候选区间ic的重合率,若重合率>0.7,则从候选区间集合删除候选区间ic
将候选区间iout放入输出候选区间集合;
当候选区间集合为空时,输出候选区间集合内所含的候选区间即为剔除掉候选区间中重叠的框后所得到的候选区间集合。
所述的计算候选区间iout与候选区间集合中的每一个候选区间ic的重合率,其方法为:设候选区间ic的坐标区间为中心点[(aic,bic)],候选框的半长半宽分别为lic和wic,候选区间ic的坐标区间为中心点[(aiout,bicout)],候选框的半长半宽分别为liout和wiout;计算xA=max(aic,aiout);yA=max(bic,biout);xB=min(lic,liout),yB=min(wic,wiout);若满足|aic—aiout|≤lic+liout-1并且|bic-biout|≤wic+wiout-1,说明存在重合区域,重合区域=(lic+liout-1-|aic—aiout|)×(wic+wiout-1-|bic-biout|),否则重合区域=0;计算全部区域=(2lic-1)×(2wic-1)+(2liout-1)×(2wiout-1)-重合区域;从而得到重合率=重合区域/全部区域。
所述的对于连续30秒检测到的每一个人体图像,提取视频信息Pic和位置信息Pinf,其方法为:设连续30秒的视频帧数为Nf,设第一帧的图像内存在Np个人体区间,ORB特征值列表的长度为Np,则:
i取值1到Np:
对于第一帧内的第i个人体区间,将该人体区间内的彩色图像提取出来,并将提取出的图像大小调整为256×256,设该图像为Pici(1);当前人体区间i在第1帧的位置信息Pinfi(1)赋值为当前人体区间i的中心点坐标。
对于Pici(1)提取其ORB特征ORB(i)。
jf取值2到Nf:
对于第jf帧内的每一个人体区间i′:
将该人体区间内的彩色图像提取出来,并将提取出的图像大小调整为256×256,设该图像为Pici′(jf);
对于Pici′(jf)提取其ORB特征ORBi′(jf);
将ORBi′(jf)与ORB列表中的每一个值比较其汉明距离,选取ORB特征值列表对应项没有被更新过的ORB(i″)中与ORBi′(jf)的汉明距离最小,则更新ORB(i″)=ORBi′(jf),Pici″(jf)为Pici′对应的第jf帧。位置信息Pinfi″(jf)为当前人体区间i′的中心点坐标,候选框的半长半宽;
若对于第i_loss人体区间,当前第jf帧没有选中对应的视频帧,则不更改ORB(i_loss),Pici_loss(jf)的所有像素点均赋值为0,Pinfi_loss(jf)=(-1,-1,0,0)。
待所有帧均处理结束后,Picimg1即为第img1个人体区间的图像集合,将Picimg1按照第一帧开始第Nf结束的顺序播放即为对应的视频。
所述的ORB特征,从一个图像中提取ORB特征的方法已经较为成熟,在OpenCV计算机视觉库里边已有实现;对一个图片提取其ORB特征,输入值为当前图片,输出为若干组长度相同的字符串,每一组代表一个ORB特征。
所述的人体行为识别模块,其方法是:在初始化过程中,使用带有典型人体行为的视频数据集对人体行为识别算法进行参数初始化,得到深度网络HumN;在检测过程中,接收人体目标检测模块所传递来的视频图像,第一步,对视频进行筛选,判断是否为不合格视频,若为不合格视频,直接发送给跨摄像头拼接模块,本模块不再处理;第二步,对合格的视频片段使用人体行为识别算法进行行为识别,识别方法为设待识别的视频片段为Vrl,使用深度网络HumN计算输入为Vrl时深度网络HumN的输出HumN(Vrl),HumN(Vrl)为4位向量,若第一位最大则识别为重度危险,若第二位最大则识别为中度危险,若第三位最大则识别为轻度危险,若第四位最大则识别为不危险。将识别结果为重度危险、中度危险和轻度危险的视频片段及位置信息发送给识别结果处理显示模块,若识别结果不是危险行为,则将识别结果发送给跨摄像头拼接模块,由于每个视频片段长度为30秒,因此每隔30秒对人体目标检测模块所传递来的视频图像进行识别并发送识别结果。
所述的使用带有典型人体行为的视频数据集对人体行为识别算法进行参数初始化,其方法为:第一步,整理视频数据:首先,对于每一段人体视频数据,人工标定其危害程度,危害程度共分为4类:重度危险,中度危险,轻度危险,不危险;其次,使用人体目标检测模块对视频数据进行目标检测,得到当前视频中个体的视频信息,若视频长度大于30秒,则从不同的帧开始截取30秒的视频;最后将每一个视频的最后一帧所对应的原始图像的区间与其在原始图像的视频帧所对应的人工标定的区间计算重合率,若重合率低于0.7,则删掉当前视频;第二步,构造人体行为识别算法深度网络HumN;第三步,对人体行为识别算法深度网络HumN进行初始化,设输入的视频为Vid,首先随机抹去视频Vid的部分帧,抹去的帧的个数为0到视频总帧数的30%之间的随机数,抹去的方法为随机某帧,将其所对应的视频帧的图像的每一个像素均设为0,得到随机处理的视频Vid′,输出为HumN(Vid′),其类别为yvid,yvid的表示方法为:重度危险:yvid=[1,0,0,0],中度危险:yvid=[0,1,0,0],轻度危险:yvid=[0,0,1,0],不危险:yvid=[0,0,0,1],该网络的评价函数为对(HumN(Vid′)-yvid)计算其交叉熵损失函数,收敛方向为取最小值,算法的数据库为第一步整理得到的视频数据,迭代次数为2000次。
所述的构造人体行为识别算法深度网络HumN,设连续30秒的视频帧数为Nf,其网络层结构为:第一层:卷积层,输入为256×256×3Nf,输出为256×256×3Nf,通道数channels=3Nf;第二层:卷积层,输入为256×256×3Nf,输出为256×256×1024,通道数channels=1024;第三层:池化层,输入为256×256×1024,输出为128×128×1024;第四层:卷积层,输入为128×128×1024,输出为128×128×512,通道数channels=512;第五层:池化层,输入为128×128×512,输出为64×64×512;第六层:卷积层,输入为64×64×512,输出为64×64×512,通道数channels=512;第七层:池化层,输入为64×64×512,输出为32×32×512;第八层:卷积层,输入为32×32×512,输出为32×32×512,通道数channels=512;第九层:池化层,输入为32×32×512,输出为16×16×512;第十层:卷积层,输入为16×16×512,输出为16×16×256,通道数channels=256;第十一层:池化层,输入为16×16×256,输出为8×8×256;第十二层:卷积层,输入为8×8×256,输出为8×8×128,通道数channels=128;第十三层:池化层,输入为8×8×128,输出为4×4×128;第十四层:卷积层,输入为4×4×128,输出为4×4×64,通道数channels=64;第十四层:全连接层,首先将输入的4×4×64维度的数据展开成1024维度的向量,然后输入进全连接层,输出向量长度为256,激活函数为relu激活函数;第十五层:全连接层,输入向量长度为256,输出向量长度为64,激活函数为relu激活函数;第十六层:全连接层,输入向量长度为64,输出向量长度为4,激活函数为soft-max激活函数;所有卷积层的参数为卷积核kernel大小=3,步长stride=(1,1),激活函数为relu激活函数;所有池化层均为最大池化层,其参数为池化区间大小kernel_size=2,步长stride=(2,2)。
所述的对视频进行筛选,判断是否为不合格视频,其方法为:设当前视频为Vcr,丢失帧数lostF为0:
对于从第1帧到最后一帧:
若当前帧所有像素点均赋值为0,则lostF=lostF+1。
若lostF/总帧数<0.7,说明当前视频丢帧过多,判断为不合格视频。
所述的跨摄像头拼接模块,在初始化阶段,构造个体识别分类器并参数初始化;在检测过程中,接收人体行为识别模块传递过来的识别结果为不危险的视频信息、不合格视频以及人体目标检测模块传递来的位置信息。对于人体目标检测模块传递来所有视频,筛选并标记跨摄像头运动的视频,删除掉不合格视频中未被标记跨越摄像头运动的视频,对于余下的每一个视频,若未被标记跨越摄像头运动的30秒视频,在当前视频所在摄像头所设图像内寻找该区域个体在下一个30秒的视频,若被标记跨越摄像头运动的视频,则在所有摄像头所设图像内寻找该区域个体在下一帧对应的视频。将每个个体的视频按照时间由先到后的放入集合中,从而得到一段时间内当前个体的位置信息,将该位置信息发送给人体路径识别模块。
所述的构造个体识别分类器并参数初始化,其方法为:第一步,视频数据使用人体行为识别模块整理的视频数据;第二步,构造个体识别分类器ChkP;第三步,对个体识别分类器ChkP进行参数初始化,随机从视频中抽取两帧ftm1和frm2,若两帧属于同一个体在不同时间的视频,则ycp=[1,0],若两帧不同属于1个个体在不同时间的视频,则ycp=[0,1],该网络的评价函数为对(HumN(frm1,frm2)-ycp)计算其交叉熵损失函数,收敛方向为取最小值,算法次数为2×107次。
所述的个体识别分类器ChkP,设连续30秒的视频帧数为Nf,其网络层结构分为两个部分:第一部分ChkPp1:第一层:卷积层,输入为256×256×3,输出为256×256×64,通道数channels=64;第二层:卷积层,输入为256×256×64,输出为256×256×64,通道数channels=64;第三层:池化层,输入为256×256×64,输出为128×128×64;第四层:卷积层,输入为128×128×128,输出为128×128×128,通道数channels=128;第五层:池化层,输入为128×128×128,输出为64×64×128;第六层:卷积层,输入为64×64×128,输出为64×64×256,通道数channels=256;第七层:池化层,输入为64×64×256,输出为32×32×256;第八层:卷积层,输入为32×32×256,输出为32×32×512,通道数channels=512;第九层:池化层,输入为32×32×512,输出为16×16×512;第十层:卷积层,输入为16×16×512,输出为16×16×256,通道数channels=256;第十一层:池化层,输入为16×16×256,输出为8×8×256;第十二层:卷积层,输入为8×8×256,输出为8×8×128,通道数channels=128;第十三层:池化层,输入为8×8×128,输出为4×4×128;第十四层:卷积层,输入为4×4×128,输出为4×4×64,通道数channels=64;第二部分ChkPp2:第一层:全连接层,首先将输入的两组4×4×64维度的数据展开成两组1024维度的向量,然后将两组1024维度的向量连接成一组2048维度的向量,然后将该2048维度的向量输入进全连接层,输出向量长度为512,激活函数为relu激活函数;第二层:全连接层,输入向量长度为512,输出向量长度为128,激活函数为relu激活函数;第三层:全连接层,输入向量长度为128,输出向量长度为32,激活函数为relu激活函数;第四层:全连接层,输入向量长度为32,输出向量长度为8,激活函数为relu激活函数;第五层:全连接层,输入向量长度为8,输出向量长度为2,激活函数为soft-max激活函数;所有卷积层的参数为卷积核kernel大小=3,步长stride=(1,1),激活函数为relu激活函数;所有池化层均为最大池化层,其参数为池化区间大小kernel_size=2,步长stride=(2,2)。对于该分类器ChkP,其输入为两组图片p1和p2,ChkP(p1,p2)=ChkPp2(ChkPp1(p1),ChkPp1(p2)),此处ChkPp1(p1)和ChkPp1(p2)表示两个输入p1和p2共用ChkPp1网络结构。
所述的对于人体目标检测模块传递来所有视频,筛选并标记跨摄像头运动的视频,其方法为:设视频帧数为Nf,当前视频的视频信息Pcr和位置信息Pcinf,则:
jfb取值Nf到1:
若Pcr(jf)的所有像素值不为0:
判断:Pcinf(jf)(1)-Pcinf(jf)(3)<5 Or Pcinf(jf)(2)-Pcinf(jf)(4)<50rPcinf(jf)(1)+Pcinf(jf)(3)-255<50rPcinf(jf)(2)+Pcinf(jf)(4)-255<5,若成立,标记当前视频为跨越摄像头运动,删掉从jfb帧到Nf帧,删掉当前视频的位置信息Pcinf中从Pcinf(jfb)到Pcinf(Nf)的信息。循环结束。
若当前视频未被标记为跨越摄像头运动并且其长度不足30秒,则删除当前视频。
所述的若未被标记跨越摄像头运动的30秒视频,在当前视频所在摄像头所设图像内寻找该区域个体在下一个30秒的视频,其方法为:设当前视频为Vc,当前视频所在摄像头内在下一个30秒的所有视频集合为Vnxt,第一步,计算当前视频的最后一帧图像Pvc的ORB特征和视频集合Vnxt中的每一个视频的Vnxt(i)的第一帧Pvnxt(i)的特征,并比较两个ORB特征的汉明距离,从而得到两帧的相似度=两个ORB特征的汉明距离/ORB特征长度;其中i取值为1到视频集合Vnxt中视频的个数。若Pvc与Pvnxt(j)的相似度最大并且>0.85,说明Vnxt中第j个视频即为当前当前视频为Vc在下一个30秒的视频,本方法结束;否则,将下一个30秒的所有视频集合按照相似度从大到小排序,将所有视频的第一帧Pvnxt(k)依相似度从大到小与Pvc使用个体识别分类器ChkP进行比较,若ChkP(Pvnxt(k),Pvc)识别结果第一位大于第二位,则表明当前两张图像同属于一个人,则,说明Vnxt中第k个视频即为当前视频为Vc在下一个30秒的视频,若识别结果不同属于一个人,则继续取下一个视频的第一帧使用个体识别分类器ChkP进行识别,若所有识别结果均为不同属于一个人,说明当前视频Vc不存在下一个30秒的视频。
所述的若被标记跨越摄像头运动的视频,则在所有摄像头所设图像内寻找该区域个体在下一帧对应的视频,其方法为:设当前视频为Vcr,从个体识别分类器传递过来的所有视频中选取与当前视频同时拍摄的视频集合Vscurr,从个体识别分类器传递过来的所有视频中选取当前视频的下一个30秒的所有视频集合Vsnxt;第一步,构造下一帧视频集合:若当前视频长度为30秒,取当前视频Vcr的最后一帧图像Pvcr,则取Vsnxt中所有视频的第一帧构成集合Pvs,若当前视频Vcr长度小于30秒,设当前视频Vcr的最后一帧为第frame_Vcr帧,则取视频集合Vsnxt中所有视频的第frame_Vcr+1帧构成集合Pvs;第二步,将集合Pvs内的元素排序:首先计算图像Pvcr的ORB特征和集合Pvs中的每一个图像的ORB特征,并比较两个ORB特征的汉明距离,从而得到两帧的相似度=两个ORB特征的汉明距离/ORB特征长度;将集合Pvs中的图像按照相似度从大到小排序;第三步,使用个体识别分类器ChkP选择下一帧对应的视频:将集合Pvs中的每一个图像Pvs(k)从第一个开始与Pvcr使用个体识别分类器ChkP进行比较,若ChkP(Pvs(k),Pvcr)识别结果第一位大于第二位,则表明当前两张图像同属于一个人,则说明Pvs中第k个图像对应的视频即为当前视频为Vc在下一个30秒的视频Vcr_nxt,若Vcr_nxt属于集合Vscurr,则删掉Vcr_nxt视频中第一帧到第frame_Vcr帧,删掉位置信息Pcinf中Pcinf(1)到Pcinf(frame_Vcr);若识别结果不同属于一个人,则继续取下一个视频的第一帧使用个体识别分类器ChkP进行识别,若所有识别结果均为不同属于一个人,说明当前视频Vc不存在下一个30秒的视频。
所述的人体路径识别模块,在初始化阶段,构造人体路径识别分类器并参数初始化;在检测过程中,接收跨摄像头拼接模块传递来的位置信息,将位置信息使用人体路径识别分类器进行路径识别,识别方法为,设待识别的位置信息为Infm,当传递来的视频信息长度小于等于30秒时,算法不做处理,继续等待随后的输入,当传递来的视频信息长度大于30秒时,使用RoutChc(Infm)=RoutChc2(RoutChc130s(Infm))进行识别;当传递来的视频信息长度大于2分钟时,使用RoutChc(Infm)=RRoutChc2(RoutChc12m(Infm))进行识别;当传递来的视频信息长度大于5分钟时,使用RoutChc(Infm)=RoutChc2(RoutChc15m(Infm))进行识别;当传递来的视频信息长度大于10分钟时,使用RoutChc(Infm)=RoutChc2(RoutChc110m(Infm))进行识别,Infm分别取当前帧到前30秒、2分钟、5分钟和10分钟的位置信息。对于分别属于不同视频区域内的视频集合,按照时间先后顺序进行排序从而得到一个连续时间内的Infm。算法的输出为4位向量,若第一位最大则识别为重度危险,若第二位最大则识别为中度危险,若第三位最大则识别为轻度危险,若第四位最大则识别为不危险。算法每隔30秒对当前接收到的每一组位置信息进行识别,并将识别结果为重度危险、中度危险和轻度危险的视频片段及位置信息发送给识别结果处理显示模块。
所述的构造人体路径识别分类器并参数初始化,其方法为:第一步,选择常见的人体运动视频,对于每一段人体视频数据,人工标定其危害程度,危害程度共分为4类:重度危险,中度危险,轻度危险,不危险,使用人体目标检测模块提取每一段视频的位置信息。第二步,构造人体路径识别分类器RoutChc;第三步,对每一段人体位置信息随机抹去部分帧,抹去的帧的个数为0到视频总帧数的30%之间的随机数,抹去的方法为将该帧所对应的位置信息的设为(-1,-1,0,0),得到随机抹去处理的视频,然后将随机抹去处理的视频进行随机截取30秒,2分钟,5分钟,10分钟,每一段的位置信息Pinft作为输入,输出为RoutChc(Pinft),其类别为yrout,yvid的表示方法为:重度危险:yrout=[1,0,0,0],中度危险:yrout=[0,1,0,0],轻度危险:yrout=[0,0,1,0],不危险:yrout=[0,0,0,1]。然后对人体路径识别分类器进行初始化:首先,构造评价函数为对(RoutChc2(RoutChc130s(Infm30s))-yrout)计算其交叉熵损失函数,收敛方向为取最小值,Infm30s为30秒的位置信息,迭代次数为2000次;然后,保持RoutChc2的参数不变,评价函数为对(RoutChc2(RoutChc12m(Infm2m))-yrout)计算其交叉熵损失函数,收敛方向为取最小值,Infm2m为2分钟的位置信息,迭代次数为1000次;然后,同样保持RoutChc2的参数不变,评价函数为对(RoutChc2(RoutChc15m(Infm5m))-yrout)计算其交叉熵损失函数,收敛方向为取最小值,Infm5m为5分钟的位置信息,迭代次数为1000次;然后,同样保持RoutChc2的参数不变,评价函数为对(RoutChc2(RoutChc110m(Infm10m))-yrout)计算其交叉熵损失函数,收敛方向为取最小值,Infm10m为10分钟的位置信息,迭代次数为1000次。
所述的个体识别分类器RoutChc,设连续30秒的视频帧数为Nf,连续2分钟的视频帧数为4Nf,连续5分钟的视频帧数为10Nf,连续10分钟的视频帧数为20Nf,其网络层结构分为五个部分:
第一部分30秒的位置信息网络RoutChc130s:第一层:全连接层,输入向量长度为4Nf,输出向量长度为2Nf,激活函数为relu激活函数;第二层:全连接层,输入向量长度为2Nf,输出向量长度为Nf,激活函数为relu激活函数;
第二部分2分钟的位置信息网络RoutChc12m:第一层:全连接层,输入向量长度为16Nf,输出向量长度为4Nf,激活函数为relu激活函数;第二层:全连接层,输入向量长度为4Nf,输出向量长度为2Nf,激活函数为relu激活函数;第三层:全连接层,输入向量长度为2Nf,输出向量长度为Nf,激活函数为relu激活函数;
第三部分5分钟的位置信息网络RoutChc15m:第一层:全连接层,输入向量长度为40Nf,输出向量长度为16Nf,激活函数为relu激活函数;第二层:全连接层,输入向量长度为16Nf,输出向量长度为4Nf,激活函数为relu激活函数;第三层:全连接层,输入向量长度为4Nf,输出向量长度为2Nf,激活函数为relu激活函数;第四层:全连接层,输入向量长度为2Nf,输出向量长度为Nf,激活函数为relu激活函数;
第四部分10分钟的位置信息网络RoutChc110m:第一层:全连接层,输入向量长度为80Nf,输出向量长度为40Nf,激活函数为relu激活函数;第二层:全连接层,输入向量长度为40Nf,输出向量长度为16Nf,激活函数为relu激活函数;第三层:全连接层,输入向量长度为16Nf,输出向量长度为4Nf,激活函数为relu激活函数;第四层:全连接层,输入向量长度为4Nf,输出向量长度为2Nf,激活函数为relu激活函数;第五层:全连接层,输入向量长度为2Nf,输出向量长度为Nf,激活函数为relu激活函数;
第五部分为RoutChc2:第一层:全连接层,输入向量长度为Nf,输出向量长度为512,激活函数为relu激活函数;第二层:全连接层,输入向量长度为512,输出向量长度为128,激活函数为relu激活函数;第三层:全连接层,输入向量长度为128,输出向量长度为64,激活函数为relu激活函数;第四层:全连接层,输入向量长度为64,输出向量长度为16,激活函数为relu激活函数;第五层:全连接层,输入向量长度为16,输出向量长度为4,激活函数为soft-max激活函数;
若输入信息为30秒位置信息Infm30s,输出为RoutChc(Infm30s)=RoutChc2(RoutChc130s(Infm30s)),若输入信息为2分钟位置信息Infm2m,输出为RoutChc(Infm2m)=RoutChc2(RoutChc12m(Infm2m)),若输入信息为5分钟位置信息Infm5m,输出为RoutChc(Infm5m)=RoutChc2(RoutChc15m(Infm5m)),若输入信息为10分钟位置信息Infm10m,输出为RoutChc(Infm10m)=RoutChc2(RoutChc110m(Infm10m))。
所述的识别结果处理显示模块,在初始化的过程中不工作;在识别过程中,接收人体行为识别模块识别出的重度危险行为、中度危险行为和轻度危险行为,接收人体路径识别模块识别出的重度危险行为、中度危险行为和轻度危险行为。
对于人体目标检测模块识别出的重度危险行为、中度危险行为和轻度危险行为:
每隔30秒对接收到人体行为识别模块传递过来识别结果进行处理:
第一步,根据当前接收到人体行为识别模块传递过来识别结果对应的视频信息找到其当前30秒视频最后一帧,若当前帧为全0,则提取其前一帧,直到找到不全为0的帧,提取该帧位置信息,按照位置信息的坐标(a1,b1,l1,w1),在其对应的摄像头所摄区域的以(a1-l1,b1-w1)为左上角点,(a1+l1,b1+w1)为右下角点所构成的矩形为跟踪显示框,使用对应于不同识别结果的颜色将跟踪显示框显示在输出屏幕上,重度危险行为显示红色、中度危险行为显示黄色和轻度危险行为显示灰色;
第二步,从当前位置坐标开始对当前个体进行跟踪并将跟踪显示框显示在输出屏幕上;待30秒后删掉当前跟踪显示框。
对于人体路径识别模块识别出的重度危险行为、中度危险行为和轻度危险行为:
每隔30秒对接收到人体路径识别模块传递过来识别结果进行处理:
第一步,根据当前接收到人体路径识别模块传递过来识别结果对应的位置信息,截取其10分钟的路径信息,对于路径信息的每一个位置坐标(a2,b2,l2,w2),其中心点坐标为(a2,b2),在其对应的摄像头所摄区域的坐标(a2,b2)绘制一个点,连续的10分钟的路径信息对应的点构成了当前人体在当前时间以前的10分钟内的运动轨迹,若位置信息的长度小于10分钟,则显示位置信息内的所有位置坐标对应的中心点;使用对应于不同识别结果的颜色将运动轨迹显示在输出屏幕上,重度危险行为显示红色、中度危险行为显示黄色和轻度危险行为显示灰色。
第二步,从当前位置坐标开始对当前个体进行跟踪并将跟踪位置的中心点坐标显示在输出屏幕上;待30秒后删掉个体的运动轨迹。
所述的从当前位置坐标开始对当前个体进行跟踪,其方法为:首先计算当前位置信息所对应的视频帧的ORB特征,得到ORBori;待当前摄像头所摄的下一帧,被人体目标检测模块处理得到当前图像的所有的人体图像区域,对于每个人体区域,将该人体区间内的彩色图像提取出来,并将提取出的图像大小调整为256×256,计算其区域内的图像的ORB特征,得到ORB特征集合ORBsnxt。将ORBori与ORB特征集合ORBsnxt中的每一个值比较其汉明距离,选择特征集合ORBsnxt中与ORBori汉明距离最小的人体区域,将选中的人体区域作为下一帧的跟踪位置。
本发明的有益效果是,对监控区域的个体分别使用其视频和运动路径进行危险行为识别,提高了系统对经过伪装的危险行为的检出率;大量使用深度学习网络,提高了本系统在每个阶段的识别精度;采用多个小型的分类器相结合的策略,既能减少每一组深度网络的系统开销又能有较好的识别效果,从而使系统能够适用于处理器性能较弱的监控系统,也可以将分类器分开布置,提高本系统部署在不同架构的监控系统的灵活性。
附图说明
图1是本发明的功能流程图
图2是本发明整体的功能模块及其相互关系框图
具体实施方式
下面结合附图对本发明作进一步的说明。
所述的一种基于监控的校园周边危险个体检测系统,其功能流程图如图1所示,其模块之间的相互关系如图1所示。
下面提供两个具体实施例对本发明所述的一种基于监控的校园周边危险个体检测系统的具体过程进行说明:
实施例1:
本实施例实现了一种基于监控的校园周边危险个体检测系统的参数初始化的过程。
1.图像预处理模块,在初始化阶段该模块不工作;
2.所述的人体目标检测模块,在初始化过程中,使用带有已标定人体区域的图像对目标检测算法进行参数初始化。
所述的使用带有已标定人体区域的图像对目标检测算法进行参数初始化,其步骤为:第一步,构造特征抽取深度网络;第二步,构造区域选择网络,第三步,根据所述的构造特征抽取深度网络中所使用的数据库中的每一张图像X和对应的人工标定的每个人体区域然后通过ROI层,其输入为图像X和区域输出为7×7×512维度的;第三步,构建坐标精炼网络。
所述的构造特征抽取深度网络,该网络为深度学习网络结构,其网络层结构为:第一层:卷积层,输入为768×1024×3,输出为768×1024×64,通道数channels=64;第二层:卷积层,输入为768×1024×64,输出为768×1024×64,通道数channels=64;第三层:池化层,输入为768×1024×64,输出为384×512×64;第四层:卷积层,输入为384×512×128,输出为384×512×128,通道数channels=128;第五层:卷积层,输入为384×512×128,输出为384×512×128,通道数channels=128;第六层:池化层,输入为384×512×128输出为192×256×128;第七层:卷积层,输入为192×256×256,输出为192×256×256,通道数channels=256;第八层:卷积层,输入为192×256×256,输出为192×256×256,通道数channels=256;第九层:卷积层,输入为192×256×256,输出为192×256×256,通道数channels=256;第十层:池化层,输入为192×256×256输出为96×128×256;第十一层:卷积层,输入为96×128×512,输出为96×128×512,通道数channels=512;第十二层:卷积层,输入为96×128×512,输出为96×128×512,通道数channels=512;第十三层:卷积层,输入为96×128×512,输出为96×128×512,通道数channels=512;第十四层:池化层,输入为96×128×512,输出为48×64×512;第十五层:卷积层,输入为48×64×512,输出为48×64×512,通道数channels=512;第十六层:卷积层,输入为48×64×512,输出为48×64×512,通道数channels=512;第十七层:卷积层,输入为48×64×512,输出为48×64×512,通道数channels=512;第十八层:池化层,输入为48×64×512,输出为24×32×512;第十九层:卷积层,输入为24×32×512,输出为24×32×256,通道数channels=256;第二十层:池化层,输入为24×32×256,输出为12×16×256;第二十一层:卷积层,输入为12×16×256,输出为12×16×128,通道数channels=128;第二十二层:池化层,输入为12×16×128,输出为6×8×128;第二十三层:全连接层,首先将输入的6×8×128维度的数据展开成6144维度的向量,然后输入进全连接层,输出向量长度为768,激活函数为relu激活函数;第二十四层:全连接层,输入向量长度为768,输出向量长度为96,激活函数为relu激活函数;第二十五层:全连接层,输入向量长度为96,输出向量长度为2,激活函数为soft-max激活函数;所有卷积层的参数为卷积核kernel大小=3,步长stride=(1,1),激活函数为relu激活函数;所有池化层均为最大池化层,其参数为池化区间大小kernel_size=2,步长stride=(2,2);设设该深度网络为Fconv25,对于一幅彩色图像X,经过该深度网络所得到的特征图集合用Fconv25(X)表示,该网络的评价函数为对(Fconv25(X)-y)计算其交叉熵损失函数,收敛方向为取最小值,y输入对应的分类。数据库为在自然界采集的包含路人及非路人的图像,每张图像为768×1024维度的彩色图像,按照图像中是否包含行人分成两类,迭代次数为2000次。在训练结束后,取第一层到第十七层为特征抽取深度网络Fconv,对于一幅彩色图像X,经过该深度网络所得到的输出用Fconv(X)表示。
所述的构造区域选择网络,接收Fconv深度网络提取出512个48×64特征图集合Fconv(X),然后第一步经过卷积层得到Conv1(Fconv(X)),该卷积层的参数为:卷积核kernel大小=1,步长stride=(1,1),输入为48×64×512,输出为48×64×512,通道数channels=512;然后将Conv1(Fconv(X))分别输入到两个卷积层(Conv2-1和Conv2-2),Conv2-1的结构为:输入为48×64×512,输出为48×64×18,通道数channels=18,该层得到的输出为Conv2-1(Conv1(Fconv(X))),再对该输出使用激活函数softmax得到softmax(Conv2-1(Conv1(Fconv(X))));Conv2-2的结构为:输入为48×64×512,输出为48×64×36,通道数channels=36;该网络的损失函数有两个:第一个误差函数loss1为对Wshad-cls⊙(Conv2-1(Conv1(Fconv(X)))-Wcls(X))计算softmax误差,第二个误差函数loss2为对Wshad-reg(X)⊙(Conv2-1(Conv1(Fconv(X)))-Wreg(X))计算smooth L1误差,区域选择网络的损失函数=loss1/sum(Wcls(X))+loss2/sum(Wcls(X)),sum(·)表示矩阵所有元素之和,收敛方向为取最小值,Wcls(X)和Wreg(X)分别为数据库图像X对应的正负样本信息,⊙表示矩阵按照对应位相乘,Wshad-cls(X)和Wshad-reg(X)为掩码,其作用为选择Wshad(X)中权值为1的部分进行训练,从而避免正负样本数量差距过大,每次迭代时重新生成Wshad-cls(X)和Wshad-reg(X),算法迭代1000次。
所述的构造特征抽取深度网络中所使用的数据库,对于数据库中的每一张图像,第一步:人工标定每个人体区域,设其在输入图像的中心坐标为(abas_tr,bbas_tr),中心坐标在纵向距离上下边框的距离为lbas_tr,中心坐标在横向距离左右边框的距离为wbas_tr,则其对应于Conv1的位置为中心坐标为半长为半宽为 表示取整数部分;第二步:随机生成正负样本。
所述的随机生成正负样本,其方法为:第一步,构造9个区域框,第二步,对于数据库的每一张图像Xtr,设Wcls为48×64×18维度,Wreg为48×64×36维度,所有初始值均为0,对Wcls和Wreg进行填充。
所述的构造9个区域框,这9个区域框分别为:Ro1(xRo,yRo)=(xRo,yRo,64,64),Ro2(xRo,yRo)=(xRo,yRo,45,90),Ro3(xRo,yRo)=(xRo,yRo,90,45),Ro4(xRo,yRo)=(xRo,yRo,128,128),Ro5(xRo,yRo)=(xRo,yRo,90,180),Ro6(xRo,yRo)=(xRo,yRo,180,90),Ro7(xRo,yRo)=(xRo,yRo,256,256),Ro8(xRo,yRo)=(xRo,yRo,360,180),Ro9(xRo,yRo)=(xRo,yRo,180,360),对于每一个区域块,Roi(xRo,yRo)表示对于第i个区域框,当前区域框的中心坐标(xRo,yRo),第三位表示中心点距离上下边框的像素距离,第四位表示中心点距离左右边框的像素距离,i的取值从1到9。
所述的对Wcls和Wreg进行填充,其方法为:
对于每一个人工标定的人体区间,设其在输入图像的中心坐标为(abas_tr,bbas_tr),中心坐标在纵向距离上下边框的距离为lbas_tr,中心坐标在横向距离左右边框的距离为wbas_tr,则其对应于Conv1的位置为中心坐标为半长为半宽为
对于左上角右下角坐标所围成的区间内的每个点(xCtr,yCtr):
对于i取值从1到9:
对于点(xCtr,yCtr),其在数据库图像的映射区间为左上角点(16(xCtr-1)+1,16(yCtr-1)+1)右下角点(16xCtr,16yCtr)所围成的16×16区间,对于该区间的每一个点(xOtr,yOtr):
计算(xOtr,yOtr)所对应区域Roi(xOtr,yOtr)与当前人工标定的人体区间的重合率;
选择当前16×16区间内重合率最高的点(xIoUMax,yIoUMax),若重合率>0.7,则Wcls(xCtr,yCtr,2i-1)=1,Wcls(xCtr,yCtr,2i)=0,该样本为正样本,Wreg(xCtr,yCtr,4i-3)=(xOtr-16xCtr+8)/8,Wreg(xCtr,yCtr,4i-2)=(yOtr-16yCtr+8)/8,Wreg(xCtr,yCtr,4i-2)=Down1(lbas_tr/Roi的第三位),Wreg(xCtr,yCtr,4i)=Down1(wbas_tr/Roi的第四位),Down1(·)表示若值大于1则取值为1;若重合率<0.3,则Wcls(xCtr,yCtr,2i-1)=0,Wcis(xCtr,yCtr,2i)=1;否则Wcls(xCtr,yCtr,2i-1)=-1,Wcls(xCtr,yCtr,2i)=-1.
若当前人工标定的人体区域没有重合率>0.6的Roi(xOtr,yOtr),则选择重合率最高的Roi(xOtr,yOtr)对Wcls和Wreg赋值,赋值方法与重合率>0.7的赋值方法相同。
所述的计算(xOtr,yOtr)所对应区域Roi(xOtr,yOtr)与当前人工标定的人体区间的重合率,其方法为:设人工标定的人体区间在输入图像的中心坐标为(abas_tr,bbas_tr),中心坐标在纵向距离上下边框的距离为lbas_tr,中心坐标在横向距离左右边框的距离为wbas_tr,设Roi(xOtr,yOtr)的第三位为lOtr,第四位为wOtr,若满足|xOtr-abas_tr|≤lOtr+lbas_tr-1并且|yOtr-bbas_tr|≤wOtr+wbas_tr-1,说明存在重合区域,重合区域=(lOtr+lbas_tr-1-|xOtr-abas_tr|)×(wOtr+wbas_tr-1-|yOtr-bbas_tr|),否则重合区域=0;计算全部区域=(2lOtr-1)×(2wOtr-1)+(2abas_tr-1)×(2wbas_tr-1)-重合区域;从而得到重合率=重合区域/全部区域,|·|表示取绝对值。
所述的Wshad-cls(X)和Wshad-reg(X),其构造方法为:对于该图像X,其对应的正负样本信息为Wcls(X)和Wreg(X),第一步,构造Wshad-cls(X)与和Wshad-reg(X),Wshad-cls(X)与Wcls(X)维度相同,Wshad-reg(X)与Wreg(X)维度相同;第二步,记录所有正样本的信息,对于i=1到9,若Wcls(X)(a,b,2i-1)=1,则Wshad-cls(X)(a,b,2i-1)=1,Wshad-cls(X)(a,b,2i)=1,Wshad-reg(X)(a,b,4i-3)=1,Wshad-reg(X)(a,b,4i-2)=1,Wshad-reg(X)(a,b,4i-1)=1,Wshad-reg(X)(a,b,4i)=1,正样本一共选择了sum(Wshad-cls(X))个,sum(·)表示对矩阵的所有元素求和,若sum(Wshad-cls(X))>256,随机保留256个正样本;第三步,随机选择负样本,随机选择(a,b,i),若Wcls(X)(a,b,2i-1)=1,则Wshad-cls(X)(a,b,2i-1)=1,Wshad-cls(X)(a,b,2i)=1,Wshad-reg(X)(a,b,4i-3)=1,Wshad-reg(X)(a,b,4i-2)=1,Wshad-reg(X)(a,b,4i-1)=1,Wshad-reg(X)(a,b,4i)=1,若已选中的负样本数量为256-sum(Wshad-cls(X))个,或者虽然负样本数量不足256-sum(Wshad-cls(X))个但是在20次生成随机数(a,b,i)内都无法得到负样本,则算法结束。
所述的ROI层,其输入为图像X和区域其方法为:对于图像X通过特征抽取深度网络Fconv所得到的输出Fconv(X)的维度为48×64×512,对于每一个48×64矩阵VRoI_I的信息(一共512个矩阵),提取VRoI_I矩阵中左上角 右下角所围成的区域,表示取整数部分;输出为roiI(X)维度为7×7,则步长
对于iROI=1:到7:
对于jROI=1到7:
构造区间
roiI(X)(iRoI,jROI)=区间内最大点的值。
当512个48×64矩阵全部处理结束后,将输出拼接得到7×7×512维度的输出参数表示对于图像X,在区域框范围内的ROI。
所述的构建坐标精炼网络,其方法为:第一步,扩展数据库:扩展方法为对于数据库中的每一张图像X和对应的人工标定的每个人体区域其对应的ROI为其BClass=[1,0],BBox=[0,0,0,0];随机生成取值在-1到1之间随机数arand,brand,lrand,wrand,从而得到新的区间 表示取整数部分,该区间的BBox=[arand,brand,lrand,wrand],若新的区间与的重合率>0.7则BClass=H,0],若新的区间与的重合率<0.3则BClass=[0,1],二者均不满足,则不赋值。每个区间最多生成10个正样本区域(正样本区域的特征是BClass=[1,0]),设生成Num1个正样本区域,则生成Num1+1个负样本区域(负样本区域的特征是BClass=[0,1]),若负样本区域不够Num1+1个,则扩大arand,brand,lrand,wrand的范围,直到找到足够多的负样本数为止。第二步,构建坐标精炼网路:对于数据库中的每一张图像X和对应的人工标定的每个人体区域其对应的ROI为将将7×7×512维度的ROI展开成25088维向量,然后经过两个全连接层Fc2,得到输出Fc2(ROI),然后将Fc2(ROI)分别通过分类层FClass和区间微调层FBBox,得到输出FClass(Fc2(ROI))和FBBox(Fc2(ROI)),分类层FClass为全连接层,其输入向量长度为512,输出向量长度为2,区间微调层FBBox为全连接层,其输入向量长度为512,输出向量长度为4;该网络的损失函数有两个:第一个误差函数lossl为对FClass(Fc2(ROI))-BClass计算softmax误差,第二个误差函数loss2为对(FBBox(Fc2(ROI))-BBox)计算欧氏距离误差,则该精炼网络的整体损失函数=loss1+BClass(1)×loss2,BClass(1)表示BClass的第一位,若该位为1则同时优化loss2,若该位为0则不优化loss2,算法迭代过程为:首先迭代1000次收敛误差函数loss2,然后迭代1000次收敛整体损失函数。
所述的两个全连接层Fc2,其结构为:第一层:全连接层,输入向量长度为25088,输出向量长度为4096,激活函数为relu激活函数;第二层:全连接层,输入向量长度为4096,输出向量长度为512,激活函数为relu激活函数。
3.人体行为识别模块,其方法是:在初始化过程中,使用带有典型人体行为的视频数据集对人体行为识别算法进行参数初始化,得到深度网络HumN。
所述的使用带有典型人体行为的视频数据集对人体行为识别算法进行参数初始化,其方法为:第一步,整理视频数据:首先,对于每一段人体视频数据,人工标定其危害程度,危害程度共分为4类:重度危险,中度危险,轻度危险,不危险;其次,使用人体目标检测模块对视频数据进行目标检测,得到当前视频中个体的视频信息,若视频长度大于30秒,则从不同的帧开始截取30秒的视频;最后将每一个视频的最后一帧所对应的原始图像的区间与其在原始图像的视频帧所对应的人工标定的区间计算重合率,若重合率低于0.7,则删掉当前视频;第二步,构造人体行为识别算法深度网络HumN;第三步,对人体行为识别算法深度网络HumN进行初始化,设输入的视频为Vid,首先随机抹去视频Vid的部分帧,抹去的帧的个数为0到视频总帧数的30%之间的随机数,抹去的方法为随机某帧,将其所对应的视频帧的图像的每一个像素均设为0,得到随机处理的视频Vid′,输出为HumN(Vid′),其类别为yvid,yvid的表示方法为:重度危险:yvid=[1,0,0,0],中度危险:yvid=[0,1,0,0],轻度危险:yvid=[0,0,1,0],不危险:yvid=[0,0,0,1],该网络的评价函数为对(HumN(Vid′)-yvid)计算其交叉熵损失函数,收敛方向为取最小值,算法的数据库为第一步整理得到的视频数据,迭代次数为2000次。
所述的构造人体行为识别算法深度网络HumN,设连续30秒的视频帧数为Nf,其网络层结构为:第一层:卷积层,输入为256×256×3Nf,输出为256×256×3Nf,通道数channels=3Nf;第二层:卷积层,输入为256×256×3Nf,输出为256×256×1024,通道数channels=1024;第三层:池化层,输入为256×256×1024,输出为128×128×1024;第四层:卷积层,输入为128×128×1024,输出为128×128×512,通道数channels=512;第五层:池化层,输入为128×128×512,输出为64×64×512;第六层:卷积层,输入为64×64×512,输出为64×64×512,通道数channels=512;第七层:池化层,输入为64×64×512,输出为32×32×512;第八层:卷积层,输入为32×32×512,输出为32×32×512,通道数channels=512;第九层:池化层,输入为32×32×512,输出为16×16×512;第十层:卷积层,输入为16×16×512,输出为16×16×256,通道数channels=256;第十一层:池化层,输入为16×16×256,输出为8×8×256;第十二层:卷积层,输入为8×8×256,输出为8×8×128,通道数channels=128;第十三层:池化层,输入为8×8×128,输出为4×4×128;第十四层:卷积层,输入为4×4×128,输出为4×4×64,通道数channels=64;第十四层:全连接层,首先将输入的4×4×64维度的数据展开成1024维度的向量,然后输入进全连接层,输出向量长度为256,激活函数为relu激活函数;第十五层:全连接层,输入向量长度为256,输出向量长度为64,激活函数为relu激活函数;第十六层:全连接层,输入向量长度为64,输出向量长度为4,激活函数为soft-max激活函数;所有卷积层的参数为卷积核kernel大小=3,步长stride=(1,1),激活函数为relu激活函数;所有池化层均为最大池化层,其参数为池化区间大小kernel_size=2,步长stride=(2,2)。
4.跨摄像头拼接模块,在初始化阶段,构造个体识别分类器并参数初始化。
所述的构造个体识别分类器并参数初始化,其方法为:第一步,视频数据使用人体行为识别模块整理的视频数据;第二步,构造个体识别分类器ChkP;第三步,对个体识别分类器ChkP进行参数初始化,随机从视频中抽取两帧frm1和frm2,若两帧属于同一个体在不同时间的视频,则ycp=[1,0],若两帧不同属于1个个体在不同时间的视频,则ycp=[0,1],该网络的评价函数为对(HumN(frm1,frm2)-ycp)计算其交叉熵损失函数,收敛方向为取最小值,算法次数为2×107次。
所述的个体识别分类器ChkP,设连续30秒的视频帧数为Nf,其网络层结构分为两个部分:第一部分ChkPp1:第一层:卷积层,输入为256×256×3,输出为256×256×64,通道数channels=64;第二层:卷积层,输入为256×256×64,输出为256×256×64,通道数channels=64;第三层:池化层,输入为256×256×64,输出为128×128×64;第四层:卷积层,输入为128×128×128,输出为128×128×128,通道数channels=128;第五层:池化层,输入为128×128×128,输出为64×64×128;第六层:卷积层,输入为64×64×128,输出为64×64×256,通道数channels=256;第七层:池化层,输入为64×64×256,输出为32×32×256;第八层:卷积层,输入为32×32×256,输出为32×32×512,通道数channels=512;第九层:池化层,输入为32×32×512,输出为16×16×512;第十层:卷积层,输入为16×16×512,输出为16×16×256,通道数channels=256;第十一层:池化层,输入为16×16×256,输出为8×8×256;第十二层:卷积层,输入为8×8×256,输出为8×8×128,通道数channels=128;第十三层:池化层,输入为8×8×128,输出为4×4×128;第十四层:卷积层,输入为4×4×128,输出为4×4×64,通道数channels=64;第二部分ChkPp2:第一层:全连接层,首先将输入的两组4×4×64维度的数据展开成两组1024维度的向量,然后将两组1024维度的向量连接成一组2048维度的向量,然后将该2048维度的向量输入进全连接层,输出向量长度为512,激活函数为relu激活函数;第二层:全连接层,输入向量长度为512,输出向量长度为128,激活函数为relu激活函数;第三层:全连接层,输入向量长度为128,输出向量长度为32,激活函数为relu激活函数;第四层:全连接层,输入向量长度为32,输出向量长度为8,激活函数为relu激活函数;第五层:全连接层,输入向量长度为8,输出向量长度为2,激活函数为soft-max激活函数;所有卷积层的参数为卷积核kernel大小=3,步长stride=(1,1),激活函数为relu激活函数;所有池化层均为最大池化层,其参数为池化区间大小kernel_size=2,步长stride=(2,2)。对于该分类器ChkP,其输入为两组图片p1和p2,ChkP(p1,p2)=ChkPp2(ChkPp1(p1),ChkPp1(p2)),此处ChkPp1(p1)和ChkPp1(p2)表示两个输入p1和p2共用ChkPp1网络结构。
5.所述的人体路径识别模块,在初始化阶段,构造人体路径识别分类器并参数初始化。
所述的构造人体路径识别分类器并参数初始化,其方法为:第一步,选择常见的人体运动视频,对于每一段人体视频数据,人工标定其危害程度,危害程度共分为4类:重度危险,中度危险,轻度危险,不危险,使用人体目标检测模块提取每一段视频的位置信息。第二步,构造人体路径识别分类器RoutChc;第三步,对每一段人体位置信息随机抹去部分帧,抹去的帧的个数为0到视频总帧数的30%之间的随机数,抹去的方法为将该帧所对应的位置信息的设为(-1,-1,0,0),得到随机抹去处理的视频,然后将随机抹去处理的视频进行随机截取30秒,2分钟,5分钟,10分钟,每一段的位置信息Pinft作为输入,输出为RoutChc(Pinft),其类别为yrout,yvid的表示方法为:重度危险:yrout=[1,0,0,0],中度危险:yrout=[0,1,0,0],轻度危险:yrout=[0,0,1,0],不危险:yrout=[0,0,0,1]。然后对人体路径识别分类器进行初始化:首先,构造评价函数为对(RoutChc2(RoutChc130s(Infm30s))-yrout)计算其交叉熵损失函数,收敛方向为取最小值,Infm30s为30秒的位置信息,迭代次数为2000次;然后,保持RoutChc2的参数不变,评价函数为对(RoutChc2(RoutChc12m(Infm2m))-yrout)计算其交叉熵损失函数,收敛方向为取最小值,Infm2m为2分钟的位置信息,迭代次数为1000次;然后,同样保持RoutChc2的参数不变,评价函数为对(RoutChc2(RoutChc15m(Infm5m))-yrout)计算其交叉熵损失函数,收敛方向为取最小值,Infm5m为5分钟的位置信息,迭代次数为1000次;然后,同样保持RoutChc2的参数不变,评价函数为对(RoutChc2(RoutChc110m(Infm10m))-yrout)计算其交叉熵损失函数,收敛方向为取最小值,Infm10m为10分钟的位置信息,迭代次数为1000次。
所述的人体路径识别分类器RoutChc,设连续30秒的视频帧数为Nf,连续2分钟的视频帧数为4Nf,连续5分钟的视频帧数为10Nf,连续10分钟的视频帧数为20Nf,其网络层结构分为五个部分:
第一部分30秒的位置信息网络RoutChc130s:第一层:全连接层,输入向量长度为4Nf,输出向量长度为2Nf,激活函数为relu激活函数;第二层:全连接层,输入向量长度为2Nf,输出向量长度为Nf,激活函数为relu激活函数;
第二部分2分钟的位置信息网络RoutChc12m:第一层:全连接层,输入向量长度为16Nf,输出向量长度为4Nf,激活函数为relu激活函数;第二层:全连接层,输入向量长度为4Nf,输出向量长度为2Nf,激活函数为relu激活函数;第三层:全连接层,输入向量长度为2Nf,输出向量长度为Nf,激活函数为relu激活函数;
第三部分5分钟的位置信息网络RoutChc15m:第一层:全连接层,输入向量长度为40Nf,输出向量长度为16Nf,激活函数为relu激活函数;第二层:全连接层,输入向量长度为16Nf,输出向量长度为4Nf,激活函数为relu激活函数;第三层:全连接层,输入向量长度为4Nf,输出向量长度为2Nf,激活函数为relu激活函数;第四层:全连接层,输入向量长度为2Nf,输出向量长度为Nf,激活函数为relu激活函数;
第四部分10分钟的位置信息网络RoutChc110m:第一层:全连接层,输入向量长度为80Nf,输出向量长度为40Nf,激活函数为relu激活函数;第二层:全连接层,输入向量长度为40Nf,输出向量长度为16Nf,激活函数为relu激活函数;第三层:全连接层,输入向量长度为16Nf,输出向量长度为4Nf,激活函数为relu激活函数;第四层:全连接层,输入向量长度为4Nf,输出向量长度为2Nf,激活函数为relu激活函数;第五层:全连接层,输入向量长度为2Nf,输出向量长度为Nf,激活函数为relu激活函数;
第五部分为RoutChc2:第一层:全连接层,输入向量长度为Nf,输出向量长度为512,激活函数为relu激活函数;第二层:全连接层,输入向量长度为512,输出向量长度为128,激活函数为relu激活函数;第三层:全连接层,输入向量长度为128,输出向量长度为64,激活函数为relu激活函数;第四层:全连接层,输入向量长度为64,输出向量长度为16,激活函数为relu激活函数;第五层:全连接层,输入向量长度为16,输出向量长度为4,激活函数为soft-max激活函数;
若输入信息为30秒位置信息Infm30s,输出为RoutChc(Infm30s)=RoutChc2(RoutChc130s(Infm30s)),若输入信息为2分钟位置信息Infm2m,输出为RoutChc(Infm2m)=RoutChc2(RoutChc12m(Infm2m)),若输入信息为5分钟位置信息Infm5m,输出为RoutChc(Infm5m)=RoutChc2(RoutChc15m(Infm5m)),若输入信息为10分钟位置信息Infm10m,输出为RoutChc(Infm10m)=RoutChc2(RoutChc110m(Infm10m))。
识别结果处理显示模块,在初始化的过程中不工作。
实施例2:
本实施例实现了一种基于监控的校园周边危险个体检测系统的检测过程。
1.图像预处理模块,在检测过程中:第一步,对监控摄像头所摄的监控图像进行均值去噪,从而得到去噪后的监控图像;第二步,对去噪后的监控图像进行光照补偿,从而得到光照补偿后的图像;第三步,将光照补偿后的图像进行图像增强,将图像增强后的数据传递给人体目标检测模块。
所述的监控摄像头所摄的监控图像进行均值去噪,其方法是:设监控摄像头所摄的监控图像为Xsrc,因为Xsrc为彩色RGB图像,因此存在Xsrc-R,Xsrc-G,Xsrc-B三个分量,对于每一个分量Xsrc′,分别进行如下操作:首先设置一个3×3维的窗口,考虑该图像Xsrc′的每个像素点Xsrc′(i,j),以该点为中心点的3×3维矩阵所对应的像素值分别为[Xsrc′(i-1,j-1),Xsrc′(i-1,j),Xsrc′(i-1,j+1),Xsrc′(i,j-1),Xsrc′(i,j),Xsrc′(i,j+1),Xsrc′(i+1,j-1),Xsrc′(i+1,j),Xsrc′(j+1,j+1)]进行从大到小排列,取其排在中间的值为去噪后图像Xsrc″在像素(i,j)所对应滤波后值赋值给Xsrc″(i,j);对于Xsrc′的边界点,会出现其3×3维的窗口所对应的某些像素点不存在的情况,那么只需计算落在窗口内存在的像素点的中间值即可,若窗口内为偶数个点,将排在中间两个像素值的平均值作为该像素点去噪后的像素值赋值给Xsrc″(i,j),从而,新的图像矩阵Xsrc″即为Xsrc在当前RGB分量的去噪后的图像矩阵,对于Xsrc-R,Xsrc-G,Xsrc-B在三个分量分别进行去噪操作后,将得到的Xsrc-R″,Xsrc-G″,Xsrc-B″分量,将这三个新的分量整合成一张新的彩色图像XDen即为去噪后所得的图像。
所述的对去噪后的监控图像进行光照补偿,设去噪后的监控图像XDen,因为XDen为彩色RGB图像,因此XDen存在RGB三个分量,对于每一个分量XDen′,分别进行光照补偿,然后将得到的Xcpst′整合得到彩色RBG图像Xcpst,Xcpst即为XDen光照补偿后的图像,对每一个分量XDen′分别进行光照补偿的步骤为:第一步,设XDen′为m行n列,构造XDensum和Numben为同样m行n列的矩阵,初始值均为0,步长窗口大小为l,其中函数min(m,n)表示取m和n的最小值,表示取整数部分,sqrt(l)表示l的平方根,若l<1则l=1;第二步,设XDen左上角坐标为(1,1),从坐标(1,1)开始,根据窗口大小为l和步长s确定每一个候选框,该候选框为[(a,b),(a+l,b+l)]所围成的区域,对于XDen′在候选框区域内所对应的图像矩阵进行直方图均衡化,得到候选区域[(a,b),(a+l,b+l)]的均衡化后的图像矩阵XDen″,然后XDensum对应的[(a,b),(a+l,b+l)]区域的每一个元素计算XDensum(a+ixsum,b+jXsum)=XDensum(a+iXsum,b+jXsum)+XDen″(iXsum,jXsum),其中(iXsum,jXsum)为整数且1≤iXsum≤l,1≤jXsum≤l,并将NumDen对应的[(a,b),(a+l,b+l)]区域内的每一个元素加1;最后,计算 其中(ixsumNum,jXsumNum)为XDen对应的每一个点,从而得到Xcpst即为对当前分量XDen′进行光照补偿。
所述的根据窗口大小为l和步长s确定每一个候选框,其步骤为:
设监控图像为m行n列,(a,b)为选定的区域的左上角坐标,(a+l,b+l)为选定区域的右下角坐标,该区域由[(a,b),(a+l,b+l)]表示,(a,b)的初始值为(1,1);
当a+l≤m时:
b=1;
当b+l≤n时:
选定的区域为[(a,b),(a+l,b+l)];
b=b+s;
内层循环结束;
a=a+s;
外层循环结束;
上述过程中,每次选定的区域[(a,b),(a+l,b+l)]均为候选框。
所述的对于XDen′在候选框区域内所对应的图像矩阵进行直方图均衡化,设候选框区域为[(a,b),(a+l,b+l)]所围成的区域,XDen″即为XDen′在[(a,b),(a+l,b+l)]区域内的图像信息,其步骤为:第一步,构造向量I,I(iI)为XDen″中像素值等于iI的个数,0≤iI≤255;第二步,计算向量第三步,对于XDen″上的每一个点(iXDen,jXDen),其像素值为XDen″(iXDen,jXDen),计算X″Den(iXDen,jXDen)=I′(X″Den(iXDen,jXDen))。待XDen″图像内的所有像素点值都计算并更改后直方图均衡化过程结束,XDen″内保存的即为直方图均衡化的结果。
所述的将光照补偿后的图像进行图像增强,设光照补偿后的图像为Xcpst,其对应的RGB通道分别为XcpstR,XcpstG,XcpstB,对Xcpst图像增强后得到的图像为Xenh。对其进行图像增强的步骤为:第一步,对于Xcpst的所有分量XcpstR,XcpstG,XcpstB计算其按指定尺度进行模糊后的图像;第二步,构造矩阵LXenhR,LXenhG,LXenhB为与XcpstR相同维度的矩阵,对于图像Xcpst的RGB通道中的R通道,计算LXenhR(i,j)=log(XcpstR(i,j))-LXcpstR(i,j),(i,j)的取值范围为图像矩阵中所有的点,对于图像Xcpst的RGB通道中的G通道和B通道采用与R通道同样的算法得到LXenhG和LXenhB;第三步,对于图像Xcpst的RGB通道中的R通道,计算LXenhR中所有点取值的均值MeanR和均方差VarR(注意是均方差),计算MinR=MeanR-2×VarR和MaxR=MeanR+2×VarR,然后计算XenhR(i,j)=Fix((LXcpstR(i,j)-MinR)/(MaxR-MinR)×255),其中Fix表示取整数部分,若取值<0则赋值为0,取值>255则赋值为255;对于RGB通道中的G通道和B通道采用与R通道同样的算法得到XenhG和XenhB,将分别属于RGB通道的XenhR、XenhG、XenhB整合成一张彩色图像Xenh
所述的对于Xcpst的所有分量XcpstR,XcpstG,XcpstB计算其按指定尺度进行模糊后的图像,对于RGB通道中的R通道XcpstR,其步骤为:第一步,定义高斯函数G(x,y,σ)=k×exp(-(x2+y2)/σ2),σ为尺度参数,k=1/∫∫G(x,y)dxdy,则对于XcpstR的每一个点XcpstR(i,j)计算, 其中表示卷积运算,对于距离边界低于尺度σ的点,只计算XcpstR与G(x,y,σ)对应部分的卷积,Fix()表示取整数部分,若取值<0则赋值为0,取值>255则赋值为255。对于RGB通道中的G通道和B通道采用与R通道同样的算法更新XcpstG和XcpstG
2.人体目标检测模块,在检测过程中,接收图像预处理模块所传递来的图像,然后对其进行处理,其步骤为:第一步,对每一帧图像使用目标检测算法进行目标检测,得到当前图像的人体图像区域,将该信息发送给识别结果处理显示模块;第二步,对于连续30秒检测到的每一个人体图像,提取视频信息Pic和位置信息Pinf,然后将视频信息发送给人体行为识别模块,将其路径信息发送给跨摄像头拼接模块。
所述的对每一帧图像使用目标检测算法进行目标检测,其步骤为:
第一步,将输入图像Xcpst分割成768×1024维度的子图;
第二步,对于每一个子图Xs
第2.1步,使用在初始化时构造的特征抽取深度网络Fconv进行变换,得到512个特征子图集合Fconv(Xs);
第2.2步,对Fconv(Xs)使用区域选择网络中第一层Conv1、第二层Conv2-1+softmax激活函数和Conv2-2进变换,分别得到输出softmax(Conv2-1(Conv1(Fconv(Xs))))和Conv2-2(Conv1(Fconv(Xs))),然后根据输出值得到该区间内的所有的初步候选区间;
第2.3步,对于当前帧图像的所有子图的所有的初步候选区间:
第2.3.1步,根据其当前候选区域的得分大小进行选取,选取最大的50个初步候选区间作为候选区域;
第2.3.2步,调整候选区间集合中所有的越界候选区间,然后剔除掉候选区间中重叠的框,从而得到最终候选区间;
第2.3.3步,将子图Xs和每一个最终候选区间输入到ROI层,得到对应的ROI输出,设当前的最终候选区间为(aBB(1),bBB(2),lBB(3),wBB(4)),然后计算FBBox(Fc2(ROI))得到四位输出(aBB(1)+8×OutBB(1),bBB(2)+8×OutBB(2),lBB(3)+8×OutBB(3),wBB(4)+8×OutBB(4));
第三步,更新所有子图的精炼后的最终候选区间的坐标,更新的方法为设当前候选区域的坐标为(TLx,TLy,RBx,RBy),其对应的子图的左上角坐标为(Seasub,Sebsub),更新后的坐标为(TLx+Seasub-1,TLy+Sebsub-1,RBx+Seasub-1,RBy+Sebsub-1)。
所述的将输入图像Xcpst分割成768×1024维度的子图,其步骤为:设分割的步长为384和512,设窗口大小为m行n列,(asub,bsub)为选定的区域的左上角坐标,(a,b)的初始值为(1,1);当asub<m时:
bsub=1;
当bsub<n时:
选定的区域为[(asub,bsub),(asub+384,bsub+512)],将输入图像Xcpst上该区间所对应的图像区域的信息复制到新的子图中,并附带左上角坐标(asub,bsub)作为位置信息;若选定区域超出输入图像Xcpst区间,则将超出范围内的像素点对应的RGB像素值均赋值为0;
bsub=bsub+512;
内层循环结束;
asub=asub+384;
外层循环结束;
所述的根据输出值得到该区间内的所有的初步候选区间,其方法为:第一步:对于softmax(Conv2-1(Conv1(Fconv(Xs))))其输出为48×64×18,对于Conv2-2(Conv1(FConv(Xs))),其输出为48×64×36,对于48×64维空间上的任何一点(x,y),softmax(Conv2-1(Conv1(Fconv(Xs))))(x,y)为18维向量II,Conv2-2(Conv1(Fconv(Xs)))(x,y)为36维向量IIII,若II(2i-1)>II(2i),对于i取值从1到9,lOtr为Roi(xOtr,yOtr)的第三位,wOtr为Roi(xOtr,yOtr)的第四位,则初步候选区间为[II(2i-1),(8×IIII(4i-3)+x,8×IIII(4i-2)+y,lOtr×IIII(4i-1),wOtr×IIII(4i))],其中第一位II(2i-1)表示当前候选区域的得分,第二位(8×IIII(4i-3)+x,8×IIII(4i-2)+y,IIII(4i-1),IIII(4i))表示当前候选区间的中心点为(8×IIII(4i-3)+x,8×IIII(4i-2)+y),候选框的半长半宽分别为lOtr×IIII(4i-1)和wOtr×IIII(4i))。
所述的调整候选区间集合中所有的越界候选区间,其方法为:设监控图像为m行n列,对于每一个候选区间,设其[(ach,bch)],候选框的半长半宽分别为lch和wch,若ach+lch>m,则然后更新其ach=a′ch,lch=l′ch;若bch+wch>n,则然后更新其bch=b′ch,wch=w′ch·
所述的剔除掉候选区间中重叠的框,其步骤为:
若候选区间集合不为空:
从候选区间集合中取出得分最大的候选区间iout
计算候选区间iout与候选区间集合中的每一个候选区间ic的重合率,若重合率>0.7,则从候选区间集合删除候选区间ic
将候选区间iout放入输出候选区间集合;
当候选区间集合为空时,输出候选区间集合内所含的候选区间即为剔除掉候选区间中重叠的框后所得到的候选区间集合。
所述的计算候选区间iout与候选区间集合中的每一个候选区间ic的重合率,其方法为:设候选区间ic的坐标区间为中心点[(aic,bic)],候选框的半长半宽分别为lic和wic,候选区间ic的坐标区间为中心点[(aiout,bicout)],候选框的半长半宽分别为liout和wiout;计算xA=mmax(aic,aiout);yA=max(bic,biout);xB=min(lic,liout),yB=min(wic,wiout);若满足|aic-aiout|≤lic+liout-1并且|bic-biout|≤wic+wiout-1,说明存在重合区域,重合区域=(lic+liout-1-|aic-aiout|)×(wic+wiout-1-|bic-biout|),否则重合区域=0;计算全部区域=(2lic-1)×(2wic-1)+(2liout-1)×(2wiout-1)-重合区域;从而得到重合率=重合区域/全部区域。
所述的对于连续30秒检测到的每一个人体图像,提取视频信息Pic和位置信息Pinf,其方法为:设连续30秒的视频帧数为Nf,设第一帧的图像内存在Np个人体区间,ORB特征值列表的长度为Np,则:
i取值1到Np:
对于第一帧内的第i个人体区间,将该人体区间内的彩色图像提取出来,并将提取出的图像大小调整为256×256,设该图像为Pici(1);当前人体区间i在第1帧的位置信息Pinfi(1)赋值为当前人体区间i的中心点坐标。
对于Pici(1)提取其ORB特征ORB(i)。
jf取值2到Nf:
对于第jf帧内的每一个人体区间i′:
将该人体区间内的彩色图像提取出来,并将提取出的图像大小调整为256×256,设该图像为Pici′(jf);
对于Pici′(jf)提取其ORB特征ORBi′(jf);
将ORBi′(jf)与ORB列表中的每一个值比较其汉明距离,选取ORB特征值列表对应项没有被更新过的ORB(i″)中与ORBi′(jf)的汉明距离最小,则更新ORB(i″)=ORBi′(jf),Pici″(jf)为Pici′对应的第jf帧。位置信息Pinfi″(jf)为当前人体区间i′的中心点坐标,候选框的半长半宽;
若对于第i_loss人体区间,当前第jf帧没有选中对应的视频帧,则不更改ORB(i-loss),Pici_loss(jf)的所有像素点均赋值为0,Pinfi_loss(jf)=(-1,-1,0,0)。
待所有帧均处理结束后,Picimg1即为第img1个人体区间的图像集合,将Picimg1按照第一帧开始第Nf结束的顺序播放即为对应的视频。
所述的ORB特征,从一个图像中提取ORB特征的方法已经较为成熟,在OpenCV计算机视觉库里边已有实现;对一个图片提取其ORB特征,输入值为当前图片,输出为若干组长度相同的字符串,每一组代表一个ORB特征。
3.人体行为识别模块,在检测过程中,接收人体目标检测模块所传递来的视频图像,第一步,对视频进行筛选,判断是否为不合格视频,若为不合格视频,直接发送给跨摄像头拼接模块,本模块不再处理;第二步,对合格的视频片段使用人体行为识别算法进行行为识别,识别方法为设待识别的视频片段为Vrl,使用深度网络HumN计算输入为Vrl时深度网络HumN的输出HumN(Vrl),HumN(Vrl)为4位向量,若第一位最大则识别为重度危险,若第二位最大则识别为中度危险,若第三位最大则识别为轻度危险,若第四位最大则识别为不危险。将识别结果为重度危险、中度危险和轻度危险的视频片段及位置信息发送给识别结果处理显示模块,若识别结果不是危险行为,则将识别结果发送给跨摄像头拼接模块,由于每个视频片段长度为30秒,因此每隔30秒对人体目标检测模块所传递来的视频图像进行识别并发送识别结果。
所述的使用带有典型人体行为的视频数据集对人体行为识别算法进行参数初始化,其方法为:第一步,整理视频数据:首先,对于每一段人体视频数据,人工标定其危害程度,危害程度共分为4类:重度危险,中度危险,轻度危险,不危险;其次,使用人体目标检测模块对视频数据进行目标检测,得到当前视频中个体的视频信息,若视频长度大于30秒,则从不同的帧开始截取30秒的视频;最后将每一个视频的最后一帧所对应的原始图像的区间与其在原始图像的视频帧所对应的人工标定的区间计算重合率,若重合率低于0.7,则删掉当前视频;第二步,构造人体行为识别算法深度网络HumN;第三步,对人体行为识别算法深度网络HumN进行初始化,设输入的视频为Vid,首先随机抹去视频Vid的部分帧,抹去的帧的个数为0到视频总帧数的30%之间的随机数,抹去的方法为随机某帧,将其所对应的视频帧的图像的每一个像素均设为0,得到随机处理的视频Vid′,输出为HumN(Vid′),其类别为yvid,yvid的表示方法为:重度危险:yvid=[1,0,0,0],中度危险:yvid=[0,1,0,0],轻度危险:yvid=[0,0,1,0],不危险:yvid=[0,0,0,1],该网络的评价函数为对(HumN(Vid′)-yvid)计算其交叉熵损失函数,收敛方向为取最小值,算法的数据库为第一步整理得到的视频数据,迭代次数为2000次。
所述的构造人体行为识别算法深度网络HumN,设连续30秒的视频帧数为Nf,其网络层结构为:第一层:卷积层,输入为256×256×3Nf,输出为256×256×3Nf,通道数channels=3Nf;第二层:卷积层,输入为256×256×3Nf,输出为256×256×1024,通道数channels=1024;第三层:池化层,输入为256×256×1024,输出为128×128×1024;第四层:卷积层,输入为128×128×1024,输出为128×128×512,通道数channels=512;第五层:池化层,输入为128×128×512,输出为64×64×512;第六层:卷积层,输入为64×64×512,输出为64×64×512,通道数channels=512;第七层:池化层,输入为64×64×512,输出为32×32×512;第八层:卷积层,输入为32×32×512,输出为32×32×512,通道数channels=512;第九层:池化层,输入为32×32×512,输出为16×16×512;第十层:卷积层,输入为16×16×512,输出为16×16×256,通道数channels=256;第十一层:池化层,输入为16×16×256,输出为8×8×256;第十二层:卷积层,输入为8×8×256,输出为8×8×128,通道数channels=128;第十三层:池化层,输入为8×8×128,输出为4×4×128;第十四层:卷积层,输入为4×4×128,输出为4×4×64,通道数channels=64;第十四层:全连接层,首先将输入的4×4×64维度的数据展开成1024维度的向量,然后输入进全连接层,输出向量长度为256,激活函数为relu激活函数;第十五层:全连接层,输入向量长度为256,输出向量长度为64,激活函数为relu激活函数;第十六层:全连接层,输入向量长度为64,输出向量长度为4,激活函数为soft-max激活函数;所有卷积层的参数为卷积核kernel大小=3,步长stride=(1,1),激活函数为relu激活函数;所有池化层均为最大池化层,其参数为池化区间大小kernel_size=2,步长stride=(2,2)。
所述的对视频进行筛选,判断是否为不合格视频,其方法为:设当前视频为Vcr,丢失帧数lostF为0:
对于从第1帧到最后一帧:
若当前帧所有像素点均赋值为0,则lostF=lostF+1。
若lostF/总帧数<0.7,说明当前视频丢帧过多,判断为不合格视频。
4.跨摄像头拼接模块,在检测过程中,接收人体行为识别模块传递过来的识别结果为不危险的视频信息、不合格视频以及人体目标检测模块传递来的位置信息。对于人体目标检测模块传递来所有视频,筛选并标记跨摄像头运动的视频,删除掉不合格视频中未被标记跨越摄像头运动的视频,对于余下的每一个视频,若未被标记跨越摄像头运动的30秒视频,在当前视频所在摄像头所设图像内寻找该区域个体在下一个30秒的视频,若被标记跨越摄像头运动的视频,则在所有摄像头所设图像内寻找该区域个体在下一帧对应的视频。将每个个体的视频按照时间由先到后的放入集合中,从而得到一段时间内当前个体的位置信息,将该位置信息发送给人体路径识别模块。
所述的对于人体目标检测模块传递来所有视频,筛选并标记跨摄像头运动的视频,其方法为:设视频帧数为Nf,当前视频的视频信息Pcr和位置信息Pcinf,则:
jfb取值Nf到1:
若Pcr(jf)的所有像素值不为0:
判断:Pcinf(jf)(1)-Pcinf(jf)(3)<5 Or Pcinf(jf)(2)-Pcinf(jf)(4)<50rPcinf(jf)(1)+Pcinf(jf)(3)-255<50rPcinf(jf)(2)+Pcinf(jf)(4)-255<5,若成立,标记当前视频为跨越摄像头运动,删掉从jfb帧到Nf帧,删掉当前视频的位置信息Pcinf中从Pcinf(jfb)到Pcinf(Nf)的信息。循环结束。
若当前视频未被标记为跨越摄像头运动并且其长度不足30秒,则删除当前视频。
所述的若未被标记跨越摄像头运动的30秒视频,在当前视频所在摄像头所设图像内寻找该区域个体在下一个30秒的视频,其方法为:设当前视频为Vc,当前视频所在摄像头内在下一个30秒的所有视频集合为Vnxt,第一步,计算当前视频的最后一帧图像Pvc的ORB特征和视频集合Vnxt中的每一个视频的Vnxt(i)的第一帧Pvnxt(i)的特征,并比较两个ORB特征的汉明距离,从而得到两帧的相似度=两个ORB特征的汉明距离/ORB特征长度;其中i取值为1到视频集合Vnxt中视频的个数。若Pvc与Pvnxt(j)的相似度最大并且>0.85,说明Vnxt中第j个视频即为当前当前视频为Vc在下一个30秒的视频,本方法结束;否则,将下一个30秒的所有视频集合按照相似度从大到小排序,将所有视频的第一帧Pvnxt(k)依相似度从大到小与Pvc使用个体识别分类器ChkP进行比较,若ChkP(Pvnxt(k),Pvc)识别结果第一位大于第二位,则表明当前两张图像同属于一个人,则,说明Vnxt中第k个视频即为当前视频为Vc在下一个30秒的视频,若识别结果不同属于一个人,则继续取下一个视频的第一帧使用个体识别分类器ChkP进行识别,若所有识别结果均为不同属于一个人,说明当前视频Vc不存在下一个30秒的视频。
所述的若被标记跨越摄像头运动的视频,则在所有摄像头所设图像内寻找该区域个体在下一帧对应的视频,其方法为:设当前视频为Vcr,从个体识别分类器传递过来的所有视频中选取与当前视频同时拍摄的视频集合Vscurr,从个体识别分类器传递过来的所有视频中选取当前视频的下一个30秒的所有视频集合Vsnxt;第一步,构造下一帧视频集合:若当前视频长度为30秒,取当前视频Vcr的最后一帧图像Pvcr,则取Vsnxt中所有视频的第一帧构成集合Pvs,若当前视频Vcr长度小于30秒,设当前视频Vcr的最后一帧为第frame_Vcr帧,则取视频集合Vsnxt中所有视频的第frame_Vcr+1帧构成集合Pvs;第二步,将集合Pvs内的元素排序:首先计算图像Pvcr的ORB特征和集合Pvs中的每一个图像的ORB特征,并比较两个ORB特征的汉明距离,从而得到两帧的相似度=两个ORB特征的汉明距离/ORB特征长度;将集合Pvs中的图像按照相似度从大到小排序;第三步,使用个体识别分类器ChkP选择下一帧对应的视频:将集合Pvs中的每一个图像Pvs(k)从第一个开始与Pvcr使用个体识别分类器ChkP进行比较,若ChkP(Pvs(k),Pvcr)识别结果第一位大于第二位,则表明当前两张图像同属于一个人,则说明Pvs中第k个图像对应的视频即为当前视频为Vc在下一个30秒的视频Vcr_nxt,若Vcr_nxt属于集合Vscurr,则删掉Vcr_nxt视频中第一帧到第frame_Vcr帧,删掉位置信息Pcinf中Pcinf(1)到Pcinf(frame_Vcr);若识别结果不同属于一个人,则继续取下一个视频的第一帧使用个体识别分类器ChkP进行识别,若所有识别结果均为不同属于一个人,说明当前视频Vc不存在下一个30秒的视频。
5.人体路径识别模块,在检测过程中,接收跨摄像头拼接模块传递来的位置信息,将位置信息使用人体路径识别分类器进行路径识别,识别方法为,设待识别的位置信息为Infm,当传递来的视频信息长度小于等于30秒时,算法不做处理,继续等待随后的输入,当传递来的视频信息长度大于30秒时,使用RoutChc(Infm)=RoutChc2(RoutChc130s(Infm))进行识别;当传递来的视频信息长度大于2分钟时,使用RoutChc(Infm)=RRoutChc2(RoutChc12m(Infm))进行识别;当传递来的视频信息长度大于5分钟时,使用RoutChc(Infm)=RoutChc2(RoutChc15m(Infm))进行识别;当传递来的视频信息长度大于10分钟时,使用RoutChc(Infm)=RoutChc2(RoutChc110m(Infm))进行识别,Infm分别取当前帧到前30秒、2分钟、5分钟和10分钟的位置信息。对于分别属于不同视频区域内的视频集合,按照时间先后顺序进行排序从而得到一个连续时间内的Infm。算法的输出为4位向量,若第一位最大则识别为重度危险,若第二位最大则识别为中度危险,若第三位最大则识别为轻度危险,若第四位最大则识别为不危险。算法每隔30秒对当前接收到的每一组位置信息进行识别,并将识别结果为重度危险、中度危险和轻度危险的视频片段及位置信息发送给识别结果处理显示模块。
6.识别结果处理显示模块,在识别过程中,接收人体行为识别模块识别出的重度危险行为、中度危险行为和轻度危险行为,接收人体路径识别模块识别出的重度危险行为、中度危险行为和轻度危险行为;
对于人体目标检测模块识别出的重度危险行为、中度危险行为和轻度危险行为:
每隔30秒对接收到人体行为识别模块传递过来识别结果进行处理:
第一步,根据当前接收到人体行为识别模块传递过来识别结果对应的视频信息找到其当前30秒视频最后一帧,若当前帧为全0,则提取其前一帧,直到找到不全为0的帧,提取该帧位置信息,按照位置信息的坐标(a1,b1,l1,w1),在其对应的摄像头所摄区域的以(a1—l1,b1-w1)为左上角点,(a1+l1,b1+w1)为右下角点所构成的矩形为跟踪显示框,使用对应于不同识别结果的颜色将跟踪显示框显示在输出屏幕上,重度危险行为显示红色、中度危险行为显示黄色和轻度危险行为显示灰色;
第二步,从当前位置坐标开始对当前个体进行跟踪并将跟踪显示框显示在输出屏幕上;待30秒后删掉当前跟踪显示框。
对于人体路径识别模块识别出的重度危险行为、中度危险行为和轻度危险行为:
每隔30秒对接收到人体路径识别模块传递过来识别结果进行处理:
第一步,根据当前接收到人体路径识别模块传递过来识别结果对应的位置信息,截取其10分钟的路径信息,对于路径信息的每一个位置坐标(a2,b2,l2,w2),其中心点坐标为(a2,b2),在其对应的摄像头所摄区域的坐标(a2,b2)绘制一个点,连续的10分钟的路径信息对应的点构成了当前人体在当前时间以前的10分钟内的运动轨迹,若位置信息的长度小于10分钟,则显示位置信息内的所有位置坐标对应的中心点;使用对应于不同识别结果的颜色将运动轨迹显示在输出屏幕上,重度危险行为显示红色、中度危险行为显示黄色和轻度危险行为显示灰色。
第二步,从当前位置坐标开始对当前个体进行跟踪并将跟踪位置的中心点坐标显示在输出屏幕上;待30秒后删掉个体的运动轨迹。
所述的从当前位置坐标开始对当前个体进行跟踪,其方法为:首先计算当前位置信息所对应的视频帧的ORB特征,得到ORBori;待当前摄像头所摄的下一帧,被人体目标检测模块处理得到当前图像的所有的人体图像区域,对于每个人体区域,将该人体区间内的彩色图像提取出来,并将提取出的图像大小调整为256×256,计算其区域内的图像的ORB特征,得到ORB特征集合ORBsnxt。将ORBori与ORB特征集合ORBsnxt中的每一个值比较其汉明距离,选择特征集合ORBsnxt中与ORBori汉明距离最小的人体区域,将选中的人体区域作为下一帧的跟踪位置。

Claims (7)

1.一种基于监控的校园周边危险个体检测系统,其特征在于,由如下6个功能模块构成:图像预处理模块,人体目标检测模块,人体行为识别模块,跨摄像头拼接模块,人体路径识别模块,识别结果处理显示模块;这6个功能模块各自的实现方法如下:
图像预处理模块对监控摄像头所摄的视频进行预处理,首先对输入图像中可能含的噪声进行去噪处理,然后对去噪后的图像进行光照补偿,然后对光照补偿后的图像进行图像增强,最后将图像增强后的数据传递给人体目标检测模块;
人体目标检测模块,对接收到的图像进行目标检测,检测出当前区域内的人体图像,对于检测到的每一个人体图像信息,将其整合成一段视频发送给人体行为识别模块,并将其路径信息发送给跨摄像头拼接模块;
人体行为识别模块对接收到的人体视频片段首先进行筛选,过滤掉无意义的视频片段,然后对剩余的视频片段进行行为识别,若识别结果为危险行为,将识别结果及当前视频片段对应于原始图像的坐标发送给识别结果处理显示模块,若识别结果不是危险行为,则将识别结果及其对应的个体信息发送给跨摄像头拼接模块;
跨摄像头拼接模块,根据人体行为识别模块传递来的个体信息,寻找到其对应的在每一个监控摄像头下的路径信息,并对路径信息进行整合,从而得到其在整个区域内的运动路径信息,将得到的路径信息发送给人体路径识别模块;
人体路径识别模块将得到的路径信息进行过滤,过滤掉无意义的路径信息,然后对剩余的路径信息进行识别,将识别得到的危险行为发送给识别结果处理显示模块;
识别结果处理显示模块将接收到的人体目标检测模块和人体路径识别模块的识别结果进行整合,并将识别结果和路径根据其危险等级和在原始图像的位置信息以不同的颜色框显示在监控屏幕上。
2.根据权利要求1所述的一种基于监控的校园周边危险个体检测系统,其特征在于所述的图像预处理模块的具体实现方法为:
在初始化阶段该模块不工作;在检测过程中:第一步,对监控摄像头所摄的监控图像进行均值去噪,从而得到去噪后的监控图像;第二步,对去噪后的监控图像进行光照补偿,从而得到光照补偿后的图像;第三步,将光照补偿后的图像进行图像增强,将图像增强后的数据传递给人体目标检测模块;
所述的监控摄像头所摄的监控图像进行均值去噪,其方法是:设监控摄像头所摄的监控图像为Xsrc,因为Xsrc为彩色RGB图像,因此存在Xsrc-R,Xsrc-G,Xsrc-B三个分量,对于每一个分量Xsrc′,分别进行如下操作:首先设置一个3×3维的窗口,考虑该图像Xsrc′的每个像素点Xsrc′(i,j),以该点为中心点的3×3维矩阵所对应的像素值分别为[Xsrc′(i-1,j-1),Xsrc′(i-1,j),Xsrc′(i-1,j+1),Xsrc′(i,j-1),Xsrc′(i,j),Xsrc′(i,j+1),Xsrc′(i+1,j-1),Xsrc′(i+1,j),Xsrc′(j+1,j+1)]进行从大到小排列,取其排在中间的值为去噪后图像Xsrc″在像素(i,j)所对应滤波后值赋值给Xsrc″(i,j);对于Xsrc′的边界点,会出现其3×3维的窗口所对应的某些像素点不存在的情况,那么只需计算落在窗口内存在的像素点的中间值即可,若窗口内为偶数个点,将排在中间两个像素值的平均值作为该像素点去噪后的像素值赋值给Xsrc″(i,j),从而,新的图像矩阵Xsrc″即为Xsrc在当前RGB分量的去噪后的图像矩阵,对于Xsrc-R,Xsrc-G,Xsrc-B在三个分量分别进行去噪操作后,将得到的Xsrc-R″,Xsrc-c″,Xsrc-B″分量,将这三个新的分量整合成一张新的彩色图像XDen即为去噪后所得的图像;
所述的对去噪后的监控图像进行光照补偿,设去噪后的监控图像XDen,因为XDen为彩色RGB图像,因此XDen存在RGB三个分量,对于每一个分量XDen′,分别进行光照补偿,然后将得到的Xcpst′整合得到彩色RBG图像Xcpst,Xcpst即为XDen光照补偿后的图像,对每一个分量XDen′分别进行光照补偿的步骤为:第一步,设XDen′为m行n列,构造XDen ′sum和NumDen为同样m行n列的矩阵,初始值均为0,步长窗口大小为l,其中函数min(m,n)表示取m和n的最小值,表示取整数部分,sqrt(l)表示l的平方根,若l<1则l=1;第二步,设XDen左上角坐标为(1,1),从坐标(1,1)开始,根据窗口大小为l和步长s确定每一个候选框,该候选框为[(a,b),(a+l,b+l)]所围成的区域,对于XDen′在候选框区域内所对应的图像矩阵进行直方图均衡化,得到候选区域[(a,b),(a+l,b+l)]的均衡化后的图像矩阵XDen″,然后XDen ′sum对应的[(a,b),(a+l,b+l)]区域的每一个元素计算XDen ′sum(a+iXsum,b+jXsum)=XDen ′sum(a+iXsum,b+jXsum)+XDen″(iXsum,jXsum),其中(iXsum,jXsum)为整数且1≤iXsum≤l,1≤jXsum≤l,并将NumDen对应的[(a,b),(a+l,b+l)]区域内的每一个元素加1;最后,计算 其中(iXsumNum,jXsumNum)为XDen对应的每一个点,从而得到Xcpst即为对当前分量XDen′进行光照补偿;
所述的根据窗口大小为l和步长s确定每一个候选框,其步骤为:
设监控图像为m行n列,(a,b)为选定的区域的左上角坐标,(a+l,b+l)为选定区域的右下角坐标,该区域由[(a,b),(a+l,b+l)]表示,(a,b)的初始值为(1,1);
当a+l≤m时:
b=1;
当b+l≤n时:
选定的区域为[(a,b),(a+l,b+l)];
b=b+s;
内层循环结束;
a=a+s;
外层循环结束;
上述过程中,每次选定的区域[(a,b),(a+l,b+l)]均为候选框;
所述的对于XDen′在候选框区域内所对应的图像矩阵进行直方图均衡化,设候选框区域为[(a,b),(a+l,b+l)]所围成的区域,XDen″即为XDen′在[(a,b),(a+l,b+l)]区域内的图像信息,其步骤为:第一步,构造向量I,I(iI)为XDen″中像素值等于iI的个数,0≤iI≤255;第二步,计算向量第三步,对于XDen″上的每一个点(iXDen,jXDen),其像素值为XDen″(iXDen,jXDen),计算X″Den(iXDen,jXDen)=I′(X″Den(iXDen,jXDen));待XDen″图像内的所有像素点值都计算并更改后直方图均衡化过程结束,XDen″内保存的即为直方图均衡化的结果;
所述的将光照补偿后的图像进行图像增强,设光照补偿后的图像为Xcpst,其对应的RGB通道分别为XcpstR,XcpstG,XcpstB,对Xcpst图像增强后得到的图像为Xenh;对其进行图像增强的步骤为:第一步,对于Xcpst的所有分量XcpstR,XcpstG,XcpstB计算其按指定尺度进行模糊后的图像;第二步,构造矩阵LXenhR,LXenhG,LXenhB为与XcpstR相同维度的矩阵,对于图像Xcpst的RGB通道中的R通道,计算LXenhR(i,j)=log(XcpstR(i,j))-LXcpstR(i,j),(i,j)的取值范围为图像矩阵中所有的点,对于图像Xcpst的RGB通道中的G通道和B通道采用与R通道同样的算法得到LXenhG和LXenhB;第三步,对于图像Xcpst的RGB通道中的R通道,计算LXenhR中所有点取值的均值MeanR和均方差VarR(注意是均方差),计算MinR=MeanR-2×VarR和MaxR=MeanR+2×VarR,然后计算XenhR(i,j)=Fix((LXcpstR(i,j)-MinR)/(MaxR-MinR)×255),其中Fix表示取整数部分,若取值<0则赋值为0,取值>255则赋值为255;对于RGB通道中的G通道和B通道采用与R通道同样的算法得到XenhG和XenhB,将分别属于RGB通道的XenhR、XenhG、XenhB整合成一张彩色图像Xenh
所述的对于Xcpst的所有分量XcpstR,XcpstG,XcpstB计算其按指定尺度进行模糊后的图像,对于RGB通道中的R通道XcpstR,其步骤为:第一步,定义高斯函数G(x,y,σ)=k×exp(-(x2+y2)/σ2),σ为尺度参数,k=1/∫∫G(x,y)dxdy,则对于XcpstR的每一个点XcpstR(i,j)计算, 其中表示卷积运算,对于距离边界低于尺度σ的点,只计算XcpstR与G(x,y,σ)对应部分的卷积,Fix()表示取整数部分,若取值<0则赋值为0,取值>255则赋值为255;对于RGB通道中的G通道和B通道采用与R通道同样的算法更新XcpstG和XcpstG
3.根据权利要求1所述的一种基于监控的校园周边危险个体检测系统,其特征在于所述的人体目标检测模块的具体实现方法为:
在初始化过程中,使用带有已标定人体区域的图像对目标检测算法进行参数初始化;在检测过程中,接收图像预处理模块所传递来的图像,然后对其进行处理,其步骤为:第一步,对每一帧图像使用目标检测算法进行目标检测,得到当前图像的人体图像区域,将该信息发送给识别结果处理显示模块;第二步,对于连续30秒检测到的每一个人体图像,提取视频信息Pic和位置信息Pinf,然后将视频信息发送给人体行为识别模块,将其路径信息发送给跨摄像头拼接模块;
所述的使用带有已标定人体区域的图像对目标检测算法进行参数初始化,其步骤为:第一步,构造特征抽取深度网络;第二步,构造区域选择网络,第三步,根据所述的构造特征抽取深度网络中所使用的数据库中的每一张图像X和对应的人工标定的每个人体区域然后通过ROI层,其输入为图像X和区域输出为7×7×512维度的;第三步,构建坐标精炼网络;
所述的构造特征抽取深度网络,该网络为深度学习网络结构,其网络层结构为:第一层:卷积层,输入为768×1024×3,输出为768×1024×64,通道数channels=64;第二层:卷积层,输入为768×1024×64,输出为768×1024×64,通道数channels=64;第三层:池化层,输入为768×1024×64,输出为384×512×64;第四层:卷积层,输入为384×512×128,输出为384×512×128,通道数channels=128;第五层:卷积层,输入为384×512×128,输出为384×512×128,通道数channels=128;第六层:池化层,输入为384×512×128输出为192×256×128;第七层:卷积层,输入为192×256×256,输出为192×256×256,通道数channels=256;第八层:卷积层,输入为192×256×256,输出为192×256×256,通道数channels=256;第九层:卷积层,输入为192×256×256,输出为192×256×256,通道数channels=256;第十层:池化层,输入为192×256×256输出为96×128×256;第十一层:卷积层,输入为96×128×512,输出为96×128×512,通道数channels=512;第十二层:卷积层,输入为96×128×512,输出为96×128×512,通道数channels=512;第十三层:卷积层,输入为96×128×512,输出为96×128×512,通道数channels=512;第十四层:池化层,输入为96×128×512,输出为48×64×512;第十五层:卷积层,输入为48×64×512,输出为48×64×512,通道数channels=512;第十六层:卷积层,输入为48×64×512,输出为48×64×512,通道数channels=512;第十七层:卷积层,输入为48×64×512,输出为48×64×512,通道数channels=512;第十八层:池化层,输入为48×64×512,输出为24×32×512;第十九层:卷积层,输入为24×32×512,输出为24×32×256,通道数channels=256;第二十层:池化层,输入为24×32×256,输出为12×16×256;第二十一层:卷积层,输入为12×16×256,输出为12×16×128,通道数channels=128;第二十二层:池化层,输入为12×16×128,输出为6×8×128;第二十三层:全连接层,首先将输入的6×8×128维度的数据展开成6144维度的向量,然后输入进全连接层,输出向量长度为768,激活函数为relu激活函数;第二十四层:全连接层,输入向量长度为768,输出向量长度为96,激活函数为relu激活函数;第二十五层:全连接层,输入向量长度为96,输出向量长度为2,激活函数为soft-max激活函数;所有卷积层的参数为卷积核kernel大小=3,步长stride=(1,1),激活函数为relu激活函数;所有池化层均为最大池化层,其参数为池化区间大小kernel_size=2,步长stride=(2,2);设设该深度网络为Fconv25,对于一幅彩色图像X,经过该深度网络所得到的特征图集合用Fconv25(X)表示,该网络的评价函数为对(Fconv25(X)-y)计算其交叉熵损失函数,收敛方向为取最小值,y输入对应的分类;数据库为在自然界采集的包含路人及非路人的图像,每张图像为768×1024维度的彩色图像,按照图像中是否包含行人分成两类,迭代次数为2000次;在训练结束后,取第一层到第十七层为特征抽取深度网络Fconv,对于一幅彩色图像X,经过该深度网络所得到的输出用Fconv(X)表示;
所述的构造区域选择网络,接收Fconv深度网络提取出512个48×64特征图集合Fconv(X),然后第一步经过卷积层得到Conv1(Fconv(X)),该卷积层的参数为:卷积核kernel大小=1,步长stride=(1,1),输入为48×64×512,输出为48×64×512,通道数channels=512;然后将Conv1(Fconv(X))分别输入到两个卷积层(Conv2-1和Conv2-2),Conv2-1的结构为:输入为48×64×512,输出为48×64×18,通道数channels=18,该层得到的输出为Conv2-1(Conv1(Fconv(X))),再对该输出使用激活函数softmax得到softmax(Conv2-1(Conv1(Fconv(X))));Conv2-2的结构为:输入为48×64×512,输出为48×64×36,通道数channels=36;该网络的损失函数有两个:第一个误差函数lossl为对Wshad-cls⊙(Conv2-1(Conv1(Fconv(X)))-Wcls(X))计算softmax误差,第二个误差函数loss2为对Wshad-reg(X)⊙(Conv2-1(Conv1(Fconv(X)))-Wreg(X))计算smooth L1误差,区域选择网络的损失函数=loss1/sum(Wcls(X))+loss2/sum(Wcls(X)),sum(·)表示矩阵所有元素之和,收敛方向为取最小值,Wcls(X)和Wreg(X)分别为数据库图像X对应的正负样本信息,⊙表示矩阵按照对应位相乘,Wshad-cls(X)和Wshad-reg(X)为掩码,其作用为选择Wshad(X)中权值为1的部分进行训练,从而避免正负样本数量差距过大,每次迭代时重新生成Wshad-cls(X)和Wshad-reg(X),算法迭代1000次;
所述的构造特征抽取深度网络中所使用的数据库,对于数据库中的每一张图像,第一步:人工标定每个人体区域,设其在输入图像的中心坐标为(abas_tr,bbas_tr),中心坐标在纵向距离上下边框的距离为lbas_tr,中心坐标在横向距离左右边框的距离为wbas_tr,则其对应于Conv1的位置为中心坐标为半长为半宽为 表示取整数部分;第二步:随机生成正负样本;
所述的随机生成正负样本,其方法为:第一步,构造9个区域框,第二步,对于数据库的每一张图像Xtr,设Wcls为48×64×18维度,Wreg为48×64×36维度,所有初始值均为0,对Wcls和Wreg进行填充;
所述的构造9个区域框,这9个区域框分别为:Ro1(xRo,yRo)=(xRo,yRo,64,64),Ro2(xRo,yRo)=(xRo,yRo,45,90),Ro3(xRo,yRo)=(xRo,yRo,90,45),Ro4(xRo,yRo)=(xRo,yRo,128,128),Ro5(xRo,yRo)=(xRo,yRo,90,180),Ro6(xRo,yRo)=(xRo,yRo,180,90),Ro7(xRo,yRo)=(xRo,yRo,256,256),Ro8(xRo,yRo)=(xRo,yRo,360,180),Ro9(xRo,yRo)=(xRo,yRo,180,360),对于每一个区域块,Roi(xRo,yRo)表示对于第i个区域框,当前区域框的中心坐标(xRo,yRo),第三位表示中心点距离上下边框的像素距离,第四位表示中心点距离左右边框的像素距离,i的取值从1到9;
所述的对Wcls和Wreg进行填充,其方法为:
对于每一个人工标定的人体区间,设其在输入图像的中心坐标为(abas_tr,bbas_tr),中心坐标在纵向距离上下边框的距离为lbas_tr,中心坐标在横向距离左右边框的距离为wbas_tr,则其对应于Conv1的位置为中心坐标为半长为半宽为
对于左上角右下角坐标所围成的区间内的每个点(xCtr,YCtr):
对于i取值从1到9:
对于点(xCtr,YCtr),其在数据库图像的映射区间为左上角点(16(xCtr-1)+1,16(YCtr-1)+1)右下角点(16xCtr,16yCtr)所围成的16×16区间,对于该区间的每一个点(xOtr,YOtr):
计算(xOtr,YOtr)所对应区域Roi(xOtr,YOtr)与当前人工标定的人体区间的重合率;
选择当前16×16区间内重合率最高的点(xIoUMax,yIoUMax),若重合率>0.7,则Wcls(xCtr,YCtr,2i-1)=1,Wcls(xCtr,YCtr,2i)=0,该样本为正样本,Wreg(xCtr,YCtr,4i-3)=(xOtr-16xCtr+8)/8,Wreg(xCtr,YCtr,4i-2)=(yOtr-16yCtr+8)/8,Wreg(xCtr,YCtr,4i-2)=Down1(lbas_tr/Roi的第三位),Wreg(xCtr,YCtr,4i)=Down1(wbas_tr/Roi的第四位),Down1(·)表示若值大于1则取值为1;若重合率<0.3,则Wcls(xCtr,YCtr,2i-1)=0,Wcls(xCtr,YCtr,2i)=1;否则Wcls(xCtr,YCtr,2i-1)=-1,Wcls(xCtr,YCtr,2i)=-1;
若当前人工标定的人体区域没有重合率>0.6的Roi(xOtr,YOtr),则选择重合率最高的Roi(xOtr,YOtr)对Wcls和Wreg赋值,赋值方法与重合率>0.7的赋值方法相同;
所述的计算(xOtr,YOtr)所对应区域Roi(xOtr,YOtr)与当前人工标定的人体区间的重合率,其方法为:设人工标定的人体区间在输入图像的中心坐标为(abas_tr,bbas_tr),中心坐标在纵向距离上下边框的距离为lbas_tr,中心坐标在横向距离左右边框的距离为wbas_tr,设Roi(xOtr,YOtr)的第三位为lOtr,第四位为wOtr,若满足|xOtr-abas_tr|≤lOtr+lbas_tr-1并且|yOtr-bbas_tr|≤wOtr+wbas_tr-1,说明存在重合区域,重合区域=(lOtr+lbas_tr-1-|xOtr-abas_tr|)×(wOtr+wbas_tr-1-|yOtr-bbas_tr|),否则重合区域=0;计算全部区域=(2lOtr-1)×(2wOtr-1)+(2abas_tr-1)×(2wbas_tr-1)-重合区域;从而得到重合率=重合区域/全部区域,|·|表示取绝对值;
所述的Wshad-cls(X)和Wshad-reg(X),其构造方法为:对于该图像X,其对应的正负样本信息为Wcls(X)和Wreg(X),第一步,构造Wshad-cls(X)与和Wshad-reg(X),Wshad-cls(X)与Wcls(X)维度相同,Wshad-reg(X)与Wreg(X)维度相同;第二步,记录所有正样本的信息,对于i=1到9,若Wcls(X)(a,b,2i-1)=1,则Wshad-cls(X)(a,b,2i-1)=1,Wshad-cls(X)(a,b,2i)=1,Wshad-reg(X)(a,b,4i-3)=1,Wshad-reg(X)(a,b,4i-2)=1,Wshad-reg(X)(a,b,4i-1)=1,Wshad-reg(X)(a,b,4i)=1,正样本一共选择了sum(Wshad-cls(X))个,sum(·)表示对矩阵的所有元素求和,若sum(Wshad-cls(X))>256,随机保留256个正样本;第三步,随机选择负样本,随机选择(a,b,i),若Wcls(X)(a,b,2i-1)=1,则Wshad-cls(X)(a,b,2i-1)=1,Wshad-cls(X)(a,b,2i)=1,Wshad-reg(X)(a,b,4i-3)=1,Wshad-reg(X)(a,b,4i-2)=1,Wshad-reg(X)(a,b,4i-1)=1,Wshad-reg(X)(a,b,4i)=1,若已选中的负样本数量为256-sum(Wshad-cls(X))个,或者虽然负样本数量不足256-sum(Wshad-cls(X))个但是在20次生成随机数(a,b,i)内都无法得到负样本,则算法结束;
所述的ROI层,其输入为图像X和区域其方法为:对于图像X通过特征抽取深度网络Fconv所得到的输出Fconv(X)的维度为48×64×512,对于每一个48×64矩阵VROI_I的信息(一共512个矩阵),提取VROI_I矩阵中左上角 右下角所围成的区域,表示取整数部分;输出为roiI(X)维度为7×7,则步长
对于iROI=1:到7:
对于jROI=1到7:
构造区间
roiI(X)(iROI,jROI)=区间内最大点的值;
当512个48×64矩阵全部处理结束后,将输出拼接得到7×7×512维度的输出参数表示对于图像X,在区域框范围内的ROI;
所述的构建坐标精炼网络,其方法为:第一步,扩展数据库:扩展方法为对于数据库中的每一张图像X和对应的人工标定的每个人体区域其对应的ROI为其BClass=[1,0],BBox=[0,0,0,0];随机生成取值在-1到1之间随机数arand,brand,lrand,wrand,从而得到新的区间 表示取整数部分,该区间的BBox=[arand,brand,lrand,wrand],若新的区间与的重合率>0.7则BClass=[1,0],若新的区间与的重合率<0.3则BClass=[0,1],二者均不满足,则不赋值;每个区间最多生成10个正样本区域(正样本区域的特征是BClass=[1,0]),设生成Num1个正样本区域,则生成Num1+1个负样本区域(负样本区域的特征是BClass=[0,1]),若负样本区域不够Num1+1个,则扩大arand,brand,lrand,wrand的范围,直到找到足够多的负样本数为止;第二步,构建坐标精炼网路:对于数据库中的每一张图像X和对应的人工标定的每个人体区域其对应的ROI为将将7×7×512维度的ROI展开成25088维向量,然后经过两个全连接层Fc2,得到输出Fc2(ROI),然后将Fc2(ROI)分别通过分类层FClass和区间微调层FBBox,得到输出FClass(Fc2(ROI))和FBBox(Fc2(ROI)),分类层FClass为全连接层,其输入向量长度为512,输出向量长度为2,区间微调层FBBox为全连接层,其输入向量长度为512,输出向量长度为4;该网络的损失函数有两个:第一个误差函数lossl为对FClass(Fc2(ROI))-BClass计算softmax误差,第二个误差函数loss2为对(FBBox(Fc2(ROI))-BBox)计算欧氏距离误差,则该精炼网络的整体损失函数=loss1+BClass(1)×loss2,BClass(1)表示BClass的第一位,若该位为1则同时优化loss2,若该位为0则不优化loss2,算法迭代过程为:首先迭代1000次收敛误差函数loss2,然后迭代1000次收敛整体损失函数;
所述的两个全连接层Fc2,其结构为:第一层:全连接层,输入向量长度为25088,输出向量长度为4096,激活函数为relu激活函数;第二层:全连接层,输入向量长度为4096,输出向量长度为512,激活函数为relu激活函数;
所述的对每一帧图像使用目标检测算法进行目标检测,其步骤为:
第一步,将输入图像Xcpst分割成768×1024维度的子图;
第二步,对于每一个子图Xs
第2.1步,使用在初始化时构造的特征抽取深度网络Fconv进行变换,得到512个特征子图集合Fconv(Xs);
第2.2步,对Fconv(Xs)使用区域选择网络中第一层Conv1、第二层Conv2-1+softmax激活函数和Conv2-2进变换,分别得到输出softmax(Conv2-1(Conv1(Fconv(Xs))))和Conv2-2(Conv1(Fconv(Xs))),然后根据输出值得到该区间内的所有的初步候选区间;
第2.3步,对于当前帧图像的所有子图的所有的初步候选区间:
第2.3.1步,根据其当前候选区域的得分大小进行选取,选取最大的50个初步候选区间作为候选区域;
第2.3.2步,调整候选区间集合中所有的越界候选区间,然后剔除掉候选区间中重叠的框,从而得到最终候选区间;
第2.3.3步,将子图Xs和每一个最终候选区间输入到ROI层,得到对应的ROI输出,设当前的最终候选区间为(aBB(1),bBB(2),lBB(3),wBB(4)),然后计算FBBox(Fc2(ROI))得到四位输出(aBB(1)+8×OutBB(1),bBB(2)+8×OutBB(2),lBB(3)+8×OutBB(3),wBB(4)+8×OutBB(4));
第三步,更新所有子图的精炼后的最终候选区间的坐标,更新的方法为设当前候选区域的坐标为(TLx,TLy,RBx,RBy),其对应的子图的左上角坐标为(Seasub,Sebsub),更新后的坐标为(TLx+Seasub-1,TLy+Sebsub-1,RBx+Seasub-1,RBy+Sebsub-1);
所述的将输入图像Xcpst分割成768×1024维度的子图,其步骤为:设分割的步长为384和512,设窗口大小为m行n列,(asub,bsub)为选定的区域的左上角坐标,(a,b)的初始值为(1,1);
当asub<m时:
bsub=1;
当bsub<n时:
选定的区域为[(asub,bsub),(asub+384,bsub+512)],将输入图像Xcpst上该区间所对应的图像区域的信息复制到新的子图中,并附带左上角坐标(asub,bsub)作为位置信息;
若选定区域超出输入图像Xcpst区间,则将超出范围内的像素点对应的RGB像素值均赋值为0;
bsub=bsub+512;
内层循环结束;
asub=asub+384;
外层循环结束;
所述的根据输出值得到该区间内的所有的初步候选区间,其方法为:第一步:对于soffmax(Conv2-1(Conv1(FConv(Xs))))其输出为48×64×18,对于Conv2-2(Conv1(Fconv(Xs))),其输出为48×64×36,对于48×64维空间上的任何一点(x,y),soffmax(Conv2-1(Conv1(FcOnv(Xs))))(x,y)为18维向量II,Conv2-2(Conv1(FconF(Xs)))(x,y)为36维向量IIII,若II(2i-1)>II(2i),对于i取值从1到9,lOtr为Roi(xOtr,yOtr)的第三位,wOtr为Roi(xOtr,yOtr)的第四位,则初步候选区间为[II(2i-1),(8×IIII(4i-3)+x,8×IIII(4i-2)+y,lOtr×IIII(4i-1),wOtr×IIII(4i))],其中第一位II(2i-1)表示当前候选区域的得分,第二位(8×IIII(4i-3)+x,8×IIII(4i-2)+y,IIII(4i-1),IIII(4i))表示当前候选区间的中心点为(8×IIII(4i-3)+x,8×IIII(4i-2)+y),候选框的半长半宽分别为lOtr×IIII(4i-1)和wOtr×IIII(4i));
所述的调整候选区间集合中所有的越界候选区间,其方法为:设监控图像为m行n列,对于每一个候选区间,设其[(ach,bch)],候选框的半长半宽分别为lch和wch,若ach+lch>m,则然后更新其ach=a′ch,lch=l′ch;若bch+wch>n,则然后更新其bch=b′ch,wch=w′ch
所述的剔除掉候选区间中重叠的框,其步骤为:
若候选区间集合不为空:
从候选区间集合中取出得分最大的候选区间iout
计算候选区间iout与候选区间集合中的每一个候选区间ic的重合率,若重合率>0.7,则从候选区间集合删除候选区间ic
将候选区间iout放入输出候选区间集合;
当候选区间集合为空时,输出候选区间集合内所含的候选区间即为剔除掉候选区间中重叠的框后所得到的候选区间集合;
所述的计算候选区间iout与候选区间集合中的每一个候选区间ic的重合率,其方法为:设候选区间ic的坐标区间为中心点[(aic,bic)],候选框的半长半宽分别为lic和wic,候选区间ic的坐标区间为中心点[(aiout,bicout)],候选框的半长半宽分别为liout和wiout;计算xA=max(aic,aiout);yA=max(bic,biout);xB=min(lic,liout),yB=min(wic,wiout);若满足|aic-aiout|≤lic+liout-1并且|bic-biout|≤wic+wiout-1,说明存在重合区域,重合区域=(lic+liout-1-|aic-aiout|)×(wic+wiout-1-|bic-biout|),否则重合区域=0;计算全部区域=(2lic-1)×(2wic-1)+(2liout-1)×(2wiout-1)-重合区域;从而得到重合率=重合区域/全部区域;
所述的对于连续30秒检测到的每一个人体图像,提取视频信息Pic和位置信息Pinf,其方法为:设连续30秒的视频帧数为Nf,设第一帧的图像内存在Np个人体区间,ORB特征值列表的长度为Np,则:
i取值1到Np:
对于第一帧内的第i个人体区间,将该人体区间内的彩色图像提取出来,并将提取出的图像大小调整为256×256,设该图像为Pici(1);当前人体区间i在第1帧的位置信息Pinfi(1)赋值为当前人体区间i的中心点坐标;
对于Pici(1)提取其ORB特征ORB(i);
jf取值2到Nf:
对于第jf帧内的每一个人体区间i′:
将该人体区间内的彩色图像提取出来,并将提取出的图像大小调整为256×256,设该图像为Pici′(jf);
对于Pici′(jf)提取其ORB特征ORBi′(jf);
将ORBi′(jf)与ORB列表中的每一个值比较其汉明距离,选取ORB特征值列表对应项没有被更新过的ORB(i″)中与ORBi′(jf)的汉明距离最小,则更新ORB(i″)=ORBi′(jf),Pici″(jf)为Pici′对应的第jf帧;位置信息Pinfi″(jf)为当前人体区间i′的中心点坐标,候选框的半长半宽;
若对于第i_loss人体区间,当前第jf帧没有选中对应的视频帧,则不更改ORB(i_loss),Pici_loss(jf)的所有像素点均赋值为0,Pinfi_loss(jf)=(-1,-1,0,0);
待所有帧均处理结束后,Picimg1即为第img1个人体区间的图像集合,将Picimg1按照第一帧开始第Nf结束的顺序播放即为对应的视频;
所述的ORB特征,从一个图像中提取ORB特征的方法已经较为成熟,在OpenCV计算机视觉库里边已有实现;对一个图片提取其ORB特征,输入值为当前图片,输出为若干组长度相同的字符串,每一组代表一个ORB特征。
4.根据权利要求1所述的一种基于监控的校园周边危险个体检测系统,其特征在于所述的人体行为识别模块的具体实现方法为:
在初始化过程中,使用带有典型人体行为的视频数据集对人体行为识别算法进行参数初始化,得到深度网络HumN;在检测过程中,接收人体目标检测模块所传递来的视频图像,第一步,对视频进行筛选,判断是否为不合格视频,若为不合格视频,直接发送给跨摄像头拼接模块,本模块不再处理;第二步,对合格的视频片段使用人体行为识别算法进行行为识别,识别方法为设待识别的视频片段为Vrl,使用深度网络HumN计算输入为Vrl时深度网络HumN的输出HumN(Vrl),HumN(Vrl)为4位向量,若第一位最大则识别为重度危险,若第二位最大则识别为中度危险,若第三位最大则识别为轻度危险,若第四位最大则识别为不危险;将识别结果为重度危险、中度危险和轻度危险的视频片段及位置信息发送给识别结果处理显示模块,若识别结果不是危险行为,则将识别结果发送给跨摄像头拼接模块,由于每个视频片段长度为30秒,因此每隔30秒对人体目标检测模块所传递来的视频图像进行识别并发送识别结果;
所述的使用带有典型人体行为的视频数据集对人体行为识别算法进行参数初始化,其方法为:第一步,整理视频数据:首先,对于每一段人体视频数据,人工标定其危害程度,危害程度共分为4类:重度危险,中度危险,轻度危险,不危险;其次,使用人体目标检测模块对视频数据进行目标检测,得到当前视频中个体的视频信息,若视频长度大于30秒,则从不同的帧开始截取30秒的视频;最后将每一个视频的最后一帧所对应的原始图像的区间与其在原始图像的视频帧所对应的人工标定的区间计算重合率,若重合率低于0.7,则删掉当前视频;第二步,构造人体行为识别算法深度网络HumN;第三步,对人体行为识别算法深度网络HumN进行初始化,设输入的视频为Vid,首先随机抹去视频Vid的部分帧,抹去的帧的个数为0到视频总帧数的30%之间的随机数,抹去的方法为随机某帧,将其所对应的视频帧的图像的每一个像素均设为0,得到随机处理的视频Vid′,输出为HumN(Vid′),其类别为yvid,yvid的表示方法为:重度危险:yvid=[1,0,0,0],中度危险:yvid=[0,1,0,0],轻度危险:yvid=[0,0,1,0],不危险:yvid=[0,0,0,1],该网络的评价函数为对(HumN(Vid′)-yvid)计算其交叉熵损失函数,收敛方向为取最小值,算法的数据库为第一步整理得到的视频数据,迭代次数为2000次;
所述的构造人体行为识别算法深度网络HumN,设连续30秒的视频帧数为Nf,其网络层结构为:第一层:卷积层,输入为256×256×3Nf,输出为256×256×3Nf,通道数channels=3Nf;第二层:卷积层,输入为256×256×3Nf,输出为256×256×1024,通道数channels=1024;第三层:池化层,输入为256×256×1024,输出为128×128×1024;第四层:卷积层,输入为128×128×1024,输出为128×128×512,通道数channels=512;第五层:池化层,输入为128×128×512,输出为64×64×512;第六层:卷积层,输入为64×64×512,输出为64×64×512,通道数channels=512;第七层:池化层,输入为64×64×512,输出为32×32×512;第八层:卷积层,输入为32×32×512,输出为32×32×512,通道数channels=512;第九层:池化层,输入为32×32×512,输出为16×16×512;第十层:卷积层,输入为16×16×512,输出为16×16×256,通道数channels=256;第十一层:池化层,输入为16×16×256,输出为8×8×256;第十二层:卷积层,输入为8×8×256,输出为8×8×128,通道数channels=128;第十三层:池化层,输入为8×8×128,输出为4×4×128;第十四层:卷积层,输入为4×4×128,输出为4×4×64,通道数channels=64;第十四层:全连接层,首先将输入的4×4×64维度的数据展开成1024维度的向量,然后输入进全连接层,输出向量长度为256,激活函数为relu激活函数;第十五层:全连接层,输入向量长度为256,输出向量长度为64,激活函数为relu激活函数;第十六层:全连接层,输入向量长度为64,输出向量长度为4,激活函数为soft-max激活函数;所有卷积层的参数为卷积核kernel大小=3,步长stride=(1,1),激活函数为relu激活函数;所有池化层均为最大池化层,其参数为池化区间大小kernel_size=2,步长stride=(2,2);
所述的对视频进行筛选,判断是否为不合格视频,其方法为:设当前视频为Vcr,丢失帧数lostF为0:
对于从第1帧到最后一帧:
若当前帧所有像素点均赋值为0,则lostF=lostF+1;
若lostF/总帧数<0.7,说明当前视频丢帧过多,判断为不合格视频。
5.根据权利要求1所述的一种基于监控的校园周边危险个体检测系统,其特征在于所述的跨摄像头拼接模块的具体实现方法为:
在初始化阶段,构造个体识别分类器并参数初始化;在检测过程中,接收人体行为识别模块传递过来的识别结果为不危险的视频信息、不合格视频以及人体目标检测模块传递来的位置信息;对于人体目标检测模块传递来所有视频,筛选并标记跨摄像头运动的视频,删除掉不合格视频中未被标记跨越摄像头运动的视频,对于余下的每一个视频,若未被标记跨越摄像头运动的30秒视频,在当前视频所在摄像头所设图像内寻找该区域个体在下一个30秒的视频,若被标记跨越摄像头运动的视频,则在所有摄像头所设图像内寻找该区域个体在下一帧对应的视频;将每个个体的视频按照时间由先到后的放入集合中,从而得到一段时间内当前个体的位置信息,将该位置信息发送给人体路径识别模块;
所述的构造个体识别分类器并参数初始化,其方法为:第一步,视频数据使用人体行为识别模块整理的视频数据;第二步,构造个体识别分类器ChkP;第三步,对个体识别分类器ChkP进行参数初始化,随机从视频中抽取两帧frm1和frm2,若两帧属于同一个体在不同时间的视频,则ycp=[1,0],若两帧不同属于1个个体在不同时间的视频,则ycp=[0,1],该网络的评价函数为对(HumN(frm1,frm2)-Ycp)计算其交叉熵损失函数,收敛方向为取最小值,算法次数为2×107次;
所述的个体识别分类器ChkP,设连续30秒的视频帧数为Nf,其网络层结构分为两个部分:第一部分ChkPp1:第一层:卷积层,输入为256×256×3,输出为256×256×64,通道数channels=64;第二层:卷积层,输入为256×256×64,输出为256×256×64,通道数channels=64;第三层:池化层,输入为256×256×64,输出为128×128×64;第四层:卷积层,输入为128×128×128,输出为128×128×128,通道数channels=128;第五层:池化层,输入为128×128×128,输出为64×64×128;第六层:卷积层,输入为64×64×128,输出为64×64×256,通道数channels=256;第七层:池化层,输入为64×64×256,输出为32×32×256;第八层:卷积层,输入为32×32×256,输出为32×32×512,通道数channels=512;第九层:池化层,输入为32×32×512,输出为16×16×512;第十层:卷积层,输入为16×16×512,输出为16×16×256,通道数channels=256;第十一层:池化层,输入为16×16×256,输出为8×8×256;第十二层:卷积层,输入为8×8×256,输出为8×8×128,通道数channels=128;第十三层:池化层,输入为8×8×128,输出为4×4×128;第十四层:卷积层,输入为4×4×128,输出为4×4×64,通道数channels=64;第二部分ChkPp2:第一层:全连接层,首先将输入的两组4×4×64维度的数据展开成两组1024维度的向量,然后将两组1024维度的向量连接成一组2048维度的向量,然后将该2048维度的向量输入进全连接层,输出向量长度为512,激活函数为relu激活函数;第二层:全连接层,输入向量长度为512,输出向量长度为128,激活函数为relu激活函数;第三层:全连接层,输入向量长度为128,输出向量长度为32,激活函数为relu激活函数;第四层:全连接层,输入向量长度为32,输出向量长度为8,激活函数为relu激活函数;第五层:全连接层,输入向量长度为8,输出向量长度为2,激活函数为soft-max激活函数;所有卷积层的参数为卷积核kernel大小=3,步长stride=(1,1),激活函数为relu激活函数;所有池化层均为最大池化层,其参数为池化区间大小kernel_size=2,步长stride=(2,2);对于该分类器ChkP,其输入为两组图片p1和p2,ChkP(p1,p2)=ChkPp2(ChkPp1(p1),ChkPp1(p2)),此处ChkPp1(p1)和ChkPp1(p2)表示两个输入p1和p2共用ChkPp1网络结构;
所述的对于人体目标检测模块传递来所有视频,筛选并标记跨摄像头运动的视频,其方法为:设视频帧数为Nf,当前视频的视频信息Pcr和位置信息Pcinf,则:
jfb取值Nf到1:
若Pcr(jf)的所有像素值不为0:
判断:Pcinf(jf)(1)-Pcinf(jf)(3)<5 Or Pcinf(jf)(2)-Pcinf(jf)(4)<50rPcinf(jf)(1)+Pcinf(jf)(3)-255<50rPcinf(jf)(2)+Pcinf(jf)(4)-255<5,若成立,标记当前视频为跨越摄像头运动,删掉从jfb帧到Nf帧,删掉当前视频的位置信息Pcinf中从Pcinf(jfb)到Pcinf(Nf)的信息;循环结束;
若当前视频未被标记为跨越摄像头运动并且其长度不足30秒,则删除当前视频;
所述的若未被标记跨越摄像头运动的30秒视频,在当前视频所在摄像头所设图像内寻找该区域个体在下一个30秒的视频,其方法为:设当前视频为Vc,当前视频所在摄像头内在下一个30秒的所有视频集合为Vnxt,第一步,计算当前视频的最后一帧图像Pvc的ORB特征和视频集合Vnxt中的每一个视频的Vnxt(i)的第一帧Pvnxt(i)的特征,并比较两个ORB特征的汉明距离,从而得到两帧的相似度=两个ORB特征的汉明距离/0RB特征长度;其中i取值为1到视频集合Vnxt中视频的个数;若Pvc与Pvnxt(j)的相似度最大并且>0.85,说明Vnxt中第j个视频即为当前当前视频为Vc在下一个30秒的视频,本方法结束;否则,将下一个30秒的所有视频集合按照相似度从大到小排序,将所有视频的第一帧Pvnxt(k)依相似度从大到小与Pvc使用个体识别分类器ChkP进行比较,若ChkP(Pvnxt(k),Pvc)识别结果第一位大于第二位,则表明当前两张图像同属于一个人,则,说明Vnxt中第k个视频即为当前视频为Vc在下一个30秒的视频,若识别结果不同属于一个人,则继续取下一个视频的第一帧使用个体识别分类器ChkP进行识别,若所有识别结果均为不同属于一个人,说明当前视频Vc不存在下一个30秒的视频;
所述的若被标记跨越摄像头运动的视频,则在所有摄像头所设图像内寻找该区域个体在下一帧对应的视频,其方法为:设当前视频为Vcr,从个体识别分类器传递过来的所有视频中选取与当前视频同时拍摄的视频集合Vscurr,从个体识别分类器传递过来的所有视频中选取当前视频的下一个30秒的所有视频集合Vsnxt;第一步,构造下一帧视频集合:若当前视频长度为30秒,取当前视频Vcr的最后一帧图像Pvcr,则取Vsnxt中所有视频的第一帧构成集合Pvs,若当前视频Vcr长度小于30秒,设当前视频Vcr的最后一帧为第frame_Vcr帧,则取视频集合Vsnxt中所有视频的第frame_Vcr+1帧构成集合Pvs;第二步,将集合Pvs内的元素排序:首先计算图像Pvcr的ORB特征和集合Pvs中的每一个图像的ORB特征,并比较两个ORB特征的汉明距离,从而得到两帧的相似度=两个ORB特征的汉明距离/ORB特征长度;将集合Pvs中的图像按照相似度从大到小排序;第三步,使用个体识别分类器ChkP选择下一帧对应的视频:将集合Pvs中的每一个图像Pvs(k)从第一个开始与Pvcr使用个体识别分类器ChkP进行比较,若ChkP(Pvs(k),Pvcr)识别结果第一位大于第二位,则表明当前两张图像同属于一个人,则说明Pvs中第k个图像对应的视频即为当前视频为Vc在下一个30秒的视频Vcr_nxt,若Vcr_nxt属于集合Vscurr,则删掉Vcr_nxt视频中第一帧到第frame_Vcr帧,删掉位置信息Pcinf中Pcinf(1)到Pcinf(frame_Vcr);若识别结果不同属于一个人,则继续取下一个视频的第一帧使用个体识别分类器ChkP进行识别,若所有识别结果均为不同属于一个人,说明当前视频Vc不存在下一个30秒的视频。
6.根据权利要求1所述的一种基于监控的校园周边危险个体检测系统,其特征在于所述的人体路径识别模块的具体实现方法为:
在初始化阶段,构造人体路径识别分类器并参数初始化;在检测过程中,接收跨摄像头拼接模块传递来的位置信息,将位置信息使用人体路径识别分类器进行路径识别,识别方法为,设待识别的位置信息为Infm,当传递来的视频信息长度小于等于30秒时,算法不做处理,继续等待随后的输入,当传递来的视频信息长度大于30秒时,使用RoutChc(Infm)=RoutChc2(RoutChc130s(Infm))进行识别;当传递来的视频信息长度大于2分钟时,使用RoutChc(Infm)=RRoutChc2(RoutChc12m(Infm))进行识别;当传递来的视频信息长度大于5分钟时,使用RoutChc(Infm)=RoutChc2(RoutChcl5m(Infm))进行识别;当传递来的视频信息长度大于10分钟时,使用RoutChc(Infm)=RoutChc2(RoutChc110m(Infm))进行识别,Infm分别取当前帧到前30秒、2分钟、5分钟和10分钟的位置信息;对于分别属于不同视频区域内的视频集合,按照时间先后顺序进行排序从而得到一个连续时间内的Infm;算法的输出为4位向量,若第一位最大则识别为重度危险,若第二位最大则识别为中度危险,若第三位最大则识别为轻度危险,若第四位最大则识别为不危险;算法每隔30秒对当前接收到的每一组位置信息进行识别,并将识别结果为重度危险、中度危险和轻度危险的视频片段及位置信息发送给识别结果处理显示模块;
所述的构造人体路径识别分类器并参数初始化,其方法为:第一步,选择常见的人体运动视频,对于每一段人体视频数据,人工标定其危害程度,危害程度共分为4类:重度危险,中度危险,轻度危险,不危险,使用人体目标检测模块提取每一段视频的位置信息;第二步,构造人体路径识别分类器RoutChc;第三步,对每一段人体位置信息随机抹去部分帧,抹去的帧的个数为0到视频总帧数的30%之间的随机数,抹去的方法为将该帧所对应的位置信息的设为(-1,-1,0,0),得到随机抹去处理的视频,然后将随机抹去处理的视频进行随机截取30秒,2分钟,5分钟,10分钟,每一段的位置信息Pinft作为输入,输出为RoutChc(Pinft),其类别为yrout,yvid的表示方法为:重度危险:yrout=[1,0,0,0],中度危险:yrout=[0,1,0,0],轻度危险:yrout=[0,0,1,0],不危险:yrout=[0,0,0,1];然后对人体路径识别分类器进行初始化:首先,构造评价函数为对(RoutChc2(RoutChc130s(Infm30s))-yrout)计算其交叉熵损失函数,收敛方向为取最小值,Infm30s为30秒的位置信息,迭代次数为2000次;然后,保持RoutChc2的参数不变,评价函数为对(RoutChc2(RoutChc12m(Infm2m))-yrout)计算其交叉熵损失函数,收敛方向为取最小值,Infm2m为2分钟的位置信息,迭代次数为1000次;然后,同样保持RoutChc2的参数不变,评价函数为对(RoutChc2(RoutChc15m(Infm5m))-yrout)计算其交叉熵损失函数,收敛方向为取最小值,Infm5m为5分钟的位置信息,迭代次数为1000次;然后,同样保持RoutChc2的参数不变,评价函数为对(RoutChc2(RoutChc110m(Infm10m))-yrout)计算其交叉熵损失函数,收敛方向为取最小值,Infm10m为10分钟的位置信息,迭代次数为1000次;
所述的个体识别分类器RoutChc,设连续30秒的视频帧数为Nf,连续2分钟的视频帧数为4Nf,连续5分钟的视频帧数为10Nf,连续10分钟的视频帧数为20Nf,其网络层结构分为五个部分:
第一部分30秒的位置信息网络RoutChcl30s:第一层:全连接层,输入向量长度为4Nf,输出向量长度为2Nf,激活函数为relu激活函数;第二层:全连接层,输入向量长度为2Nf,输出向量长度为Nf,激活函数为relu激活函数;
第二部分2分钟的位置信息网络RoutChc12m:第一层:全连接层,输入向量长度为16Nf,输出向量长度为4Nf,激活函数为relu激活函数;第二层:全连接层,输入向量长度为4Nf,输出向量长度为2Nf,激活函数为relu激活函数;第三层:全连接层,输入向量长度为2Nf,输出向量长度为Nf,激活函数为relu激活函数;
第三部分5分钟的位置信息网络RoutChc15m:第一层:全连接层,输入向量长度为40Nf,输出向量长度为16Nf,激活函数为relu激活函数;第二层:全连接层,输入向量长度为16Nf,输出向量长度为4Nf,激活函数为relu激活函数;第三层:全连接层,输入向量长度为4Nf,输出向量长度为2Nf,激活函数为relu激活函数;第四层:全连接层,输入向量长度为2Nf,输出向量长度为Nf,激活函数为relu激活函数;
第四部分10分钟的位置信息网络RoutChcl10m:第一层:全连接层,输入向量长度为80Nf,输出向量长度为40Nf,激活函数为relu激活函数;第二层:全连接层,输入向量长度为40Nf,输出向量长度为16Nf,激活函数为relu激活函数;第三层:全连接层,输入向量长度为16Nf,输出向量长度为4Nf,激活函数为relu激活函数;第四层:全连接层,输入向量长度为4Nf,输出向量长度为2Nf,激活函数为relu激活函数;第五层:全连接层,输入向量长度为2Nf,输出向量长度为Nf,激活函数为relu激活函数;
第五部分为RoutChc2:第一层:全连接层,输入向量长度为Nf,输出向量长度为512,激活函数为relu激活函数;第二层:全连接层,输入向量长度为512,输出向量长度为128,激活函数为relu激活函数;第三层:全连接层,输入向量长度为128,输出向量长度为64,激活函数为relu激活函数;第四层:全连接层,输入向量长度为64,输出向量长度为16,激活函数为relu激活函数;第五层:全连接层,输入向量长度为16,输出向量长度为4,激活函数为soft-max激活函数;
若输入信息为30秒位置信息Inffm30s,输出为RoutChc(Infm30s)=RoutChc2(RoutChc130s(Infm30s)),若输入信息为2分钟位置信息Inffm2m,输出为RoutChc(Infm2m)=RoutChc2(RoutChcl2m(Infm2m)),若输入信息为5分钟位置信息Infm5m,输出为RoutChc(Infm5m)=RoutChc2(RoutChc15m(Infm5m)),若输入信息为10分钟位置信息Infm10m,输出为RoutChc(Inffm10m)=RoutChc2(RoutChc110m(Infm10m))。
7.根据权利要求1所述的一种基于监控的校园周边危险个体检测系统,其特征在于所述的识别结果处理显示模块的具体实现方法为:
在初始化的过程中不工作;在识别过程中,接收人体行为识别模块识别出的重度危险行为、中度危险行为和轻度危险行为,接收人体路径识别模块识别出的重度危险行为、中度危险行为和轻度危险行为;
对于人体目标检测模块识别出的重度危险行为、中度危险行为和轻度危险行为:
每隔30秒对接收到人体行为识别模块传递过来识别结果进行处理:
第一步,根据当前接收到人体行为识别模块传递过来识别结果对应的视频信息找到其当前30秒视频最后一帧,若当前帧为全0,则提取其前一帧,直到找到不全为0的帧,提取该帧位置信息,按照位置信息的坐标(a1,b1,l1,w1),在其对应的摄像头所摄区域的以(a1-l1,b1-w1)为左上角点,(a1+l1,b1+w1)为右下角点所构成的矩形为跟踪显示框,使用对应于不同识别结果的颜色将跟踪显示框显示在输出屏幕上,重度危险行为显示红色、中度危险行为显示黄色和轻度危险行为显示灰色;
第二步,从当前位置坐标开始对当前个体进行跟踪并将跟踪显示框显示在输出屏幕上;待30秒后删掉当前跟踪显示框;
对于人体路径识别模块识别出的重度危险行为、中度危险行为和轻度危险行为:
每隔30秒对接收到人体路径识别模块传递过来识别结果进行处理:
第一步,根据当前接收到人体路径识别模块传递过来识别结果对应的位置信息,截取其10分钟的路径信息,对于路径信息的每一个位置坐标(a2,b2,l2,w2),其中心点坐标为(a2,b2),在其对应的摄像头所摄区域的坐标(a2,b2)绘制一个点,连续的10分钟的路径信息对应的点构成了当前人体在当前时间以前的10分钟内的运动轨迹,若位置信息的长度小于10分钟,则显示位置信息内的所有位置坐标对应的中心点;使用对应于不同识别结果的颜色将运动轨迹显示在输出屏幕上,重度危险行为显示红色、中度危险行为显示黄色和轻度危险行为显示灰色;
第二步,从当前位置坐标开始对当前个体进行跟踪并将跟踪位置的中心点坐标显示在输出屏幕上;待30秒后删掉个体的运动轨迹;
所述的从当前位置坐标开始对当前个体进行跟踪,其方法为:首先计算当前位置信息所对应的视频帧的ORB特征,得到ORBori;待当前摄像头所摄的下一帧,被人体目标检测模块处理得到当前图像的所有的人体图像区域,对于每个人体区域,将该人体区间内的彩色图像提取出来,并将提取出的图像大小调整为256×256,计算其区域内的图像的ORB特征,得到ORB特征集合ORBsnxt;将ORBori与ORB特征集合ORBsnxt中的每一个值比较其汉明距离,选择特征集合ORBsnxt中与ORBori汉明距离最小的人体区域,将选中的人体区域作为下一帧的跟踪位置。
CN201910231185.XA 2019-03-26 2019-03-26 一种基于监控的校园周边危险个体检测系统 Withdrawn CN109977863A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910231185.XA CN109977863A (zh) 2019-03-26 2019-03-26 一种基于监控的校园周边危险个体检测系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910231185.XA CN109977863A (zh) 2019-03-26 2019-03-26 一种基于监控的校园周边危险个体检测系统

Publications (1)

Publication Number Publication Date
CN109977863A true CN109977863A (zh) 2019-07-05

Family

ID=67080571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910231185.XA Withdrawn CN109977863A (zh) 2019-03-26 2019-03-26 一种基于监控的校园周边危险个体检测系统

Country Status (1)

Country Link
CN (1) CN109977863A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111582202A (zh) * 2020-05-13 2020-08-25 上海海事大学 一种智能网课系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111582202A (zh) * 2020-05-13 2020-08-25 上海海事大学 一种智能网课系统
CN111582202B (zh) * 2020-05-13 2023-10-17 上海海事大学 一种智能网课系统

Similar Documents

Publication Publication Date Title
CN106446930B (zh) 基于深层卷积神经网络的机器人工作场景识别方法
CN104166841B (zh) 一种视频监控网络中指定行人或车辆的快速检测识别方法
CN108830188A (zh) 基于深度学习的车辆检测方法
CN108460356A (zh) 一种基于监控系统的人脸图像自动处理系统
CN111079674B (zh) 一种基于全局和局部信息融合的目标检测方法
CN109902806A (zh) 基于卷积神经网络的噪声图像目标边界框确定方法
CN109635875A (zh) 一种基于深度学习的端到端网口检测方法
CN107463920A (zh) 一种消除局部遮挡物影响的人脸识别方法
CN109543632A (zh) 一种基于浅层特征融合引导的深层网络行人检测方法
CN107292339A (zh) 基于特征融合的无人机低空遥感影像高分地貌分类方法
CN108182454A (zh) 安检识别系统及其控制方法
CN108090447A (zh) 双分支深层结构下的高光谱图像分类方法及装置
CN107016409A (zh) 一种基于图像显著区域的图像分类方法和系统
CN109145928A (zh) 一种基于图像的车头朝向识别方法及装置
CN106372581A (zh) 构建及训练人脸识别特征提取网络的方法
CN107016357A (zh) 一种基于时间域卷积神经网络的视频行人检测方法
CN106203260A (zh) 基于多摄像机监控网络的行人识别与跟踪方法
CN109977896A (zh) 一种超市智能售货系统
Li et al. Deep dehazing network with latent ensembling architecture and adversarial learning
CN108596338A (zh) 一种神经网络训练集的获取方法及其系统
CN107239759A (zh) 一种基于深度特征的高空间分辨率遥感图像迁移学习方法
CN108960079A (zh) 一种图像识别方法及装置
CN106874825A (zh) 人脸检测的训练方法、检测方法和装置
CN107463954A (zh) 一种模糊异谱图像的模板匹配识别方法
CN107351080A (zh) 一种基于相机单元阵列的混合智能研究系统及控制方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20190705

WW01 Invention patent application withdrawn after publication