一种自动消防炮基于图像识别定位算法的制作方法

文档序号:29403672发布日期:2022-03-26 10:05阅读:263来源:国知局
一种自动消防炮基于图像识别定位算法的制作方法

1.本发明涉及计算机算法领域,尤其涉及一种自动消防炮基于图像识别定位算法。


背景技术:

2.目前市场上采用红外能量定位的自动跟踪定位射流灭火装置,均存在不能准确探测和定位灭火装置正下方火源的缺陷。这主要是由于这种装置中大多采用的是红外能量热释电方式进行定位探测,但由于近地点火焰能量过强,造成红外热释电器件过饱和,无法对火焰能量准确定位。


技术实现要素:

3.基于背景技术存在的技术问题,本发明提出了一种自动消防炮基于图像识别定位算法。
4.本发明采用的技术方案是:
5.一种自动消防炮基于图像识别定位算法,包括以下步骤:
6.(1)正下方目标定位:
7.(1.1)火焰不动点检测:在地面上放置一个发光源,控制自动消防炮的小炮水平旋转一周,即可计算出不动点的坐标;
8.(1.2)正下方火焰定位:正下方火焰定位为摄像机垂直角度为0度时的目标定位,主要分为两个步骤:
9.首先为水平定位,将目标定位至图像中的垂直中心线上,设定α为正下方火焰定位的水平旋转角度,r为目标距离不动点的长度,由于摄像机在旋转时,图像中的目标均为绕不动点逆时针旋转,并且目标与不动点的距离始终不变,通过目标和不动点坐标可以计算水平定位角度α;
10.水平定位成功后,计算目标点距离图像中心点的垂直距离l,通过摄像机的垂直视场角和l可以计算得出垂直定位角度β;
11.(2)远距离目标定位
12.(2.1)远距离定位方式1:
13.不考虑图像中的畸变,并且假设真实物理坐标与图像中的投影点为线性关系;摄像机垂直角度为α时摄像机在地面上的视场范围实际为一梯形,梯形的高度h即为图像的垂直视场,梯形的上底a和下底b分别为近地点和远地点的水平视场宽度:
14.h=h*(tan(α+camera.v/2)-tan(α-camera.v/2))
15.a=2*h*tan(camera.h/2)/cos(α-camera.v/2)
16.b=2*h*tan(camera.h/2)/cos(α+camera.v/2)
17.其中h为摄像机高度,camera.v为摄像机垂直视场角,camera.h为摄像机水平视场角;当垂直视场角度α较小时,为了方便计算,这里假设摄像机的水平视场宽度为线性变化,即取
18.a=b=2*h*tan(camera.h/2);
19.(2.2)远距离定位方式2
20.当垂直视场角度α逐渐增加时,如果继续采用方式1进行定位,则水平方向上的误差将会越来越大,因此引入第二种定位方式:引入视场截面,即与摄像机光轴相垂直的理想投影成像面,该视场截面在地面上的投影为梯形,梯形为实际的视场范围;
21.三种种坐标系解释:
22.物理坐标系oxy:以小炮水平转动轴与地面交点为原心,在地面上顺着视场远离的方向为纵坐标y,向右为x坐标;
23.视场截面坐标系:以图像中心点在截面上的投影为原点,面向视场轴方向,向右为横坐标,向上为纵坐标;
24.图像坐标系:向右为横坐标正方向,向上为纵坐标正方向;
25.目标定位,是指对图像中的任意一点将其移动到图像的中心点所需运动的水平和垂直角度;如果已知目标坐标为(px,py),则需要首先将其转换到物理坐标系中,通过物理坐标计算与图像中心投影点的定位角度;
26.现假设图像中一点(px,py)在视场截面坐标系的坐标为(mx,my):
[0027][0028][0029][0030]
点(mx,my)在地面上的投影坐标为(rx,ry):
[0031][0032][0033]
计算水平和垂直定位角度分别为:
[0034]
angle.h=atan(rx/ry)
[0035][0036]
(3)射流修正
[0037]
由于摄像机和炮管的出水口并不在同一个位置,在水平和垂直两个方向均存在偏差,因此需要水平和垂直两个方向的修正:
[0038]
(3.1)水平修正
[0039]
设定位成功后,目标已处于图像的中心点处,当前炮管角度为α,设摄像机光轴与炮管出水口的水平夹角为θ,物体实际位置与实际射流情况之间需要修正的角度为β;
[0040]
水平修正角度为:
[0041]
当炮管角度α》0
°
时,l=tan(α)
[0042]
当α=0
°
时:
[0043]
其中,|δx|、|δy|分别为目标点距离图像中心点的水平偏移量和垂直偏移量;
[0044]
(3.2)垂直修正
[0045]
射流垂直修正为通过实验测量值拟合所得,h为安装高度,α为炮管垂直角度:
[0046]
δα=p0
·
h+p1
·
α2+p2
·
α+p3
[0047]
(p0=0.2519,p1=0.0007361,p2=-0.03008,p3=-2.02)。
[0048]
摄像机光轴与炮管出水口水平夹角θ测量方式为:
[0049]
以下公式为根据大量实地验证所拟合的经验公式,式中的axis.x为不动点横坐标:
[0050]
θ=-0.0008
·
x2+0.08
·
x+0.026
[0051]
x=axis.x-img.w/2。
[0052]
本发明的优点是:
[0053]
1.多目标定位策略
[0054]
本发明算法采用了一种基于目标位置信息的策略,随着摄像机的旋转,目标在图像中也在移动,但其距离不动点的距离基本不变,同时目标在定位接近成功时是否超出视场范围也是可以预测的,基于以上思想,在多目标定位中加入了目标选取策略;
[0055]
2.正下方目标融合
[0056]
算法中添加了目标融合模块,能够实现对这种火灾的准确定位。
附图说明
[0057]
图1为不动点检测示意图。
[0058]
图2为正下方火焰定位示意图。
[0059]
图3为目标垂直定位角度示意图。
[0060]
图4(a)为远距离图像定位方式1物理视野范围示意图。
[0061]
图4(b)为远距离图像定位方式1地面投影示意图。
[0062]
图5为远距离定位方式2的物理坐标系。
[0063]
图6为炮口截面示意图(无误差)。
[0064]
图7为射流水平修正示意图。
具体实施方式
[0065]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0066]
实施例1。
[0067]
一种自动消防炮基于图像识别定位算法,包括以下步骤:
[0068]
1正下方目标定位
[0069]
1.1不动点检测
[0070]
由于炮管在水平旋转时(假设定位目标始终在图像上),目标在图像上的投影并非围绕图像中心点在运动,摄像机组件及炮管出水口均围绕小炮旋转轴在运动,而该轴在地面上会有相应的投影点,该投影点在图像上即为不动点,摄像机在旋转时,所有的目标均围绕该点在做旋转运动,通过在地面上放置一个发光源(例如光截面发射器),然后控制小炮水平旋转一周,即可计算出不动点的坐标,如图1中的圆心所示。
[0071]
1.2正下方定位
[0072]
正下方火焰定位为摄像机垂直角度为0度时的目标定位,主要分为两个步骤,首先为水平定位,将目标定位至图像中的垂直中心线上。图2中的α为正下方火焰定位的水平旋转角度,上方点为不动点,下方点为目标。r为目标距离不动点的长度,由于摄像机在旋转时,图像中的目标均为绕不动点逆时针旋转,并且目标与不动点的距离(r)始终不变。通过目标和不动点坐标可以计算水平定位角度α。
[0073]
水平定位成功后,计算目标点距离图像中心点的垂直距离,如图2中的l。图3为进行垂直定位时的物理坐标,通过摄像机的垂直视场角和l可以计算得出垂直定位角度β。
[0074]
2远距离目标定位
[0075]
远距离目标定位为当摄像机(炮管)俯仰角度不为0度时,对图像中的目标进行定位。远距离目标定位不同于正下方,由于存在俯仰角度,并且随着俯仰角度的增加,图像中所能观察到的物理范围也逐渐扩大。在摄像机成像模型中最简单的为线性模型,或称针孔模型(pin-hole model)。当计算精度要求较高,尤其是当摄像机的镜头是广角镜头时,线性模型不能准确的描述摄像机的成像几何关系,所以要用非线性模型。在实际系统中,需要经常改变摄像机的位置(安装位置、高度等)或镜头光圈,而在每次调整后都需要对摄像机进行逐个标定,而这种做法是不现实的。综上所述,采用非线性模型复杂并且不现实,采用单一的线性模型又不能满足定位的精度,因此采用一种逐步逼近定位的方式来计算每次定位角度。随着目标向图像中心的移动,其畸变量逐步接近0,因此采用线性模型所计算的定位误差也逐步减小,最终可以达到一种满意的结果。
[0076]
2.1远距离定位方式1
[0077]
该方式不考虑图像中的畸变,并且假设真实物理坐标与图像中的投影点为线性关系。摄像机垂直角度为α时的物理视野范围如图4(a)所示,摄像机在地面上的视场范围实际为一梯形,如图4(b)所示。梯形的高度即为图像的垂直视场。梯形的上底和下底分别为近地点和远地点的水平视场宽度。
[0078]
h=h*(tan(α+camera.v/2)-tan(α-camera.v/2))
[0079]
a=2*h*tan(camera.h/2)/cos(α-camera.v/2)
[0080]
b=2*h*tan(camera.h/2)/cos(α+camera.v/2)
[0081]
其中h为摄像机高度,camera.v为摄像机垂直视场角,camera.h为摄像机水平视场角。当垂直视场角度α较小时,为了方便计算,这里假设摄像机的水平视场宽度为线性变化,即取
[0082]
a=b=2*h*tan(camera.h/2)。
[0083]
2.2远距离定位方式2
[0084]
当垂直视场角度α逐渐增加时,如果继续采用方式1进行定位,则水平方向上的误差将会越来越大,因此引入第二种定位方式。图5为该定位方式中所使用的坐标系,这里引入视场截面,即与摄像机光轴相垂直的理想投影成像面。该视场截面在地面上的投影,即图中的梯形为实际的视场范围。
[0085]
几种坐标系解释:
[0086]
物理坐标系oxy:以小炮水平转动轴与地面交点为原心,在地面上顺着视场远离的方向为纵坐标,向右为x坐标;
[0087]
视场截面坐标系:以图像中心点在截面上的投影为原点,面向视场轴方向,向右为横坐标,向上为纵坐标。
[0088]
图像坐标系:如图5中左上所示,向右为横坐标正方向,向上为纵坐标正方向。
[0089]
这里所说的目标定位,是指对图像中的任意一点将其移动到图像的中心点所需运动的水平和垂直角度。如果已知目标坐标为(px,py),则需要首先将其转换到物理坐标系中,通过物理坐标计算与图像中心投影点的定位角度。
[0090]
现假设图像中一点(px,py)在视场截面坐标系的坐标为(mx,my):
[0091][0092][0093][0094]
点(mx,my)在地面上的投影坐标为(rx,ry):
[0095][0096][0097]
计算水平和垂直定位角度分别为:
[0098]
angle.h=atan(rx/ry)
[0099][0100]
3射流修正
[0101]
由于摄像机和炮管的出水口并不在同一个位置,在水平和垂直两个方向均存在偏差。图6为炮管的截面示意图,摄像机位于出水口的下方,如果摄像机的光轴与出水口中心线在同一垂直线上,则仅需要垂直方向的修正,但实际上摄像机与炮管出水口还存在水平方向的偏差,因此需要水平和垂直两个方向的修正。
[0102]
3.1水平修正
[0103]
设定位成功后,目标已处于图像的中心点处,当前炮管角度为α。设摄像机光轴与炮管出水口的水平夹角为θ,如图7所示,左边线在地面上的落点表示物体实际位置,右边线
表示实际射流情况,两者之间需要修正的角度为β。
[0104]
水平修正角度为:
[0105]
当炮管角度α》0
°
时,l=tan(α)
[0106]
当α=0
°
时:
[0107]
其中,|δx|、|δy|分别为目标点距离图像中心点的水平偏移量和垂直偏移量。
[0108]
·
摄像机光轴与炮管出水口水平夹角θ测量
[0109]
该角度可采用以上公式,通过测量射流偏差计算得出,但由于射流落水点的范围较大,很难精确到某一点处,因此给实地测量带来了一定困难,这里提供一种简便的估算值。以下公式为根据大量实地验证所拟合的经验公式,式中的axis.x为不动点横坐标。
[0110]
θ=-0.0008
·
x2+0.08
·
x+0.026
[0111]
x=axis.x-img.w/2。
[0112]
3.2垂直修正
[0113]
射流垂直修正为通过实验测量值拟合所得,h为安装高度,α为炮管垂直角度。
[0114]
δα=p0
·
h+p1
·
α2+p2
·
α+p3
[0115]
(p0=0.2519,p1=0.0007361,p2=-0.03008,p3=-2.02)。
[0116]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1