APP下载

基于双目视觉的水位测量算法

2017-04-22石晗耀陶青川

现代计算机 2017年8期
关键词:算子标定摄像机

石晗耀,陶青川

(四川大学电子信息学院,成都 610065)

基于双目视觉的水位测量算法

石晗耀,陶青川

(四川大学电子信息学院,成都 610065)

水位高度测量在水利行业有着重要的作用。针对水利视频监控系统,提出一种基于双目视觉的水位测量算法,来代替传统单目摄像机水位测量算法。首先对摄像机进行标定,得到摄像机的内外参数,然后利用Sobel算子提取水位边界,并应用Haar特征得到完整的水位线位置,最终利用摄像机内外参数计算水位在世界坐标系下的三维坐标,得到水位高度。实验表明,该算法可以快速提取水位线位置并计算水位高度,具有较高的测量精度。

图像处理;双目视觉;摄像机标定;水位测量

0 引言

水位测量是水利行业上一个重要的应用,对防止水灾、保护水利资源方面有着重要的作用。利用图像处理算法对水利视频监控图像进行水位提取比人工检测更直观,也更节省人力成本。一般通过对水尺进行图像识别,从而提取水尺刻度的方法,由于水利资源环境复杂、水尺倒影严重等原因[1],导致测量精度和准确度无法保证,而且对雨雪等天气因素造成的噪声的抗干扰性较差。综合以上两点考虑,本文提出一种基于双目视觉的快速水位计算方式。双目视觉是一种基于视差原理,由多幅图像获取物体三维几何信息的方法[2]。双目视觉检测系统一般由两台摄像机从不同角度同时对检测目标进行拍摄,获取目标图像信息,然后利用视差原理恢复出目标物体的三维几何信息。双目视觉是人类利用双眼获取环境三维信息的主要途径,目前被大量运用与机器人视觉、智能交通、航空航天、医学等方面。本算法使用双目摄像机系统对水资源进行监控,首先对摄像机进行标定,确定摄像机的内外参数,然后使用Sobel算子对水位线进行提取,最后计算出水位线的高度。

1 摄像机标定

摄像机标定可以获取检测目标的图像像素坐标和空间三维坐标之间的关系,然后通过坐标系之间的关系和摄像机模型,来得到摄像机的内外参数。本算法采用经典的线性成像模型,即针孔模型[3],如图1所示。

图1 摄像机模型

2 立体坐标系及相互关系

2.1 图像坐标系

摄像机采集的模拟图像转为数字图像后,以图像中每一个像素为单位,以第一个像素为原点,定义直角坐标系为图像像素坐标系[4]。像素坐标(u,v)表示该像素在数字图像中的列数和行数。图像坐标系仅表示了某个像素点的列数和行数,并没有具体的物理单位值。因此需要建立一个以物理单位表示的图像物理坐标系。该坐标系以图像内某一点为原点,X轴与Y轴分别与u,v轴平行。假设图像某一像素点的像素坐标为(u0,v0),物理坐标为(X,Y),可以得到图像中某一像素点的坐标关系:

其中dX,dY为图像物理坐标系中的物理尺寸。

(2)摄像机坐标系

摄像机坐标系是以摄像机光心为原点的一个三维坐标系,该坐标系的X轴和Y轴分别平行于图像坐标西的X轴和Y轴,该坐标系的Z轴为摄像机的光轴,与图像平面垂直。

(3)世界坐标系

由于摄像机可以安装在环境空间中的任意位置,因此在空间中采用一个基准坐标系来描述该环境中任意物体的位置,该坐标系就是世界坐标系[5]。世界坐标系与摄像机坐标系的关系如图2所示:

图2 摄像机坐标系与世界坐标系

两者之间的关系可以用旋转矩阵R和平移向量t来表示。其中R为3×3正交单位矩阵,t为三维平移向量。两者关系如式(2)所示:

2.2 摄像机标定

一般情况下,3D立体靶标制作成本高,加工精度受限制。本算法采用张正友提出的基于2D平面靶标的摄像机标定方法[6]。摄像机和靶标可以自由移动,不需要知道运动参数。使用摄像机对三个不同位置的平面靶标拍摄三组图像,然后进行摄像机标定。摄像机拍摄的平面靶标图像如图3所示:

