邓志豪
(广东工业大学机电工程系,广州510006)
我国是瓷砖生产大国,近年来瓷砖生产自动化已成为发展方向[1]。计算机视觉技术的引进,使得面向瓷砖的智能监控能大大加强对瓷砖的非接触式检测,检测的范围包括缺陷检测、产量计数等。而这些高层分析的基础,是在背景中将运动目标检测出来,这种技术称为运动目标检测。其核心是有效将前景像素与背景像素进行分类,提取出待处理目标。目前在计算机视觉中,对于运动目标的检测有三种常用的方法:帧差法、光流法与背景差法[2]。
帧差法是利用帧间灰度值差异来检测运动目标的,利用物体运动产生的帧间灰度差异,通过邻帧之间的差分运算,使用高通滤波的方式将运动目标区域检测出来。帧差法算法思路简单运行快,在目标检测方面得到很多应用,但当物体运动速度过快时会产生“空洞”效应。光流法是利用目标物体运动产生的光流场来检测的,算法优点明显,无需背景建模的特点决定了能在背景不断更新的环境下检测出运动目标,但算法复杂不利于应用在智能监控中对图像数据进行实时处理,另外也要求光照不能发生很明显的变化。背景差法可理解成特殊的帧差法,与光流法不同的是算法需要建立背景模型,与帧差法不同的是差分对象是当前帧与学习到的背景模型。背景差法计算量小,但对环境变化很敏感。
事实上,运动目标的颜色通常不会发生改变,也可用目标与前景之间的颜色特征差异进行区分,从而检测出目标。在应用颜色区分目标与背景时,使用HSV颜色空间优势明显。本文针对瓷砖出窑口采集的监控视频,对视频中被运送的成品瓷砖进行检测研究,在HSV 颜色空间下提取目标区域,并提出一种基于Kmeans 聚类思想的分量阈值求取算法来检测目标,经检验,能在目标与背景颜色相似的情况下准确检测出运动瓷砖目标。
HSV(Hue、Saturation、Value)颜色空间是1978 年由A.R.Smith 根据人眼视觉感知颜色的特性提出的,该空间对应HSV 颜色模型,模型将彩色信号分离成三种不同属性的分通道信号。其中H 表示色调,作用是描述颜色的基本颜色属性,例如纯红色。某种颜色经过白光的稀释,纯度会降低,使用S(饱和度)来描述颜色的纯度,色调和饱和度组合起来可以反映色彩的本质。V(亮度)反映的是图片的亮度信息。通常使用一个六角锥来描述HSV 颜色模型,六角锥模型能清晰的描述HSV 三通道描述色彩时的组合方式。如图1 所示,色调H 的描述方式为绕S 轴逆时针方向的旋转角,例如角度为120°时为绿色。饱和度S 定义是某颜色与最纯颜色的比值,故取值范围从0 到1,用在S 轴上距离原点的距离来表示。在竖直亮度V 轴上,离原点越近,图像上反应为亮度越低,越接近黑色。
图1 HSV颜色模型
实际上,RGB 颜色空间作为面向硬件的颜色空间,通常应用于显示设备当中。在运用HSV 颜色空间检测运动目标时,要将RGB 颜色空间转换到HSV 颜色空间,针对HSV 三通道即H、S、V 通道对图像进行分析。其中转换转换公式如下:
在HSV 颜色空间下,将人眼感知的具体颜色分解为不相关的三分量:色调、饱和度、亮度。在运用该空间分离图像序列中目标与背景时,需要找出他们的不同点。色调是颜色的基本属性,在应用HSV 颜色空间分离目标时,建立目标特征模型常常就是基于色调分量,CamShift 算法在检测目标时采用的也是这种思想[3]。不选用亮度的原因有二:一是亮度与颜色本质无关,二是容易受到光照强度的影响。但单纯的选用色调作为目标特征参数,没有充分的利用HSV 各分量,忽略了饱和度对颜色的影响,为了充分描述目标像素与背景像素的差异,选用色调为主要特征,饱和度为辅助特征来构建目标颜色特征模型,将目标与背景分离开达到检测目标的目的。
在构建目标颜色特征模型时,需要选取目标颜色的分量特征,即准确选择H 分量与S 分量的阈值。实际确定分量阈值时,常常依靠人眼观察目标分离程度来判断阈值选取是否正确,此方法简单方便,缺点是容易受主观因素影响,缺少可靠的阈值量化手段。为此,在研究K-means 聚类算法的基础上,运用其不断迭代以划分出不同簇的思想,将代表目标与背景的像素点不断的进行划分,最后使用划分的结果进行阈值提取,基于此阈值在HSV 空间下对目标区域进行提取,经检验此方法具有良好的效果。
K-means 算法是一种聚类算法,杂乱数据形成不同的簇,算法目的是输出划分得到不同的簇与对应的聚类中心[4]。算法核心步骤为:预先设定初始聚类数目K,即形成“簇”的个数,然后随机选取K 个数据作为聚类中心,在判定某数据是否正确划分到当前聚类中心对应簇时,采用欧氏距离作为相似度测量标准。此时将某簇内所有数据对象的均值作为新的聚类中心,假设此时聚类中心Ci对应簇中有ξ个数据,则当前数据集合的误差平方和S 用公式(4)来表示:
其中数据对象与聚类中心的欧氏距离用函数dis()计算。当S 小于阈值T 或者不再变化时,迭代结束,输出结果。K-means 聚类算法为将杂乱数据分成不同的簇,不断迭代,以K=2 为例,图2 展示了迭代过程。
图2 K-means算法迭代过程
K-means 聚类算法通过事先设置聚类数目的值,将数据集合的数据分为不同的簇并找出最能代表簇中心的值,使用迭代的方式将不同的簇分割开。结合其主要思想,在迭代的过程中将属于目标与背景的分通道数据集划分开,将每次分割后分通道均值的均值作为目标函数,以H 通道分割阈值求取为例(S 通道同)算法步骤如下:
(1)图像颜色空间由RGB 转换至HSV,分离通道后求出H 分量图像的色调极值,分别为:Hmax、Hmin,令初始阈值
(2)使用初始阈值在H 分量图中分割目标与背景部分,得出两部分平均值Hα与Hβ,此时更新分割阈值为
(3)转至步骤(2),并更新色调阈值为THX,直至新阈值不再变化,此时根据分割结果,统计H 通道图的目标区域部分的H 值范围则为该通道下的最佳分割阈值。
(4)输出阈值结果。
在计算机视觉领域中,针对视频中运动物体的研究,对象往往是包含有目标信息的二值图像[5]。在二值图像中灰度值只有0 和255,以此达到区分前景和背景的目的。对图像进行二值化处理时,关键是要选取合适的灰度分割阈值T,将图像序列中关于前景和背景的像素划根据灰度值分为两部分,假设在视频中,有某帧包含运动目标的图像各像素灰度值为fα(x,y),定义1 代表前景,0 代表背景,通过逐像素计算,判定像素点是否属于前景区域的方式,得到准确包含目标信息的二值图以便接下来的视觉高层分析。分割公式如下:
本文算法中,对于包含有目标区域信息的二值图提取上与基于灰度图的阈值分割方法不同。基于上小节的分量阈值求取,在HSV 颜色空间里求取出了可靠的目标区域分通道分割范围。针对获取视频帧图像上的像素点,如果像素点色调饱和度值在对应通道的分割阈值范围内,那么直接设定该像素点灰度值为255,否则则判定为背景,灰度值为0,绕过获取灰度图的步骤,直接达到快速获取检测结果的目的。
提取到二值图像后,由于复杂背景因素的影响,一定会产生对检测系统不利的噪声点[6]。使用图像形态学处理可以将这些孤立的噪声点去除,使得目标检测取得良好的效果。数学形态学(Mathematical Morpholo⁃gy)在图像分析领域具有重要地位,是用于分析图像几何信息的数学方法。基于数学形态学,最底层的两种处理方式分别是膨胀、腐蚀操作。其中,膨胀操作的目的是扩大二值图像的高亮区域,其过程是求局部最大值的过程,而腐蚀操作是与膨胀相反的。从数学计算角度看形态学处理,是将图像的整体或局部与设定核的卷积计算过程[7]。
对于本文提取到的运动目标,由于前景与背景的颜色相似,使得许多背景区域判定为前景。为消除细小噪声,使用一次腐蚀操作,将二值图中较小的高亮区域消除,去除噪声。经过腐蚀处理后,目标区域面积小于实际面积。为消除此次操作带来的面积变化,再进行一次膨胀操作使得目标区域回到原来的大小。经过这样一次开运算操作,能有效去除噪声,提升目标检测效果。
本实验仿真平台为Microsoft Visual Studio 2013,视觉算子库为3.4.1 版本的OpenCV,结合C++进行仿真实验,针对工业现场中由相机采集到的成品砖出窑视频进行目标检测操作。
图3(a)为监控视频中原始帧,瓷砖由下至上运动,可以看到目标与背景像素颜色相似,使用本文运动目标检测算法得出包含有噪声的二值化检测结果如图(b)所示,为消除噪声,相继对检测结果进行腐蚀以及膨胀的形态学操作方法,能有效排除无关噪声,增强运动目标检测结果的可靠性。
图3 实验仿真结果
本文首先基于对HSV 颜色空间的研究,建立目标颜色模型采用与颜色关联更紧密的色调和饱和度,提出一种基于K-means 聚类算法思想的分量阈值提取算法确定分通道阈值以区分目标像素与背景像素。实际检测结果表明算法能在目标及背景颜色相似的情况下准确分割出目标瓷砖,最后结合形态学处理,减少噪声,增加目标检测的准确性。