一种基于机器视觉的水下目标识别方法与流程

文档序号:13446865阅读:1576来源:国知局
一种基于机器视觉的水下目标识别方法与流程

本发明属于计算机图像处理技术领域,具体涉及一种基于机器视觉的水下目标识别方法。



背景技术:

随着我国经济的快速发展,日常生活中越来越多的人加入到游泳健身的行列中去。但游泳导致的溺水问题也随之而来,如何有效的减少溺水事件的发生越来越成为各个游泳场所关注的问题。为了减少溺水事件的发生,游泳场所都配备了专业的救生人员。但是救生人员产生视觉疲劳,或者因为其他原因无法对溺水人员作出有效判断的情况下,仅凭救生人员对泳池进行安全保障是很难完全保障游泳者安全的,因此需要一个新的图像处理算法对整个泳池进行检测并且对发生溺水的人员进行安全警报,从而减少溺水事件的发生。



技术实现要素:

本发明的目的在于解决现有泳池救生的检测,报警的弊端,提供一种基于机器视觉的水下目标识别方法,能够快速的获取溺水的警报信息,给溺水人员的救援带来了很大的便利。为实现所述的设计目的,本发明采用的技术方案为基于图像处理的水下目标识别检测方案:为泳池安全维护者提供及时,准确的报警信息,也为泳池安全维护者提供现场溺水的视频,以便进行核对和历史查询。

一种基于机器视觉的水下目标识别方法,对水下图像进行一系列的图像处理,获取前景目标,然后对目标进行圈定和报警判断,包括以下步骤:

步骤a)对水下视频进行获取,对首次获取的图像进行初始化。具体方法是调整图像的大小以及图像的分辨率。对图像大小进行调整的公式为:

fx=(double)dsize.width/src.cols,其中,dsize.width为输出图像的宽度,src.cols为输入图像的宽度,fx为输出图像与输入图像宽度的比值,

fy=(double)dsize.height/src.rows,其中,dsize.height为输出图像的高度,src.rows为输入图像的高度,fy为输出图像与输入图像高度的比值

dsize=size(round(fx*src.cols),round(fy*src.rows)),其中,dsize为输出图像的大小

步骤b)对调整好大小和尺寸的图像进行灰度处理,获取灰度图像。彩色图像中的每个像素的颜色有r、g、b三个分量决定,而每个分量有255个值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。而灰度图像是r、g、b三个分量相同的一种特殊的彩色图像,其一个像素点的变化范围为255种,所以在数字图像处理种一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。对图像进行灰度处理的公式为:

y=0.299r+0.587g+0.114b

其中,y为计算之后获取的灰度值,r为原彩色图像中红色分量,g为原彩色图像中绿色分量,b为原彩色图像中蓝色分量。

步骤c)对获取得到的灰度图像进行高斯滤波,高斯滤波是通过对输入图像的每个点与输入的高斯滤波模板执行卷积计算然后将这些结果一块组成了滤波后的输出图像数组,通俗的讲就是高斯滤波是对整幅图像进行加权平均的过程,每一个像素点的值都由其本身和邻域内的其他像素值经过加权平均后得到。若使用3×3模板,则计算公式如下

g(x,y)={f(x-1,y-1)+f(x-1,y+1)+f(x+1,y-1)+f(x+1,y+1)+[f(x-1,y)+f(x,y-1)+f(x+1,y)+f(x,y+1)]*2+f(x,y)*4}/16;

其中,g(x,y)为输出图像在(x,y)点处的像素值,f(x,y)为输入图像在(x,y)点处的像素值

步骤d)获取高斯滤波之后的图像再对图像进行背景累积。

dst(x,y)←(1-alpha)*dst(x,y)+alpha*src(x,y),其中,src(x,y)为输入图像,dst(x,y)为输出图像,alpha为卷积参数,可以按照背景更新速度进行适当调整,一般取值在0~1之间。

步骤e)在获取累积所得的背景图像之后,再通过当前实时的水下图像与背景图像进行帧间差分,获取动态的前景图像。()两个图像的差的绝对值,支持mask)

sl(x,y)=src(x,y)-dst(x,y),其中,dst(x,y)为累积获取的背景图像,src(x,y)为实时获取的前景图像,sl(x,y)为通过帧间虾粉所获取的目标前景图像

