APP下载

基于单目视觉的波高检测方法研究

2015-06-29倪文军王晨

水道港口 2015年6期
关键词:波高水槽图像处理

倪文军,王晨

(交通运输部天津水运工程科学研究所,天津300456)

基于单目视觉的波高检测方法研究

倪文军,王晨

(交通运输部天津水运工程科学研究所,天津300456)

一般的波高传感器需要直接接触波面干扰实验过程,并且受到量程的限制。文章给出了一种基于单目视觉的波高检测方法,由高速摄像机拍摄波浪试验过程,通过分析图像的颜色亮度特征来识别出水与空气的分界线,并计算出水位和波高。文中详细描述了波高检测的图像处理算法,通过实验对算法进行了验证,分析了误差产生的原因。实验结果表明,文章提出的方法可以有效地测量水位和波高,精度满足实际需求,在许多场景下具有应用价值。

图像处理;波高检测;颜色亮度特征;波浪实验

波浪是海岸和海洋工程中面临的最主要的环境因素,物理模型波浪试验是对其进行科学研究的重要手段,有助于解决防洪防灾、泥沙整治、海岸设计等方面的诸多问题。波浪试验一般在实验水槽内进行,通过造波机人工模拟出自然水域中的波浪,天科院大型水动力中心的大比尺水槽已于2014年正式落成投入使用[1]。波高是实验中需要测量的一项重要实验数据,常用的波高传感器为电阻式或电容式,该类仪器需要插入水中进行测量,布设传感器不可避免对水体流态造成影响,进而影响到检测精度,同时大量程的波高传感器无论安装还是参数标定,都不太方便。

近些年随着数字图像处理和人工智能理论的快速发展,机器视觉技术在许多领域代替了传统的技术手段。它利用高清摄像机采集数字图像并传输至计算机,根据不同的应用需求设计图像处理算法来对图像进行处理,分析得出有用的数据和信息[2]。目前机器视觉技术已经有了许多成功应用案例,例如人脸识别、智能交通、医疗诊断等,在水位自动检测方面,也已经有了一些研究成果[3-4]。利用机器视觉测水位或波高具有精度高、非接触的特点,以往的研究一般都是针对于水面高度缓慢变化的情景下进行的,而在水槽波浪实验中,波浪线变化速度快、曲线复杂,需要较高的实时处理速度和精度,本文即旨在对该问题进行研究,重点对算法的分析设计进行了讨论,并通过实验对算法进行验证。

1 基于机器视觉的波高检测简述

机器视觉主要分为单目视觉和双目视觉。单目视觉主要是通过对单台相机拍摄的图像进行处理,提取分析有用信息。双目视觉主要是根据视差原理,利用两台摄像机同时从不同的位置来拍摄被测目标的两幅图像,通过计算两幅图像对应点间的位置偏差,可以获取被测目标的三维立体信息[5]。由于双目视觉可测量三维距离,因此也可考虑用于测量水位或波高,但是由于双目视觉测量时需要对图像中的特征点进行匹配,而波浪试验中水面是时刻快速变化的,情况较为复杂,特征点不易获得,跟踪匹配也容易失败,因此双目视觉测距不适用于波高检测场景。本文采用单目视觉进行波高检测。

已有的研究成果一般思路都是通过算法识别出水尺的刻度读数,本文的方法直接通过检测水与空气分界线来测水位和波高。实验水槽侧面设置有玻璃观察窗,透过观察窗可以观测实验过程中波浪的高度变化。一台高分辨率的高速摄像机被架设在观察窗前,垂直于观察窗拍摄试验过程,如图1:外层实线方框表示水槽观察窗,内层虚线方框为相机的实际拍摄范围,拍摄范围的大小和位置需要提前测量标定。图2为拍摄得到的单帧视频图像,观察图2可知:水下与空气在颜色和亮度上存在差异,单目视觉测波高的关键是设计图像处理的算法,编写计算机程序,找出水与空气的分界线,得出分界线后,可根据分界线像素点在图像中所处的位置以及相机标定参数计算出实时水位高度,再根据波高的定义即可得出波高。

