智慧森林中火点视频图像自动定位算法1)

2018-07-20 12:14李高和张艳莉
东北林业大学学报 2018年7期
关键词:火点光轴经纬度

李高和 张艳莉

(西安石油大学,西安,710065) (陕西师范大学)

全世界每年发生森林火灾累计达20万次左右,过火面积超过6.4×106hm2,因此,森林火灾已经成为森林资源减少的主要原因之一。森林火灾发生的不确定性,火点位置的随机性和不易监控的特点。火灾发生后,起火迅速,火势蔓延较快,火势蔓延越久越难扑救,极易导致重大人员伤亡和财产损失[1],因此,火点位置的及时定位对于森林火灾的补救至关重要。发现和定位起火点使用的方法一般有卫星遥感、飞机和无人机等空中监控,以及人工值守、瞭望塔或云台等地面监控。卫星遥感的特点是监控范围广,定位精度高,缺点是成本高,实时性差;飞机和无人机的虽然定位准确,但成本高、实时性和值守性差;人工值守的特点是需要的人员较多,劳动强度大,定位精度较低,不能及时获得火灾现场数据。瞭望塔自动监控的特点是定位准确,成本较低,且符合现阶段的技术发展水平。瞭望塔自动监控所采用的技术有传感器、雷达、红外和数字视频监控等监测定位方法,其中数字视频监控技术普及率高,价格也便宜[2]。

1958年,首次提出了计算机化地形要素信息的数字表达即数字地面模型(DTM)[3],它是利用一个坐标系统中大量选择已知的坐标点(X,Y,Z)对连续地面的一个简单的统计表示。地面的属性是指某区域的高程、人口、降水量、气温、气压等的分布状况,当数字地面模型的地面特性为高程时,称为DEM(数字高程模型)。DEM用一组有序数值阵列对地面高程的空间分布进行离散数字表达和模拟,能够直观地反映地球表面地形的连续起伏变化。目前,德国的Fire-Watch、加拿大的ForestWatch、法国的UraFire、南非的Fire-Hawk、英国的FireVu、克罗地亚的iForestFire等森林防火系统都采用DEM。本文提出的火点定位方法是依据DEM模型的数字视频监控系统算法。

着火点位置的确定可分为单点、双点和多点定位方法[4]。基于数字视频监控系统的单点定位算法比较繁琐复杂,而且经纬度误差范围大[5]。因此,为了提高单点定位的精度,以智慧森林中数字视频监控系统为平台,运用摄像机镜头光轴在空间的平移方法,在平面像素坐标与立体空间坐标之间建立映射,借助DEM模型,判断地形剖面上的火点位置。

1 算法原理

单点定位的基本思想是将瞭望塔上单目摄像机光轴视为沿视野中心延伸的射线,当火点位于图像中心(默认为主像点位置)时,射线与山体的第一个交点是需要定位的火点[4]。算法的第一步是计算火点位于图像中心时,对应的实际坐标位置;第二步是计算火点位于图像任意像素点时,对应的实际坐标位置。

1.1 火点图像位于正中心位置

由图1所示,单点定位中,摄像机光轴与水平面夹角为β,即为数字云台(摄像机光轴)当前俯仰角。摄像机光轴在水平方向上的投影与Y轴(正北方向)夹角为α,即为数字云台当前的旋转角。

图1 根据旋转角和俯仰角计算火点的位置坐标

如果火点位于图像正中心,则火点的旋转角和俯仰角就是摄像机光轴的旋转角和俯仰角。根据已知摄像头的旋转角和俯仰角,求解火点的地理坐标位置,即火点的经度和纬度。

首先,假设大地坐标和直角坐标进行重叠,标定正北方向(OY轴)为数字云台起始零度角,通过云台的旋转角确定火点发生的方向。其次,通过俯仰角确定火点的具体位置。线段AB是瞭望塔高度,OA是山高,F是假想火点,D是F点在坐标系X-Y平面上的投影。只需求解出线段OD的长度即可获得火点距离瞭望塔的投影距离,从而得到火点的经纬度信息。

