一种双目ADAS摄像头脏污检测的方法及装置与流程

文档序号:23629575发布日期:2021-01-12 11:04
一种双目ADAS摄像头脏污检测的方法及装置与流程

本发明涉及高级驾驶辅助系统,尤其涉及双目摄像头。



背景技术:

目前,双目摄像头在汽车辅助驾驶方面已经应用多年,包括斯巴鲁等车型上已经规模化量产,作为双目adas(高级驾驶辅助系统,advanceddrivingassistancesystem)摄像头,由于其可以既有单目的识别和记录功能,而且可以有精确的深度测距功能,已较现在广泛应用的单目摄像头有着更广大的市场前景。

但是,作为车载设备,往往会有脏污遮挡摄像头镜头前,影响图像质量,从而导致视差提取、立体匹配、障碍物检测、行人、车辆识别等出现错误,对设备的功能造成极大的影响。近年来,行业内也有不少技术方案试图解决这个问题,例如,有些镜头遮挡检测的方法是通过摄像头获取场景rgb背景模型,通过前景和背景的差值来确定摄像头是否被脏污遮挡。基于普通rgb摄像头的背景建模遮挡检测方案无法区分前景像素变化由镜头遮挡造成还是由场景目标运动所造成的,所以会导致检测准确率低的问题。也有人提出采用深度摄像头脏污检测的方法,通过深度摄像头提供的深度信息提升距离信息缺失带来的误检,但是此方式对于深度图评价要求较高,不够简单实用。综上所述,无论是背景建模的方法还是基于特征分析的方法,目前都存在检测准确低或者漏检的情况,所以如何提高adas摄像头脏污检测的准确率是亟待解决的问题。



技术实现要素:

本发明的目的在于提供一种双目adas摄像头脏污检测的方法及装置,其可以高效检测双目adas摄像头脏污。

本发明的双目adas摄像头脏污检测的方法,包括步骤c:判断两个摄像头的图像是否相对一致,若是,则无脏污。

其中,进行步骤c的判断结果若为否,则进行步骤d:判断脏污图像帧数是否大于阈值2,若是,则判断为有脏污,若否,则判断为无脏污。

其中,步骤c包括顺序进行的如下步骤:步骤c1:判断结构相似性,若结构相似性判断有脏污,则进行步骤d,否则进行步骤c2;步骤c2:进行灰度对比,若灰度对比判断有脏污,则进行步骤d,否则判断为无脏污。

其中,步骤c1中,计算结构相似性ssim:

ssim(x,y)=[l(x,y)]α·[c(x,y)]β·[s(x,y)]γ(1)

其中,参与对比的左右图像分别为x、y,α、β、γ为常数,均大于0,

图像照明度对比部分:

图像对比度比较部分:

图像结构比较部分:

其中,μx为图像x所有像素均值,μy为图像y所有像素均值;δx为图像x像素值的标准差,δy为图像y像素值的标准差;表示图像x的方差,表示图像y的方差;δxy为图像x与图像y的协方差;c1,c2,c3为常数,

根据ssim的计算结果进行判断,若不大于预设阈值,则为有脏污。

其中,步骤c2中,对于同一时刻左摄像头和右摄像头的图像,将左图像分成m*n个均等的矩形区域,右图像也分成同样的m*n个均等的矩形区域,

1)计算左右图像每个矩形区域的平均灰度,分别得到左图像平均灰度矩阵gridvalueaverleft[m][n]和右图像平均灰度矩阵gridvalueaverright[m][n],

2)计算左右图像平均灰度矩阵差,

gridvalueaverdiff[m][n]=|gridvalueaverleft[m][n]-gridvalueaverright[m][n]|,

3)计算平均灰度矩阵差的所有元素权重和:

将平均灰度矩阵差gridvalueaverdiff[m][n]中的各个元素与权重矩阵weight[m][n]中各个元素对应位置相乘后各个值相加后得到权重和,即

其中,权重矩阵weight[m][n]为根据车载要求,对于图像中碰撞区域权重设置大一些,其他边缘区域权重小一些,权重矩阵中所有元素的和为1,即

4)计算左右图像整体的平均灰度差graydiff:

graydiff=|mean(l)-mean(r)|(6)

其中,l代表左图,r代表右图,mean代表对全图灰度值取平均的平均值,

5)对于以下条件:

d.graydiff大于阈值1;

e.gridweightsum大于阈值2;

f.gridweightsum与graydiff差值的绝对值大于阈值3,

若a、b、c同时满足,则判断为有脏污,否则无脏污。