图1单目视觉检测波高Fig.1Detecting wave height based on monocular vision

图2拍摄到实验图像Fig.2Image of experiment shot by camera

2 波高检测的图像处理算法

首先在图3给出波高检测图像处理的算法流程图,然后在下面分别对算法的每一步进行详细描述。

2.1 采集图像

现实世界中的图像信号都是连续的,摄像机拍摄到图像后,经过采样和量化,将连续的模拟信号转化为数字量,经采集卡传输到计算机上。在计算机中,一幅图像在二维平面上被分为若干个像素点,任意一点的坐标设为(x,y),每个点颜色由R、G、B3个通道表示,每个通道上的值取为0到255之间的整数,称为R/G/B值,数值越大代表亮度越高,整幅图像可由式(1)来表示[6],fi(x,y)表示像素点(x,y)在某一通道上的亮度值。

图3图像处理算法流程Fig.3Algorithm flow of image processing

2.2 获取检测区域

在一幅图像中,包含有用信息的部分可能只是一个区域,图像的多余部分既增加了算法处理的复杂度,又加大了运算量,影响程序执行效率。在处理波浪试验图像时,当对某一位置处的水位进行检测,水位的上下变化即反映了连续的波高数据,因此只需在图像中选取光线、背景理想的位置进行处理,在本文的算法中由人来事先指定监测区域。

2.3 图像增强

在采集得到的图像中,水面以下光照被遮挡亮度较低,而水面以上光照较为充足,因此亮度较高,但是由于存在一些干扰物体,使得水面分界线与背景模糊不清。图像增强算法目的在于突出水与空气的分界线,并弱化水面以上的部分。式(2)给出了在像素点(x,y)处的具体图像增强变换公式,constGray称为灰度恒定点,contrast称为对比度,brightness称为亮度,saturate(z)函数将取值限定在了0到255。其中constGray值是一个重要的参数,当brightness设为0时,R/G/B值大于constGray的像素点亮度被增强,小于constGray的点亮度被减弱(图4)。图5为图像增强后的效果,可见分界线比图2更加分明,而背景的干扰被减弱。

2.4灰度化处理

灰度图像是只含有亮度信息,不含色彩信息的图像。灰度化后的图像信息复杂度降低,但是可以保留亮度、形态等重要的特征,方便后面进一步的图像分割等处理。常用的灰度化方法有平均值法、加权平均法、最大值法等[7]。

2.5 图像分割

在经过图像增强及灰度化处理后,水面分界线已经在图中比较明显的被区分开,通过二值化,可以进一步滤去无用的背景,分割出水面的分界线。式(3)为二值化的图像变换公式,threshold为二值化阈值。

图4图像增强函数(brightness设为0时)Fig.4Image enhancement function(when brightness is set to 0)

图5图像增强后的结果Fig.5Result of image enhancement

2.6 图像膨胀

经过图像分割后,已经可以识别出水与空气的分界线。但是由于背景中还存在一些细小的扰动,对于水位的计算会造成影响,因此需要采用图像形态学变换中的图像膨胀操作来去除这些噪声。图像膨胀操作是指在每个原像素点的邻域内选取亮度值最大的点,将该点的灰度值赋给原像素点,可用式(4)来表示。图6给出了图像膨胀操作的结果,水与空气的分界线已经被完全识别出来。

2.7 水位计算与滤波

理论上,计算某一点的水位只需分析一个像素宽度的竖直线即可,但是由于对单点进行分析很容易被噪声干扰,因此本文算法取10个像素宽度的竖直条状区域进行水位计算。设像素点横坐标为x,图像高度为Y,从图像顶端开始向下遍历,第一个灰度值为0的点记为(x,y0),则水位成像高度为h'=Y-y0个像素。10个像素宽度的图像区域可分别计算出10个水位成像高度值,经中值滤波后可得出较为准确的水位成像高度h'。