图3 实验标定板图像

最终标定结果如表1所示:

表1 摄像机标定结果

3 水位线检测

3.1 边缘检测

边缘检测是图像处理中的基础操作,图像中的边缘往往因为相邻灰度变化剧烈,所以梯度幅值较大,可以利用微分算子对图像进行卷积操作来确定图像的边缘[7]。典型的微分算子有Roberts算子、Sobel算子、Prewitt算子等。本文基于算法复杂度和实际实验效果考虑,采用Sobel算子进行水面的边界提取。

经典Sobel算子是一种利用局部差分寻找边缘的算子,该算子由两个3×3的卷积核形成,如图4所示。首先将采集的图像作灰度化处理,然后将图像中每个像素点分别与这两个核做卷积,取每个像素的横向及纵向的灰度值的绝对值之和作为该像素点新的灰度值。如果某个像素点的灰度值大于阈值T,则认为该点为边缘点。本文将该阈值T设为80。

通常情况下,采集图像的水体区域相对平滑,水体颜色也相对单一;而岸上区域则相对粗糙。两个区域之间有较为明显的突变,水位线就在两个区域的突变位置上,可以通过边缘检测来提取水位线。图5所示为采集原图和经过边缘检测之后的图像。

图4 Sobel卷积算子

图5 原始图像和经过边缘检测后的图像

3.2 水位线提取

水位线是水体区域和陆地区域之间的分界线,位于两个区域的突变位置上。本算法使用两矩形的Haar特征[8]进行水位线检测。在边界图像中,黑色的点为特征点,特征点密集的区域称为特征区域,特征点少的区域则为非特征区域,而水位线就是两个区域的分界线。

为了提高检测的精确度,而且水位线通常为不规则的曲线,本算法采取对图像进行分段处理,得到每一小段图像的水位位置,最后拟合成完整水位线的做法。根据实验效果,一般把分段数定为5至7段。针对每一小段图像,首先计算出特征区域重心和非特征区域重心,然后在两个重心之间,滑动Haar特征模板并计算相应位置的特征值。Haar特征值为模板白色区域特征值总数减去黑色区域特征值总数[9],Haar双矩形模板如图6所示。

图6 双矩形Haar特征模板

Haar特征值最大的位置就是水位线的位置。最终水位检测结果如图7所示:

图7 水位线检测结果图

3.3 水位高度计算

实际水位高度是以水平面为参考基准来计算的。在本算法中,把岸顶作为基准面,来计算水面到岸顶的相对高度。首先对左右摄像机采集的图像进行立体匹配,计算出视差,然后根据待测点的像素坐标计算出世界坐标系下的坐标,最终得到水位高度。

(1)立体匹配

立体匹配是通过匹配两幅由不同摄像机拍摄得到的图像中的三维点,得到视差图,通过三角相似原理来计算目标物体的距离。本文采用SURF(Speeded Up Robust Features)算子来进行立体匹配。SURF算法是尺度不变特征变换算法(SIFT算法)的加速版,采用了Haar特征以及积分图像的概念,大大加快了程序的运行时间。SURF算法首先利用黑森矩阵(Hessian Matrix)进行特征点提取;然后对每一个特征点逐个进行计算,得到每一个特征点的主方向;最后构造出SURF特征点描述算子。

SURF运行效率大约是SIFT的3倍,而且具有很好的鲁棒性,特征点识别率较SIFT高,在视角、光照、尺度变化等情形下,大体上都优于SIFT。

(2)计算过程

首先,左右摄像头在平行位置上从不同角度采集目标水源的图像,如图8所示。

图8 双摄像头采集的左右图像

然后对左摄像头图像进行水位检测处理,得到水位线在图像中的位置。取水位线上一点作为待匹配特征点,进行特征提取,经过立体匹配找到右摄像头图像中对应的点,如图9所示。得到同一特征点在左右两幅图像中的像素坐标,计算出视差,从而可以恢复待测图像的三维信息和深度信息[10]。

图9 左摄像头水位线图像和水位线特征点图像

由于一般水源地岸的位置是固定的,实验采取靶标定位岸顶的方法来代替岸上特征点的匹配过程。如图10所示。