其中,在进行步骤c之前,进行如下步骤:步骤a:判断车辆是否处于运动状态,若是,则进行步骤b,若否,则不进行处理;步骤b:判断运动帧数是否大于阈值1,若是,则认为当前车辆在运动中,进行步骤c,若否,则不进行处理。

其中,步骤a可以采用帧差法分别对左右摄像头拍摄的图像进行运动检测,若左右摄像头至少有一个被判断为处于运动状态,则车辆处于运动状态,所述帧差法包括如下步骤:

1)计算像素的差分:

fd(x,y)=|f(x,y,t1)-f(x,y,t2)|(7)

其中f(x,y,t1)和f(x,y,t2)分别为在t1和t2时刻采集的两幅图像的对应像素,

2)对像素的差分做阈值处理,得到以下结果:

fout(x,y)=1的像素就是像素的差分大于强度变化阈值t的像素,即运动像素,当运动像素的数量大于预设的数量阈值,则判断当前图像处于运动状态,该摄像头处于运动状态。

其中,步骤a还可通过获取车辆速度信息来判断,若根据车辆速度判断车辆非静止,则车辆处于运动状态。

本发明还提供一种存储设备,其中存储有多条指令,所述指令适于由处理器加载并执行:

步骤a:判断车辆是否处于运动状态,若是,则进行步骤b,若否,则不进行处理;

步骤b:判断运动帧数是否大于阈值1,若是,则认为当前车辆在运动中,进行步骤c,若否,则不进行处理;

步骤c:判断两个摄像头的图像是否相对一致,若是,则无脏污,若否,则进行步骤d,所述步骤c包括:

步骤c1:判断结构相似性,若结构相似性判断有脏污,则进行步骤d,否则进行步骤c2;

步骤c2:进行灰度对比,若灰度对比判断有脏污,则进行步骤d,否则判断为无脏污;

步骤d:判断脏污图像帧数是否大于阈值2,若是,则判断为有脏污,若否,则判断为无脏污。

此外,本发明还提供一种带有双目立体相机的汽车,其具有:处理器,适于实现各指令;以及存储设备,适于存储多条指令,所述指令适于由处理器加载并执行:

步骤a:判断车辆是否处于运动状态,若是,则进行步骤b,若否,则不进行处理;

步骤b:判断运动帧数是否大于阈值1,若是,则认为当前车辆在运动中,进行步骤c,若否,则不进行处理;

步骤c:判断两个摄像头的图像是否相对一致,若是,则无脏污,若否,则进行步骤d,所述步骤c包括:

步骤c1:判断结构相似性,若结构相似性判断有脏污,则进行步骤d,否则进行步骤c2;

步骤c2:进行灰度对比,若灰度对比判断有脏污,则进行步骤d,否则判断为无脏污;

步骤d:判断脏污图像帧数是否大于阈值2,若是,则判断为有脏污,若否,则判断为无脏污。

本发明的有益效果包括:本发明根据双目摄像的特点,对比双目摄像头之间图像特征,快速、简单、高效的检测出脏污。利用结构相似性ssim和灰度对比,对双目摄像头左右图进行对比分析,可以有效的将脏污场景识别出来,引入运动判断及多帧判断机制,既可以降低误检率,也可以提高用户体验,在实际应用过程中有着良好的效果。

附图说明

图1是本发明的一个实施例的双目adas摄像头脏污检测方法的流程图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步详细描述,但不作为对本发明的限定。

对于车载双目摄像头,有的安装有在挡风玻璃之后,也有的裸露在外,因此,两个摄像头都有被脏污遮挡的风险。当没有脏污干扰时,两个摄像头的图像应该是相对一致的,当有脏污时二者的图像就会出现差异性。由此,本发明考虑通过左右两个图像的结构相似性和灰度差异性来判断脏污。

1、结构相似性ssim(structuralsimilarity):

结构相似性一般应用于对比图像在传输、压缩、缩放等等后失真图像的质量如何,也就是对失真图像进行图像质量评价,这里我们将其应用于双目摄像头的脏污检测中,通过对比左右摄像头在同一时刻的图像间结构相似性作为判断是否有脏污的特征之一。

ssim(structuralsimilarity)定义:

ssim(x,y)=[l(x,y)]α·[c(x,y)]β·[s(x,y)]γ(1)

其中,参与对比的左右图像分别为x,y。α、β、γ为常数,均大于0,一般为了计算简单,α=β=γ=1。

图像照明度对比部分:

图像对比度比较部分:

图像结构比较部分:

其中,上式中,μx为图像x所有像素均值,μy为图像y所有像素均值;δx为图像x像素值的标准差,δy为图像y像素值的标准差;表示图像x的方差,表示图像y的方差;δxy为图像x与图像y的协方差;c1,c2,c3为常数,以避免分母为0时带来的系统错误。