图7中,设矩形ABCD为相机拍摄画面在现实中的实际范围;A'B'C'D'为ABCD在相机中所成的像,P为相机焦点;L为水槽底部的位置,即水位的零点基线,H为相机拍摄实际景物范围的底部相对于零点基线的高度。h为实际水位高度,h'为水位成像高度,根据比例对应关系可得式(5),AD、A’D’、H几个参数需要事先进行确定。为测量AD,观察相机视域,在水槽观察窗上对视域边界进行标记,并测量出视域高度,从而得出AD值;A’D’可根据相机设置的分辨率参数直接获得;H为水槽设计的固有参数;h'为程序对每一帧分析得出的水位高度所占的像素。

图6图像膨胀操作后的结果Fig.6Result of image dilation

在以上测量方法中,需要对AD、H等参数进行测量,这样往往会引入测量误差,同时由于水槽玻璃厚度,光线透过后会发生折射现象,从而影响测量精度。由式(5)可知,h=Kh'+H为线性方程,因此考虑引入最小二乘法来标定参数K和H:测量若干组真实水位h,以及对应的h',使用最小二乘法对数据进行线性回归处理,从而确定出最优的K、H值。真实水位采用大量程磁致伸缩液位计来测量,其精度能够满足在1 mm以内。通过此方法来标定参数既保证了水位测量的精度,又在一定程度上修正了光线通过玻璃发生折射带来的误差。

2.8 波高分析

本文采用上跨零点法定义波高。取平均水位线为零线,把波面上升与零线相交的点作为一个波的起点,把波面下降到零线以下后再次上升到与零线相交的点作为一个波的终点。起点和终点之间的波峰和波谷的高度差定义为波高,从起点到终点经过的时间定义为一个波的周期。

图7相机成像与实际景物间的几何关系Fig.7Geometrical relationship between image and actual object

表1实验数据对比Tab.1Comparison of experiment data

图8高速摄像机Fig.8High speed camera

图9波形图对比Fig.9Comparison of wave

3 实验结果与分析

为验证算法,根据以上章节详细描述的波高检测图像处理算法,基于OpenCV图像处理开发库编写了图像处理程序[8]。使用高速相机拍摄人工波浪试验水槽内的试验过程,实验所用高速摄像机如图8所示,采集频率最高可达80帧/s。将图像处理程序分析得出的波高数据与波高传感器测得的数据进行比较,波高传感器采用电容测量原理测量,传感器采用受温度影响极小的高温导线,并对温度进行补偿,原理可具体参见《基于CAV444的电容式波高传感器的设计与温度补偿》[9]。共选取了10组数据,列于表1,图9则给出两者分别绘制出的实验波形曲线对比。根据表1中的数据,波高的绝对误差最大为0.7 cm,相对误差最大为1.79%,说明本文设计的基于视觉的水位、波高检测方法具有较好的测量精度,在对精度要求不苛刻的场景下可以满足实际应用需求;而图9表明绘制的波形曲线与波高传感器测出的结果也基本吻合。当前影响检测精度进一步提高的因素主要包括下面几点:(1)当前图像处理算法本身对水位线、波形线的识别受光线影响较大,某些情形下识别不准确;(2)受实验条件影响,相机参数标定的精度有待提高;(3)相机的光学镜头本身存在成像畸变,包括线性畸变和非线性畸变,使得图像失真。已有一些理论可以对畸变进行校正,但仍不能完全消除。

4 结论

本文主要研究了一种基于机器视觉的波高检测方法。该方法采用单目高速摄像机来拍摄波浪试验过程,根据水面与空气颜色亮度特征上的不同,通过图像增强、灰度处理、图像分割、图像膨胀、水位滤波等处理手段来识别出水与空气分界线,并计算出水位及波高。该方法不需要与水面直接接触,避免了传感器对实验过程的干扰,打破了传统波高传感器对量程的限制,并且有很高的监测频率。实验结果表明:本文设计的基于视觉的水位、波高检测方法具有较好的测量精度,绘制出的波形曲线与实际情形相符,在对精度要求不苛刻的场景下可以满足应用要求。