本系统采用渐进穷举法与二分法结合的方法求解F点的坐标。通过旋转角α确定火点的具体方位,俯仰角β确定火点距云台的水平距离。取点O、B、C、D构成的平面如图1所示。在本系统中,前端视频监控的红外摄像头为定焦镜头,可视范围10 km。根据实际应用情况,本文采用的定位算法从坐标原点O(即瞭望塔在地面的投影,平面XOY与海平面重叠)开始,每隔1 000 m(步长)取射线OG上一点M,求射线上M点的地面高程MH和β角对边EN之和。然后用瞭望塔的坐标高度OB(等于MN)减去该和值,得到EH的值。可以看出,随着射线OG上M点向前每隔1 000 m的不断取点求值,对应EH的数值会逐渐趋近于零(因为地形变化无规则,高程不一定是单方向趋近于零)。当计算出的EH数值小于零值时,说明选点M超过火点F在OG上的投影点D,这时退回上一次的选点,开始每隔100 m继续向前取点计算,直到再次计算出的EH数值小于零为止,这时得到的OM数值误差在100 m范围内。为了更加精确,采用二分法确定火点位置D。再求解D点对应的坐标值:x=OD×sinα,y=OD×cosα。

最后,根据O点的经纬度和D点坐标,计算出D点的经纬度坐标。

通过M点逐渐前移,直到逼近D点的每个高程MH的数值,可以通过求出M点的直角坐标位置,再根据O点的经纬度,计算出对应该点的经纬度。

1.2 火点图像位于任意像素点位置

如图2所示,在平面像素坐标与立体空间坐标之间建立映射,图像实际宽度为w,像素坐标为wx个像素;图像实际高度为h,像素坐标为hx个像素。图像左上角为零点坐标位置,水平方向为x像素坐标,垂直方向为y像素坐标。假设火点图像位于P(x,y)像素点,摄像机的水平视场角为θw,垂直视场角为θh,定焦摄像头焦距为f。如图3所示,根据定焦摄像机成像原理[6],在直角三角形BOD中,可以计算出图像实际高度。

OB=OD×tan(θh/2);h/2=f×tan(θh/2);

h=2×f×tan(θh/2)。

图2 火点图像P(x,y)位于像素坐标任意位置

图3 定焦摄像机成像原理

在图3中,OA/OB的实际比值等于它们的像素比值,即:OA/OB=(hx/2-y)/(hx/2);OA/(h/2)=(hx-2×y)/hx;OA=h×(hx-2×y)/(2×hx)。

摄像机光轴沿垂直方向如果要调整到与火点同一水平位置时,需要调整的角度为Δy。在直角三角形AOD中:tan(Δy)=OA/OD;tan(Δy)=h×(hx-2y)/(2f×hx)/f=h×(hx-2y)/(2f2×hx)。

再通过求反三角函数即可获得Δy角度数值,Δy即为火点垂直调整的角度数。如果火点像我们假设的一样位于中心点的左上方,则火点俯仰角应该调整为β-Δy。如果火点位于图像中心点的右上方、左下方、右下方,可以做对应的处理。区别在于火点位于图像中心水平线EF(见图2)以上时,调整角度是减小;而火点位于图像中心水平线EF以下时,调整角度是增加,既β+Δy。

同理,可以求得摄像机光轴沿水平方向旋转到P点的角度数为:tan(Φ)=w×(wx-2×x)/(2×f2×wx)。这里使用了Φ而不是Δx表示角度,因为这里获得的Φ不是水平旋转角需要调整的角度,通过计算得到水平旋转角需要调整的角度Δx。

图4 火点沿垂直方向调整到图像中心水平线的位置

如果CD//OM,F点是实际火点,则FC⊥CD,FC⊥BC,即FC垂直于过C点的任何线段,也就是说FC垂直于平面BCD。可以看出,调整后的俯仰角为β-Δy。

根据火点图像位于正中心位置的计算,C点的投影M距离O点的距离OM,以及获得C点的高程CM。在直角三角形BCD和平行四边形ODCM中:CD=OM,BC=CD/cos(β-Δy)。

