发明内容
本发明技术解决问题:为了克服传统视频监控系统数据壁垒大、视频监控碎片化严重、视频监控与地理信息系统结合性差导致的对于指定位置的视频定位与查看效果差、视角不统一的缺点,本发明采用图像的投影变换和地图信息匹配的方法,将不同系统的监控摄像头接入,并将其视频图像准确的投影在地图的对应位置与视角,从而提供一种部署简单,可靠性高,视角与坐标系统一的实时处理大量摄像头数据并将其融合到一张地图上,实时显示的动态视频地理信息系统。
为实现上述发明目的,本发明采用如下的技术方案:一种面向城域的视频地理信息系统,其特征在于包括:视频采集Agent、视频服务器与GIS,其中Agent由视频图像传输模块、视频图像投影变换模块构成;视频服务器由视频图像与地图配准模块、视频投影与地理信息融合模块和动态视频GIS显示模块构成;城市中各个区域安装监控摄像头,视频采集Agent视频与监控摄像头连接,视频采集Agent通过以太网和视频服务器连接,Agent由用户安装于指定位置,服务器安装于监控机房中,GIS部署于视频服务器上;
视频图像投影变换模块:通过监控摄像头硬件信息判断摄像头所使用的通信协议与通信方式,使用与厂商相关的交互参数,从而获取到摄像头的实时视频图像;如果接入的监控摄像头在系统参数数据库中无视频投影参数,则将获取到的原始视频图像直接交给视频图像传输模块并传输给视频图像与地图配准模块,由视频图像与地图配准模块计算变换参数,如果有视频投影参数,则对采集到的视频图像使用视频投影参数进行投影变换,将变换之后的视频图像交由视频图像传输模块;
视频图像传输模块:通过视频图像投影变换模块获取原始视频图像或者变换后的视频图像,然后将视频图像采用H.264的编码中的Baseline profile档次对每一帧视频图像进行编码得到编码视频数据,将编码后的数据使用RTP协议数据包进行封装得到RTP数据包,对于原始视频图像编码封装后的RTP数据包直接发送给视频图像与地图配准模块,对于投影变换后的视频数据图像编码封装后的RTP数据包发送给视频投影与地理信息融合模块;
视频图像与地图配准模块:从视频图像传输模块得到采集的原始视频图像,对于原始视频图像,计算原始视频变换到地图的视频投影参数与投影区域范围参数,上述投影参数计算过程如下:从视频传输模块获取原始视频,从视频投影与地理信息融合模块获取地图信息,手工选取20对地图中标志物与视频中目标物的匹配点对,通过迭代最小化的方法求解视频投影变换矩阵并将采集设备不同角度采集的视频通过投影变换之后计算得到同一视角下,之后将计算得到的视频投影变换参数传送给Agent的视频图像投影变换模块;上述投影区域范围参数计算过程如下:从视频投影与地理信息融合模块获取当前视频对应的地图范围,让用户手工选取原始视频上需要投影在地图上的图形区域,对于用户选择的图形区域,采用约束三角剖分的方法进行求解投影区域,在服务器端的地图上选取要投影的区域之后,通过约束三角剖分将区域分成若干三角形,建立地图上图像像素点位置与原始视频像素的对应配准关系,然后将对应的配准关系给视频图像投影变换模块供其计算要传输的投影变换区域,或者供视频投影与地理信息融合模块将投影视频与地图融合;
视频投影与地理信息融合模块:从视频图像传输模块获取变换视频图像,之后将地图上要显示区域的每一路视频的当前帧取出,对于非重叠的区域直接将视频中的图像复制到地图之中,对于有重叠区域的图像根据当前像素距离交叠边界区域的距离确定线性关系进行加权融合,将融合之后的结果复制到地图中形成动态地图视频供动态视频GIS显示模块调用,从而形成全城域的动态GIS;
动态视频GIS显示模块,对于视频投影与地理信息融合模块融合之后动态视频地图,从视频图像与地图配准模块获取配准参数从而确定融合图像在地图上的位置,采用自适应多尺度的缩放金字塔方法实现视频图像与GIS系统中的同步缩放功能,对于10种不同分辨率的地图,建立10层的图像金字塔,第一层对应于最大分辨率的地图,第10层对应于最低分辨率的地图,以此建立对应关系从而完成视频GIS不同缩放级别的显示从而提供给用户使用。
所述视频图像投影变换模块具体实现过程如下:
(1)对于城市视频监控摄像头,通过摄像头硬件信息判断摄像头所使用的通信协议与通信方式,设置该模块使用与厂商相关的交互参数,从而获取到摄像头的实时视频图像;
(2)如果接入的视频监控摄像头在系统中无投影参数,则将获取到的原始视频图像直接交给视频图像传输模块传输给视频图像与地图配准模块,由视频图像与地图配准模块计算变换参数,否则转(3);
(3)对于有投影参数的视频监控摄像头则对采集到的视频图像使用投影参数进行投影变换,将变换之后的视频图像交由视频图像传输模块;
所述视频图像传输模块具体实现过程如下:
(1)对于从视频图像投影变换模块获取到的视频图像,采用H.264的编码中的Baselineprofile档次对每一帧视频图像进行编码得到编码视频流;
(2)对于编码之后视频流使用RTP协议数据包进行封包处理得到RTP协议数据包;
(3)将RTP协议数据包根据视频流的类别,如果是原始视频流则发送给视频图像与地图配准模块,如果是投影变换视频流则发送给视频投影与地理信息融合模块;
所述视频图像与地图配准模块具体实现过程如下:
(1)从视频图像传输模块获取到原始图像,然后从视频投影与地理信息融合模块获取原始图像所在区域的地图;
(2)判断用户操作为投影参数计算还是投影区域选择,如果是投影参数计算则转(3),如果是投影区域选择则转(4);
(3)手工选取20对地图中标志物与视频中目标物的匹配点对,通过迭代最小化的方法求解视频投影变换矩阵,将采集设备不同角度采集的视频通过投影变换之后计算得到同一视角下,转(5);
(4)手工从地图上选取需要投影的区域图形,图形为顶点数大于3的任意图形,对于同一个视频区域可以选择多个投影图形,通过约束三角剖分将区域分成若干三角形,建立地图上图像像素点位置与原始视频像素的对应关系,然后得到视频投影区域参数,转(6);
(5)将投影变换矩阵发送给视频图像投影变换模块;
(6)将视频投影区域参数发送给视频图像投影变换模块;
所述视频投影与地理信息融合模块具体实现过程如下:
(1)从GIS中获取当前区域当前分辨率级别的地图图像块,对于不同的摄像机都有固定的位置标注,直接从位置标注检索到地图区域;
(2)通过视频图像与地图配准模块获取到视频与地图的对应关系,将视频投影图像替换到地图图像块中的原有地图图像;
(3)判断地图区域是否有监控视频覆盖,对于有监控图像的区域则执行(4),对于无监控视频覆盖的图像,仍然显示为地图图像;
(4)将地图上要显示区域的每一路视频的当前帧取出,对每路图像块所在地图上的位置进行排序;
(5)判断各路视频之间是否存在重叠区域,如果不存在,转(6),如果存在转(7);
(6)对于非重叠的区域直接将视频中的图像复制到地图之中,完成融合过程;
(7)对于有重叠区域的图像根据当前像素距离交叠边界区域的距离确定线性关系进行加权融合,将融合之后的结果复制到地图中显示,完成融合过程;
所述动态视频GIS显示模块具体实现过程如下:
(1)首先采用自适应多尺度缩放金字塔实现视频GIS缩放,对于获取到的视频图像建立10层的图像金字塔,建立过程如下:
(a)设要得到的金字塔级数为G
i,则对于第G
i+1层图像中坐标为(i,j)的点的像素值的计算方式如下:
其中W(m,n)=W(m)*W(n)是长度为5的高斯卷积核,其中m,n为整型参数且-2≤m≤2,-2≤n≤2,对于任意整数r,W(r)定义为
其中a为参数,一般取0≤a≤1,这里取a=0.5;
(b)建立10层不同尺度的图像与10种不同地图的对应关系,最低等级金字塔对应与最高分辨率的地图融合,最高等级金字塔对应于最低分辨率的地图;
(2)用户在进行动态视频GIS使用缩放时,选择与地图分辨率相对应的视频使用视频投影与地理信息融合模块得到的融合后的视频图像进行缩放。
一种面向城域的视频地理信息方法,其特征在于实现步骤如下:
(1)对于城市中各个区域安装的监控摄像头,Agent中的视频图像投影变换模块会根据设备的类型与型号自行选定对应的数据获取与参数控制程序,Agent中的视频图像投影变换获取到不同格式与参数的视频数据之后,将原始数据统一编码为H.264数据格式,使用RTCP协议与服务器交互,并使用RTP协议将数据传输给服务器;
(2)服务器视频图像与地图配准模块接收到视频数据之后,通过部署于服务器上的GIS接口调取到视频所在区域的地图,视频图像与地图匹配模块将视频匹配到地图坐标上,之后将匹配参数传送给Agent中的视频图像投影变换模块,Agent的视频投影变换模块在接收到原始视频数据之后将原始图像进行投影变换计算,并将需要显示的区域图像裁剪编码之后发送给服务器中的视频投影与地理信息融合模块;
(3)服务器的视频投影与地理信息融合模块在收到原始视频流与变换视频流之后,首先将数据包按照一定格式重组,然后对这些数据包进行解码,解码之后视频图像与GIS融合模块将视频图像融合到地图上,最终通过动态视频GIS显示模块将全城域的视频GIS展现给用户。
本发明与现有技术相比的优点在于:
(1)本发明独立性好,部署方便,对于原有监控系统的兼容性强,无需对原有的监控系统再次安装,可以快速大规模应用。
(2)本发明通过获取GIS中地理信息,使用独创的方法将不同视角不同位置拍摄的视频通过视频投影变换到GIS中,将所有摄像头的视频图像整合到一张地图中,视角与坐标统一,方便用户直观的观察整个区域内物体的运动情况与运动轨迹。
(3)本发明能够根据用户的选择自适应的调整视频分辨率,与地图融合效果好,过渡流畅,从而支持面向城域大规模场景的实时动态GIS呈现。
(4)本发明的视频投影算法,复杂度低,能够实时运行,效率高,结果合理,综合考虑了各种因素的影响,经过实际验证能够同时将多摄像头的视频投影到一副地图,实时显示整块区域内的连续视频。
(5)本发明所述的视频采集Agent负责与视频采集设备通信,可以兼容不同设备,并且Agent可以运行在工控机或者PC上,一个Agent可以连接若干视频采集摄像头,将视频图像的一些计算放在Agent端进行,减少了服务器的计算负担,支持系统接入大规模视频采集摄像头。
(6)本发明的服务器能承受至少300路的视频输入。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步说明:
如图1所示,本发明面向城域的视频地理信息系统由视频投影变换模块、视频图像传输模块、视频图像与地图配准模块、视频投影与地理信息融合模块、动态视频GIS显示模块构成。
整个实现过程如下:
(1)对于城市视频监控摄像头,通过摄像头硬件信息判断摄像头所使用的通信协议与通信方式,设置该模块使用与厂商相关的交互参数,从而获取到摄像头的实时视频图像;如果接入的视频监控摄像头在系统中无投影参数,则将获取到的原始视频直接交给视频图像传输模块传输给视频图像与地图配准模块,由视频图像与地图配准模块计算变换参数,如果有投影参数,则对采集到的视频图像使用投影参数进行投影变换,将变换之后的视频图像交由视频图像传输模块;
(2)对视频图像投影变换模块输出的视频图像进行编码打包传输给服务器的视频图像与地图配准模块和视频投影与地理信息融合模块,通过视频图像投影变换模块获取原始视频或者变换后的视频,然后将视频数据采用H.264的编码格式编码,之后将编码后的数据使用RTP协议数据包进行封装得到RTP数据包,然后将RTP数据包发送给服务器,对于原始视频图像发送给视频图像与地图配准模块,对于投影变换后的视频数据图像发送给服务器的视频投影与地理信息融合模块;
(3)从视频图像传输模块得到采集的原始视频图像,对于原始视频,计算原始视频变换到地图的视频投影参数与投影区域范围参数,上述投影参数计算过程如下:从视频传输模块获取原始视频,从视频投影与地理信息融合模块获取地图信息,由用户(使用该系统进行全城视频监控的最终用户)手工选取20对地图中标志物与视频中目标物的匹配点对,通过迭代最小化的方法求解视频投影变换矩阵并将采集设备不同角度采集的视频通过投影变换之后计算得到同一视角下,之后将计算得到的视频投影变换参数传送给Agent的视频图像投影变换模块;上述投影区域范围参数计算过程如下:从视频投影与地理信息融合模块获取当前视频对应的地图范围,让用户手工选取原始视频上需要投影在地图上的图形区域,对于用户选择的图形区域,采用约束三角剖分的方法进行求解投影区域,在服务器端的地图上选取要投影的区域之后,通过约束三角剖分将区域分成若干三角形,建立地图上图像像素点位置与原始视频像素的对应配准关系,然后将对应的配准关系给视频图像投影变换模块供其计算要传输的投影变换区域,或者供视频投影与地理信息融合模块将投影视频与地图融合;
(4)从视频图像传输模块获取变换视频,之后将地图上要显示区域的每一路视频的当前帧取出,对于非重叠的区域直接将视频中的图像复制到地图之中,对于有重叠区域的图像根据当前像素距离交叠边界区域的距离确定线性关系进行加权融合,将融合之后的结果复制到地图中形成动态地图视频供动态视频GIS显示模块调用,从而形成全城域的动态GIS;
(5)对于视频投影与地理信息融合模块融合之后动态视频地图,从视频图像与地图配准模块获取配准参数从而确定融合图像在地图上的位置,之后采用自适应多尺度的缩放金字塔方法实现视频图像与GIS系统中的同步缩放功能,对于10种不同分辨率的地图,建立10层的图像金字塔,第一层对应于最大分辨率的地图,第10层对应于最低分辨率的地图,以此建立对应关系从而完成视频GIS不同缩放级别的显示从而提供给用户使用。
上述各模块的具体实现过程如下:
1.视频图像投影变换模块
该模块的实现过程如图2所示:
(1)对于城市视频监控摄像头,读取到摄像头的厂商与型号信息;
(2)用户根据提示的厂商与型号信息选择对应该厂商与该设备的不同的设备交互的DLL(动态链接库),从而使Agent获得跟设备通信与交互的方式;
(3)获取到摄像头的一帧图像;
(4)判断是否为第一帧图像,如果是,转(5),如果不是,转(7);
(5)从数据库中读取该Agent是否保存有投影参数,如果接入的视频监控摄像头在系统中无投影参数,则转(6),否则转(7);
(6)将获取到的原始视频直接交给视频图像传输模块传输给视频图像与地图配准模块,由视频图像与地图配准模块计算变换参数,转(7);
(7)对采集到的视频图像使用投影参数进行投影变换,具体方法为设原始视频图像中某点A的坐标值为(x,y),变换图像对应的点A'的坐标值为(x',y'),将两者其归一化为(x,y,1)、(x',y',1),对于变换参数为矩阵M,矩阵M为3×3的矩阵,则A'=A·M,则坐标A'的像素值即为A'·M-1位置处的像素值;
(8)转到(3),直至用户退出;
2.视频图像传输模块
该模块的实现过程如图3所示:
(1)读取一帧变换后的视频图像;
(2)判断变换后的视频图像尺寸是否符合要求,具体要求为图像区域宽度必须为8的倍数,高度必须为2的倍数,如果满足,则转(4),不满足,则转(3);
(3)图像宽度为width,高度为height,则如果图像块宽度不是8的倍数,使width=width/8*8+8,如果图像块高度不为2的倍数,使height=height+1;
(4)采用H.264的编码中的Baseline profile档次对每一帧视频图像进行编码得到编码视频包;
(5)判断编码之后的数据包大小是否超过1360字节,如果超过转(6),不超过转(7);
(6)数据包大小为N字节,则按一下规则对其拆分:将其分为N/1360个RTP数据包,表示求N除以1360的商,第一个数据包为前1360字节数据,第二个数据包为第1361字节到2720字节,以此类推,最后一个数据包大小为N-1360×(N/1360);
(7)发送RTP数据包给服务器,返回(1),直到用户退出;
3.视频图像与地图配准模块
该模块的实现过程如图4所示:
(1)从视频图像传输模块获取一帧图像;
(2)根据Agent的标注位置信息从GIS数据库中获取以标注位置点为中心1280×640大小的地图图像;
(3)判断用户操作为投影参数计算还是投影区域选择,如果是投影参数计算则转(4),如果是投影区域选择则转(6);
(4)用户(使用本视频地理信息系统的最终用户)手工选取20对地图中标志物与视频中目标物的匹配点对;
(5)通过迭代最小化的方法求解视频投影变换矩阵,将采集设备不同角度采集的视频通过投影变换之后计算得到同一视角下,转(7);
(6)手工从地图上选取一个需要投影的区域图形,图形为顶点数大于3的任意图形;
(7)对于同一个视频区域可以选择多个投影图形,判断用户是否需要继续选择不同的投影区域图形,如果需要,则转(6),不需要则转(8);
(8)以选择的图形的边为约束条件,通过约束三角剖分将区域分成若干三角形,建立地图上图像像素点位置与原始视频像素的对应关系,然后得到视频投影区域参数,转(9);
(9)将求得的参数发送给Agent;
4.视频投影与地理信息融合模块
该模块的实现过程如图5所示:
(1)不同的摄像机都有固定的位置标注,直接从位置标注检索到地图区域;
(2)根据当前用户选择的分辨率,从GIS中获取当前区域当前分辨率级别的地图图像块;
(3)判断当前地图范围内是否存在监控视频,如果存在,转(5),不存在转(4);
(4)不做任何改变,直接结束;
(5)从视频传输模块根据当前摄像机的位置标注去处地图范围内所有的摄像头采集的当前帧图像;
(6)对所有投影区域图像按照图像块左上角的坐标从小到大的顺序排序,首先按照横坐标x排序,如果x相等,则按照y从大到小的顺序排序;
(7)对于排好序的区域,从第1个到第n个(n为区域总个数),取出第i个与第i+1个区域(0≤i<n,且i为整数);
(8)对于两个区域,判断第一个区域的右边界的横坐标x值是否小于第二个区域左边界的横坐标x的值,如果满足,转(9),如果不满足转(11);
(9)判断第一个区域的上边界的纵坐标y是否大于第二个区域的下边界的纵坐标y1且小于上边界的纵坐标y2,或者第一个区域的下边界的纵坐标y小于第二个区域的上边界的纵坐标y1且大于下边界的纵坐标y2,如果满足条件,转(10),不满足转(11);
(10)对重叠区域根据当前像素距离交叠边界区域的距离确定线性关系进行加权融合,将融合之后的结果复制到地图中显示,完成融合过程;
(11)对于非重叠的区域直接将视频中的图像复制到地图之中,完成融合过程;
5.动态视频GIS显示模块
(1)采用自适应多尺度缩放金字塔实现视频GIS缩放,对于获取到的视频图像建立10层的图像金字塔,建立过程如下:
(a)设要得到的金字塔级数为G
i,则对于第G
i+1层图像中坐标为(i,j)的点的像素值的计算方式如下:
其中W(m,n)=W(m)*W(n)是长度为5的高斯卷积核,其中m,n为整型参数且-2≤m≤2,-2≤n≤2,对于任意整数r,W(r)定义为
其中a为参数,一般取0≤a≤1,这里取a=0.5;
(b)建立10层不同尺度的图像与10种不同地图的对应关系,最低等级金字塔对应与最高分辨率的地图融合,最高等级金字塔对应于最低分辨率的地图;
(2)用户在进行动态视频GIS使用缩放时,选择与地图分辨率相对应的视频使用视频投影与地理信息融合模块得到的融合后的视频图像,例如当前地图分辨率为1级,则选择1级视频图像金字塔进行融合,将融合后的结果展现给用户。
图6说明了该系统的部署方法,其中服务器为视频工作站,和以太网连接,在其桌面操作系统中运行服务器端视频接收、解码、视频与地图融合以及Agent的管理、视频的显示程序,将接收到的视频图像与地图信息进行匹配与投影参数设置,之后将投影后的地图显示。Agent端通过GPS方式或者自身内部设置位置信息实现定位,通过无线网络连接进无线接入点或者通过有线以太网连接的方式接入到异构网络中,进而与服务器进行通讯。服务器采用C++语言开发,可以运行在各类的桌面操作系统之中,同时,操作系统中需要部署GIS,并需要具有联网功能。Agent软件也为C++语言开发,可以安装在运行Windows系统的PC上或者其定制的智能开发板等嵌入式设备上,设备应带有通用网络功能。
在图7本发明的系统工作流程图中,服务器端与Agent都处于7x24运行的状态。Agent具体运行与服务器交互过程如下:
(1)Agent在启动之后,会向自身的数据库查询,看是否已经配置好参数,待参数配置好之后则将挂载在Agent上的设备都连接进来,之后向服务器注册上线信息;
(2)注册成功之后,Agent查询自身是否记录有图像投影变换参数和投影区域参数,如果有,则转(4),没有则转(3);
(3)Agent向服务器请求图像变换参数与视频数据的发送参数,并向服务器请求投影区域的范围参数;
(4)Agent向设备请求视频图像,以每秒25帧的速度获取原始视频,进行视频投影与图像裁剪;
(5)Agent对裁剪后的图像仍以每秒25帧的速度以H.264格式进行编码,然后将编码的数据使用RTP协议发送给服务器。
服务器运行与Agent的交互过程如下:
(1)服务器启动之后,首先从本地数据库中读取服务器的配置参数,包括自身IP地址,需要连接的Agent数目,需要投影显示的区域;
(2)根据需要投影显示的区域范围向GIS请求相应的地图信息;
(3)服务器等待Agent连接,如果有Agent连接进系统,建立一个单独的系统接收线程、解码线程与处理线程分别对接收到的数据包进行解包与重组、解码、处理;
(4)服务器查询数据库各个Agent的投影参数与投影区域,如果存在转(6),如果不存在,转(5);
(5)对投影参数与投影区域进行设置并存入配置数据库;
(6)将视频图像数据与地图数据以及投影区域参数将每个Agent的视频图像融合到一副地图中,形成统一视角下的整幅地图的实时视频地图并显示,并且视频可以随着地图的缩放进行流畅地缩放调整。
在图8本发明的地图与视频中位置配准界面与区域选择界面,配准过程如下:
(1)判断为投影参数计算还是投影区域选择,如果为投影参数计算,则转到(2),如果为投影区域选择转到(3);
(2)计算投影参数需要选择需要在两个图中选取20对对应点,首先在左图实际监控图像中选择一个标志点,之后在右图地图中选择对应的标志点,左右两图中的点必须一一对应,图中红色的点表示已经选择的两图中匹配的位置点,当选择完成之后,点击标定按钮投影参数计算完成;
(3)投影区域选择只需要在地图上选择需要投影的范围,在投影参数计算的基础上,已知整幅图像投影到地图之后所在的范围,所以在地图上必须选择在原图投影范围之内,图形的选择必须按照顺时针的方向选择,每个图像区域图形点数不少于3个,每选择一个图像区域之后,点击添加图形即可将任意形状图形添加进投影数据库,点击完成按钮完成投影区域选择。
图9为主流地理信息与监控结合的软件给出的视频监控结果,图10为本发明中使用自主设计的视频地理信息系统呈现的在北航安装的4个摄像头与地理信息融合之后的系统实时运行结果,通过图9和图10可以对比看出采用了本发明中重新计算了视频与地图信息的融合之后的实时地图运行效果。本系统对于有交叠的视频区域则进行图像融合处理,无交叠的区域则显示地图,可以看到结果将摄像头的角度进行了矫正,将视野范围准确的投影到地图,形成了一个动态的视频GIS。
总之,本发明面向智能视频监控领域,结合传统城市视频监控方法,将整个城域的视频监控投影到GIS中,统一了独立安装摄像头的角度与坐标系,形成动态GIS,实现在一张地图上实现同时观看大量连续监控的功能,进而对城市管理者以及决策者提供直观的全城运行状态和目标连续搜索跟踪服务。本发明系统独立,数据来源于城市中视频监控摄像头,实时性高,支持大量摄像头同时接入系统,并且提供同一地图下大量摄像机的连续监控,可成为供城市公安局或其他区域管理者使用的管理监视工具,为监控整个城市的运行状态与处理突发事件提供服务。
本发明说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。