一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种气体浓度热力图的构建方法与流程

2021-12-15 00:58:00 来源:中国专利 TAG:


1.本发明涉及一种气体浓度热力图的构建方法,属于定位建图技术领域。


背景技术:

2.热力图是一种以高亮的形式将某些具体的数据展示出来,借助热力图可以直观地看到数据的大小、变化以及分布情况,目前主要应用有温度热力图和人流量热力图等。比如天气预报中展示的温度热力图,可以直观地看出不同地区的气温状况。以及人流量热力图,可以直观地看出某一场景内的人流量大小。由此可见,热力图相比较于传统数据具有很强的直观优势。
3.传统的气体浓度检测都是以固定式装置进行定点检测,并且将检测结果用数据的形式或者波形图的形式显示的,普通数字数据无法记录气体浓度变化的情况,波形图虽能记录历史的气体浓度变化情况,但单个波形图无法给出不同区域的气体浓度信息。所以检测的结果不够直观,分析判断起来不够迅速。将热力图应用到气体浓度监测上可以弥补上述的缺点,利用slam技术生成平面地图、利用气体浓度传感器检测气体浓度,将地图和浓度数据进行结合,生成气体浓度热力地图。在气体浓度热力地图上,可以很直观地观察到地图上不同地方的气体浓度大小,假设一旦有危险或易燃易爆气体发生泄漏,在热力地图上不仅可以很快被发现泄漏区域在什么位置,而且还可以寻找到最近的安全区域,指挥周围人员撤离,并将泄漏区域进行封闭抢修。


技术实现要素:

4.本发明的目的在于提供一种气体浓度热力图的构建方法,以解决现有气体浓度监测方式检测的结果不够直观,分析判断起来不够迅速的缺陷。
5.一种气体浓度热力图的构建方法,所述方法包括:
6.获取平面地图作为浓度热力地图的背景图;
7.对平面地图进行定位实时获取当前位置坐标信息,并同时实时获取气体浓度数据;
8.将气体浓度数据和坐标信息对齐得到带有位置信息的浓度信息;
9.通过带有位置信息的浓度信息在地图上的对应位置生成不同程度和大小的二维高斯核;
10.利用气体浓度数据附带的坐标点作为中心坐标点,将浓度数据乘以二维高斯核内的每个元素,填充到周围的坐标中;
11.通过不同颜色标记不同浓度大小,形成一幅热力图,再与背景地图叠加起来生成一幅气体浓度热力地图。
12.进一步地,平面地图的获取方法包括如下:
13.通过激光雷达生成pgm格式的地图;将pgm格式的图片转换为png格式图片作为平面地图。
14.进一步地,气体浓度数据通过气体浓度传感器获取。
15.进一步地,相对于像素坐标系位置坐标信息的获取方法包括:
16.首先通过获取地图的yaml文件中含有的坐标平移转换矩阵信息,即地图坐标系相对于像素坐标系的xy轴偏移量x1,y1;通过m/z就可以将地图坐标系的单位是转换为pt,将相对于地图坐标系的位置转化到相对于像素坐标系的位置上;
17.设tf查询到此刻坐标是x2、y2,那么像素坐标如下:
[0018][0019]
进一步地,获取浓度数据的方法包括:
[0020]
在一个小周期内采样i次气体浓度值,得:
[0021]
{c
i
}1≤i≤20
[0022]
对浓度值进行快速排序,取出中位数,得:
[0023]
c
i
=mid{c
i
}
[0024]
每个小周期内的数据经过上述处理后都存入同一个队列中,得:
[0025]
{c
i
}1≤i≤20
[0026]
当队列内的数据个数有20个的时候,即经过一个100ms的大周期时,再次对这个队列进行排序,求取中位值,得到稳定的气体浓度值:
[0027]
c=mid{c
i
}。
[0028]
进一步地,气体浓度数据和坐标信息对齐得到带有位置信息的浓度信息方法包括:
[0029]
将位置信息和浓度信息构成一个数据结构保存到txt文件中,每个数据之间以逗号分隔;表达式为:
[0030]
[n,x
n
,y
n
,c
n
]
[0031]
其中,第一个数据为采集数据的序列号,第二个为坐标的x轴数据,第三个为坐标的y轴数据,第四个为浓度数据。
[0032]
进一步地,二维高斯核生产方法包括:
[0033]
以每个浓度数据附带的坐标点作为中心坐标点,也称作点源,根据浓度大小不同,生成不同程度和大小的二维高斯核,二维高斯核的公式如下:
[0034][0035]
其中,σ为标准差,σ越大,高斯曲线越平缓,中心点越低,类似于点源的气体浓度低;σ越小,高斯曲线越陡峭,中心点越高,类似于点源的气体浓度高;定义:n代表二维高斯核的横纵尺寸大小;
[0036]
n的大小选取和浓度c的大小成正比,即:
[0037]
n=kc
[0038]
其中,k为常数;
[0039]
利用opencv库的getgaussiankerne1函数生成一维高斯核,一维高斯核的公式如
下:
[0040][0041]
先生成两个一维高斯核g(x)、g(y),得到的一维高斯核是一个行向量,再将一个行向量和另一个向量的转置进行叉乘得到一个矩阵,即为要得到的二维高斯核:
[0042]
g(x,y)=g(x)
×
g(y)
t

[0043]
进一步地,生成的二维高斯核的具体表达方式如下:
[0044][0045]
其中,
[0046]
g
xy
表示二维高斯核的中心元素;
[0047]
n表示二维高斯核的尺寸大小;
[0048][0049]
利用浓度数据乘以二维高斯核内的每个元素,将得到处理后的高斯核的每个元素值填充到地图上的每个像素点上,高斯核的中心元素对应地图的点源坐标:
[0050][0051]
其中,a为常数,进行填充时,设
[0052]
浓度数据c1附带的坐标点为a=(x1,y1),
[0053]
浓度数据c2附带的坐标点为b=(x2,y2),
[0054]
如果点a和点b所生的二维高斯核填充到地图上后周围有重叠区域,则重叠区域的每个点采取叠加策略,即将相同坐标点上的气体浓度数据相加。
[0055]
进一步地,所述方法还包括:利用opencv库的伪彩色applycolormap函数将图片中像素点的数值变换成对应不同的色彩,将包含简单数值的原图处理成拥有彩色数据的热力图,使用opencv库中的colormap_jet色度表,当气体浓度越小,则像素数据越小,色彩会偏蓝色;当气体浓度越大,则像素数据越大,色彩会偏红色,达到气体浓度可视化;
[0056]
利用opencv库的addweighted函数,将拥有彩色数据的热力图与背景地图进行叠加,设置合理的透明度,将两幅图片的信息重叠起来,生成了气体浓度热力地图。
[0057]
与现有技术相比,本发明所达到的有益效果:本发明结合slam技术和气体检测技术自动生成一幅气体浓度热力图,解决了以往传统的数据形式无法直观看出气体浓度数据变化情况的缺点,以及波形图形式的无法同时直观地观察不同区域的气体浓度分布状况的缺点。气体浓度热力图上不仅包含有气体浓度信息,还包含有气体浓度变化信息以及区域气体浓度信息,比传统的数据和波形图更加直观、可靠。
附图说明
[0058]
图1示出了本发明实施例提出的一种获取浓度的流程图;
[0059]
图2示出了本发明实施例提出的一种获取位置坐标信息的流程图;
[0060]
图3示出了本发明实施例提出的一种浓度热力地图生成方法的总体流程图;
[0061]
图4示出了本发明实施例提出的一种浓度热力地图生成装置的组合框图。
具体实施方式
[0062]
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
[0063]
本发明的实施例提供一种气体浓度热力地图的构建方法,如图3

4所示,具体步骤如下:
[0064]
(1)通过激光雷达生成一幅工厂室内平面地图,作为浓度热力地图的背景图;
[0065]
(2)在生成的地图上进行定位实时获取当前位置坐标信息;
[0066]
(3)定位的同时利用二氧化碳气体浓度传感器实时获取二氧化碳气体浓度数据;
[0067]
(4)将二氧化碳气体浓度数据和坐标信息对齐得到带有位置信息的浓度信息;
[0068]
(5)根据带有位置信息的二氧化碳浓度数据在地图上的对应位置生成不同程度和大小的二维高斯核;
[0069]
(6)利用二氧化碳气体浓度数据附带的坐标点作为中心坐标点,将浓度数据乘以二维高斯核内的每个元素,填充到周围的坐标中;
[0070]
(7)利用不同颜色标记不同浓度大小,形成一幅热力图,再与背景地图叠加起来生成一幅二氧化碳气体浓度热力地图。
[0071]
所述方法(1)通过激光雷达生成一幅平面地图,作为浓度热力地图的背景图还包括:通过激光雷达生成的地图为pgm格式,需要将pgm格式转换为png图片格式。通过python的matplotib包先获取pgm格式的像素宽度和高度信息,再通过像素宽度和高度计算其dpi,最后利用savefig()函数保存成png图片。
[0072]
如图2所示,所述方法(2)在生成的地图上进行定位实时获取当前位置坐标信息,还包括:因为地图坐标系到图像坐标系之间的转换无旋转关系,只有平移关系和尺度变换。定位获取的坐标信息是米为单位,但是我们需要的是以建图原点为基准的像素坐标,所以要先加载建图得到的yaml文件,yaml文件中包含地图的旋转平移信息以及分辨率信息,在yaml文件获取地图的x轴和y轴偏移量x1和y1,以及地图对的分辨率z。假设tf查询到此刻坐标是x2、y2,那么像素坐标如下:
[0073][0074]
如图1所示,所述方法(3)定位的同时利用二氧化碳气体浓度传感器实时获取二氧化碳气体浓度数据还包括:在一个小周期5ms内采样20次气体浓度值,得:
[0075]
{c
i
}1≤i≤20
[0076]
对浓度值进行快速排序,取出中位数,得:
[0077]
c
i
=mid{c
i
}
[0078]
每个小周期内的数据经过上述处理后都存入同一个队列中,得:
[0079]
{c
i
}1≤i≤20
[0080]
当队列内的数据个数有20个的时候,即经过一个100ms的大周期时,再次对这个队列进行排序,求取中位值,得到稳定的气体浓度值:
[0081]
c=mid{c
i
}
[0082]
如图2所示,所述方法(4)将气体浓度数据和坐标信息对齐得到带有位置信息的浓度信息还包括:将位置信息和浓度信息构成一个数据结构保存到txt文件中,每个数据之间以逗号分隔。比如:
[0083]
[n,x
n
,y
n
,c
n
]
[0084]
其中,第一个数据为采集数据的序列号,第二个为坐标的x轴数据,第三个为坐标的y轴数据,第四个为浓度数据。
[0085]
所述方法(5)根据带有位置信息浓度数据在地图上的对应位置生成不同程度和大小的二维高斯核还包括:对于连续源的平均气流,其浓度分布是符合高斯分布的,即,气体通过一个点源进入大气中,在平面上,气体扩散后的分布符合人高斯分布的。基于上述原理,以每个浓度数据附带的坐标点作为中心坐标点,也称作点源,根据浓度大小不同,生成不同程度和大小的二维高斯核,因为浓度较高的气体,扩散范围也非常大。二维高斯核的公式如下:
[0086][0087]
其中,σ为标准差,σ越大,高斯曲线越平缓,中心点越低,类似于点源的气体浓度低;σ越小,高斯曲线越陡峭,中心点越高,类似于点源的气体浓度高。定义:n代表二维高斯核的横纵尺寸大小。
[0088]
n的大小选取和浓度c的大小成正比,即:
[0089]
n=kc
[0090]
其中,k为常数。
[0091]
利用opencv库的getgaussiankernel函数生成一维高斯核,一维高斯核的公式如下:
[0092][0093]
先利用上诉方法生成两个一维高斯核g(x)、g(y),得到的一维高斯核是一个行向量,再将一个行向量和另一个向量的转置进行叉乘得到一个矩阵,即为要得到的二维高斯核:
[0094]
g(x,y)=g(x)
×
g(t)
t
[0095]
所述方法(6)利用气体浓度数据附带的坐标点作为中心坐标点,将浓度数据乘以二维高斯核内的每个元素,填充到周围的坐标中还包括:生成二维高斯核的具体表达方式如下:
[0096][0097]
其中,
[0098]
g
xy
表示二维高斯核的中心元素;
[0099]
n表示二维高斯核的尺寸大小;
[0100][0101]
利用浓度数据乘以二维高斯核内的每个元素,将得到处理后的高斯核的每个元素值填充到地图上的每个像素点上,高斯核的中心元素对应地图的点源坐标。
[0102][0103]
其中,a为常数。这样做的目的是能预测中心坐标周围点的气体浓度数据并将数据填充给到对应坐标点中。进行填充时,假设
[0104]
浓度数据c1附带的坐标点为a=(x1,y1),
[0105]
浓度数据c2附带的坐标点为b=(x2,y2),
[0106]
如果点a和点b所生的二维高斯核填充到地图上后周围有重叠区域,则重叠区域的每个点采取叠加策略,相当于气体浓度在扩散时候产生混合叠加。
[0107]
所述方法(7)利用不同颜色标记不同浓度大小,形成一幅热力图,再与背景地图叠加起来生成一幅气体浓度热力地图包括:首先,利用opencv库的伪彩色applycolormap函数将图片中像素点的数值变换成对应不同的色彩,将包含简单数值的原图处理成拥有彩色数据的热力图,使用opencv库中的colormap_jet色度表,当气体浓度越小,则像素数据越小,色彩会偏蓝色;当气体浓度越大,则像素数据越大,色彩会偏红色,达到气体浓度可视化的效果。
[0108]
然后利用opencv库的addweighted函数,将拥有彩色数据的热力图与背景地图进行叠加,设置合理的透明度,将两幅图片的信息重叠起来,这样即生成了气体浓度热力地图,在气体浓度热力地图上可以同时观察到地图上的不同地方的气体浓度的大小,实现之最佳的可视化效果。
[0109]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献