摘要∶水位监测是水利建设的重点问题,为及时掌握水情、预防洪涝灾害,提出了一种智能图像水位识别系统解决方案;对多种情况下的水尺图片利用传统图像算法进行图像预处理后,使用基于YOLOv4的深度学习水位识别算法,对采集的图像进行训练,实现水位自动识别;实验结果表明,基于YOLOv4的深度学习水位识别算法能够有效的通过水尺图像读取当前的水位,算法误差仅在1~2cm左右,符合工程水位监测误差要求。
水是生命之源,水利对社会和经济发展有着重要意义,水情监控也是国家水利部门关注的重点问题,水位监测在洪涝灾害预警、减少经济损失等方面有着重要意义。目前的水位测量技术分为接触式测量方式及非接触式测量方式。
常用的接触式测量方式有浮子式水位计、压力式水位计和电容式水位计等。接触式水位测量传感器长期与水流接触,往往损坏速度较快,安装和维护过程也较为繁琐,建设运维成本高且自动化程度低,因此逐渐被非接触式测量方装置取代。
超声波水位计、
雷达水位计和光纤式水位计是目前常用的非接触测量装置。3种水位计通过测量发出和反射的脉冲时间来计算水位,但该类设备价格昂贵,因此在国内的使用并不广泛。
近几十年来,数字图像处理技术的快速发展,基于图像处理的技术已经广泛应用在交通、医学、航天航空的各个方面,同时,随着机器学习、计算机视觉等技术的兴起和快速发展,通过神经网络对图像的内容进行学习归纳,由计算机对图像进行处理并识别水位的方法也成为了水位检测的重要发展方向。
文献 【3】 通过添加运动物体帧图像及帧平均法降低水位线检测中的干扰,提高了检测的准确性。文献【4】通过霍夫变换检测对河流表面进行统计跟踪,产生一个估计的水位线。文献 【5】 提出的基于数字图像处理的水位检测方法分割水尺和水域图像,通过多模板匹配算法以及序列验证算法识别水尺字符,降低了测量误差。文献 【6】 利用水尺刻度对相机进行标定,用图像差分法提取水位变化区域,计算图像水位线坐标,根据相机标定结果算得实际水位高度。文献【7】通过分割水尺后对水尺刻度进行边缘检测,对水尺字符进行匹配识别等技术进行水位识别。
传统的图像处理方法对于背景、环境、光线、拍摄角度等要求较高,在处理环境复杂情况下的水位检测时存在误差较大的问题。因此机器学习的引入,有效的提高了基于图像处理的水位检测方法的精度。例如,文献【8】通过字典学习和卷积神经网络对水尺进行识别和读取。文献【9】基于深度学习算法,结合YOLOv3和ResNet网络算法检测水尺对象和识别水尺刻度,大大提高了基于图像处理的水位检测的速度和精度。
2020年,Alexey Bochkovskiy 提出的YOLOv4算法通过综合现有的优化算法实现了在单个CPU条件下训练数据并探测目标,在保证速度的前提下提高了算法的精度。
本文使用海康摄像头进行数据采集,通过萤石云协议提供的API获取水尺视频以及实时水位图片,通过传统图像处理算法对水尺位置进行定位,基于YOLOv4算法识别水尺刻度线并计算当前水位值。从实验结果看,本文提出的水位识别方法的误差仅在±2cm以内,提供了一种高精度、低成本、易维护的水位识别方法。
1、水位识别算法设计
1.1 水位识别流程
本文算法采用YOLOv4深度学习算法对图像进行处理,识别水位,具体步骤分为∶①通过海康摄像头提供的萤石云协议接口采集视频流,得到水尺图像帧,日间获得的水尺图像为RGB彩色图像,夜间获得的水尺图像为灰度图像②判断图像是否为三通道彩色图像,对彩色图像进行灰度化处理;③使用不同的结构元素分别对日间和夜间的图像通过开操作增强图像对比度;④通过阈值分割方法分离水尺与背景,提取水尺区域;⑤对提取出水尺区域进行连通域去噪;⑥将提取出的水尺区域的图像输入YOLOv4 网络,检测出水面以上的刻度线数量;⑦通过水尺总长计算当前水位。水位识别流程如图1所示。
1.2 水尺图像预处理
1.2.1 图像灰度化和增强
海康摄像头拍摄到的水尺日间图片为RGB彩色图像,夜间图片为灰度图像,无须灰度化处理。日间图片通过将水尺图像灰度化处理的方式一方面能够去除日间彩色图像中所包含的不必要的颜色信息,提高图像处理速度,另一方面能够减少日间和夜间图像的差异,提高算法的通用性。
为了将水尺与背景分离,通过形态学方法增强图像对比度。采用开操作对图像进行背景提取,将原始图像与背景图像相减,以达到增强水尺图像的效果。灰度化后的日间彩色图像与夜间灰度图像仍然存在较大的差别,因此需要分别采用不同的结构元素对灰度化后的彩色图像及夜间原始灰度图像进行处理。
结构元素的选取对图像处理的结果有至关重要的作用,如果结构元素选取过大,会导致水尺与背景区分度不明显;如果结构元素过小,会导致水尺结构被破坏,二者均会导致无法准确分离水尺与背景。经过多次试验,使用半径为15 px的圆盘作为结构元素对灰度化后的日间彩色图像进行处理时效果最佳,处理后的图像如图2所示,使用半径为70 px的圆盘作为结构元素对夜间原始灰度图像进行处理时效果最佳,处理后的图像如图3所示。
1.2.2 图像分割
图像分割的目的是将水尺与背景分离,去除杂乱无用的背景信息。目前传统的图像分割方法有区域分割、边缘分割和阈值分割等,其中阈值分割是最常用的方法,通过一个确定的阈值作为分割线,将目标与背景分离。阈值分割法根据应用范围是否为整张图像可分为局部阈值法和全局阈值法。
局部阈值法将整张图片均分为若干子图像,针对子图像范围内的灰度值确定子图像的阈值,对子图像进行阈值分割后再将子图像拼接成完整图像。但局部阈值要切割图像并对每张图像单独进行阈值分割处理,处理时间长且图像拼接边缘往往存在突变的现象,在分离水尺与背景的试验中,背景占据较大的空间,采用局部阈值法会导致对背景的大量无效计算。
全局阈值法通过统计整幅图像的灰度级,选取一个阈值对整张图像进行分割。
2、测试系统的搭建
2.1 系统架构
系统通过萤石云协议提供的API接口,每五分钟发出截图指令抓取图像,通过萤石云提供的图像URL将水尺图像下载至服务器,将图像经过预处理后送入基于YOLOv4 算法设计的刻度线识别算法统计水面上的刻度线条数,根据该水尺的总量程计算当前水位。
系统主要由4个部分组成。
1)前端设备∶包括海康摄像头、RTU、太阳能电池板、12V蓄电池、水尺等。摄像头使用海康高清网络摄像头,支持4G电话卡,监控视频流为H264编码格式,使用TCP/IP协议传输。摄像头支持萤石云协议,通过协议提供的API接口可对摄像头进行图片截取和视频截取。海康摄像头可提供日间的彩色图像,并配备红外功能提供夜间的灰度图像。RTU用于采集当前的流量、流速信息。太阳能电池板和12V蓄电池可提供夜间摄像头供电。
2)传输网络方案∶RTU利用中国移动的通用分组无线电业务(
GPRS)网络与服务器通信。海康摄像头则采用4G网络进行视频即图像的传输,图像转存在萤石云服务器,系统可根据萤石云服务提供的URL下载萤石云服务器上存储的图片。
3)服务器∶包括阿里云服务器和萤石云服务器,阿里云服务器用于部署数据采集管理平台和水位监测管理平台,萤石云服务器用于提供视频图片截取和短期存储功能。
按照萤石云协议提供的规定,截取后的图片和视频上传至萤石云服务器并存储1小时,用户可通过协议返回的URL地址下载图片和视频。
通过水位识别算法处理获得的水位数据信息会上传至阿里云服务器上所部署的MySQL数据库中,数据库中还存有RTU采集的其他实时水情数据及历史水情数据等。
项目部署的服务器为阿里云服务器,用于存储下载的图片和视频流,以及RTU和网页平台之间的数据交换中心。
4)显示终端∶用户可以通过PC端的
Web 网页或手机端访问水位监测管理平台查看水位监测结果。
系统的主要架构如图9所示。
更多详细内容请下载附件查看