提取岸上靶标的像素坐标和水位线特征点的像素坐标,根据视差得到这两个点在世界坐标系下的坐标,从而实现对水位高度的测量。

图10 靶标定位图像

4 实验结果分析

本文算法验证实验在双核CPU(主频2.5GHz)、Win 7操作系统、VS2013编译平台上进行,在不同水位高度水面上,从不同方向采集前方水位图像,来计算水位线的相对高度。最终得到实验结果如表2所示。

表2 不同水位高度测量结果

从表2可以看出,测量数据有一定误差,主要原因有:一是实验条件有限,摄像机精度不高;二是摄像机标定过程中,摄像机和靶标摆放,以及距离测量的误差。最终测量误差在5%-8%之间,适用于工程中的水位线高度检测。

5 结语

本文提出了一个基于双目视觉的水位高度计算的算法,使用边缘检测算法提取出水位具体位置,然后使用双目摄像机计算出水位线的高度。实验结果表明,该算法可以快速提取出水位线位置,对水位高度计算误差在8%以内,能较好地满足水利行业对水位高度计算的要求。算法在对强光、多倒影等图像的识别精度不高,在后续研究中可以进一步优化,计算精度也有待提高。

参考文献:

[1]黄萍萍,王建华,陈长凤.几种水面倒影检测方法的实验研究[J].微计算机信息,2011(9):199-200.

[2]方芳.空间大尺寸三维测量系统[J].导弹与航天运载技术,1998(3):41-46.

[3]王洪伟,杨会成,黄雄.基于双目视觉的红绿灯距离测量[J].重庆理工大学学报,2014(11):102-106.

[4]刘盼,王金海.基于平行双目立体视觉的测距系统[J].计算机应用,2012,32(S2):162-164.

[5]张广军.机器视觉[M].北京:科学出版社,2005:24-102.

[6]Zhang Zhenyou.Flexible Camera Calibration by Viewing a Plane from Unknown Orientation,International Conference on Computer Vision[C].Kerkyra:IEEE Xplore Digital Library,1999.

[7]石泓,任智姣.基于改进Sobel算子和动态区域的铁轨稳像算法[J].现代计算机,2016(9):3-5.

[8]文学志,方巍,郑钰辉.一种基于类Haar特征和改进AdaBoost分类器的车辆识别算法[J].电子学报,2011,38(5):1121-1126.

[9]鲍江,陶青川,张鹏.基于图像处理的水位线检测算法[J].水电能源科学,2015(4):96-99.

[10]曲学军,张璐.基于双目视觉的三维测量方法[J].计算机仿真,2011(2):373-377.

Water Level Measurement Based on Binocular Vision

SHI Han-yao,TAO Qing-chuan
(College of Electronics and Information,Sichuan University,Chengdu 610065)

Water level detection plays an important role in water conservancy industry.Proposes a water level measurement algorithm based on binocular vision is to replace the traditional monocular camera.Calibrates the camera to get the camera's parameters,then uses Sobel operator to extract water level's boundary,and then gets complete water line position by using Haar features.Finally,obtains the height of water level by calculating the water level's three-dimensional coordinates in the world coordinate system.Experimental results show that the algorithm can extract water level and calculate the height of water level with a high efficiency,and have high measurement accuracy.

Image Processing;Binocular Vision;Camera Calibration;Water Level Measurement

1007-1423(2017)08-0055-05

10.3969/j.issn.1007-1423.2017.08.012

石晗耀(1991-),男,湖北黄石人,硕士研究生,研究方向为计算机应用与图像处理

2017-01-20

2017-03-10

陶青川(1972-),男,四川南充人,硕士生导师,副教授,研究方向为模式识别与智能系统

猜你喜欢

算子标定摄像机
轻卡前视摄像头的售后标定
一种相机标定板姿态变换装置设计
使用朗仁H6 Pro标定北汽绅宝转向角传感器
Domestication or Foreignization:A Cultural Choice
CT系统参数标定及成像—2
CT系统参数标定及成像—2
一类算子方程的正算子解问题的研究
QK空间上的叠加算子
新安讯士Q6155-E PTZ摄像机
安讯士新AXIS M31网络摄像机