当前对监测精度有影响的因素包括:算法对水与空气分界线的识别不够精确、实验条件导致相机参数标定结果不准确、相机光学镜头存在成像畸变问题,这些还有待在未来的工作中予以研究和解决,最终期望达到亚像素级别的精度。同时还将进一步研究波形识别算法,增强软件对应用场景的适用性。

[1]耿宝磊,郑宝友,孟祥玮.天科院大比尺波浪水槽的建设与应用前景[J].水道港口,2014,35(4):415-421. GENG B L,ZHENG B Y,MENG X W.Construction and application prospect of the large scale wave flume in TIWTE[J].Journal of Waterway and Harbor,2014,35(4):415-421.

[2]冯春.基于单目视觉的目标识别与定位研究[D].南京:南京航空航天大学,2013.

[3]毕克宏.基于机器视觉的水位监控系统研究[D].郑州:郑州大学,2009.

[4]任明武,杨万扣,王欢,等.一种基于图像的水位自动测量新方法[J].计算机工程与应用,2007,43(22):204-206. REN M W,YANG W K,WANG H,et al.New algorithm of automatic water level measurement based on image processing[J].Com⁃puter Engineering and Applications,2007,43(22):204-206.

[5]高如新,王俊孟.双目立体视觉求取三维坐标的方法研究[J].计算机仿真,2014,31(10):296-300. GAO R X,WANG J M.Study on some methods of 3D coordinate calculation of binocular vision[J].Computer Simulation,2014,31(10):296-300.

[6]冈萨雷斯,伍兹.数字图像处理:第三版[M].北京:电子工业出版社,2011:42-43.

[7]CHEN W K.Image sharing method for gray⁃level images[J].The Journal of Systems and Software,2013,86:581-585.

[8]Robert Laganiere,张静.OpenCV2计算机视觉编程手册[M].北京:科学出版社,2013.

[9]阳志杰,倪文军,栗克国,等.基于CAV444的电容式波高传感器的设计与温度补偿[J].仪表技术与传感器,2014(5):11-28. YANG Z J,NI W J,LI K G,et al.Design of Capacitive Wave Height Sensor Based on CAV444 and its Temperature Compensation[J].Instrument Technique and Sensor,2014(5):11-28.

Research on a method of detecting wave height based on monocular vision

NI Wen⁃jun,WANG Chen
(Tianjin Research Institute for Water Transport Engineering,Ministry of Transport,Tianjin 300456,China)

Common sensor of wave height must direct contact the wave so that it disturbs the experiment pro⁃cess.And it is limited by the measuring range.In this paper,a method of detecting wave height based on monocular vision was given.High speed camera shot the wave experiment process.The boundary between water and air was recognized by the feature of color and brightness to calculate the water level and wave height.The image processing algorithm of detecting wave height was described in detail.The algorithm was verified through the experiment.The reasons of causing error were analyzed.The result of experiment shows that the algorithm in this paper can effective⁃ly measure the water level and wave height.The accuracy meets the actual requirement and the method has applica⁃tion value in many scenarios.

image processing;detecting wave height;feature of color and brightness;wave experiment

TP 391.41;TV 139.2

A

1005-8443(2015)06-0591-05

2015-08-07;

2015-10-28

倪文军(1971-),男,天津市人,高级工程师,主要从事电子仪器方面的研究。Biography:NI Wen⁃jun(1971-),male,senior engineer.

猜你喜欢

波高水槽图像处理
可升降折叠的饮水机水槽
珊瑚礁地形上破碎波高试验研究
基于漂流浮标的南大洋卫星高度计有效波高研究
非平整港池的多向不规则波试验研究
海堤设计波高计算
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
为什么水槽管要做成弯曲状
要挑好水槽,就看这里了!
厨房水槽设计