CN111126220B - 一种视频监控目标实时定位方法 - Google Patents
一种视频监控目标实时定位方法 Download PDFInfo
- Publication number
- CN111126220B CN111126220B CN201911291966.4A CN201911291966A CN111126220B CN 111126220 B CN111126220 B CN 111126220B CN 201911291966 A CN201911291966 A CN 201911291966A CN 111126220 B CN111126220 B CN 111126220B
- Authority
- CN
- China
- Prior art keywords
- layer
- value
- output
- hidden layer
- nerve
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Signal Processing (AREA)
- Image Analysis (AREA)
Abstract
本发明提供一种基于视频的监控目标实时定位方法,选取若干个已知平面坐标样本点,通过采集摄像机的不同方位值,以及这些样本点在每一方位值下对应的实际视频图像坐标,利用神经网络深度学习计算方法构建摄像机实时定位模型,解析实时视频图像与对应的地理空间之间的映射关系,进而根据输入的平面坐标预测视频监控目标的图像坐标。
Description
技术领域
本发明属于计算机视觉和视频监控技术领域,涉及一种基于视频的监控目标实时定位方法。
背景技术
近些年来,随着视频监控设备性能的不断优化升级、产品价格的降低以及功能的不断完善,使得视频监控技术被广泛应用各个领域,在安防、城市安全等领域占有较大的市场份额。在全社会大力建立健全安全生产监管体制,加强各类预警机制的形势下,视频监控技术也正朝着高清化、智能化、民用化的方向发展,特别是视频内容识别技术快速发展,为视频监控技术带来了空前发展前景,视频内容识别技术可以迅速发现预设监控目标,大量节约人力和时间。
伴随着电子地图服务的迅速发展,视频数据与GIS结合成为一种必然趋势,其中,如何解析图像与地理空间的映射关系,进而对视频监控目标进行实时定位,成为了视频监控领域一个热点研究方向;赖于互联网的发展,大数据时代来临,视频图像识别技术得到空前发展,但是从视频中能精准定位目标物体坐标的技术相比之下滞后很多,有平面坐标数据获取不准确的原因,也跟摄像头内部参数、位置等因素有关,由于摄像头获取的视频自身存在边际变形效应,所求的物体与图像的对应关系又是一种非线性的复杂的映射关系,很多传统的方法计算出的误差比较大;如何解决目前的问题,是当下的研究方向。
发明内容
为解决上述问题,本发明提供一种基于视频的监控目标实时定位方法。
一种基于视频的监控目标实时定位方法,其中:包括如下步骤:
第一步:训练样本集的准备
(1)样本数据的采集
样本数据包括以下三个方面:一是目标地物的平面坐标,二是摄像头的特定角度方位的具体方位值,三是该摄像头在该具体方位值下对应的准确的图像坐标,即真实值,将真实值设为期望输出值,期望输出值用于训练神经网络,以调整误差;
其中摄像头的方位值——PTZ值,即Pan/Tilt/Zoom,下面Z值写为ZO,是根据摄像头内部设定的参数来获取的,PTZO值代表方位:即摄像头左右移动值/上下移动值/摄像头镜头变倍、变焦控制值;摄像头的PTZO值取值范围如下:P值取值范围是0~360度,T值取值范围是-5~90度,ZO值取值范围是1~30倍;
选取已知平面坐标的目标地物为样本,然后打开摄像头的视频,实时读取该地物的平面坐标,读取精度精确到小数点后9位,同时还可获取摄像头视频中该地物样本在该方位下对应的图像坐标值:摄像头视频里面鼠标显示为十字丝,通过十字丝定位目标地物,然后点击摄像头屏幕上的目标地物,获取目标地物在屏幕图像中的位置,从而获取目标地物图像坐标,同时保存此时相对应的PTZO值以及目标地物的平面坐标值;图像以左上角为原点(0,0),右上角坐标为(1,0),左下角坐标为(0,1),右下角坐标为(1,1),目标地物在视频中的图像坐标参考系如上,横、纵坐标取值范围为0~1;
以上为输入样本采集;采集若干个样本后,所有样本随机打乱,抽出100条做为验证集,其余为训练集;验证集始终不参与训练,只在误差满足训练集要求后,做验证使用;输出数据通过将样本输入神经网络计算后得到;
(2)对输入数据以及对期望输出值进行预处理
预处理分两个步骤,一是数据清洗和归一化,二是变换成极坐标格式数据;
首先清洗掉有明显错误的干扰数据;
其次对数据进行归一化,对输入和输出数据进行尺度变换;由于各个输入数据的物理意义和尺度范围不同,不能在一个衡量范围内进行对比和计算;为了保证在神经网络训练之前,所有输入数据对输出结果的影响分量相同,进行尺度变换,使所有的数据都在0~1之间变换;
所述的样本有5个数据特征,故设置神经网络的输入层为5个神经元;所述样本的5个数据特征,其中前三个为摄像头的PTZO值,第四个为样本点与摄像头的距离,第五个为样本点与摄像头连线方向与正北向夹角的角度值,采用极坐标格式;所述样本有多个,按照顺序排列的样本的5个数据特征组成五列数据;
第一个数据特征为P值,P值取值区间为0-359.99999,P值归一化后的值为P1,归一化公式为:P1=P/360
第二个数据特征为T值,T值在-5~90之间,T值归一化后为T1,归一化公式为:T1=(T+5)/95
第三个数据特征为ZO值,ZO值在1~30之间,ZO值归一化后为ZO1,归一化公式为:ZO1=ZO/30
第四个数据特征为S值,为样本与摄像头之间的距离值,样本与摄像头之间的距离值S以3km为基数进行归一化,归一化值为S1,公式为:
其中x1、y1分别为样本点所在位置的横向平面坐标、纵向平面坐标,x0、y0分别为摄像头所在位置的横向平面坐标、纵向平面坐标;
第五个数据特征为A值,以摄像头为原点,以正北向为Y轴正向,A值是摄像头与样本点连线的方向与Y轴正向的夹角,取值范围为[-1,1],由于反正弦函数取值区间为/>故A值取值区间为-90~90度;
计算样本点与摄像头连线的方向与Y轴正向的角度A公式为:
根据上面的公式,由于A值并不能表示360度,因此以正北向为0度,以正东方向为X轴正向,即90度,顺时针方向旋转,根据样本点所在的象限位置,判断与Y轴正向的夹角,记为A0,Y轴正向X轴正向为第一象限,A0角度取值区间为0~90度,A0=A,A为正值;X轴正向Y轴负向为第二象限,A0角度取值区间为90~180度,A0=180–A,A为正值;Y轴负向X轴负向为第三象限,A0角度取值区间为180~270度,A0=180–A,A为负值;X轴负向Y轴正向为第四象限,A0角度取值区间为270~360度,A0=360+A,A为负值;A0归一化值为A1,归一化公式为:A1=A0/360;
期望输出值为上述样本在上述PTZO值下,样本在摄像头中的图像坐标(u,v),选取两个样本特征,第一个为样本点图像坐标距离图像中心(0.5,0.5)的距离D,第二个为样本点图像坐标距离图像中心(0.5,0.5)的角度F,采用极坐标格式;然后分别对样本的图像坐标距图像中心的距离与角度进行归一化处理,距离D计算公式为:
距离值的D归一化值D1,归一化公式为:
计算样本点图像坐标与摄像头的角度F公式为:
样本点图像坐标距离其中D≠0,根据前述公式,角度F区间为-90~90度,所以需要根据样本点图像坐标所在的象限位置,以图像中心(0.5,0.5)为原点,当u=0.5,且v=0.5时,F0=0;u>0.5,v≤0.5,即在图像右上角为第一象限,F0取值区间为0~90度,F0=F,F为正值;u≥0.5,v>0.5,即在图像右下角为第二象限,F0取值区间为90~180度,F0=180–F,F为正值;u<0.5,v≥0.5,即在图像左下角为第三象限,F0取值区间为180~270度,F0=180–F,F为负值;u≤0.5,v<0.5,即在图像左上角为第四象限,F0取值区间为270~360度,F0=360+F,F为负值;当u=0.5或v=0.5时,样本点在坐标轴上;F0归一化值为F1,归一化公式为:F1=F0/360;
第二步:设置训练神经网络结构
隐藏层设计为11层,隐层及结点数设计为:
1-5层隐藏层,每层设计8个神经单元结点,表示为1-5:8;
6-8层隐藏层,每层设计为12个神经单元结点,表示为6-8:12;
9-11层隐藏层,每层设计为10个神经单元结点,表示为9-11:10;
即隐节点写法“S-E:N”,表示第S层到第E层的每层神经单元个数为N个;
梯度下降时采用的策略是Adam优化器;Adam是一种可以替代传统随机梯度下降过程的一阶优化算法,能基于训练数据迭代地更新神经网络权值;
第三步:正向传播
以单隐藏层示范基本原理,多隐藏层是多个单隐藏层的层层递进;单隐藏层原理具体如下:输入向量为所述的样本X=(x1,x2,x3,x4,x5)T,T代表转置;x1,x2,x3,x4,x5是输入层的五个神经单元,x1,x2,x3,x4,x5一一对应输入样本数据的五个特征,即P值归一化P1,T值归一化T1,ZO值归一化ZO1,目标地物距摄像头位置的平面坐标距离S归一化值S1,目标地物距摄像头位置的角度A归一化值A1;b0是为隐藏层神经单元引入的阈值,取值为[-1,1];
输入层到隐藏层的权值矩阵用W表示,W=(W1,W2,…,Wj,…,Wm)T,其中3≤j<m;
所述W1=(w11,w12,w13,w14,w15)为隐藏层第1个神经单元对应的权向量,为1行5列的向量;W2=(w21,w22,w23,w24,w25)为隐藏层第2个神经单元对应的权向量,为1行5列的向量;Wj=(wj1,wj2,wj3,wj4,wj5)为隐藏层第j个神经单元对应的权向量,为1行5列的向量;Wm=(wm1,wm2,wm3,wm4,wm5)为隐藏层第m个神经单元对应的权向量,为1行5列的向量;
wji为输入层第i个神经单元到隐藏层第j个神经单元的权值,i=1,2,3,4,5;j=1,2,…,m;例如w21为输入层第1个神经单元到隐藏层第2个神经单元的权值,w12为输入层第2个神经单元到隐藏层第1个神经单元的权值;
m为隐藏层的神经元个数,故W为m行5列的权值矩阵;Z1为隐藏层的第1个神经单元的加权信息,是汇集输入层的5个神经单元x1,x2,x3,x4,x5通过公式W1X加权变换后加上设置的阈值b0,得到的加权信息,即Z1=W1X+b0;Zj为隐藏层的第j个神经单元的加权信息,是汇集输入层的5个神经单元x1,x2,x3,x4,x5通过公式WjX加权变换后加上设置的阈值b0,得到的加权信息,即Zj=WjX+b0;Zm为隐藏层的第m个神经单元的加权信息,是汇集输入层的5个神经单元x1,x2,x3,x4,x5通过公式WmX加权变换后加上设置的阈值b0,得到的加权信息,即Zm=WmX+b0;
激活函数采用relu函数,relu激活函数为,当x≧0时,f(x)=x,当x﹤0时,f(x)=0;在输入层到隐藏层的激活函数为f(Z)=f(WX+b0);
y1为在隐藏层中第1个神经单元的输出值,是由Z1经过relu激活函数f(x)处理变换后得到,即当Z1=W1X+b0≧0时,y1=f(Z1)=W1X+b0,当W1X+b0﹤0时,y1=f(Z1)=0;yj为在隐藏层中第j个神经单元的输出值,是由Zj经过relu激活函数处理变换后得到的,即yj=f(Zj);ym为在隐藏层中第m个神经单元的输出值,是由Zm经过relu激活函数处理变换后得到的,即ym=f(Zm);
输出层有2个神经单元,隐藏层到输出层之间的权值矩阵用V=(V1,V2)T,T代表转置,其中V1=(v11,v12,…,v1j,…,v1m)为输出层第1个神经单元对应的权向量,为1行m列的向量;V2=(v21,v22,…,v2j,…,v2m)为输出层第2个神经单元对应的权向量,为1行m列的向量;权值矩阵V为2行m列的向量;
vkj是隐藏层第j个神经单元到输出层第k个神经单元的权值;j=1,2,…,m;k=1,2;例如v21为隐藏层第1个神经单元到输出层第2个神经单元的权值,v12为隐藏层第2个神经单元到输出层第一个神经单元的权值,v1j为隐藏层第j个神经单元到输出层第1个神经单元的权值;
输出向量O=(o1,o2)T,T代表转置,o1为BP神经网络计算方法预测的目标地物在摄像头所摄取图像中的图像坐标距离该图像中心坐标(0.5,0.5)的距离,o2为BP神经网络计算方法预测的目标地物在摄像头所摄取图像中的坐标距离该图像中心坐标(0.5,0.5)的角度归一化值;b1为隐藏层设置的阈值,取值范围为[-1,1];relu函数为从隐藏层到输出层的激活函数;o1为在输出层中第1个神经单元的输出值,是由隐藏层的各个神经单元y1,y2,…,yj,…,ym经过公式V1Y加权变换后,加上设置的阈值b1后,得到加权信息V1Y+b1,经过relu激活函数处理变换后得到的,即o1=f(V1Y+b1);o2为在输出层中第2个神经单元的输出值,是由隐藏层的各个神经单元y1,y2,…,yj,…,ym经过公式V2Y加权变换后,加上设置的阈值b1后,得到加权信息V2Y+b1,经过relu激活函数处理变换后得到的,即o2=f(V2Y+b1);
对于隐藏层,第j个神经单元的加权信息为:
Wj为隐藏层第j个神经单元对应的权向量,wji为输入层第i个神经单元到隐藏层第j个神经单元的权值,i=1,2,3,4,5;j=1,2,…,m;
隐藏层第j个神经单元经过relu激活函数f(WX+b0)后,变为:
对于输出层,第k个神经单元的加权信息为:
Vk为输出层第k个神经单元的对应的权向量,vkj是隐藏层第j个神经单元到输出层第k个神经单元的权值;k=1或2;
输出层的第k个神经单元经过激活函数后的输出值为:
第四步骤:计算误差与反向传播调整权值
单隐藏层神经网络在采样的时候,即第一步骤中的第1步,得到期望值dk,期望值dk与输出结果ok一一对应;当输出结果ok与期望结果dk不相等时,即存在输出误差E,定义公式如下:
把上面的误差公式反推到隐藏层,有
Zk为输出层第k个神经单元的加权信息,继续展开至输入层,结果为
由上式可以看出,网络输出误差是各层权值vkj、wji的函数,因此调整权值可改变误差E;调整权值使误差E不断的减小,需要使权值调整量与误差的梯度下降成正比,公式如下:Δvkj、Δwji为权值调整量,意为求导,/>即误差梯度;
式中,负号表示梯度下降,常数η表示比例系数,η∈(0,1),在神经训练中反映了学习速率,即学习率,主要用来调节Δvkj,Δwji的变化幅度;
第五步骤:BP计算方法
各层神经单元个数为:输入层i=1,2,3,4,5;隐藏层j=1,2,…,m;输出层k=1,2;
对于输出层,由于以及输出层第k个神经单元的加权信息为Zk,Zk=VkY+b1;所以引入Zk,对Zk求导,Δvkj可写为:
对于隐藏层,由于以及隐藏层第j个神经单元的加权信息为Zj,Zj=WjX+b0,对Zj求导,Δwji可写为:
对于输出层和隐藏层各定义一个误差信号;是输出层的误差信号,上标o表示输出层,/>是隐藏层的误差信号,上标y表示隐藏层;令
由于公式7中
Vk=(vk1,vk2,…,vkj,…,vkm),是指输出层第k个神经单元对应的权向量,故公式(13-1)中的代入公式(14-1),所以公式(13-1)可以改为
同上,由于
故公式(13-2)中的代入公式(14-2),所以公式(13-2)可以改为
对于输入层,ok为输出层第k个神经单元的加权信息Zk经过激活函数变换后的输出值,即ok=f(Zk),对误差信号增加参量/>可展开为
对于隐藏层,yj为隐藏层第j个神经单元的加权信息Zj经过激活函数变换后的输出值,即yj=f(Zj),对误差信号增加参量/>可展开为
对于输出层,利用公式9,可得
对于隐藏层,利用公式10,可得
上述公式17-1及公式17-2中的“*”代表“乘以”;
然后将以上结果代入到公式16,得到
以上误差信号推导完成,把公式18代入到公式15中,
对于多隐藏层,有h层隐藏层,按正向传播顺序各隐藏节点数,记为m1,m2,m3,…,mh即第1层隐藏层有m1个神经单元,第2层隐藏层有m2个神经单元,以此类推,第h层隐藏层有mh个神经单元;隐藏层输出用y表示,第1层隐藏层输出数据记为y(1),第2层隐藏层输出数据记为y(2),以此类推,第h层隐藏层输出数据记为y(h),各隐藏层输出数据分别记为y(1),y(2),y(3),…,y(h)第1层隐藏层权值矩阵记为W(1),第2层隐藏层权值矩阵记为W(2),以此类推,第h层隐藏层的权值矩阵记为W(h),即各层权值矩阵分别记为W(1),W(2),W(3),…,W(h+1),则各层权值调整计算公式见下面:
对于输出层,意为第h层隐藏层的第j1个神经单元到第h+1层即输出层的第k1个神经单元的权值,/>即/>的权值调整量,由单隐藏层网络推导,类比得到的公式如下:
j1=1,2,3,…,mh;k1=1,2,…,n (公式20-1)
为输出层的误差信号,/>为第h层隐藏层的第j1个神经单元的输出值,为输出层第k1个神经单元的加权信息;
第h隐藏层,意为第h-1层隐藏层的第i1个神经单元到第h层隐藏层的第j1个神经单元的权值,/>即/>的权值调整量,公式如下:
为第h层隐藏层的误差信号,/>为第h-1层隐藏层的第i1个神经单元的输出值,/>为第h层隐藏层的第j1个神经单元的加权信息,/>为输出层的误差信号;
按照以上规律逐层类推,则输入层第p1个神经单元到第1层隐藏层第q1个神经单元的权值为为/>的调整量,/>计算公式为
p1=1,2,…,l;q1=1,2,3,…,m1;r=1,2,…,m2;l为输入层的神经单元个数,m1为第1层隐藏层的神经单元个数;m2为第2层隐藏层的神经单元个数;p1为输入层第p1个神经单元,q1为第1层隐藏层第q1个神经单元;r为第2层隐藏层第r个神经单元;为第1层隐藏层的误差信号,/>为输入层的第p1个神经单元的值,/>为第1层隐藏层的第q1个神经单元的加权信息;/>为第2层隐藏层的误差信号,/>为第1层隐藏层第q1个神经单元到第2层隐藏层第r个神经单元的权值;
当所有的误差信号计算完成,并由此调整好各层的各个神经元的权值之后,再重新输入数据,用修改后的权值矩阵进行计算,得到输出结果,即正向传播得到的输出结果与期望输出值再进行比较,计算误差:如果误差满足要求,再在验证集上进行验证,误差同时满足要求,即可停止神经网络的训练;如果在验证集上误差不满足要求,则重新按照上面的方法反向传播调整误差信号,从而调整权值;如此反复,直至训练结果满足要求或者训练次数达到设置的阈值,训练结束;所述训练结果满足要求,为误差满足要求,则训练结束;若训练结束,误差仍然不能满足要求,则返回步骤二,使用设定值调参,重新调整学习率以及神经网络的层数和神经单元个数,然后再按照正向传播计算误差、反向传播调整权值,重新训练神经网络。
本发明提供的一种基于视频的监控目标实时定位方法,首先需要若干个已知平面坐标的样本数据,根据样本在摄像头不同方位下对应的实际图像坐标,使神经网络模型计算方法进行不断的学习,建立视频图像与目标地理场景之间的映射关系,最终根据输入的平面坐标预测视频监控目标的图像坐标。本发明基于人工神经网络原理,主要利用神经网络深度学习计算方法,构建摄像机实时定位模型,进而实现基于视频的监控目标实时定位技术。
附图说明
图1为本发明基于视频的监控目标实时定位方法的流程图;
图2为本发明方法所述的正向传播原理图;
图3为本发明方法所述的反向传播原理图;
图4为本发明方法训练过程的误差变化趋势图。
具体实施方式
本发明提供了一种基于视频的监控目标实时定位方法,下面所述平面坐标,为大地坐标,参考平面地是水平面,坐标单位是米/千米等,是经地理坐标(即球面坐标)投影后得到,地理坐标的参考平面地是椭球面,坐标单位是经纬度;本发明流程图如图1所示,具体包括如下步骤:
第一步:训练样本集的准备
(1)样本数据的采集
样本数据包括以下三个方面:一是目标地物的平面坐标,二是摄像头的特定角度方位的具体方位值,三是该摄像头在该具体方位值下对应的准确的图像坐标,即真实值,将真实值设为期望输出值,期望输出值用于训练神经网络,以调整误差;
目标地物的平面坐标获取方式有很多种,可以使用定位仪在现场进行采集,也可以利用卫星遥感影像校准后的平面坐标等等;为了尽量的降低误差,提高预测精度,用于采样的目标地物在选择上,要能在摄像头视频中清晰无遮挡的看到,而且需要具有稳定性;
其中摄像头的方位值——PTZO值,即Pan/Tilt/Zoom,是根据摄像头内部设定的参数来获取的,PTZO值代表方位:即摄像头左右移动值/上下移动值/摄像头镜头变倍、变焦控制值;PTZO值可以通过摄像头内置软件实时读取,可以根据需要调整读取精度;本发明中使用的摄像头的PTZO值取值范围如下:P值取值范围是0~360度,T值取值范围是-5~90度,ZO值取值范围是1~30倍;
选取已知平面坐标的目标地物为样本,然后打开摄像头的视频,实时读取该地物的平面坐标,读取精度精确到小数点后9位,同时还可获取摄像头视频中该地物样本在该方位下对应的图像坐标值:摄像头视频里面鼠标显示为十字丝,通过十字丝定位目标地物,然后点击摄像头屏幕上的目标地物,获取目标地物在屏幕图像中的位置,从而获取目标地物图像坐标,同时保存此时相对应的PTZO值以及目标地物的平面坐标值;图像以左上角为原点(0,0),右上角坐标为(1,0),左下角坐标为(0,1),右下角坐标为(1,1),目标地物在视频中的图像坐标参考系如上,横、纵坐标取值范围为0~1;
以上为输入样本采集;输出数据通过以上输入样本输入神经网络计算后得到;由于神经网络训练学习效果跟训练样本数量的多少有很大的关系;一般来说训练样本数越多,神经网络训练学习的效果越好,但是当数据样本达到一定的数量时,神经网络训练学习的效果并不会有明显的改变;所以,根据本次发明要解决的问题,以及训练样本数量与结果的关系,确定大概的数据样本数;
(2)对输入数据以及对期望输出值进行预处理
预处理分两个步骤:一是数据清洗和归一化,二是变换成极坐标格式数据;
人工神经网络模型训练所需的数据获取完成后,由于某些数据之间的关系是确定的,为了保证数据的干净以及后期便于神经网络进行学习训练,首先需要对数据进行清洗和预处理;方法是首先清洗掉有明显错误的干扰数据;
其次对数据进行归一化,对输入和输出数据进行尺度变换;由于各个输入数据的物理意义和尺度范围不同,不能在一个衡量范围内进行对比和比较;为了保证在神经网络训练之前,所有输入数据对输出结果的影响分量相同,进行尺度变换,使所有的数据都在0~1之间变换;所述的样本有5个数据特征,故设置神经网络的输入层为5个神经元;所述样本的5个数据特征,其中前三个为摄像头的PTZO值,第四个为样本点距离摄像头的距离,第五个为样本点与摄像头方向与正北向夹角的角度值,采用极坐标格式;所述样本有多个,按照顺序排列的样本的5个数据特征组成五列数据;
第一个数据特征为P值,P值取值区间为0-359.99,P值归一化后的值为P1,归一化公式为:P1=P/360
第二个数据特征为T值,T值在-5~90之间,T值归一化后为T1,归一化公式为:T1=(T+5)/95
第三个数据特征为ZO值,ZO值在1~30之间,ZO值归一化后为ZO1,归一化公式为:ZO1=ZO/30
由于超过3km的样本,位置形变比较严重,故只采集3km以内样本;第四个数据特征为S值,为样本与摄像头之间的距离值,样本与摄像头之间的距离值S以3km为基数进行归一化,归一化值为S1,公式为:
其中x1、y1分别为样本点的平面横向坐标、平面纵向坐标,x0、y0分别为摄像头所在位置的平面横向坐标、平面纵向坐标;
第五个数据特征为A值,以摄像头为原点,以正北向为Y轴正向,A值是摄像头与样本点连线的方向与Y轴正向的夹角,取值范围为[-1,1],由于反正弦函数取值区间为/>故A值取值区间为-90~90度;
计算样本点与摄像头连线的方向与Y轴的角度A公式为:
根据上面的公式,由于A值并不能表示360度,因此以正北向为0度,以正东方向为X轴正向,即90度,顺时针方向旋转,根据样本点所在的象限位置,判断与Y轴正向的夹角,记为A0,Y轴正向X轴正向为第一象限,A0角度取值区间为0~90度,A0=A(A为正值);X轴正向Y轴负向为第二象限,A0角度取值区间为90~180度,A0=180–A(A为正值);Y轴负向X轴负向为第三象限,A0角度取值区间为180~270度,A0=180–A(A为负值);X轴负向Y轴正向为第四象限,A0角度取值区间为270~360度,A0=360+A(A为负值);A0归一化值为A1,归一化公式为:A1=A0/360;
期望输出值为上述样本在上述PTZO值下,样本在摄像头中的图像坐标(u,v),选取两个样本特征,第一个为样本点图像坐标距离图像中心(0.5,0.5)的距离D,第二个为样本点图像坐标距离图像中心(0.5,0.5)的角度F,采用极坐标格式;然后分别对样本的图像坐标距图像中心的距离与角度进行归一化处理,距离D计算公式为:
距离值的D归一化值D1,归一化公式为:
计算样本点与摄像头的角度F公式为:样本点图像坐标距离
根据上面的公式,角度F区间为-90~90度,并不能表示360度,所以需要根据样本点图像坐标所在的象限位置,以图像中心(0.5,0.5)为原点,当u=0.5,且v=0.5时,F0=0;u>0.5,v≤0.5,即在图像右上角为第一象限,F0取值区间为0~90度,F0=F(F为正值);u≥0.5,v>0.5,即在图像右下角为第二象限,F0取值区间为90~180度,F0=180–F(F为正值);u<0.5,v≥0.5,即在图像左下角为第三象限,F0取值区间为180~270度,F0=180–F(F为负值);u≤0.5,v<0.5,即在图像左上角为第四象限,F0取值区间为270~360度,F0=360+F(F为负值);当u=0.5或v=0.5时,样本点在坐标轴上;F0归一化值为F1,归一化公式为:F1=F0/360;
第二步:设置训练神经网络结构
隐藏层数量、结点数等超参数,直接决定了网络结构,需要根据不同的问题,不断反复尝试得到,可以使用设定值调参,也可以设置考核标准后自动化实现,也可以在实测过程中先设置考核标准后自动化实现,可得到最接近的隐藏层数量,再根据该最接近的隐藏层数量设置设定值,然后采用设定值调参的方式,本实施例是在多次试验后,采用设定值的方式调参,最终认为下述结果是解决本专利核心问题的最优参数;
隐藏层设计为11层,隐层及结点数设计为:
1-5层隐藏层,每层设计8个神经单元结点,表示为1-5:8;
6-8层隐藏层,每层设计为12个神经单元结点,表示为6-8:12;
9-11层隐藏层,每层设计为10个神经单元结点,表示为9-11:10;
即隐节点写法“S-E:N”,表示第S层到第E层的每层神经单元个数为N个;
梯度下降时采用的策略是Adam优化器;Adam是一种可以替代传统随机梯度下降过程的一阶优化算法,它能基于训练数据迭代地更新神经网络权值;
从经验上看,神经网络深度越大,对各种任务的归纳就越好;本发明使用的隐藏层个数,一开始根据激活函数以及要解决的实际问题的复杂程度,设为20层隐藏层进行训练,训练结果表明,对于本发明,20层层数太多,后面层数的学习信号会逐渐趋近于0,容易出现梯度消失的问题,收敛的也比较慢;于是调整层数和神经单元个数,重新训练;当训练次数过多,也有可能出现过拟合,即在训练集上表现的很完美,但是在验证集上预测的结果不是很好;
本发明要解决的问题为非线性非凸函数,在训练过程中会出现很多问题,比如梯度弥散现象,主要是由于实际训练的神经网络是非凸函数,假如训练过程中梯度消失,出现的结果只能是局部最优;网络层数越多,梯度弥散现象可能是更加严重,即梯度越小,对网络的调整作用就会越来越小;
而且误差变化很有可能存在多个极小点,且误差的变化速度在不同的位置也会不同;有时候误差的平缓区域会使学习训练的次数大大增加,从而影响收敛速度;
以上可能出现的问题对神经网络的结果都有很大的影响;而这些问题也与神经网络的初始化以及网络隐藏数的设计有很大的关系,比如设计几层,以及每层设置多少个神经单元等;本次发明根据问题特征,以及多方尝试,设置了以上层数的多隐藏层的BP神经网络;
第三步:正向传播
本发明使用的是多隐藏层BP神经网络,但为了方便表述本发明工作原理,用单隐藏层演示过程,即含有输入层,一层隐藏层,输出层的神经网络;以单隐藏层示范基本原理,如图2所示;
其中图2中输入向量为所述的样本X=(x1,x2,x3,x4,x5)T,T代表转置;x1,x2,x3,x4,x5是输入层的五个神经单元,x1,x2,x3,x4,x5一一对应输入样本数据的五个特征,即P值归一化P1,T值归一化T1,ZO值归一化ZO1,目标地物距摄像头位置的平面坐标距离S归一化值S1,目标地物与摄像头连接的方向与Y轴正向的夹角A归一化值A1,图中b0是为隐藏层神经单元引入阈值而设置的,取值为[-1,1];
输入层到隐藏层的权值矩阵用W表示,W=(W1,W2,…,Wj,…,Wm)T,其中3≤j<m;
所述W1=(w11,w12,w13,w14,w15)为隐藏层第1个神经单元对应的权向量,为1行5列的向量;W2=(w21,w22,w23,w24,w25)为隐藏层第2个神经单元对应的权向量,为1行5列的向量;Wj=(wj1,wj2,wj3,wj4,wj5)为隐藏层第j个神经单元对应的权向量,为1行5列的向量;Wm=(wm1,wm2,wm3,wm4,wm5)为隐藏层第m个神经单元对应的权向量,为1行5列的向量;
wji为输入层第i个神经单元到隐藏层第j个神经单元的权值,i=1,2,3,4,5;j=1,2,…,m;例如w21为输入层第1个神经单元到隐藏层第2个神经单元的权值,w12为输入层第2个神经单元到隐藏层第1个神经单元的权值,如图2所示。
m为隐藏层的神经元个数,故W为m行5列的权值矩阵;Z1为隐藏层的第1个神经单元的加权信息,是汇集输入层的5个神经单元x1,x2,x3,x4,x5通过公式W1X加权变换后加上设置的阈值b0,得到的加权信息,即Z1=W1X+b0;Zj为隐藏层的第j个神经单元的加权信息,是汇集输入层的5个神经单元x1,x2,x3,x4,x5通过公式WjX加权变换后加上设置的阈值b0,得到的加权信息,即Zj=WjX+b0;Zm为隐藏层的第m个神经单元的加权信息,是汇集输入层的5个神经单元x1,x2,x3,x4,x5通过公式WmX加权变换后加上设置的阈值b0,得到的加权信息,即Zm=WmX+b0;
本方法使用的激活函数采用relu函数,relu激活函数为,当x≧0时,f(x)=x,当x﹤0时,f(x)=0;在输入层到隐藏层的激活函数为f(Z)=f(WX+b0);在反向传播求误差梯度时,求导涉及除法,采用Relu激活函数,整个过程的计算量节省很多;对于深层神经网络,relu函数不容易出现梯度消失的情况,而且由于relu函数会使部分神经元的输出为0,可以缓解过计算结果拟合的情况;
y1为在隐藏层中第1个神经单元的输出值,是由Z1经过relu激活函数f(x)处理变换后得到,即当Z1=W1X+b0≧0时,y1=f(Z1)=W1X+b0,当W1X+b0﹤0时,y1=f(Z1)=0;yj为在隐藏层中第j个神经单元的输出值,是由Zj经过relu激活函数处理变换后得到的,即yj=f(Zj);ym为在隐藏层中第m个神经单元的输出值,是由加权信息Zm经过relu激活函数处理变换后得到的,即ym=f(Zm);
输出层有2个神经单元,隐藏层到输出层之间的权值矩阵用V=(V1,V2)T,T代表转置,其中V1=(v11,v12,…,v1j,…,v1m)为输出层第1个神经单元对应的权向量,为1行m列的向量;V2=(v21,v22,…,v2j,…,v2m)为输出层第2个神经单元对应的权向量,为1行m列的向量;权值矩阵V为2行m列的向量;这里的m与前述“隐藏层的第1、第2、...、第j、...、第m个神经单元”中的m意义相同,取值也相同;
输出向量O=(o1,o2)T,T代表转置,o1为BP神经网络计算方法预测的目标地物在摄像头所摄取图像中的图像坐标距离该图像中心坐标(0.5,0.5)的距离,o2为BP神经网络计算方法预测的目标地物在摄像头所摄取图像中的坐标距离该图像中心坐标(0.5,0.5)的角度归一化值;b1为隐藏层设置的阈值,取值范围为[-1,1];relu函数为从隐藏层到输出层的激活函数;o1为在输出层中第1个神经单元的输出值,是由隐藏层的各个神经单元y1,y2,…yj,…ym经过公式V1Y加权变换后,加上设置的阈值b1后,得到加权信息V1Y+b1,经过relu激活函数处理变换后得到的,即o1=f(V1Y+b1);o2为在输出层中第2个神经单元的输出值,是由隐藏层的各个神经单元y1,y2,…yj,…ym经过公式V2Y加权变换后,加上设置的阈值b1后,得到加权信息V2Y+b1,经过relu激活函数处理变换后得到的,即o2=f(V2Y+b1);
对于隐藏层,第j个神经单元的加权信息为:
Wj为隐藏层第j个神经单元对应的权向量,wji为输入层第i个神经单元到隐藏层第j个神经单元的权值,i=1,2,3,4,5;j=1,2,…,m;
隐藏层第j个神经单元经过relu激活函数f(WX+b0)后,变为:
对于输出层,第k个神经单元的加权信息为:
Vk为输出层第k个神经单元的对应的权向量,vkj是隐藏层第j个神经单元到输出层第k个神经单元的权值;k=1或2;
输出层的第k个神经单元经过激活函数后的输出值为:
第四步骤:计算误差与反向传播调整权值
单隐藏层神经网络在采样的时候,即第一步骤中的第1步,得到期望值dk,期望值dk与输出结果ok一一对应;当输出结果ok与期望结果dk不相等时,即存在输出误差E,定义公式如下:
把上面的误差公式反推到隐藏层,Zk为输出层第k个神经单元的加权信息,有
继续展开至输入层,结果为
由上式可以看出,网络输出误差是各层权值vkj、wji的函数,因此调整权值可改变误差E;调整权值使误差E不断的减小,需要使权值调整量与误差的梯度下降成正比,公式如下:Δvkj、Δwji为权值调整量,意为求导,/>即误差梯度;
式中,负号表示梯度下降,常数η∈(0,1)表示比例系数,在训练中反映了学习速率,即学习率,主要用来调节Δvkj,Δwji的变化幅度;负梯度下降求误差的最小值,调整权值和阈值使得误差最小;BP神经网络计算方法属于δ学习规则类,Delta学习规则是一种简单的有导师学习计算方法,该计算方法根据神经元的实际输出与期望输出差别来调整连接权;Detla规则简单来讲就是:若神经元实际输出比期望输出大,则减少输入为正的连接的权值,增大所有输入为负的连接的权值;反之,则增大所有输入为正的连接权的权值,减少所有输入为负的连接权的权值;
第五步骤:BP计算方法
各层神经单元个数为:输入层i=1,2,3,4,5;隐藏层j=1,2,…,m;输出层,k=1,2;
对于输出层,由于以及输出层神经单元的加权信息为Zk,Zk=VkY+b1;所以引入Zk,对Zk求导,Δvkj可写为:
对于隐藏层,由于以及隐藏层神经单元的加权信息为Zj,Zj=WjX+b0,对Zj求导,Δwji可写为:
对于输出层和隐藏层各定义一个误差信号;是输出层的误差信号,上标o表示输出层,/>是隐藏层的误差信号,上标y表示隐藏层;令
Vk=(vk1,vk2,…,vkj,…,vkm),是指输出层第k个神经单元对应的权向量,故公式(13-1)中的代入公式(14-1),所以公式(13-1)可以改为
同上,由于
故公式(13-2)中的代入公式(14-2),所以公式(13-2)可以改为
只要计算出(公式15)的误差信号和/>权值调整量的计算推导即可完成;下面继续推导如何计算误差信号/>和/>
对于输入层,ok为输出层第k个神经单元的加权信息Zk经过激活函数变换后的输出值,即ok=f(Zk),对误差信号增加参量/>可展开为
对于隐藏层,yj为隐藏层第j个神经单元的加权信息Zj经过激活函数变换后的输出值,即yj=f(Zj),对误差信号增加参量/>可展开为
对于输出层,利用公式9,可得
对于隐藏层,利用公式10,可得
上述公式17-1及公式17-2中的“*”代表“乘以”;
然后将以上结果代入到公式16,得到
以上误差信号推导完成,把公式18代入到公式15中,
对于多隐藏层,有h层隐藏层,按正向传播顺序各隐藏节点数,记为m1,m2,m3,…mh即第1层隐藏层有m1个神经单元,第2层隐藏层有m2个神经单元,以此类推,第h层隐藏层有mh个神经单元;隐藏层输出用y表示,第1层隐藏层输出数据记为y(1),第2层隐藏层输出数据记为y(2),以此类推,第h层隐藏层输出数据记为y(h),各隐藏层输出数据分别记为y(1),y(2),y(3),…,y(h)第1层隐藏层权值矩阵记为W(1),第2层隐藏层权值矩阵记为W(2),以此类推,第h层隐藏层的权值矩阵记为W(h),即各层权值矩阵分别记为W(1),W(2),W(3),…,W(h+1),则各层权值调整计算公式见下面:
对于输出层,意为第h层隐藏层的第j1个神经单元到第h+1层即输出层的第k1个神经单元的权值,/>即/>的权值调整量,由单隐藏层网络推导,类比得到的公式如下:
为输出层的误差信号,/>为第h层隐藏层的第j1个神经单元的输出值,/>为输出层第k1个神经单元的加权信息;
第h隐藏层,意为第h-1层隐藏层的第i1个神经单元到第h层隐藏层的第j1个神经单元的权值,/>即/>的权值调整量,公式如下:
为第h层隐藏层的误差信号,/>为第h-1层隐藏层的第i1个神经单元的输出值,/>为第h层隐藏层的第j1个神经单元的加权信息,/>为输出层的误差信号;
按照以上规律逐层类推,则输入层第p1个神经单元到第1层隐藏层第q1个神经单元的权值为为/>的调整量,/>计算公式为
p1=1,2,…l;q1=1,2,3,…m1;r=1,2,…,m2;l为输入层的神经单元个数,m1为第1层隐藏层的神经单元个数;m2为第2层隐藏层的神经单元个数;p1为输入层第p1个神经单元,q1为第1层隐藏层第q1个神经单元;r为第2层隐藏层第r个神经单元;为第1层隐藏层的误差信号,/>为输入层的第p1个神经单元的值,/>为第1层隐藏层的第q1个神经单元的加权信息;/>为第2层隐藏层的误差信号,/>为第1层隐藏层第q1个神经单元到第2层隐藏层第r个神经单元的权值;
由此可知,BP神经网络计算方法中,各层的权值调整公式均由三个因素决定:本层输入信息Y或者X,学习率η,以及本层的误差信号δ;其中输出层误差信号与网络的真实值与网络的输出结果之差有关,直接反映了输出误差,而各隐藏层的误差信号,都与误差反向传播的前一层的误差信号有关,是从输出层开始反向传播过来的;
当所有的误差信号计算完成,并由此调整好各层的各个神经元的权值之后,再重新输入数据,用修改后的权值矩阵进行计算,得到输出结果,即正向传播得到的输出结果与期望输出值再进行比较,计算误差;如果误差满足要求,再在验证集上进行验证,误差同时满足要求(本发明要求距离归一化误差低于0.03,角度归一化误差小于0.02),即可停止神经网络的训练;若验证集上误差不满足要求,则重新按照上面的反向传播调整误差信号,从而调整权值;如此反复,直至训练结果满足要求或者训练次数达到设置的阈值,训练结束;所述训练结果满足要求,为误差满足要求,则训练结束;若训练结束,误差仍然不能满足要求,则返回步骤二,使用设定值调参,重新调整学习率以及神经网络的层数和神经单元个数,然后再按照正向传播计算误差、反向传播调整权值,重新训练神经网络。
物理环境以及网络参数准备:多隐层的人工神经网络学习训练对硬件有一定的要求,因为硬件的配置会影响神经网络的学习速度,采用较好的硬件,可以缩短神经网络训练时间,提高训练速度;
本发明需要的硬件配置如下:
CPU: | 2*XeonE5-2620V4八核心2.1GHz |
内存: | 2*16GDDR4ECCREG,共32G |
硬盘: | 1*500GSSD固态硬盘 |
GPU卡: | 2*GeforceRTX2080Ti(11G) |
网络训练是人工智能神经网络深度学习过程中很重要的一个环节,该环节中,由神经网络自己学习数据样本,寻找样本数据的特征关联;它的学习训练过程不需要实验人员干预;当神经网络误差下降缓慢,梯度消散或者梯度爆炸时,需要使用设定值调参调整神经网络的参数,比如学习率参数设置,神经网络隐藏层层数和隐藏层结点的设置等等;
网络训练过程中误差的变化趋势如图4,误差的变化并不是直线下降的,而是反复上下波动下降,刚开始训练时,误差下降的速度随着训练次数的增加而加快,如图在80K次数之前;但是当网络训练到达一定的次数后,误差下降的趋势趋于缓慢,但仍在下降,如图所示80k~200k之间;当误差降到一定的范围后,继续增加训练次数,误差并不会有明显的下降趋势,而是上下波动趋于平稳变化;
测试结果:为了验证本发明采用的方法的有效性,我们从已知的样本数据中,随机抽取100条数据不做训练,然后利用训练好的神经网络预测图像坐标,并与期望输出值进行比较,计算误差;部分误差表如表所示,为了直观的看出误差的变化,只列举了样本点图像坐标与图像中心的距离真实值与预测值,样本点与图像中心连线与Y轴正向的角度真实值与预测值;总误差采用标准差计算公式:距离的误差标准差为0.0250,角度的误差标准差为0.0121,即角度误差为360*0.0121=4.356°;
本发明主要采用人工神经网络深度学习计算方法,人工神经网络是由大量处理单元互联组成的非线性、自适应信息处理系统,采用了与传统数据建模和信息处理技术完全不同的机理,擅长处理非线性的复杂的映射关系,克服了在处理直觉、非结构化信息方面的缺陷,具有自适应、自组织和实时学习的特点;
本发明计算过程由神经网络自行学习,整个学习训练过程不需要人为干预和参与计算,执行过程简单,可以从现有技术中手动寻找特征算法中解脱出来,大大降低了检测过程中对人力的要求。另本发明的训练过程的计算速度随着硬件配置的提高而加快。本发明理论上误差可以无限降低,预测结果可以无限逼近真实值。原因是本发明考虑到了所有的误差因素,比如地面不平,摄像头的安装位置角度倾斜等,并且可以在计算过程中添加学习样本,对某些预测结果误差较大的区域增加样本点,进而不断降低误差。
其次,本发明中神经网络需要大量的数据,要求数据样本点尽可能均匀分布在摄像头周围,一旦采集完成,只要摄像头的物理位置不发生改变,本发明训练方法很容易达到理想的预测结果。
以上所述,仅为本发明的具体实施方式。本发明的保护范围应所述以权利要求的保护范围为准。
Claims (1)
1.一种基于视频的监控目标实时定位方法,其特征在于:包括如下步骤:
第一步:训练样本集的准备
(1)样本数据的采集
样本数据包括以下三个方面:一是目标地物的平面坐标,二是摄像头的特定角度方位的具体方位值,三是该摄像头在该具体方位值下对应的准确的图像坐标,即真实值,将真实值设为期望输出值,期望输出值用于训练神经网络,以调整误差;
其中摄像头的方位值——PTZ值,即Pan/Tilt/Zoom,下面Z值写为ZO,是根据摄像头内部设定的参数来获取的,PTZO值代表方位:即摄像头左右移动值/上下移动值/摄像头镜头变倍、变焦控制值;摄像头的PTZO值取值范围如下:P值取值范围是0~360度,T值取值范围是-5~90度,ZO值取值范围是1~30倍;
选取已知平面坐标的目标地物为样本,然后打开摄像头的视频,实时读取该地物的平面坐标,读取精度精确到小数点后9位,同时还可获取摄像头视频中该地物样本在该方位下对应的图像坐标值:摄像头视频里面鼠标显示为十字丝,通过十字丝定位目标地物,然后点击摄像头屏幕上的目标地物,获取目标地物在屏幕图像中的位置,从而获取目标地物图像坐标,同时保存此时相对应的PTZO值以及目标地物的平面坐标值;图像以左上角为原点(0,0),右上角坐标为(1,0),左下角坐标为(0,1),右下角坐标为(1,1),目标地物在视频中的图像坐标参考系如上,横、纵坐标取值范围为0~1;
以上为输入样本采集;采集若干个样本后,所有样本随机打乱,抽出100条做为验证集,其余为训练集;验证集始终不参与训练,只在误差满足训练集要求后,做验证使用;输出数据通过将样本输入神经网络计算后得到;
(2)对输入数据以及对期望输出值进行预处理
预处理分两个步骤,一是数据清洗和归一化,二是变换成极坐标格式数据;
首先清洗掉有明显错误的干扰数据;
其次对数据进行归一化,对输入和输出数据进行尺度变换;由于各个输入数据的物理意义和尺度范围不同,不能在一个衡量范围内进行对比和计算;为了保证在神经网络训练之前,所有输入数据对输出结果的影响分量相同,进行尺度变换,使所有的数据都在0~1之间变换;
所述的样本有5个数据特征,故设置神经网络的输入层为5个神经元;所述样本的5个数据特征,其中前三个为摄像头的PTZO值,第四个为样本点与摄像头的距离,第五个为样本点与摄像头连线方向与正北向夹角的角度值,采用极坐标格式;所述样本有多个,按照顺序排列的样本的5个数据特征组成五列数据;
第一个数据特征为P值,P值取值区间为0-359.99999,P值归一化后的值为P1,归一化公式为:P1=P/360
第二个数据特征为T值,T值在-5~90之间,T值归一化后为T1,归一化公式为:T1=(T+5)/95
第三个数据特征为ZO值,ZO值在1~30之间,ZO值归一化后为ZO1,归一化公式为:ZO1=ZO/30
第四个数据特征为S值,为样本与摄像头之间的距离值,样本与摄像头之间的距离值S以3km为基数进行归一化,归一化值为S1,公式为:
其中x1、y1分别为样本点所在位置的横向平面坐标、纵向平面坐标,x0、y0分别为摄像头所在位置的横向平面坐标、纵向平面坐标;
第五个数据特征为A值,以摄像头为原点,以正北向为Y轴正向,A值是摄像头与样本点连线的方向与Y轴正向的夹角,取值范围为[-1,1],由于反正弦函数取值区间为/>故A值取值区间为-90~90度;
计算样本点与摄像头连线的方向与Y轴正向的角度A公式为:
根据上面的公式,由于A值并不能表示360度,因此以正北向为0度,以正东方向为X轴正向,即90度,顺时针方向旋转,根据样本点所在的象限位置,判断与Y轴正向的夹角,记为A0,Y轴正向X轴正向为第一象限,A0角度取值区间为0~90度,A0=A,A为正值;X轴正向Y轴负向为第二象限,A0角度取值区间为90~180度,A0=180–A,A为正值;Y轴负向X轴负向为第三象限,A0角度取值区间为180~270度,A0=180–A,A为负值;X轴负向Y轴正向为第四象限,A0角度取值区间为270~360度,A0=360+A,A为负值;A0归一化值为A1,归一化公式为:A1=A0/360;
期望输出值为上述样本在上述PTZO值下,样本在摄像头中的图像坐标(u,v),选取两个样本特征,第一个为样本点图像坐标距离图像中心(0.5,0.5)的距离D,第二个为样本点图像坐标距离图像中心(0.5,0.5)的角度F,采用极坐标格式;然后分别对样本的图像坐标距图像中心的距离与角度进行归一化处理,距离D计算公式为:
距离值的D归一化值D1,归一化公式为:
计算样本点图像坐标与摄像头的角度F公式为:
样本点图像坐标距离其中D≠0,根据前述公式,角度F区间为-90~90度,所以需要根据样本点图像坐标所在的象限位置,以图像中心(0.5,0.5)为原点,当u=0.5,且v=0.5时,F0=0;u>0.5,v≤0.5,即在图像右上角为第一象限,F0取值区间为0~90度,F0=F,F为正值;u≥0.5,v>0.5,即在图像右下角为第二象限,F0取值区间为90~180度,F0=180–F,F为正值;u<0.5,v≥0.5,即在图像左下角为第三象限,F0取值区间为180~270度,F0=180–F,F为负值;u≤0.5,v<0.5,即在图像左上角为第四象限,F0取值区间为270~360度,F0=360+F,F为负值;当u=0.5或v=0.5时,样本点在坐标轴上;F0归一化值为F1,归一化公式为:F1=F0/360;
第二步:设置训练神经网络结构
隐藏层设计为11层,隐层及结点数设计为:
1-5层隐藏层,每层设计8个神经单元结点,表示为1-5:8;
6-8层隐藏层,每层设计为12个神经单元结点,表示为6-8:12;
9-11层隐藏层,每层设计为10个神经单元结点,表示为9-11:10;
即隐节点写法“S-E:N”,表示第S层到第E层的每层神经单元个数为N个;
梯度下降时采用的策略是Adam优化器;Adam是一种可以替代传统随机梯度下降过程的一阶优化算法,能基于训练数据迭代地更新神经网络权值;
第三步:正向传播
以单隐藏层示范基本原理,多隐藏层是多个单隐藏层的层层递进;单隐藏层原理具体如下:输入向量为所述的样本X=(x1,x2,x3,x4,x5)T,T代表转置;x1,x2,x3,x4,x5是输入层的五个神经单元,x1,x2,x3,x4,x5一一对应输入样本数据的五个特征,即P值归一化P1,T值归一化T1,ZO值归一化ZO1,目标地物距摄像头位置的平面坐标距离S归一化值S1,目标地物距摄像头位置的角度A归一化值A1;b0是为隐藏层神经单元引入的阈值,取值为[-1,1];
输入层到隐藏层的权值矩阵用W表示,W=(W1,W2,…,Wj,…,Wm)T,其中3≤j<m;
所述W1=(w11,w12,w13,w14,w15)为隐藏层第1个神经单元对应的权向量,为1行5列的向量;W2=(w21,w22,w23,w24,w25)为隐藏层第2个神经单元对应的权向量,为1行5列的向量;Wj=(wj1,wj2,wj3,wj4,wj5)为隐藏层第j个神经单元对应的权向量,为1行5列的向量;Wm=(wm1,wm2,wm3,wm4,wm5)为隐藏层第m个神经单元对应的权向量,为1行5列的向量;
wji为输入层第i个神经单元到隐藏层第j个神经单元的权值,i=1,2,3,4,5;j=1,2,…,m;例如w21为输入层第1个神经单元到隐藏层第2个神经单元的权值,w12为输入层第2个神经单元到隐藏层第1个神经单元的权值;
m为隐藏层的神经元个数,故W为m行5列的权值矩阵;Z1为隐藏层的第1个神经单元的加权信息,是汇集输入层的5个神经单元x1,x2,x3,x4,x5通过公式W1X加权变换后加上设置的阈值b0,得到的加权信息,即Z1=W1X+b0;Zj为隐藏层的第j个神经单元的加权信息,是汇集输入层的5个神经单元x1,x2,x3,x4,x5通过公式WjX加权变换后加上设置的阈值b0,得到的加权信息,即Zj=WjX+b0;Zm为隐藏层的第m个神经单元的加权信息,是汇集输入层的5个神经单元x1,x2,x3,x4,x5通过公式WmX加权变换后加上设置的阈值b0,得到的加权信息,即Zm=WmX+b0;
激活函数采用relu函数,relu激活函数为,当x≧0时,f(x)=x,当x﹤0时,f(x)=0;在输入层到隐藏层的激活函数为f(Z)=f(WX+b0);
y1为在隐藏层中第1个神经单元的输出值,是由Z1经过relu激活函数f(x)处理变换后得到,即当Z1=W1X+b0≧0时,y1=f(Z1)=W1X+b0,当W1X+b0﹤0时,y1=f(Z1)=0;yj为在隐藏层中第j个神经单元的输出值,是由Zj经过relu激活函数处理变换后得到的,即yj=f(Zj);ym为在隐藏层中第m个神经单元的输出值,是由Zm经过relu激活函数处理变换后得到的,即ym=f(Zm);
输出层有2个神经单元,隐藏层到输出层之间的权值矩阵用V=(V1,V2)T,T代表转置,其中V1=(v11,v12,…,v1j,…,v1m)为输出层第1个神经单元对应的权向量,为1行m列的向量;V2=(v21,v22,…,v2j,…,v2m)为输出层第2个神经单元对应的权向量,为1行m列的向量;权值矩阵V为2行m列的向量;
vkj是隐藏层第j个神经单元到输出层第k个神经单元的权值;j=1,2,…,m;k=1,2;例如v21为隐藏层第1个神经单元到输出层第2个神经单元的权值,v12为隐藏层第2个神经单元到输出层第一个神经单元的权值,v1j为隐藏层第j个神经单元到输出层第1个神经单元的权值;
输出向量O=(o1,o2)T,T代表转置,o1为BP神经网络计算方法预测的目标地物在摄像头所摄取图像中的图像坐标距离该图像中心坐标(0.5,0.5)的距离,o2为BP神经网络计算方法预测的目标地物在摄像头所摄取图像中的坐标距离该图像中心坐标(0.5,0.5)的角度归一化值;b1为隐藏层设置的阈值,取值范围为[-1,1];relu函数为从隐藏层到输出层的激活函数;o1为在输出层中第1个神经单元的输出值,是由隐藏层的各个神经单元y1,y2,…,yj,…,ym经过公式V1Y加权变换后,加上设置的阈值b1后,得到加权信息V1Y+b1,经过relu激活函数处理变换后得到的,即o1=f(V1Y+b1);o2为在输出层中第2个神经单元的输出值,是由隐藏层的各个神经单元y1,y2,…,yj,…,ym经过公式V2Y加权变换后,加上设置的阈值b1后,得到加权信息V2Y+b1,经过relu激活函数处理变换后得到的,即o2=f(V2Y+b1);
对于隐藏层,第j个神经单元的加权信息为:
Wj为隐藏层第j个神经单元对应的权向量,wji为输入层第i个神经单元到隐藏层第j个神经单元的权值,i=1,2,3,4,5;j=1,2,…,m;
隐藏层第j个神经单元经过relu激活函数f(WX+b0)后,变为:
对于输出层,第k个神经单元的加权信息为:
Vk为输出层第k个神经单元的对应的权向量,vkj是隐藏层第j个神经单元到输出层第k个神经单元的权值;k=1或2;
输出层的第k个神经单元经过激活函数后的输出值为:
第四步骤:计算误差与反向传播调整权值
单隐藏层神经网络在采样的时候,即第一步骤中的第1步,得到期望值dk,期望值dk与输出结果ok一一对应;当输出结果ok与期望结果dk不相等时,即存在输出误差E,定义公式如下:
把上面的误差公式反推到隐藏层,有
Zk为输出层第k个神经单元的加权信息,继续展开至输入层,结果为
由上式可以看出,网络输出误差是各层权值vkj、wji的函数,因此调整权值可改变误差E;调整权值使误差E不断的减小,需要使权值调整量与误差的梯度下降成正比,公式如下:Δvkj、Δwji为权值调整量,意为求导,/>即误差梯度;
式中,负号表示梯度下降,常数η表示比例系数,η∈(0,1),在神经训练中反映了学习速率,即学习率,主要用来调节Δvkj,Δwji的变化幅度;
第五步骤:BP计算方法
各层神经单元个数为:输入层i=1,2,3,4,5;隐藏层j=1,2,…,m;输出层k=1,2;
对于输出层,由于以及输出层第k个神经单元的加权信息为Zk,Zk=VkY+b1;所以引入Zk,对Zk求导,Δvkj可写为:
对于隐藏层,由于以及隐藏层第j个神经单元的加权信息为Zj,Zj=WjX+b0,对Zj求导,Δwji可写为:
对于输出层和隐藏层各定义一个误差信号;是输出层的误差信号,上标o表示输出层,/>是隐藏层的误差信号,上标y表示隐藏层;令
由于公式7中
Vk=(vk1,vk2,…,vkj,…,vkm),是指输出层第k个神经单元对应的权向量,故公式(13-1)中的代入公式(14-1),所以公式(13-1)可以改为
同上,由于
故公式(13-2)中的代入公式(14-2),所以公式(13-2)可以改为
对于输入层,ok为输出层第k个神经单元的加权信息Zk经过激活函数变换后的输出值,即ok=f(Zk),对误差信号增加参量/>可展开为
对于隐藏层,yj为隐藏层第j个神经单元的加权信息Zj经过激活函数变换后的输出值,即yj=f(Zj),对误差信号增加参量/>可展开为
对于输出层,利用公式9,可得
对于隐藏层,利用公式10,可得
上述公式17-1及公式17-2中的“*”代表“乘以”;
然后将以上结果代入到公式16,得到
以上误差信号推导完成,把公式18代入到公式15中,
对于多隐藏层,有h层隐藏层,按正向传播顺序各隐藏节点数,记为m1,m2,m3,…,mh即第1层隐藏层有m1个神经单元,第2层隐藏层有m2个神经单元,以此类推,第h层隐藏层有mh个神经单元;隐藏层输出用y表示,第1层隐藏层输出数据记为y(1),第2层隐藏层输出数据记为y(2),以此类推,第h层隐藏层输出数据记为y(h),各隐藏层输出数据分别记为y(1),y(2),y(3),…,y(h)第1层隐藏层权值矩阵记为W(1),第2层隐藏层权值矩阵记为W(2),以此类推,第h层隐藏层的权值矩阵记为W(h),即各层权值矩阵分别记为W(1),W(2),W(3),…,W(h+1),则各层权值调整计算公式见下面:
对于输出层,意为第h层隐藏层的第j1个神经单元到第h+1层即输出层的第k1个神经单元的权值,/>即/>的权值调整量,由单隐藏层网络推导,类比得到的公式如下:
为输出层的误差信号,/>为第h层隐藏层的第j1个神经单元的输出值,/>为输出层第k1个神经单元的加权信息;
第h隐藏层,意为第h-1层隐藏层的第i1个神经单元到第h层隐藏层的第j1个神经单元的权值,/>即/>的权值调整量,公式如下:
为第h层隐藏层的误差信号,/>为第h-1层隐藏层的第i1个神经单元的输出值,为第h层隐藏层的第j1个神经单元的加权信息,/>为输出层的误差信号;
按照以上规律逐层类推,则输入层第p1个神经单元到第1层隐藏层第q1个神经单元的权值为为/>的调整量,/>计算公式为
p1=1,2,…,l;q1=1,2,3,…,m1;r=1,2,…,m2;l为输入层的神经单元个数,m1为第1层隐藏层的神经单元个数;m2为第2层隐藏层的神经单元个数;p1为输入层第p1个神经单元,q1为第1层隐藏层第q1个神经单元;r为第2层隐藏层第r个神经单元;为第1层隐藏层的误差信号,/>为输入层的第p1个神经单元的值,/>为第1层隐藏层的第q1个神经单元的加权信息;/>为第2层隐藏层的误差信号,/>为第1层隐藏层第q1个神经单元到第2层隐藏层第r个神经单元的权值;
当所有的误差信号计算完成,并由此调整好各层的各个神经元的权值之后,再重新输入数据,用修改后的权值矩阵进行计算,得到输出结果,即正向传播得到的输出结果与期望输出值再进行比较,计算误差;如果误差满足要求,再在验证集上进行验证,误差同时满足要求,即可停止神经网络的训练;如果在验证集上误差不满足要求,则重新按照上面的方法反向传播调整误差信号,从而调整权值;如此反复,直至训练结果满足要求或者训练次数达到设置的阈值,训练结束;所述训练结果满足要求,为误差满足要求,则训练结束;若训练结束,误差仍然不能满足要求,则返回步骤二,使用设定值调参,重新调整学习率以及神经网络的层数和神经单元个数,然后再按照正向传播计算误差、反向传播调整权值,重新训练神经网络。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911291966.4A CN111126220B (zh) | 2019-12-16 | 2019-12-16 | 一种视频监控目标实时定位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911291966.4A CN111126220B (zh) | 2019-12-16 | 2019-12-16 | 一种视频监控目标实时定位方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111126220A CN111126220A (zh) | 2020-05-08 |
CN111126220B true CN111126220B (zh) | 2023-10-17 |
Family
ID=70499113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911291966.4A Active CN111126220B (zh) | 2019-12-16 | 2019-12-16 | 一种视频监控目标实时定位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111126220B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112084925A (zh) * | 2020-09-03 | 2020-12-15 | 厦门利德集团有限公司 | 一种智慧电力安全监察方法及系统 |
CN112105086A (zh) * | 2020-11-16 | 2020-12-18 | 南京航空航天大学 | 基于流量预测的无人机自组网信道接入控制方法 |
CN112712068B (zh) * | 2021-03-19 | 2021-07-06 | 腾讯科技(深圳)有限公司 | 一种关键点检测方法、装置、电子设备及存储介质 |
CN113554700B (zh) * | 2021-07-26 | 2022-10-25 | 贵州电网有限责任公司 | 一种不可见光瞄准方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102148965A (zh) * | 2011-05-09 | 2011-08-10 | 上海芯启电子科技有限公司 | 多目标跟踪特写拍摄视频监控系统 |
CN103686074A (zh) * | 2013-11-20 | 2014-03-26 | 南京熊猫电子股份有限公司 | 视频监控中移动目标的定位方法 |
CN104008427A (zh) * | 2014-05-16 | 2014-08-27 | 华南理工大学 | 基于bp神经网络的中央空调冷负荷的预测方法 |
CN107133919A (zh) * | 2017-05-16 | 2017-09-05 | 西安电子科技大学 | 基于深度学习的时间维视频超分辨率方法 |
CN208295487U (zh) * | 2018-05-03 | 2018-12-28 | 北京瞭望神州科技有限公司 | 一种便于调节的人工智能监控摄像头 |
CN110068302A (zh) * | 2019-03-07 | 2019-07-30 | 中科院微电子研究所昆山分所 | 一种基于深度神经网络的车辆测距方法 |
CN110335312A (zh) * | 2019-06-17 | 2019-10-15 | 武汉大学 | 一种基于神经网络的目标空间定位方法及装置 |
-
2019
- 2019-12-16 CN CN201911291966.4A patent/CN111126220B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102148965A (zh) * | 2011-05-09 | 2011-08-10 | 上海芯启电子科技有限公司 | 多目标跟踪特写拍摄视频监控系统 |
CN103686074A (zh) * | 2013-11-20 | 2014-03-26 | 南京熊猫电子股份有限公司 | 视频监控中移动目标的定位方法 |
CN104008427A (zh) * | 2014-05-16 | 2014-08-27 | 华南理工大学 | 基于bp神经网络的中央空调冷负荷的预测方法 |
CN107133919A (zh) * | 2017-05-16 | 2017-09-05 | 西安电子科技大学 | 基于深度学习的时间维视频超分辨率方法 |
CN208295487U (zh) * | 2018-05-03 | 2018-12-28 | 北京瞭望神州科技有限公司 | 一种便于调节的人工智能监控摄像头 |
CN110068302A (zh) * | 2019-03-07 | 2019-07-30 | 中科院微电子研究所昆山分所 | 一种基于深度神经网络的车辆测距方法 |
CN110335312A (zh) * | 2019-06-17 | 2019-10-15 | 武汉大学 | 一种基于神经网络的目标空间定位方法及装置 |
Non-Patent Citations (2)
Title |
---|
基于BP网络的机载摄像机标定应用;邹强;张迪;;中国科技信息(第10期);全文 * |
基于视频图像序列的动目标跟踪定位技术研究;罗丽莉;秦咂 ;;指挥信息系统与技术(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111126220A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111126220B (zh) | 一种视频监控目标实时定位方法 | |
CN109086700B (zh) | 基于深度卷积神经网络的雷达一维距离像目标识别方法 | |
CN112396027B (zh) | 基于图卷积神经网络的车辆重识别方法 | |
CN106355151B (zh) | 一种基于深度置信网络的三维sar图像目标识别方法 | |
CN107132516B (zh) | 一种基于深度置信网络的雷达一维距离像目标识别方法 | |
Krasnopolsky et al. | Using ensemble of neural networks to learn stochastic convection parameterizations for climate and numerical weather prediction models from data simulated by a cloud resolving model | |
CN110826453B (zh) | 一种通过提取人体关节点坐标的行为识别方法 | |
Wang et al. | A novel structural damage identification scheme based on deep learning framework | |
CN110456355B (zh) | 一种基于长短时记忆和生成对抗网络的雷达回波外推方法 | |
CN111582395B (zh) | 一种基于卷积神经网络的产品质量分类系统 | |
CN108320051B (zh) | 一种基于gru网络模型的移动机器人动态避碰规划方法 | |
CN113177559B (zh) | 结合广度和密集卷积神经网络的图像识别方法、系统、设备及介质 | |
Zhang et al. | Parameter fitting of variogram based on hybrid algorithm of particle swarm and artificial fish swarm | |
WO2020247721A1 (en) | Systems and methods to improve geo-referencing using a combination of magnetic field models and in situ measurements | |
CN106296734A (zh) | 基于极限学习机和boosting多核学习的目标跟踪算法 | |
CN110991284A (zh) | 一种基于场景预分类的光学遥感图像语句描述生成方法 | |
Huang et al. | A data-driven method for hybrid data assimilation with multilayer perceptron | |
CN114565019A (zh) | 一种基于知识蒸馏实现的无数据细粒度分类模型压缩系统及方法 | |
Xia et al. | Gesture recognition algorithm of human motion target based on deep neural network | |
CN113468466B (zh) | 基于神经网络的一维波动方程求解方法 | |
Lin et al. | Optimal CNN-based semantic segmentation model of cutting slope images | |
Rollmann et al. | Convolutional neural network formulation to compare 4-D seismic and reservoir simulation models | |
Che | Multi-sensor data fusion method based on ARIMA-LightGBM for AGV positioning | |
CN112926681B (zh) | 一种基于深度卷积神经网络的目标检测方法及装置 | |
Ahmadi | Using GIS and Artificial Neural Network for Deforestation Prediction |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |