一种智能水尺识别方法与流程

文档序号:16504965发布日期:2019-01-05 08:58阅读:817来源:国知局
一种智能水尺识别方法与流程

本发明涉及水位监测技术领域,具体地说,涉及一种智能水尺识别方法。



背景技术:

水位监测是针对江、河、水库等水体的重要监测指标,具有重要意义。现有技术中,常规的水位监测方法有传感器监测和水位尺人工监测。其中,在水尺识别方面,为达到节水的目的,采用视频图像监视的方法对河道、溉渠内的水位进行实时监控。尽管采用人工读取视频的方法可以记录水尺的水位等数据,但由于监控点数量巨大,记录人员注意力不能长时间集中,面对如此多的监控图像,往往由于记录人员的一个疏忽,输入的时候可能会产生失误等情况。现在也有很多自动识别水尺的方法,如:

公布号为cn101886942a的中国专利文献公开了一种水尺标识方法及水位检测方法,该方法采用视频图像对水尺进行拍摄,然后通过对图像的识别达到检测的目的,但该方法需要采用特定的标尺,应用范围受到很大限制。

另外,公布号为cn102975826a的中国专利文献公开了一种基于机器视觉的便携式船舶水尺自动检测和识别方法,该方法采用机器视觉和图像处理技术,对水上环境下船舶水尺视频数据进行处理,检测并识别船舶水尺刻度,并对视频连续帧的检测结果进行统计分析,最终得出船舶吃水值。公布号为cn105046212a的中国专利文献公开了一种水线刻度自动识别方法,该方法通过识别标准样本图像中的水面分界线来获取水面分界线以上的包含水尺数字的水尺数字图像,进入识别得到水尺刻度。以及公布号为cn108318101a的中国专利文献公开了一种基于深度学习算法的水尺水位视频智能监测方法及系统,该方法包括视频采集、视频帧处理、水位线识别和水位测算等步骤。利用深度学习神经网络实现水位监测的智能化和自动化。

以上方法虽然无需采用特定的标尺来能实现水位监测的自动化,但是在进行水位监测的过程中只考虑了水质浑浊不透明的情况,当水质清澈,水的颜色和水位线不容易识别时会有比较大的误差,因此导致使用范围受到限制。



技术实现要素:

本发明的目的为提供一种智能水尺识别方法,该方法在进行水位监测的过程中,不但可以识别水质浑浊不透明的情况,在水质清澈、水的颜色和水位线不容易识别的情况下也能进行高效识别。

为了实现上述目的,本发明提供的智能水尺识别方法包括以下步骤:

1)采集水尺图像,并将所有水尺图像分为训练集和验证集;筛选出训练集中的水尺图像进行提取,得到水尺的目标区域;

2)设水尺的宽度为a,采用长为2a,宽为2a的矩形以一定步长截取所述目标区域,截取的过程中需保证截取下的部分不超过水尺的左右边缘;

3)将截取的水面以上的图像作为正样本,水面以下的图像作为负样本,存入对应的水尺刻度值的数据集中;

4)利用所有水尺刻度值对应的数据集训练神经网络模型;

5)截取待识别水尺图像的目标区域,经过步骤2)处理后使用训练好的神经网络模型判断水位,并将图像存入对应的水尺刻度值的数据集中。

上述技术方案中,采用视频图像自动识别、自动记录的方法,不仅可以减少人工工作量,而且可以准确及时地进行自动存储和显示。由于水尺的图像数量相对较少,采用随机采样小矩形的方法,可以重复多次利用同一张图像,且保证样本的多样性,使得训练的模型鲁棒性更强。

具体地,步骤1)还包括:对采集的水尺图像进行随机增广,并使用双线性插值将图片调整到固定大小,对图像进行归一化处理。

对图片进行随机增广包括随机加燥,随机亮度调整,随机裁剪,随机镜像反转等;图像归一化可以增快神经网络训练的速度。

具体地,步骤1)中通过水尺的颜色特征确定水尺的目标区域;若有多个区域,则通过区域的大小,长宽比进行筛选;若仍然有多个区域,计算各区域内像素点的均值和方差与训练集中的水尺区域作对比,选择最接近的区域。

在实际识别水尺水位时,待测试水尺图像需要放在验证集中。确认水尺所在区域的方法主要是通过水尺的颜色特征,水尺上的读数和刻度为蓝色或者红色,将符合此颜色特征的区域进行搜索。

