1.一种通过图像识别技术实现虚拟水尺识别水位的方法,其特征在于,包括下述步骤:S1选定场景,S2虚拟水尺设置,S3水位标注,S4模型训练,S5通过模型计算水位;
所述S2中,通过选定场景后得到特征物体,所述特征物体是指和水面交汇的物体,根据特征物体和场景的位置情况,确定是横向还是纵向虚拟水尺,并确定虚拟水尺的中轴线,设置最高水位方位K,如果是纵向虚拟水尺那么最高水位方位K在上,如果是横向虚拟水尺那么最高水位方位K在左或者在右;得到最高水位方位K后,设置基准线,所述基准线为最高水位方位K和最高水位之间的像素距离,并设置最高水位值;并根据要求的水位精度设置步幅,通过最高水位向下设置每个刻度的水位,设置若干个刻度后,通过RNN,直接推算下面的水位值,直到虚拟水尺的尾端,将虚拟水尺的尾端作为最低水位值;获得虚拟水尺刻度值和对应的像素值的数组R,所述数组R为:(V1,R1(Rx1Ry1)),(V2,R2(Rx2,Ry2)),…,(Vn,Rn(Rxn,Ryn));
其中,V1为最高水位值,R1为V1对应的像素点,Vn为最低水位值,Rn为Vn对应的像素值;
所述S3中,水位标注的时候采用点标注的方法,且标注的时候对标注区域进行了放大;通过设置虚拟水尺和水位的交汇点,完成水位标注,获得水位标注的图片训练数据集D0和每个图片的标注集A0;
所述S4中,图片训练和识别前按照虚拟水尺的所在位置进行变换和图片裁剪,将剪裁后的图片提供给训练和识别;首先对图片训练数据集D0进行图片剪裁,其中图片像素为1920*1080,根据前面得到的数组R中第一个像素值(Rx1,Ry1),同时根据最高水位方位K得到虚拟水尺是横向还是纵向;如果虚拟水尺为横向,剪裁的位置左上角的点是(0,Ry1-25),右下角的点是(1920,Ry1+25);如果虚拟水尺为纵向,剪裁的位置左上角的点是(Rx1-25,0),右下角的点是(Rx1+25,1080),通过矩形进行剪裁获得剪裁数据集合D1;再对每个图片的标注集A0进行矩形变化得到标注集A1,矩形变化规则是以标注点(x,y)为基础点,左上角的点是(x-25,y-25),右下角的点是(x+25,y+25);最后使用卷积神经网络CNN对标注的数据集D1和标注集A1进行模型训练,获得水位区域的物体检测模型P1;
所述S5中,使用水位识别场景的图片C1计算水位,首先通过S4的剪裁步骤,得到图片C2,用水位区域的物体检测模型P1计算获得水位区域B, 其中左上点B1(Bx1,By1), 右下点B2 (Bx2,By2);再结合数组R以及最高水位方位K,如果最高水位方位K在上,是纵向水尺,计算水位位置By=By1+(By2-By1)/2;将By带入数组R中,按照水位从高到低计算,如果By在Ry1和Ry2之间时,那么水位值=V2+(V1-V2)*((Ry2-By)/(Ry2-Ry1));如果最高水位方位K在左或在右,是横向水尺,计算水位位置Bx=Bx1+(Bx2-Bx1)/2;将Bx带入数组R中,按照水位从高到低计算,如果Bx在Rx1和Rx2之间时,那么水位值=V2+(V1-V2)*((Rx2-Bx)/(Rx2-Rx1));最终得到水位值。