一种基于改进的SLIC超像素分割算法的颜色识别方法
技术领域
本发明涉及计算机视觉和图像识别技术领域,具体涉及一种基于改进的SLIC超像素分割算法的颜色识别方法。
背景技术
彩色图像相对于灰度图像具有更多的信息量,彩色图像的颜色识别在实时检测系统及自动控制方面具有重要的意义,其在现代生产和科研方面都取得了越来越广泛的应用,比如在遥感技术、工业过程控制、材料的分拣识别、图像识别和产品质量检测等方面都取得了广泛的应用。
传统的彩色图像识别技术通常是基于RGB颜色空间对图像中的每个像素进行颜色判断,这样比较耗时也不利于图像的整体分析。由于图像颜色一般都是渐变的,一种颜色不会仅有一个像素,因此为了提高图像的处理速度,首先需要对图像进行超像素聚类,然后每个区域仅需要判断一次颜色,从而大大减小了运算量,提高了处理速度。
发明内容
本发明的目的在于提供一种基于改进的SLIC超像素分割算法的颜色识别方法,该方法首先对图像进行超像素聚类,然后判断每个区域的颜色;相对于以往对每个像素进行判断大大减小了运算量,提高了处理速度。
为实现上述目的,本发明采用了以下技术方案:
一种基于改进的SLIC超像素分割算法的颜色识别方法,步骤如下:
(1)加载Lab颜色模式样本集;
(2)获取待识别的目标彩色图像并对该目标彩色图像进行滤波、校正预处理;
(3)用SLIC超像素分割算法对预处理后的目标彩色图像进行处理,分割出多个不同的超像素区域;
(4)对经步骤(3)分割出的每个超像素区域进行均值处理,使每个单个超像素区域内的所有像素值是相同的,其均值式中:
其中,Nk表示第k个区域的像素个数,Ln、an、bn表示对应Lab颜色模式中三通道的像素值;
(5)将超像素区域中的一个像素值与步骤(1)中加载的样本集中颜色利用马氏距离进行比较,马氏距离最小值所对应的颜色即为该超像素区域的颜色,马氏距离计算公式为:
式中:Labi表示第i个超像素区域内的一个像素的颜色值,Labsj表示Lab颜色模式样本集中的第j类样本中第i个像素的颜色值,S-1为协方差矩阵S的逆,T表示矩阵的转置。
进一步方案,所述步骤(2)中的对目标彩色图像进行滤波、校正预处理是指先利用中值滤波器对其进行平滑图像和抑制噪声处理,然后对其进行gamma校正,以提高彩色图像的对比度。
更进一步方案,所述gamma校正是对目标彩色图像中RGB进行非线性色调编辑,则RGB中红、绿、蓝三个通道的颜色R、G、B分别如下:
其中:
r,g,b为像素三个通道值,取值范围均为[0,255]。
进一步方案,所述步骤(3)中的用SLIC超像素分割算法对预处理后的目标彩色图像进行处理的步骤如下:
(a)首先将目标彩色图像从RGB空间转化为Lab空间供后续超像素分割所用;
(b)初始化目标彩色图像被分割成超像素区域的类别数量K和迭代次数;对于像素大小为N的彩色图像,以步长初始化聚类中心,即以宽、高间隔为s取像素点为聚类中心点,聚类中心用五维向量表示为Ci=[li,ai,bi,xi,yi]T,其中(li,ai,bi)表示第i个聚类中心的颜色值,(xi,yi)为第i个聚类中心的坐标值,T表示转置;第i个聚类中心Ci与其周围像素点的距离d(i)在初始化时为无穷大,即d(i)=∞;
(c)在以聚类中心Ci为中心点的3*3区域内,比较两两像素之间的梯度大小,并将聚类中心Ci移到梯度最小的区域为Ck,从而避免聚类中心是边缘点和噪声点,其中两两像素之间的梯度G(x,y)定义如下:
式中V表示像素的五维向量,即为V[L,a,b,x,y],其中(L,a,b)表示像素的颜色值,(x,y)表示像素的坐标值;
(d)其中2s×2s邻域指的是以聚类中心Ck为中心的2s×2s区域的所有像素,s为步骤(b)中的步长大小,也就是聚类中心的周围区域;然后更新聚类中心,具体如下所示:
上两式中:Ds表示为第i个像素到聚类中心Ck的空间距离;Ckn为更新后的聚类中心的五维向量;
Labi表示第i个像素的彩色值:Labi=[Li,ai,bi];Labk表示聚类中心Ck的彩色值Labk=[Lk,ak,bk];
Si表示第i个像素的二维空间位置坐标,Si=[xi,yi]T,Sk表示聚类中心Ck的二维空间位置坐标,Sk=[xk,yk]T;
Nlab和Ns分别为彩色和空间距离的归一化常数;
Gk表示聚类中心Ck所表示的聚类区域,Nk表示聚类中心Ck内所包含的像素数量;
(e)比较步骤(b)中聚类中心Ci与周围像素点的距离d(i)和步骤(d)中像素到聚类中心Ck的空间距离Ds之间的大小,若Ds<d(i),则更新聚类中心,使d(i)=Ds,并通过标签记录此时的位置;
(f)反复执行步骤(d)、(e),直到达到步骤(b)所设定的迭代次数;
(g)比较两两相邻的更新后的聚类中心区域的亮度差值,当该差值小于设定的阈值时,将最小的聚类中心区域合并到其相邻的最大的聚类中心区域中,否则,该最小聚类中心区域继续寻找最近的聚类中心区域进行合并,其中亮度差值公式如下:Dm=(μ-μm)2;
式中,μ和μm分别表示最小聚类中心区域的平均亮度值和与其最近的邻聚类中心区域的平均亮度值,Dm表示最小的聚类中心区域和与其最近且最大的邻聚类中心区域亮度差值,m=1,2,...,P。
进一步方案,将目标彩色图像从RGB空间转化为Lab空间的步骤如下:
(a)首先将目标彩色图像的RGB空间按下面公式转换到XYZ彩色空间,
为3×3的矩阵,且
(b)将XYZ彩色空间转换到Lab空间,其转换公式如下:
式中:
L*,a*,b*是最终的LAB彩色空间三个通道的值,Xn、Yn、Zn默认都是1。
本发明提出一种基于改进SLIC超像素分隔的颜色识别方法,该发明首先对图像进行预处理,去除图像噪声点并提高图像对比度;然后利用SLIC算法对图像进行超像素区域分割,并对超像素区域进行均值处理,便于后续基于区域进行颜色识别;最后利用马氏距离来进行颜色识别,该算法相对于以往基于每个像素的颜色识别方法具有准确度高、运算量小等优点。
附图说明
图1是本发明的方法流程图;
图2中值滤波对待识别的目标彩色图像进行处理示例;
图3用SLIC超像素分割算法对预处理后的目标彩色图像进行超像素分割流程图。
具体实施方式
为了更好的理解本发明,下面结合附图对本发明做进一步说明。
实施例1:
如图1所示的是基于SLIC颜色识别的流程图,该方法包括以下步骤:
一种基于改进的SLIC超像素分割算法的颜色识别方法,步骤如下:
(1)加载Lab颜色模式样本集;
(2)获取待识别的目标彩色图像并利用中值滤波器对其进行平滑图像和抑制噪声处理,然后对其进行gamma校正,以提高彩色图像的对比度;从而避免了SLIC图像分割后产生大量微小区域,中值滤波器在平滑图像和抑制噪声的同时可以有效保留边界,如图2所示是利用中值滤波器对3×3模板进行进行平滑图像和抑制噪声处理示意图,从图2中可看出若像素点是噪声点(像素值较大)则由周围区域的像素点表示,在对图像平滑处理的同时保留了边界,处理区域为黑色字体加黑部分;
所述gamma校正是对目标彩色图像中RGB进行非线性色调编辑,则RGB中红、绿、蓝三个通道的颜色R、G、B分别如下:
其中:
r,g,b为像素三个通道值,取值范围均为[0,255],其中gamma函数不是唯一的,主要用来对图像进行非线性色调编辑;
(3)用SLIC超像素分割算法对预处理后的目标彩色图像进行超像素分割处理,分割出多个不同的超像素区域;其流程图如图3所示,具体步骤如下:
(a)首先将目标彩色图像从RGB空间转化为Lab空间供后续超像素分割所用,具体转化如下:
(aa)首先将目标彩色图像的RGB空间按下面公式转换到XYZ彩色空间,
式中:R、G、B分别代表彩色空间RGB的三个通道,X、Y、Z对应XYZ彩色空间的三个通道,M为3×3的矩阵,且
(ab)将XYZ彩色空间转换到Lab空间,其转换公式如下:
式中:
L*,a*,b*是最终的LAB彩色空间三个通道的值,Xn、Yn、Zn默认都是1;
(b)初始化目标彩色图像被分割成超像素区域的类别数量K和迭代次数;对于像素大小为N的彩色图像,以步长初始化聚类中心,即以宽、高间隔为s取像素点为聚类中心点,聚类中心用五维向量表示为Ci=[li,ai,bi,xi,yi]T,其中(li,ai,bi)表示第i个聚类中心的颜色值,(xi,yi)为第i个聚类中心的坐标值,T表示转置;第i个聚类中心Ci与其周围像素点的距离d(i)在初始化时为无穷大,即d(i)=∞;
(c)在以聚类中心Ci为中心点的3*3区域内,比较两两像素之间的梯度大小,并将聚类中心Ci移到梯度最小的区域为Ck,从而避免聚类中心是边缘点和噪声点,其中两两像素之间的梯度G(x,y)定义如下:
式中:V表示像素的五维向量,即为V[L,a,b,x,y],其中(L,a,b)表示像素的颜色值,(x,y)表示像素的坐标值;
(d)其中2s×2s邻域指的是以聚类中心Ck为中心的2s×2s区域的所有像素,s为步骤(b)中的步长大小,也就是聚类中心的周围区域;然后更新聚类中心,具体如下所示:
上两式中:Ds表示为第i个像素到聚类中心Ck的空间距离;Ckn为更新后的聚类中心的五维向量;
Labi表示第i个像素的彩色值:Labi=[Li,ai,bi];Labk表示聚类中心Ck的彩色值Labk=[Lk,ak,bk];
Si表示第i个像素的二维空间位置坐标,Si=[xi,yi]T,Sk表示聚类中心Ck的二维空间位置坐标,Sk=[xk,yk]T;
Nlab和Ns分别为彩色和空间距离的归一化常数;
Gk表示聚类中心Ck所表示的聚类区域,Nk表示聚类中心Ck内所包含的像素数量;
(e)比较步骤(b)中聚类中心Ci与周围像素点的距离d(i)和步骤(d)中像素到聚类中心Ck的空间距离Ds之间的大小,若Ds<d(i),则更新聚类中心,使d(i)=Ds,并通过标签记录此时的位置;
(f)反复执行步骤(d)、(e),直到达到步骤(b)所设定的迭代次数;
(g)比较两两相邻的更新后的聚类中心区域的亮度差值,当该差值小于设定的阈值时,将最小的聚类中心区域合并到其相邻的最大的聚类中心区域中,否则,该最小聚类中心区域继续寻找最近的聚类中心区域进行合并,其中亮度差值公式如下:Dm=(μ-μm)2;
式中,μ和μm分别表示最小聚类中心区域的平均亮度值和与其最近的邻聚类中心区域的平均亮度值,Dm表示最小的聚类中心区域和与其最近且最大的邻聚类中心区域亮度差值,m=1,2,...,P;
(4)对经步骤(3)分割出的每个超像素区域进行均值处理,使每个单个超像素区域内的所有像素值是相同的,这是因为经SLIC处理后超像素区域的相似值都是相近的,进行均值化处理后该区域的像素值相同,方便后续颜色判别;其均值式中:
其中,Nk表示第k个区域的像素个数,Ln、an、bn表示对应Lab颜色模式中三通道的像素值;
(5)经(4)处理后,每个超像素区域的像素值是相同的,这样每个区域仅需要比较一次就可得该区域的颜色。所以将超像素区域中的一个像素值与步骤(1)中加载的样本集中颜色利用马氏距离进行比较,马氏距离最小值所对应的颜色即为该超像素区域的颜色,马氏距离计算公式为:
式中:Labi表示第i个超像素区域内的一个像素的颜色值,Labsj表示Lab颜色模式样本集中的第j类样本中第i个像素的颜色值,S-1为协方差矩阵S的逆,T表示矩阵的转置。
实施例2:以识别蓝色颜色为例进行具体说明其识别方法:
(1)加载Lab颜色模式样本集,颜色样本集的种类包括:黑、红、黄、蓝、绿、白和未知;
(2)获取待识别的目标彩色图像并利用中值滤波器对其进行平滑图像和抑制噪声处理,然后对其进行gamma校正,以提高彩色图像的对比度;
(3)用SLIC超像素分割算法对预处理后的目标彩色图像进行超像素分割处理,对输入图片为612*563大小的图像分割出500个不同的超像素区域,迭代次数为20次;
(4)对经步骤(3)分割出的每个超像素区域进行均值处理,使每个单个超像素区域内的所有像素值是相同的;
(5)经(4)处理后,每个超像素区域的像素值是相同的,这样每个区域仅需要比较一次就可得该区域的颜色,对于图像中超像素区域类别号为100的区域颜色值为:计算该像素值与颜色样本集中各颜色样本集的马氏距离并比较马氏距离的大小,最终得出该像素与蓝色样本集的距离最小,则判该区域为蓝色。
以上所述的实例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。