具体地,步骤3)还包括:将所述的正样本和所述的负样本分别以1:1的比例分为训练集和测试集,并将截取的图像与其对应的水尺刻度值转换为二进制文件存储,便于训练时数据的读取。

具体地,步骤4)中使用数据集训练神经网络模型的方法包括:

4-1)使用xavier初始化对卷积层和全连接层的权值进行初始化,同时设置好超参数;初始化的目的是为了让神经网络在学习中学到有用的信息,超参数包括学习率,batch_size,epoch等;

4-2)将数据集中的图片放入卷积神经网络中进行训练,该卷积神经网络依次包括输出层、第一卷积层、第一池化层、第二卷积层、第二池化层、第一全连接层、第二全连接层和loss层,输出结果为2个神经元;

4-3)使用softmax函数计算loss,再通过梯度下降法计算梯度,使用反向传播算法传播梯度,更新神经网络的参数;

4-4)训练神经网络直到测试集的loss不再下降。

具体地,步骤4-2)中输入层输入的是大小为20x20x3的rgb三维矩阵;第一卷积层的卷积核大小为5x5,步长为1,维度为3x96;第二卷积层的卷积核的大小为3x3,步长为1,维度为96x256;第一池化层的池化核的大小为2x2,步长为2,池化后的特征大小为10x10x96;第二池化层的池化核的大小为2x2,步长为2,池化后的特征大小为5x5x256;第一全连接层的输入神经元为6400个,输出神经元为512个,dropout为0.5;第二连接层的输入神经元为512个,输出神经元为2个。具体地,步骤4-4)中训练神经网络的时候,首先使用一个高的学习率,训练到loss趋于稳定时,将学习率下降10倍,继续训练,并重复上述操作两次。

具体地,步骤5)中使用神经网络模型判断水位的方法为:

5-1)设待识别水尺图像的目标区域的宽度为b,将目标区域分割成m个长为b,宽为b的小块,将各小块调整到固定大小后送入神经网络之中,通过全连接层的输出判断该区域是否在水下;

5-2)找到从水上转换成水下的两个临界区域,再将这两个区域分为n个长为c,宽为b的小块,其中n*c=2b;

5-3)从上往下按顺序将小块调整到神经网络的输入尺寸后放入,通过全连接层的输出判断该区域是否在水下,当输出结果为水下时,将此时的小块的y坐标记录,根据坐标计算出水位的高低。

步骤5-1)作为粗调,可以快速定位水位线的大概位置,权利要求5-2)~5-3)为细调,使水位线的位置更加准确。

具体地,c取b/8。提高识别的准确性。

与现有技术相比,本发明的有益效果为:

本发明例中的智能水尺识别方法的精确度更高,抗干扰能力强,对环境和相机像素的要求较低。可以应用在户外环境下的水尺的水位识别,基本不受光照强度,树叶遮挡,下雨等自然因素的影响。即使摄像头距离较远同样可以精准识别,对于水质清澈、水的颜色和水位线不容易识别的情况,也能进行高效识别。

附图说明

图1为本发明实施例的智能水尺识别方法的流程图;

图2为本发明实施例中待识别的水尺图片;

图3为本发明实施例中已经提取出来的水尺图片;

图4为本发明实施例中待识别的水尺的图片;

图5为本发明实施例中提取出来作为数据集正样本的图片;

图6为本发明实施例中提取出来作为数据集负样本的图片;

图7为本发明实施例卷积神经网络结构图;

图8为本发明实施例在水面较为浑浊时待识别的水尺图片;

图9为本发明实施例在水面较为清澈时待识别的水尺图片;

图10为本发明实施例水面十分清澈时待识别的水尺的图片。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,以下结合实施例及其附图对本发明作进一步说明。

实施例

参见图2,某待识别的水位的具体图像经提取后如图3所示。处理时需要将图片分为水面上与水面下两部分,再根据水位线的位置计算出当时的水位,达到实时自动监测水位的目的。

参见图1,本实施例的智能水尺识别方法包括以下步骤:

s1将水尺的数据库中的图片划分为训练集和验证集,从训练集中筛选出较为清晰的图片,如图4所示,水尺的宽度为a。以长为2a,宽为2a大小的矩形从图中随机截取在水面上方的水尺,保证截取下的部分不超过水尺的左右边缘,且不包含水下部分,如图5所示。将截取下来的图片作为数据集的正样本。

s2从训练集中随机挑选图片,同样以长为2a,宽为2a的矩形随机截取水尺水面下的图片,如图6所示。将图片作为数据集的负样本。

