首页 理论教育实现图像旋转的稳健性优化

实现图像旋转的稳健性优化

【摘要】:综上所述,按照上述步骤1~4的方法分别计算对图像旋转具有不变性的符号分量CLBPS、幅值分量CLBPM和中心像素灰度等级分量CLBPC,即获得旋转不变的改进CLBP算法的三个分量,从而获得DDT-CLBP算法对应的纹理图像特征。为了更加直观地展示DDT-CLBP算法对图像旋转的不变性,接下来将DDT-CLBP算法与传统CLBP算法的特征提取过程进行比较。

由式(4-1)~(4-3)对CLBP算法的定义可以看出,传统CLBP算法在将纹理图像的二值编码串转换为十进制数值时采用固定的权值模板,即在对二值编码串进行加权求和时模板中所有的权值及其位置都是固定的。但是,当纹理图像发生旋转时,同一个纹理模式对应的二值编码串会发生循环移位,如果此时权值模板中所有权值的位置仍保持不变,则加权求和后获得的十进制编码值将发生改变,就会使同一个纹理模式在图像旋转前后将对应不同的十进制编码值,并在后续的纹理图像特征描述和识别中被认为是不同的纹理模式,从而导致错误的识别结果。可见,由于采用固定位置的权值模板,传统CLBP算法不具有旋转不变性。

为了使传统CLBP算法具有旋转不变性,本章提出一种利用局部模式主导方向对权值模板进行方向调谐的CLBP(Dominant Direction Tuned CLBP,DDT-CLBP)算法。该算法的核心思想是,当原始的纹理图像发生旋转时,其对应的局部纹理模式也将发生相同角度的旋转,这时先计算局部纹理模式的主导方向(即局部邻域像素与中心像素灰度差分绝对值最大的那个方向),然后利用上述的局部模式主导方向对权值模板进行相同角度的旋转,使权值模板中每个权值的位置能够始终跟踪并对应二值编码串中每个二值模式编码值的位置,从而使同一个纹理模式在图像旋转前后能够获得相同的十进制编码值,从而使最终提取的纹理图像特征不随纹理图像的旋转而发生变化。上述DDT-CLBP算法的具体实现步骤如下所述。

1.计算局部纹理图像的二值模式编码串

将局部纹理图像的邻域像素灰度值与中心像素的灰度值进行比较,如果邻域像素的灰度值大于或等于中心像素的灰度值,则该邻域像素的二值模式编码值被标记为1;如果邻域像素的灰度值小于中心像素的灰度值,则该邻域像素的二值模式编码值被标记为0。然后将水平正右侧作为起始位置(即二值模式编码串的最低位),把所有邻域像素的二值模式编码值按照顺时针的方向级联起来,组成局部纹理图像的二值模式编码串。

2.确定局部纹理模式的主导方向

对于一个半径为R,含有P个环形邻域像素点的局部纹理模式,分别计算每个邻域像素点与中心像素点的灰度差分,并对灰度差分取绝对值,然后比较这P个灰度差分绝对值的大小,最后将灰度差分绝对值最大的那个邻域像素点对应的方向作为该局部纹理模式的主导方向。

3.利用局部纹理模式的主导方向对权值模板进行相同角度的旋转

具体方法如下:当局部纹理图像的二值编码串与权值模板进行加权求和时,总是给局部纹理模式主导方向对应的那个二值模式编码值分配最大的加权值,而其他二值模式编码值的加权值从局部纹理模式的主导方向开始按逆时针依次递减。

4.获得对纹理图像旋转具有不变性的DDT-CLBP特征

在计算CLBP算法的符号分量CLBPS和幅值分量CLBPM时,分别按照上述第2~3步的方法利用局部纹理模式的主导方向对权值模板进行相同角度的旋转,使计算出的符号分量CLBPS和幅值分量CLBPM具有对图像旋转的不变性;对于中心像素灰度等级分量CLBPC,因为该分量只涉及二值化运算,不需要通过加权求和运算将其二值模式转换为十进制编码值,即没有用到权值模板,所以CLBPC分量与图像的旋转无关,这使CLBPC分量自动具有旋转不变性,不需要对其进行调整。

综上所述,按照上述步骤1~4的方法分别计算对图像旋转具有不变性的符号分量CLBPS、幅值分量CLBPM和中心像素灰度等级分量CLBPC,即获得旋转不变的改进CLBP算法的三个分量,从而获得DDT-CLBP算法对应的纹理图像特征。

最后,给出DDT-CLBP算法的公式描述,与传统CLBP算法的定义类似,也包括三个分量,即符号分量、幅值分量和中心像素的灰度等级分量,分别如式(4-5)、式(4-6)、式(4-7)所示:

式中:

P —— 半径为R的局部环形邻域上的邻域像素点个数;

gc—— 局部环形邻域内中心像素点的灰度值;

gp—— 局部环形邻域上一个邻域像素点的灰度值;

mp —— 局部环形邻域上一个邻域像素点与中心像素点灰度差分的绝对值,即