结构相似性数值范围一般为0到1。当两个图像完全一模一样,结构相似性值为1,如果两个图像完全不同,则结构相似性值为0。实际应用中根据实际情况设置一定的阈值,大于此阈值则认为左右图差异较小,有脏污概率也小,可以近似认为无脏污,反之,则认为有脏污。

2、双目摄像头灰度对比:

拿到同一时刻左摄像头和右摄像头的图像,将左图像分成m*n个均等的矩形区域,同理右图像也分成同样的m*n个均等的矩形区域。

1)计算左右图像每个矩形区域的平均灰度,分别得到左图像平均灰度矩阵gridvalueaverleft[m][n](用m行n列的二维数组表示)和右图像平均灰度矩阵gridvalueaverright[m][n]。

2)计算左右图像平均灰度矩阵差,

gridvalueaverdiff[m][n]=|gridvalueaverleft[m][n]-gridvalueaverright[m][n]|

3)计算平均灰度矩阵差的所有元素权重和:

首先,定义一个权重矩阵weight[m][n],这个权重可以根据车载要求,对于图像中碰撞区域权重设置大一些,其他边缘区域权重小一些,权重矩阵中所有元素的和为1,即

其次,将平均灰度矩阵差gridvalueaverdiff[m][n]中的各个元素与weight[m][n]中各个元素对应位置相乘后各个值相加后得到权重和,即

4)计算左右图像整体的平均灰度差graydiff:

graydiff=|mean(l)-mean(r)|(6)

其中,l代表左图,r代表右图,mean代表对全图灰度值取平均的平均值。

5)对于以下条件:

g.graydiff大于阈值1;

h.gridweightsum大于阈值2;

i.gridweightsum与graydiff差值的绝对值大于阈值3,

当a、b、c同时满足时,我们认为左右摄像头可能受到脏污影响。

实际车辆运行过程中,情况会比较复杂,为了降低误检率,需要引入运动检测机制。一般情况下,车载双目摄像头在检测车辆运动在一定速率后才开启脏污检测功能,若车辆静止,则没必要开启脏污检测,这样既可以提高用户体验,也可节省计算资源。

进行运动检测可以采用以下两种方法之一:

1、获得车辆运动信息可以通过直接获取车辆速度信息来判断,若根据车辆速度判断车辆非静止,则开启脏污检测,否则不进行处理。

但当车速信息不能传输至设备时,则可以通过图像信息获得车辆运动信息。

2、选取帧差法进行判断,所谓帧差法是在某一摄像头拍摄的连续的图像序列中两个或三个相邻帧间采用基于像素的差分,并且通过阈值化去除静止的物体,提取图像的运动区域。图像运动意味着图像变化,运动图像分析的基本依据就是图像强度的变化,可以利用图像序列中相邻时间的像素的差分来表示强度的变化。当像素的差分大于强度变化阈值,认为该像素属于运动像素。

设在t1和t2时刻采集的两幅图像的对应像素为f(x,y,t1)和f(x,y,t2),像素的差分为:

fd(x,y)=|f(x,y,t1)-f(x,y,t2)|(7)

对像素的差分做阈值处理,就得到以下结果:

fout(x,y)=1的像素就是像素的差分大于强度变化阈值t的像素,即运动像素。当运动像素的数量大于预设的数量阈值,则可判断当前图像处于运动状态。该摄像头处于运动状态。

如图1所示,是本发明的一个实施例的双目adas摄像头脏污检测方法的流程图。其顺序进行如下步骤。

1、进行运动检测

获取左图当前帧和上一帧、右图当前帧和上一帧,用帧差法分别对左右摄像头拍摄的图像进行运动检测。若左右摄像头有一个被判断为处于运动状态,或两个都被判断为处于运动状态,则进行下一步。否则,不进行处理。

2、判断是否开始脏污检测

当运动帧数大于阈值1时,则认为当前车辆在运动中,开始脏污检测判断,进行下一步。否则,不进行处理。

3、判断结构相似性

在脏污检测时,首先进行结构相似性(ssim)判断,若ssim判断有脏污,则进行脏污帧数判断,否则进行下一步的灰度对比。

4、进行灰度对比

若灰度对比判断有脏污,则进行脏污帧数判断,否则判断为无脏污。

5、进行脏污帧数判断

判断有脏污的图像帧数是否为连续多帧,即脏污帧数大于阈值2,若是则判断为有脏污,否则判断为无脏污。

以上是本发明的优选实施方式。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明基本原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

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