s3将正负样本分别以1:1的比例分为训练集和测试集,并将图像和标签转换为二进制文件存储,便于训练时数据的读取。

s4从数据集中读取图片数据,对图片进行随机增广,其中包括随机加燥,随机亮度调整,随机裁剪,随机镜像反转等。使用双线性插值将图片调整到固定大小。对图像进行归一化,图像归一化可以增快神经网络训练的速度。

s5使用xavier初始化对卷积层和全连接层的权值进行初始化,初始化的目的是为了让神经网络在学习中学到有用的信息。同时设置好超参数,其中包括学习率,batch_size,epoch等。

s6将处理好的图片放入卷积神经网络中进行训练。该卷积神经网络的构造如图7所示,针对水位识别的数据集,本例使用的卷积神经网络模型一共八层(包含输入输出层)。其中第一层是输入层,输入的是大小为20x20x3的rgb三维矩阵。训练之前,先将输入图像进行随机裁剪,随机加燥,随机镜面翻转,再归一化到[0,1]作为网络的输入。第二层是卷积层,该卷积层的卷积核大小为5x5,步长为1,维度为3x96,卷积核的权重使用xavier初始化,偏置项为0。卷积后得到的特征大小为20x20x96。第三层是池化层,采用最大池,池化核的大小为2x2,步长为2。池化后的特征大小为10x10x96。第四层是卷积层,卷积核的大小为3x3,步长为1,维度为96x256,卷积核的权重使用xavier初始化,偏置项为0。卷积后的特征大小为10x10x256。第五层是池化层,采用最大池,池化核的大小为2x2,步长为2。池化后的特征大小为5x5x256。第六层是全连接层,输入神经元为6400个,输出神经元为512个,dropout为0.5。第七层是全连接层,输入神经元为512个,输出神经元为2个。第八层是loss层,使用softmax计算loss,随机梯度下降,进行反向传播。

s7训练神经网络直到测试集的loss不再下降。

s8从验证集中选取如图8所示图片,通过水尺的颜色特征确定水尺所在的区域。

s9设区域的宽度为b,将区域分割成m个长为b,宽为b的小块。将小块调整到固定大小后送入神经网络之中,通过全连接层的输出判断该区域属于是否为在水下。

s10找到从水上转换成水下的两个临界区域,再将这两个区域分为n个长为c,宽为b的小块,其中n*c=2b。从上往下按顺序将小块调整到神经网络的输入尺寸后放入,通过全连接层的输出判断该区域属于是否为在水下。当输出结果为水下时,将此时的小块的y坐标记录,根据坐标计算出水位的高低。

本例使用数据增广方法,加入了更多随机的因素,使得模型抗干扰能力加强,且不容易过拟合。本例中的神经网络结构可以根据需要调整,增加网络的层数和卷积核的维度能够增强分类的效果。本例中,在训练神经网络的时候,首先使用一个较高的学习率,训练到loss趋于稳定时,将学习率下降10倍,继续训练,重复上述操作两次,可以得到比较理想的结果。

如果要识别图9所示图片的水位值,则选取图9,重复步骤s8至步骤s10,图10也一样。识别结果显示如图8的水尺图时,水面较为浑浊,水面上下区分度较高,误差可以在1cm以内;如图9的水尺图时,水面较为清澈,误差一般在1~3cm;如图10的水尺图时,水面十分清澈的时候,容易产生较大的误差,一般在3~5cm。需要说明的是,这种结果是由于当前图片数据量还非常少造成的,当图片数据达到一定的数量,那么其精度可以大大提高。相较于目前其他的图像识别水尺的方法,本发明的精度高,抗干扰能力强,对环境和相机像素的要求低。

在实际识别水尺水位时,待测试水尺的图像需要放在验证集中。步骤s8中确认水尺所在区域的方法主要是通过水尺的颜色特征,水尺上的读数和刻度为蓝色或者红色,将步骤s8中符合此颜色特征的区域进行搜索。若有多个区域,则通过区域的大小,长宽比进行筛选。若仍然有多个区域,计算各区域内像素点的均值与方差与训练集中的水尺区域作对比,选择最接近的区域。本例采用步骤s9和步骤s10两个步骤来获取水位线的坐标,其中步骤s9作为粗调,可以快速定位水位线的大概位置,步骤s10为细调,速度较慢,但是定位更加精准。其中步骤s10的准确性受c的大小的影响,测试中c取b/8时的效果较好。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1