步骤f)在获取前景图像之后对目标图像进行自适应二值化处理。生成一张“黑白图”。最大类间方差是由日本学者大津(nobuyukiotsu)于1979年提出,是一种自适应的阈值确定方法。算法假设图像像素能够根据阈值,被分成背景[background]和目标[objects]两部分。然后,计算该最佳阈值来区分这两类像素,使得两类像素区分度最大。

图像的总平均灰度为:u=w0*u0+w1*u1。

前景和背景图像的方差:

g=w0*(u0-u)*(u0-u)+w1*(u1-u)*(u1-u)=w0*w1*(u0-u1)*(u0-u1)

最佳阈值:sb=w1*w2*(u1-u0)*(u0-u1)

其中,t为前景与背景的分割阈值,w0为前景点数占图像比例,u0为平均灰度,w1为背景点数占图像比例,u1为平均灰度。

获取最佳阈值之后对图像进行逐点判断,规定大于此阈值的图像点像素设置为255,小于此像素值的点像素设置为0。

步骤g)在对图像进行二值化处理之后需要对图像进行膨胀处理,扩大运动目标的像素区域。膨胀是将物体与接触的所有背景点合并到该物体中,使便捷向外部扩张的过程。可以填补物体之间的空隙。

膨胀算法的步骤:

(1)采用3x3的结构元素,扫描图像的每一个像素,

(2)用结构元素与其覆盖的二值图像做“与”操作,

(3)如果都为0,结果图像的该像素为0。否则为1,

(4)结果:使二值图像扩大一圈。

步骤h)将图像中目标点像素的坐标输入数组,进行物体边界的求取然后将对应的坐标输入矩形框,对目标进行圈定。在图像输入一条警戒线的坐标,然后规定圈定的目标在警戒线之下的情况下进行报警。

本发明的水下目标识别方法,集成了计算机技术,图像处理技术。新提出的算法能够弥补现有泳池救生的不足,并且可以对溺水人员进行及时,准确的报警。本设计采用了机器视觉的水下目标识别方法,将水下摄像头固定在泳池底部,并且用玻璃挡板进行遮挡,当开机以后便对运行在水下的目标进行跟踪拍摄,获取的视频图像通过线路回传至监控室。监控主机获取视频以后即对视频通过vs2010下的图像处理系统对图像进行处理,根据触发警报的情况适当的发出报警,提醒周边的水下救生人员对溺水的游泳者实施救援。该算法基于监控终端上的识别和报警机制,减少了工作人员的工作压力,减少了安全维护成本。

附图说明

图1为本发明水下目标识别方法流程图;

图2为实时监测与报警图。

具体实施方式

如图1所示,本发明提供一种水下目标识别方法,包括以下步骤:

步骤1、获取图像进行尺寸和像素的初始化,在本实施例中,图像被限定大小为:320*288。如图2所示,图像显示框被命名为:“video”,在此显示框内显示的是通过视频文件获取的实时的水下运动图像,图像包括了泳池和在泳池内游泳的游泳人员。

步骤2、对图像进行灰度处理,图像显示框被命名为:“gray”,在此显示框内显示的是通过输入图像按照y=0.299r+0.587g+0.114b计算得出的灰度图,其中,y为计算之后获取的灰度值,r为原彩色图像中红色分量,g为原彩色图像中绿色分量,b为原彩色图像中蓝色分量

步骤3、对图像进行高斯滤波。

步骤4、对图像进行背景累积获取实时的背景图像。

步骤5、利用otsu算法对图像进行二值化处理。

步骤6、将图像与累积所得的背景图像进行差分,获取实时的前景。

步骤7、对图像进行图像膨胀运算,获取膨胀图像,图像的显示框被命名为:“foreground”。

步骤8、对图像进行目标圈定与报警处理,图像的显示框被命名为:“video”。

本发明提供一种水下目标识别方法.首先获图像进行图像的尺寸与像素大小调节,然后将图像归纳到背景图像中进行卷积运算,累积背景;然后对背景和原始图像进行灰度处理,生成灰度图;再对原始图与背景图像进行差分运算,获取前景图像。然后对前景图像计算otsu自适应阈值,进行二值化处理。再对二值图像进行膨胀运算,之后对像素的坐标和个数进行统计,获取一团像素点的坐标均值,绘制矩形边框进行坐标标定。最终将处理的结果送交,进行报警检测,对符合报警条件的进行实时报警。整个过程实现完全自主的背景更新和报警判断,对泳池安全进行了切实有效的保障,节省了传统泳池水下救生的人力及物力成本。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1