µm——整个纹理图像所有像素点灰度差分幅值mp的平均值;µI——整个纹理图像所有像素点的灰度平均值;

M——局部纹理模式主导方向对应的邻域点序号,即

mod ——求余数运算。

为了更加直观地展示DDT-CLBP算法对图像旋转的不变性,接下来将DDT-CLBP算法与传统CLBP算法的特征提取过程进行比较。首先以上述两种算法的符号分量CLBPS和DDT-CLBPS为例进行对比分析,图4-4展示了在图像旋转前后CLBPS分量和DDT-CLBPS分量对局部纹理模式的编码结果。其中,图4-4的上边一行表示图像旋转前的编码情况,下边一行表示图像旋转后的编码情况;图4-4(a)表示原始的局部纹理模式,它是原始纹理图像的一个局部图像区域,图4-4(b)表示二值化后的局部二值模式,图4-4(c)表示CLBPS分量采用的加权模板及计算出的十进制纹理模式值,图4-4(d)表示DDT-CLBPS分量采用的加权模板及计算出的十进制纹理模式值。

图4-4 CLBPS分量和DDT-CLBPS分量的旋转不变性对比

从图4-4展示的编码结果可以看出,对于同一个局部纹理模式,CLBP算法采用固定位置的权值模板,在图像旋转前后使CLBPS分量获得了不同的十进制编码值,如图4-4(c)所示,图像旋转前的编码值为66,而图像旋转后的编码值为33。由于十进制的模式编码值不同,这在纹理图像的特征表示和识别阶段会被认为是两种不同的模式,从而造成对同一个纹理模式的错误识别结果。而DDT-CLBP算法能够利用局部纹理模式的主导方向对权值模板进行相同角度的旋转,从而使权值模板的旋转与纹理图像的旋转完全同步,这种同步旋转使权值模板中每个位置的加权值与二值模式中的每个二值模式位始终对应,从而在图像旋转前后使DDT-CLBPS分量获得了相同的十进制编码值(132),如图4-4(d)所示,即获得了对图像旋转具有不变性的纹理模式编码结果。同理,CLBP算法与DDT-CLBP算法的幅值分量CLBPM和DDT-CLBPM也具有与符号分量相同的编码效果,即CLBPM分量的权值模板是固定的,在图像旋转前后对应的十进制模式编码值是不同的,而DDT-CLBPM分量的权值模板能够随图像的旋转而进行相同角度的同步旋转,使图像旋转前后的十进制模式编码值相同,即CLBPM分量不具有对图像旋转的不变性,而DDT-CLBPM分量具有对图像旋转的不变性;最后,CLBP算法与DDT-CLBP算法的中心像素灰度等级分量CLBPC和DDTCLBPC不涉及加权求和运算,与纹理图像的旋转和权值模板无关,即CLBPC和DDT-CLBPC分量自动具有对纹理图像旋转的不变性。综上所述,在对每个局部的纹理模式进行编码时,传统CLBP算法不具有对图像旋转的不变性,而本节提出的DDT-CLBP算法的三个分量DDT-CLBPS、DDT-CLBPM、DDT-CLBPC均具有对图像旋转的不变性,所以使DDT-CLBP算法获得了对图像旋转的不变性。

需要强调的是,在上述步骤中利用DDT-CLBP算法可实现局部纹理模式编码的旋转不变性,但这个旋转不变性是局部的,即仅对局部的纹理模式进行编码时才具有旋转不变性。接下来,还要实现DDT-CLBP算法在全局(即整个图像)进行特征提取时的旋转不变性。由于图像的直方图特征向量对整个图像的旋转具有不变性,并且直方图特征向量的计算非常简单高效,本章采用计算DDT-CLBPS、DDT-CLBPM和DDT-CLBPC三个分量图像联合直方图的方法来实现全局的旋转不变性。具体的实现过程如下所述:

(1)对于一个原始的纹理图像,利用DDT-CLBP算法对每个局部的纹理模式进行编码,获得三个分量DDT-CLBPS、DDT-CLBPM和DDT-CLBPC的编码图像。

(2)对三个分量DDT-CLBPS、DDT-CLBPM、DDT-CLBPC的编码图像分别计算直方图,为了降低上述三个分量的直方图以及最后联合直方图的特征维数,再对三个分量DDT-CLBPS、DDT-CLBPM、DDT-CLBPC编码图像的直方图特征向量分别按照[P+1, P+1, 2]的维数合并直方条,即DDTCLBPS、DDT-CLBPM和DDT-CLBPC编码图像在合并邻近的直方条之后的直方图特征向量的维数分别为P+1、P+1和2。

(3)利用上述第(2)步计算出的三个分量DDT-CLBPS、DDT-CLBPM和DDT-CLBPC合并直方条后的直方图特征向量,进一步计算其联合直方图DDT-CLBPS/M/C,其特征维数为(P+1)×(P+1)×2,将该联合直方图特征向量DDT-CLBPS/M/C作为原始纹理图像最终的旋转不变特征描述子。