在直角三角形BCF中,CF=BC×tan(φ)=CD/

cos(β-Δy)×tan(Φ)。

在直角三角形CDF中,tanΦ=CF/CD=(CD/cos(β-Δy)×tan(Φ))/CD=tan(Φ)/cos(β-Δy),即得tan(ΔX)=tan(Φ)/cos(β-Δy)。求解反三角函数,可以得到ΔX的度数。

同理,如果火点像位于中心点的左上方,则火点水平旋转角应该调整为α-ΔX。如图2所示,如果火点位于图像中心点的右上方、左下方、右下方,可以做相应的处理。区别在于火点位于图像中心垂直线BC左边时,调整角度是减小;而火点位于中心垂直线BC右边时,调整角度是增加(α+ΔX)。

根据火点P需要调整的角度Δx和Δy,即可计算出火点图像位于图像任意点时的经纬度数值[6]。

如图1所示,不管火点图像位于正中心,还是位于其他图像位置,通过已知O点和火点F的经纬度,计算出OD的距离,并通过F的经度纬度查阅地图数据得到F点的高程DF。在直角三角形BFJ中,tan(γ)=BJ/FJ=(OB-OJ)/OD=(OB-DF)/OD,tan(β)=(OB-DF)/OD,再通过反三角函数计算得到β,求得俯仰角。

已知O点和D点的经纬度,取经度相等,都等于O点的经度,即OY轴(正北),就可以通过已知两点经纬度数值计算出D点在OY轴上的坐标长度OV。同理,再取纬度相等,都等于O点的纬度,即OX轴,可以计算出D点在OX轴坐标长度OW和OV。

在直角三角形ODV中,tan(α)=DV/OV=OW/OV,通过反三角函数求得α。

2 算法编程实现和测试结果

选择VC++2010编程实现算法,项目甲方提供数据为:瞭望塔经度117.421 123°,瞭望塔纬度26.910 223°,山顶高程为564 m,塔高为31.2 m。

用提供的旋转角和俯仰角计算出火点坐标的经纬度,通过计算出的经纬度重新验证旋转角和俯仰角。甲方提供的11组数据测试的结果见表1。

表1 甲方提供的11组数据测试结果

注:表中的火点都不在图像中心。

利用谷哥地图在陕西乾县乾陵附近选择实际的观测点,瞭望塔经度为108.202 543 258 7°,瞭望塔纬度为34.586 796 211 71°,山顶高程为859.19 m,塔高为31.2 m。

用Google地图上实际的经纬度坐标计算出摄像头的旋转角和俯仰角,通过计算出的旋转角和俯仰角重新验证经纬度坐标。甲方提供的3组数据和Google地图上选择的10组数据的测试结果见表2。

表2 甲方提供的3组数据和Google地图上的10组实际数据的测试结果

注:表中的火点都位于图像中心。

3 算法测试结果比较

由表3可知,本文算法计算出的旋转角误差和俯仰角误差明显优于参考文献[1];经度误差和纬度误差优于参考文献[3]的第一批数据,较好于参考文献[3]的第二批数据结果;距离误差略高于参考文献[1]的计算结果。本文没有对所测试的数据进行筛选,且所有数据可以重复计算,算法计算时间0.02 ms左右。

表3 三种算法测试结果比较

本文森林火点定位算法的特点是摒弃掉原来一般算法中经常使用的参考视窗,简化了算法,降低了算法的复杂度,减少了中间计算环节,避免了多次计算的累积误差,提高了计算的精度,压缩了程序运行时间。使用不同地区的40多组数据进行测试,计算出的火点位置误差范围在12~95 m,平均误差为48 m。

猜你喜欢
火点光轴经纬度
非平行光轴三维立体检测技术在毫山峪隧道中的应用
亚像元火点对红外预警卫星的辐射干扰特性
光轴的形态和应用
人身上有5个祛火点
基于经纬度范围的多点任务打包算法
点烟颂
自制中学实验操作型经纬测量仪
江苏省海门市如何实现连续4年秸秆焚烧“零火点”?
澳洲位移大,需调经纬度
多视场电视观瞄具的光轴调校技术