一种基于计算机视觉的水尺识别方法、系统及存储介质与流程
未命名
07-28
阅读:85
评论:0

1.本发明属于水利工程技术领域,具体涉及一种基于计算机视觉的水尺识别方法、系统及存储介质。
背景技术:
2.目前,在水文领域、江河湖等水域的水位观测,观测点分布在不同位置,主要是基于水文职工的巡检、人工读数、记录,然后在水文站通过信息系统,进行数据录入;在部分观测点,部署了网络摄像头,画面回传到水文站或观测平台,再由人工记录或计算机视觉技术读取水位数据。
3.水位数据的读取,是通过水尺实现的,一般情况,水位一年四季变化可达数米,所以需要在距离岸边一定距离范围内,安装多个水尺,当水位处在不同高度时,观测不同的水尺。如图1所示,为水文水尺示意图,图中包括3个水尺,“p3”、“p4”和“p5”,其中,有效水尺为“p4”,“p4”水尺当前读数为0.26m,假设“p4”水尺的零点高程为100m,则当前水位值是100.26m。
4.现有技术中对水尺水位的测量,主要通过设置视频监控系统并配置标准水尺以通过图像法对水位进行测量。例如中国专利cn112907506a,公开了一种基于水尺颜色信息的不定长水尺水位检测方法、装置及存储介质,通过透视投影矩阵投影到世界坐标系的标准水尺图像上,此方法若要想有效读数,需要录入大量的标准水尺,工作量很大;同时,也存在水尺被杂物遮挡、水尺倾斜、水尺字符不清晰等导致识别不准确或无法识别的问题。再例如中国专利cn114067095a,公开了基于水尺字符检测识别的水位识别方法,采取两步深度学习方法,先提取水尺整体,再提取水尺上的e,两单步识别没办法实现,步识别复杂度高,由于天气、尺面污渍等原因,导致个别e未识别或重复识别,会造成识别读数结果有较大差异。
5.因此,提供一种基于计算机视觉的水尺识别方法、系统及存储介质,以提高水尺水位测量精度和准确性,是亟待解决的问题。
技术实现要素:
6.针对上述提出的技术问题,本发明提供一种基于计算机视觉的水尺识别方法、系统及存储介质,旨在通过目标检测方法以相对低的算力要求实现水尺的精准读数,同时,改善基于模板匹配技术水尺识别通用性差、基于字符识别对尺面清晰度要求高且误差大的问题。
7.第一方面,本发明提供了一种基于计算机视觉的水尺识别方法,该方法包括如下步骤:
8.步骤1、获取水尺图像,根据预设的标注标准对水尺图像中的目标逐个进行标注选框,生成水尺数据集,其中,预设的标注标准为将水尺分为尺身、e、框,生成水尺数据集,其中,预设的标注标准为将水尺分为尺身、e、和11个目标,一一对应地将11个目标分别标注为waterruler、e、1e、2e、3e、4e、5e、6e、7e、8e和9e,同时将11个目标分为3类,waterruler为1类,e为2类,me为
3类,m为1-9的正整数;
9.步骤2、基于具备目标检测能力的预训练模型训练水尺数据集,生成推理模型;
10.步骤3、获取待检测水位的目标水尺图像,对目标水尺图像进行预处理;
11.步骤4、将预处理后的目标水尺图像输入推理模型,获得目标水尺图像中的目标;
12.步骤5、基于目标水尺在目标水尺图像中的位置判断目标水尺图像的画面是否符合预设标准,不符合预设标准时,生成异常告警,并发送给用户终端;
13.步骤6、符合预设标准时,检测是否有障碍物遮挡目标水尺,有障碍物遮挡目标水尺时,生成异常告警,并发送给用户终端;
14.步骤7、没有障碍物遮挡目标水尺时,基于目标水尺的倾角判断目标水尺是否倾斜,当倾角大于等于第一预设值时,生成异常告警,并发送给用户终端;
15.步骤8、当倾角小于第一预设值时,将目标水尺的尺面数据和水尺零点高程数据之和作为水位高度。
16.具体地,在步骤3中,预处理包括将目标水尺图像转化为cv::mat数据类型,以及将目标水尺图像的尺寸调整为预设尺寸。
17.具体地,步骤4还包括采用边框坐标法标注目标水尺图像中的目标的坐标信息,并获取目标水尺图像中的目标的置信度信息,其中,坐标系以目标水尺图像的画面的左上角为坐标原点,坐标原点右侧的轴为x轴的正半轴,坐标原点下方的轴为y轴的正半轴。
18.具体地,步骤5包括:
19.步骤51、获取目标水尺的尺身的第一坐标信息;
20.步骤52、基于第一坐标信息与目标水尺图像的画面高度和画面宽度,分别计算目标水尺尺身的四条边距离目标水尺图像的画面边缘的距离,当四条边距离目标水尺图像的画面边缘的距离都大于等于第二预设值时,判定目标水尺图像的画面符合预设标准,否则判定目标水尺图像的画面不符合预设标准。
21.具体地,步骤6包括:
22.步骤61、获取第一坐标信息,计算目标水尺的底部中心点的坐标pos
bm
,计算公式为:
23.pos
bm
=[(x
lt
+x
rb
)/2,y
rb
],
[0024]
其中,x
lt
是目标水尺图像中位于最下方的目标的左上角的x坐标值,x
rb
是最下方的目标的右下角的x坐标值,y
rb
是最下方的目标的右下角的y坐标值;
[0025]
步骤62、以底部中心点为中心、以第三预设值为长度值、并以第四预设值为宽度值绘制矩形区域,并裁剪出矩形区域作为新的目标水尺图像;
[0026]
步骤63、将新的目标水尺图像输入到预设的遮挡检测分类模型检测是否有障碍物遮挡目标水尺。
[0027]
具体地,步骤7包括:
[0028]
步骤71、获取目标水尺图像中的所有2类目标和所有3类目标,并获取每个2类目标的第一坐标信息和每个3类目标的第二坐标信息;
[0029]
步骤72、基于所有2类目标和第一坐标信息构建集合a([e1,pos1],[e2,pos2]
…
[en,posn]),基于所有3类目标和第二坐标信息构建集合b([(i)e,posi],[(i+1)e,pos
i+1
]
…
[(i+p-1)e,pos
i+p-1
]),其中,n为目标水尺图像中2类目标的总数,p为目标水尺图像中3类目标的
总数,i为目标水尺图像中位于最下方的3类目标对应的数字;
[0030]
步骤73、取出集合a中所有2类目标的左上角的y坐标,基于左上角的y坐标值,按照从大到小的顺序对集合a中的所有2类目标进行排序,得到新的集合a,基于新的集合a中新排序的所有2类目标的左上角的xy坐标值进行拟合,计算得到第一拟合斜率ca;
[0031]
步骤74、取出集合b中所有3类目标的右下角的xy坐标,基于上述右下角的xy坐标值进行拟合,计算得到第二拟合斜率cb;
[0032]
步骤75、基于第一拟合斜率ca和第二拟合斜率cb计算目标水尺的斜率c和斜角α,计算公式为:
[0033]
c=(ca+cb)/2,
[0034]
α=arctan(c)。
[0035]
具体地,步骤8包括:
[0036]
步骤81、获取目标水尺图像中的所有2类目标和所有3类目标,并获取每个2类目标和3类目标对应的第三坐标信息,基于第三坐标信息分别计算每个2类目标和3类目标的高度像素值,对得到的所有高度像素值求平均得到平均高度d
avg
,高度像素值的计算公式为:
[0037]dq
=(y
rbq-y
ltq
),
[0038]
其中,dq为所有2类目标和3类目标中第q个目标的高度像素值,y
rbq
为第q个目标的右下角的y坐标值,y
ltq
为第q个目标的左上角的y坐标值,q为1-10的正整数;
[0039]
平均高度d
avg
的计算公式为:
[0040][0041]
其中,q为所有2类目标和3类目标的总数;
[0042]
步骤82、按照第三坐标信息中的右下角的y坐标值对所有2类目标和3类目标进行排序,将最靠近水面的完整的目标作为第一目标;
[0043]
当第一目标是3类目标时,第一目标和第一目标上方的所有目标的总高度g为:
[0044]
g=1-k1*0.1,
[0045]
其中,k1为第一目标对应的数字,g的单位为米;
[0046]
当第一目标是2类目标时,第一目标和第一目标上方的所有目标的总高度g为:
[0047]
g=1-k2*0.1+0.05,
[0048]
其中,k2为第一目标上方与第一目标紧邻的3类目标对应的数字,g的单位为米;
[0049]
步骤83、获取目标水尺图像中1类目标waterruler的右下角的y坐标值y
rbw
,则第一目标与目标水尺的下边缘的高度差δh为:
[0050]
δh=y
rbw-y
rbe
,
[0051]
其中,y
rbe
是第一目标的右下角的y坐标值,δh的单位为像素;
[0052]
高度差δh对应的真实世界的高度为:
[0053]
δh
real
=f*δh,
[0054]
其中,f为真实世界的e高度d
real
与平均高度d
avg
的比值,δh
real
的单位为米;
[0055]
步骤84、基于总高度g和高度差δh对应的真实世界的高度计算目标水尺水面以上部分的高度j,计算公式为:j=g+δh
real
;
[0056]
目标水尺的尺面数据k为:k=1-j,其中,高度j和尺面数据k的单位为米;
[0057]
步骤85、基于尺面数据k和水尺零点高程数据计算水位高度m,计算公式为:m=k+l,其中,l为拍摄目标水尺图像时的预置位对应的水尺零点高程数据,m的单位为米。
[0058]
第二方面,本发明还提供了一种基于计算机视觉的水尺识别系统,该系统包括:模型训练模块、目标获取模块、异常判断模块、水位计算模块;
[0059]
模型训练模块,获取水尺图像,根据预设的标注标准对水尺图像中的目标逐个进行标注选框,生成水尺数据集,其中,预设的标注标准为将水尺分为尺身、e、行标注选框,生成水尺数据集,其中,预设的标注标准为将水尺分为尺身、e、和11个目标,将11个目标分别标注为waterruler、e、1e、2e、3e、4e、5e、6e、7e、8e和9e;基于具备目标检测能力的预训练模型训练水尺数据集,生成推理模型;
[0060]
目标获取模块,获取待检测水位的目标水尺图像,对目标水尺图像进行预处理;将预处理后的目标水尺图像输入推理模型,获得目标水尺图像中的目标;
[0061]
异常判断模块,基于目标水尺在目标水尺图像中的位置判断目标水尺图像的画面是否符合预设标准,不符合预设标准时,生成异常告警,并发送给用户终端;符合预设标准时,检测是否有障碍物遮挡目标水尺,有障碍物遮挡目标水尺时,生成异常告警,并发送给用户终端;没有障碍物遮挡目标水尺时,基于目标水尺的倾角判断目标水尺是否倾斜,当倾角大于等于第一预设值时,生成异常告警,并发送给用户终端;
[0062]
水位计算模块,当倾角小于第一预设值时,将目标水尺的尺面数据和水尺零点高程数据之和作为水位高度。
[0063]
第三方面,本发明提供了一种计算机存储介质,计算机存储介质存储有程序指令,其中,在程序指令运行时控制计算机存储介质所在设备执行上述任意一项的基于计算机视觉的水尺识别方法。
[0064]
与现有技术相比,本发明的有益效果至少如下所述:
[0065]
1、降低数据集标注的难度和工作量,降低运算时的算力要求和能耗,同时还可以提高运算时的识别速度;
[0066]
2、轮廓识别更加准确,读数精度更高,可以解决水尺尺面不清晰时读数误差较大的问题;
[0067]
3、水尺兼容性好,在同样数据集数量的情况下,基于目标识别的水尺识别方法,能够适配和兼容更多外观形态的水尺;
[0068]
4、节约的算力可用于更丰富的水尺检测,比如水尺倾斜检测、水尺遮挡检测等,使水尺读数更加准确。
附图说明
[0069]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0070]
图1为水文水尺示意图;
[0071]
图2为本发明的一种基于计算机视觉的水尺识别方法的流程图;
[0072]
图3为本发明的实施例中的对水尺图像中的目标进行标注框选的示意图;
[0073]
图4为本发明的实施例中推理模型的识别结果的示意图;
[0074]
图5为本发明的实施例中障碍物遮挡示意图;
[0075]
图6a为本发明的实施例中有障碍物遮挡下的矩形区域示意图;
[0076]
图6b为本发明的实施例中无障碍物遮挡下的矩形区域示意图;
[0077]
图7为本发明的实施例中计算拟合斜率的斜率线示意图;
[0078]
图8为本发明的一种基于计算机视觉的水尺识别系统的结构示意图。
具体实施方式
[0079]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明经行进一步的详细说明。显然,此处所描述的具体实施例仅仅用于解释本发明,是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术普通人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0080]
需要说明,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
[0081]
图2所示是本发明提供的一种基于计算机视觉的水尺识别方法的一个实施例的流程图,该流程图具体包括如下步骤:
[0082]
步骤1、获取水尺图像,根据预设的标注标准对水尺图像中的目标逐个进行标注选框,生成水尺数据集,其中,预设的标注标准为将水尺分为尺身、e、框,生成水尺数据集,其中,预设的标注标准为将水尺分为尺身、e、和11个目标,一一对应地将11个目标分别标注为waterruler、e、1e、2e、3e、4e、5e、6e、7e、8e和9e,同时将11个目标分为3类,waterruler为1类,e为2类,me为3类,m为1-9的正整数。
[0083]
示例性地,标注格式采用coco数据集格式。
[0084]
对水尺图像中的目标逐个进行标注选框,标注时使标注框正好贴合各个目标的边缘,对略有倾斜的目标,则应保证目标的四角均在标注框内。示例性地,目标“waterruler”的标注框应为上起尺身上沿,下至尺身与水交界线,左右宽度应覆盖目标“e”和目标“数字e”;目标“e”的标注框应为e图案本身;目标“数字e”的标注框应为数字图案的整体。对水尺图像中的目标进行标注框选的示意图如图3所示。
[0085]
步骤2、基于具备目标检测能力的预训练模型训练水尺数据集,生成推理模型。
[0086]
预训练模型是具备对水尺中的目标进行检测的训练模型,使用步骤1中生成的水尺数据集对上述预训练模型进行训练,以对上述预训练模型进行finetune参数微调生成用于水尺识别的推理模型。将水尺图像输入上述推理模型后,可以自动根据预设的标注标准对水尺图像中的目标进行识别。
[0087]
本发明实施例中,采用的网络为retinanet全卷积神经网络,基于nvidia 3090ti gpu(24g)gpu卡。对神经网络模型超参数的设置能够很大程度上影响算法的实际性能,通常
分为训练阶段的超参数和结构化超参数。其中,推理模型的训练阶段超参数优化策略如下:1、为了平衡目标识别的精确度(precision)和模型的收敛速度,选择batch size(samples_per_gpu=8,worker_per_gpu=10)来充分利用硬件并行性来加速计算提升模型收敛速度;2、为了控制模型参数收敛幅度,避免学习率设置过大导致模型不稳定,设置learning rate=0.0025,并采用动态调整学习率以达到更高的模型精确度(precision);3、针对样本不均衡问题,通过优化ratio_list以较好的正负样本比例更好地学习少数的类别,以提高目标识别的性能;4、为了平衡准确率和召回率置信度阈值设置为(waterruler_thre=0.75,e_thre=0.7,ne_thre=0.7)。
[0088]
步骤3、获取待检测水位的目标水尺图像,对目标水尺图像进行预处理。
[0089]
具体地,在步骤3中,预处理包括将目标水尺图像转化为cv::mat数据类型,以及将目标水尺图像的尺寸调整为预设尺寸。
[0090]
预处理是对输入的内容进行加工处理,使其符合后续检测步骤的要求,进行预处理后,将目标水尺图像存储于变量中,传递给推理模型。
[0091]
预处理还包括:获取的是包含目标水尺图像的视频时,对视频进行抽帧后将视频帧尺寸进行标准化,随后转化为cv::mat数据类型,存储于变量中,传递给推理模型;获取的是包含目标水尺图像的usb摄像头数据时,通过cv::cap方法,读取usb画面帧,将画面帧尺寸进行标准化,并将画面帧转化为cv::mat数据类型,存储于变量中,传递给推理模型;获取的是包含目标水尺图像的rtsp视频流数据时,从rtsp地址读取视频,对视频进行抽帧后将视频帧尺寸进行标准化,随后转化为cv::mat数据类型,存储于变量中,传递给推理模型;
[0092]
标准化的图片或视频帧尺寸,重点在于标准化即尺寸一致,本发明实施例中,尺寸为可配置的,即标准化为配置的尺寸。在原始画面足够大足够清晰的情况下,输入尺寸越大,越有利于提高检测精度,但过大的输入尺寸,也会带来算力需求的提升和速度的下降,因此,尺寸的配置要同时考虑精度和算力速度。
[0093]
步骤4、将预处理后的目标水尺图像输入推理模型,获得目标水尺图像中的目标。
[0094]
其中,目标的总数小于等于11。
[0095]
将目标水尺图像输入推理模型后可识别图像中的目标,如图4所示。如图4所示,识别到的目标为waterruler、e、9e、e、8e、e。
[0096]
具体地,步骤4还包括采用边框坐标法标注目标水尺图像中的目标的坐标信息,并获取目标水尺图像中的目标的置信度信息,其中,坐标系以目标水尺图像的画面的左上角为坐标原点,坐标原点右侧的轴为x轴的正半轴,坐标原点下方的轴为y轴的正半轴。
[0097]
边框坐标法为([xlt,ylt],[xrb,yrb]),其中,[xlt,ylt]为左上角的坐标,[xrb,yrb]为右下角的坐标。置信度信息为0-1区间的小数,具体实施中,置信度取值为0.86效果比较好,即置信度》=0.86时,认为是有效目标。
[0098]
步骤5、基于目标水尺在目标水尺图像中的位置判断目标水尺图像的画面是否符合预设标准,不符合预设标准时,生成异常告警,并发送给用户终端。
[0099]
具体地,步骤5包括:
[0100]
步骤51、获取目标水尺的尺身的第一坐标信息。
[0101]
步骤52、基于第一坐标信息与目标水尺图像的画面高度和画面宽度,分别计算目标水尺尺身的四条边距离目标水尺图像的画面边缘的距离,当四条边距离目标水尺图像的
画面边缘的距离都大于等于第二预设值时,判定目标水尺图像的画面符合预设标准,否则判定目标水尺图像的画面不符合预设标准。
[0102]
其中,第二预设值的大小根据本领域技术人员的经验或根据实际应用场景进行设置,本技术实施例对此并不限定。
[0103]
当水尺上下左右四个边缘位于画面边缘时,也可能会识别到水尺。示例性地,当水尺尺身右下角坐标yrb与画面的高相等时,说明水尺下边缘已位于画面边缘;当水尺尺身左上角坐标ylt=0时,说明水尺上边缘已位于画面边缘;当水尺尺身右下角坐标xrb与画面的长度相等时,说明水尺右边缘已位于画面边缘;当水尺尺身左上角坐标xlt=0,此时说明水尺左边缘已位于画面边缘。为了使读数更有效可信,上述四种情况下均不适合读数。水尺的边缘与画面的边缘,应留有余量,即水尺在画面内部,距离边缘一定距离,能表征水尺周围画面,示例性地,距离画面边缘余量为画面对应边尺寸的5%,或100像素等值,包括但不限于上述示例值。
[0104]
步骤6、符合预设标准时,检测是否有障碍物遮挡目标水尺,有障碍物遮挡目标水尺时,生成异常告警,并发送给用户终端。
[0105]
有障碍物遮挡水尺是指水尺在画面中的图像,有水草、漂浮物、岸边物体等杂物遮挡,尤其是水尺与水面的交界处,遮挡会导致读数不准确(无论是算法、还是人工),要产生遮挡异常告警,通知相关人员进行处理,同时,遮挡状态下不需要读数。障碍物遮挡示意图如图5所示。
[0106]
具体地,步骤6包括:
[0107]
步骤61、获取第一坐标信息,计算目标水尺的底部中心点的坐标pos
bm
,计算公式为:
[0108]
pos
bm
=[(x
lt
+x
rb
)/2,y
rb
],
[0109]
其中,x
lt
是目标水尺图像中位于最下方的目标的左上角的x坐标值,x
rb
是最下方的目标的右下角的x坐标值,y
rb
是最下方的目标的右下角的y坐标值。
[0110]
步骤62、以底部中心点为中心、以第三预设值为长度值、并以第四预设值为宽度值绘制矩形区域,并裁剪出矩形区域作为新的目标水尺图像。
[0111]
步骤63、将新的目标水尺图像输入到预设的遮挡检测分类模型检测是否有障碍物遮挡目标水尺。
[0112]
上述预设的遮挡检测分类模型是预先设置的对障碍物进行判断的检测模型,将新的目标水尺图像输入到预设的遮挡检测分类模型可得到布尔型结果,即1=遮挡,0=无遮挡。
[0113]
本发明实施例中,有障碍物遮挡下的矩形区域示意图如图6a所示;无障碍物遮挡下的矩形区域示意图如图6b所示。
[0114]
步骤7、没有障碍物遮挡目标水尺时,基于目标水尺的倾角判断目标水尺是否倾斜,当倾角大于等于第一预设值时,生成异常告警,并发送给用户终端。
[0115]
水尺倾斜指的是由于水流冲击、浮冰撞击、漂浮物冲击等自然因素或船只撞击、人为破坏等人为因素,导致水尺发生倾斜,倾斜后的水尺,读数将会产生误差,当倾角超过第一预设值后,误差变得不可接受,要产生倾斜异常告警。其中,第一预设值的大小根据本领域技术人员的经验或根据实际应用场景进行设置,本技术实施例对此并不限定。
[0116]
具体地,步骤7包括:
[0117]
步骤71、获取目标水尺图像中的所有2类目标和所有3类目标,并获取每个2类目标的第一坐标信息和每个3类目标的第二坐标信息。
[0118]
步骤72、基于所有2类目标和第一坐标信息构建集合a([e1,pos1],[e2,pos2]
…
[en,posn]),基于所有3类目标和第二坐标信息构建集合b([(i)e,posi],[(i+1)e,pos
i+1
]
…
[(i+p-1)e,pos
i+p-1
]),其中,n为目标水尺图像中2类目标的总数,p为目标水尺图像中3类目标的总数,i为目标水尺图像中位于最下方的3类目标对应的数字。
[0119]
步骤73、取出集合a中所有2类目标的左上角的y坐标,基于左上角的y坐标值,按照从大到小的顺序对集合a中的所有2类目标进行排序,得到新的集合a,基于新的集合a中新排序的所有2类目标的左上角的xy坐标值进行拟合,计算得到第一拟合斜率ca。
[0120]
对新的集合a中新排序的所有2类目标的左上角的坐标值进行拟合(即线性回归),计算得到曲率,上述曲率即是第一拟合斜率ca。
[0121]
步骤74、取出集合b中所有3类目标的右下角的xy坐标,基于上述右下角的xy坐标值进行拟合,计算得到第二拟合斜率cb。
[0122]
对集合b中所有3类目标的右下角的坐标值进行拟合(即线性回归),计算得到曲率,上述曲率即是第二拟合斜率cb。
[0123]
步骤75、基于第一拟合斜率ca和第二拟合斜率cb计算目标水尺的斜率c和斜角α,计算公式为:
[0124]
c=(ca+cb)/2,
[0125]
α=arctan(c)。
[0126]
图7所示为计算第一拟合斜率ca和第二拟合斜率cb的两种示例,左图为水尺向左倾斜的示例,右图为水尺向右倾斜的示例。计算第一拟合斜率ca的斜率线如图7中的斜率线a所示,计算第二拟合斜率cb的斜率线如图7中的斜率线b所示。
[0127]
步骤8、当倾角小于第一预设值时,将目标水尺的尺面数据和水尺零点高程数据之和作为水位高度。
[0128]
优选地,基于目标水尺图像中的目标的坐标推算尺面数据,根据获取上述目标水尺图像的摄像头巡航预置点位对应的水尺id,获得水尺零点高程数据。
[0129]
具体地,步骤8包括:
[0130]
步骤81、获取目标水尺图像中的所有2类目标和所有3类目标,并获取每个2类目标和3类目标对应的第三坐标信息,基于第三坐标信息分别计算每个2类目标和3类目标的高度像素值,对得到的所有高度像素值求平均得到平均高度d
avg
,高度像素值的计算公式为:
[0131]dq
=(y
rbq-y
ltq
),
[0132]
其中,dq为所有2类目标和3类目标中第q个目标的高度像素值,y
rbq
为第q个目标的右下角的y坐标值,y
ltq
为第q个目标的左上角的y坐标值,q为1-10的正整数;
[0133]
平均高度d
avg
的计算公式为:
[0134][0135]
其中,q为所有2类目标和3类目标的总数。q为小于等于10的正整数。
[0136]
步骤82、按照第三坐标信息中的右下角的y坐标值对所有2类目标和3类目标进行排序,将最靠近水面的完整的目标作为第一目标;
[0137]
当第一目标是3类目标时,第一目标和第一目标上方的所有目标的总高度g为:
[0138]
g=1-k1*0.1,
[0139]
其中,k1为第一目标对应的数字,g的单位为米;
[0140]
当第一目标是2类目标时,第一目标和第一目标上方的所有目标的总高度g为:
[0141]
g=1-k2*0.1+0.05,
[0142]
其中,k2为第一目标上方与第一目标紧邻的3类目标对应的数字,g的单位为米。
[0143]
当目标的一部分在水面以下,一部分在水面以上时,该目标是不完整的目标。此处,第一目标和第一目标上方的所有目标的总高度g只计算尺身上完整的2类目标和/或3类目标的总高度,不包含水面上紧接水面的不完整的2类目标或3类目标。
[0144]
示例性地,当最靠近水面的目标是完整的目标时,与最大右下角y值对应的目标是第一目标。当最靠近水面的目标是不完整的目标时,与最大右下角或第二大右下角y值对应的目标是第一目标。
[0145]
步骤83、获取目标水尺图像中1类目标waterruler的右下角的y坐标值y
rbw
,则第一目标与目标水尺的下边缘的高度差δh为:
[0146]
δh=y
rbw-y
rbe
,
[0147]
其中,y
rbe
是第一目标的右下角的y坐标值,δh的单位为像素;
[0148]
高度差δh对应的真实世界的高度为:
[0149]
δh
real
=f*δh,
[0150]
其中,f为真实世界的e高度d
real
与平均高度d
avg
的比值,δh
real
的单位为米。
[0151]
f=dreal/davg,优选地,d
real
=0.05m。
[0152]
步骤84、基于总高度g和高度差δh对应的真实世界的高度计算目标水尺水面以上部分的高度j,计算公式为:j=g+δh
real
;
[0153]
目标水尺的尺面数据k为:k=1-j,其中,高度j和尺面数据k的单位为米。
[0154]
步骤85、基于尺面数据k和水尺零点高程数据计算水位高度m,计算公式为:m=k+l,其中,l为拍摄目标水尺图像时的预置位对应的水尺零点高程数据,m的单位为米。
[0155]
拍摄水尺的摄像头具有多个预置位,每个预置位的画面中央水尺,会对应录入一个零点高程l数据,通过查询当前摄像头预置位,即可获得所对应的水尺零点高程数据l。
[0156]
图8所示是本发明提供的一种基于计算机视觉的水尺识别系统的一个实施例的结构示意图。如图8所示,该系统包括:模型训练模块、目标获取模块、异常判断模块、水位计算模块。
[0157]
模型训练模块,获取水尺图像,根据预设的标注标准对水尺图像中的目标逐个进行标注选框,生成水尺数据集,其中,预设的标注标准为将水尺分为尺身、e、行标注选框,生成水尺数据集,其中,预设的标注标准为将水尺分为尺身、e、和11个目标,将11个目标分别标注为waterruler、e、1e、2e、3e、4e、5e、6e、7e、8e和9e;基于具备目标检测能力的预训练模型训练水尺数据集,生成推理模型。
[0158]
目标获取模块,获取待检测水位的目标水尺图像,对目标水尺图像进行预处理;将预处理后的目标水尺图像输入推理模型,获得目标水尺图像中的目标。
[0159]
异常判断模块,基于目标水尺在目标水尺图像中的位置判断目标水尺图像的画面是否符合预设标准,不符合预设标准时,生成异常告警,并发送给用户终端;符合预设标准时,检测是否有障碍物遮挡目标水尺,有障碍物遮挡目标水尺时,生成异常告警,并发送给用户终端;没有障碍物遮挡目标水尺时,基于目标水尺的倾角判断目标水尺是否倾斜,当倾角大于等于第一预设值时,生成异常告警,并发送给用户终端。
[0160]
水位计算模块,当倾角小于第一预设值时,将目标水尺的尺面数据和水尺零点高程数据之和作为水位高度。
[0161]
根据本发明实施例的另一个方面,提供了一种计算机存储介质,计算机存储介质存储有程序指令,其中,在程序指令运行时控制计算机存储介质所在设备执行上述任意一项的基于计算机视觉的水尺识别方法。
[0162]
以上上述的实施例仅表达了本发明的实施优选方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
技术特征:
1.一种基于计算机视觉的水尺识别方法,其特征在于,包括如下步骤:步骤1、获取水尺图像,根据预设的标注标准对所述水尺图像中的目标逐个进行标注选框,生成水尺数据集,其中,所述预设的标注标准为将水尺分为尺身、e、框,生成水尺数据集,其中,所述预设的标注标准为将水尺分为尺身、e、和11个目标,一一对应地将所述11个目标分别标注为waterruler、e、1e、2e、3e、4e、5e、6e、7e、8e和9e,同时将所述11个目标分为3类,waterruler为1类,e为2类,me为3类,m为1-9的正整数;步骤2、基于具备目标检测能力的预训练模型训练所述水尺数据集,生成推理模型;步骤3、获取待检测水位的目标水尺图像,对所述目标水尺图像进行预处理;步骤4、将所述预处理后的目标水尺图像输入所述推理模型,获得所述目标水尺图像中的目标;步骤5、基于目标水尺在所述目标水尺图像中的位置判断所述目标水尺图像的画面是否符合预设标准,不符合所述预设标准时,生成异常告警,并发送给用户终端;步骤6、符合所述预设标准时,检测是否有障碍物遮挡所述目标水尺,有障碍物遮挡所述目标水尺时,生成异常告警,并发送给所述用户终端;步骤7、没有障碍物遮挡所述目标水尺时,基于所述目标水尺的倾角判断所述目标水尺是否倾斜,当所述倾角大于等于第一预设值时,生成异常告警,并发送给所述用户终端;步骤8、当所述倾角小于第一预设值时,将所述目标水尺的尺面数据和水尺零点高程数据之和作为水位高度。2.根据权利要求1所述的一种基于计算机视觉的水尺识别方法,其特征在于,在所述步骤3中,所述预处理包括将所述目标水尺图像转化为cv::mat数据类型,以及将所述目标水尺图像的尺寸调整为预设尺寸。3.根据权利要求1所述的一种基于计算机视觉的水尺识别方法,其特征在于,所述步骤4还包括采用边框坐标法标注所述目标水尺图像中的目标的坐标信息,并获取所述目标水尺图像中的目标的置信度信息,其中,坐标系以所述目标水尺图像的画面的左上角为坐标原点,所述坐标原点右侧的轴为x轴的正半轴,所述坐标原点下方的轴为y轴的正半轴。4.根据权利要求3所述的一种基于计算机视觉的水尺识别方法,其特征在于,所述步骤5包括:步骤51、获取所述目标水尺的尺身的第一坐标信息;步骤52、基于所述第一坐标信息与所述目标水尺图像的画面高度和画面宽度,分别计算目标水尺尺身的四条边距离所述目标水尺图像的画面边缘的距离,当所述四条边距离所述目标水尺图像的画面边缘的距离都大于等于第二预设值时,判定所述目标水尺图像的画面符合所述预设标准,否则判定所述目标水尺图像的画面不符合所述预设标准。5.根据权利要求4所述的一种基于计算机视觉的水尺识别方法,其特征在于,所述步骤6包括:步骤61、获取所述第一坐标信息,计算所述目标水尺的底部中心点的坐标pos
bm
,计算公式为:pos
bm
=[(x
lt
+x
rb
)/2,y
rb
],其中,x
lt
是所述目标水尺图像中位于最下方的目标的左上角的x坐标值,x
rb
是所述最下方的目标的右下角的x坐标值,y
rb
是所述最下方的目标的右下角的y坐标值;
步骤62、以所述底部中心点为中心、以第三预设值为长度值、并以第四预设值为宽度值绘制矩形区域,并裁剪出所述矩形区域作为新的目标水尺图像;步骤63、将所述新的目标水尺图像输入到预设的遮挡检测分类模型检测是否有障碍物遮挡所述目标水尺。6.根据权利要求3所述的一种基于计算机视觉的水尺识别方法,其特征在于,所述步骤7包括:步骤71、获取所述目标水尺图像中的所有2类目标和所有3类目标,并获取每个2类目标的第一坐标信息和每个3类目标的第二坐标信息;步骤72、基于所述所有2类目标和所述第一坐标信息构建集合a([e1,pos1],[e2,pos2]
…
[e
n
,pos
n
]),基于所述所有3类目标和所述第二坐标信息构建集合b([(i)e,pos
i
],[(i+1)e,pos
i+1
]
…
[(i+p-1)e,pos
i+p-1
]),其中,n为所述目标水尺图像中2类目标的总数,p为所述目标水尺图像中3类目标的总数,i为所述目标水尺图像中位于最下方的3类目标对应的数字;步骤73、取出所述集合a中所有2类目标的左上角的y坐标,基于所述左上角的y坐标值,按照从大到小的顺序对所述集合a中的所有2类目标进行排序,得到新的集合a,基于所述新的集合a中新排序的所有2类目标的左上角的xy坐标值进行拟合,计算得到第一拟合斜率ca;步骤74、取出所述集合b中所有3类目标的右下角的xy坐标,基于所述右下角的xy坐标值进行拟合,计算得到第二拟合斜率cb;步骤75、基于所述第一拟合斜率ca和所述第二拟合斜率cb计算所述目标水尺的斜率c和斜角α,计算公式为:c=(ca+cb)/2,α=arctan(c)。7.根据权利要求3所述的一种基于计算机视觉的水尺识别方法,其特征在于,所述步骤8包括:步骤81、获取所述目标水尺图像中的所有2类目标和所有3类目标,并获取每个2类目标和3类目标对应的第三坐标信息,基于所述第三坐标信息分别计算所述每个2类目标和3类目标的高度像素值,对得到的所有高度像素值求平均得到平均高度d
avg
,高度像素值的计算公式为:d
q
=(y
rbq-y
ltq
),其中,d
q
为所述所有2类目标和3类目标中第q个目标的高度像素值,y
rbq
为所述第q个目标的右下角的y坐标值,y
ltq
为所述第q个目标的左上角的y坐标值,q为1-10的正整数;平均高度d
avg
的计算公式为:其中,q为所述所有2类目标和3类目标的总数;步骤82、按照所述第三坐标信息中的右下角的y坐标值对所述所有2类目标和3类目标进行排序,将最靠近水面的完整的目标作为第一目标;当所述第一目标是3类目标时,所述第一目标和所述第一目标上方的所有目标的总高
度g为:g=1-k1*0.1,其中,k1为所述第一目标对应的数字,g的单位为米;当所述第一目标是2类目标时,所述第一目标和所述第一目标上方的所有目标的总高度g为:g=1-k2*0.1+0.05,其中,k2为所述第一目标上方与所述第一目标紧邻的3类目标对应的数字,g的单位为米;步骤83、获取所述目标水尺图像中1类目标waterruler的右下角的y坐标值y
rbw
,则所述第一目标与所述目标水尺的下边缘的高度差δh为:δh=y
rbw-y
rbe
,其中,y
rbe
是所述第一目标的右下角的y坐标值,δh的单位为像素;所述高度差δh对应的真实世界的高度为:δh
real
=f*δh,其中,f为真实世界的e高度d
real
与所述平均高度d
avg
的比值,δh
real
的单位为米;步骤84、基于所述总高度g和所述高度差δh对应的真实世界的高度计算所述目标水尺水面以上部分的高度j,计算公式为:j=g+δh
real
;所述目标水尺的尺面数据k为:k=1-j,其中,所述高度j和所述尺面数据k的单位为米;步骤85、基于所述尺面数据k和所述水尺零点高程数据计算所述水位高度m,计算公式为:m=k+l,其中,l为拍摄所述目标水尺图像时的预置位对应的水尺零点高程数据,m的单位为米。8.一种基于计算机视觉的水尺识别系统,用于实现如权利要求1-7任一项所述的基于计算机视觉的水尺识别方法,其特征在于,包括:模型训练模块、目标获取模块、异常判断模块、水位计算模块;所述模型训练模块,获取水尺图像,根据预设的标注标准对所述水尺图像中的目标逐个进行标注选框,生成水尺数据集,其中,所述预设的标注标准为将水尺分为尺身、e、个进行标注选框,生成水尺数据集,其中,所述预设的标注标准为将水尺分为尺身、e、和11个目标,将所述11个目标分别标注为waterruler、e、1e、2e、3e、4e、5e、6e、7e、8e和9e;基于具备目标检测能力的预训练模型训练所述水尺数据集,生成推理模型;所述目标获取模块,获取待检测水位的目标水尺图像,对所述目标水尺图像进行预处理;将所述预处理后的目标水尺图像输入所述推理模型,获得所述目标水尺图像中的目标;所述异常判断模块,基于目标水尺在所述目标水尺图像中的位置判断所述目标水尺图像的画面是否符合预设标准,不符合所述预设标准时,生成异常告警,并发送给用户终端;符合所述预设标准时,检测是否有障碍物遮挡所述目标水尺,有障碍物遮挡所述目标水尺时,生成异常告警,并发送给所述用户终端;没有障碍物遮挡所述目标水尺时,基于所述目标水尺的倾角判断所述目标水尺是否倾斜,当所述倾角大于等于第一预设值时,生成异常告警,并发送给所述用户终端;所述水位计算模块,当所述倾角小于第一预设值时,将所述目标水尺的尺面数据和水尺零点高程数据之和作为水位高度。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有程序指令,其中,在所述程序指令运行时控制所述计算机存储介质所在设备执行权利要求1至7中任意一项所述的基于计算机视觉的水尺识别方法。
技术总结
本发明属于水利工程技术领域,公开了一种基于计算机视觉的水尺识别方法、系统及存储介质:获取水尺图像,根据预设的标注标准对水尺图像中的目标进行标注选框,生成水尺数据集;基于预训练模型训练水尺数据集生成推理模型;获取目标水尺图像,对目标水尺图像进行预处理后输入推理模型,获得目标水尺图像中的目标;判断目标水尺图像的画面是否符合预设标准;符合预设标准时,检测是否有障碍物遮挡目标水尺;没有障碍物遮挡目标水尺时,基于目标水尺的倾角判断目标水尺是否倾斜;当倾角小于第一预设值时,将目标水尺的尺面数据和水尺零点高程数据之和作为水位高度。本发明解决了水尺水位测量精度和准确性低的问题。位测量精度和准确性低的问题。位测量精度和准确性低的问题。
技术研发人员:陈震东 李世强 吴子昊 宋倚天
受保护的技术使用者:哈尔滨四福科技有限公司
技术研发日:2023.05.19
技术公布日:2023/7/26
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/