(九) LBP特征提取

LBP(局部二值模式)是一种用来描述图像局部纹理特征的算子,具有旋转不变性和灰度不变性等显著优点。

(1) 原始LBP

原始的LBP算子定义在一个3*3的窗口内,以窗口中心像素为阈值,与相邻的8个像素的灰度值比较,若周围的像素值大于中心像素值,则该位置被标记为1,否则标记为0.可以得到一个8位二进制,将这个值作为窗口中心像素点的LBP值,来反映这个3*3区域的纹理信息。LBP记录的是中心像素点与领域像素点之间的差值,所以当光照变化引起像素灰度值同增同减时,LBP变化并不明显,可以认为LBP对于光照变化不敏感,LBP检测的仅仅是图像的纹理信息,因此,进一步还可以将LBP做直方图统计,这个直方图可以用来作为纹理分析的特征算子。

(九) LBP特征提取

 数学公式:

(九) LBP特征提取

其中,p表示3*3窗口中除中心像素点外的第p个像素点,I(c)表示中心像素点的灰度值,I(p)表示领域内第p个像素点的灰度值。

(2) 圆形LBP

为了适应不同尺度的纹理特征,并达到灰度和旋转不变性的要求,将3*3领域扩展到任意领域,并用圆形领域代替正方形领域,改进后的LBP算子在半径为R的圆形领域内有任意多个像素点。假设半径为R的圆形区域内含有P个采样点的LBP算子:

(九) LBP特征提取

p=16,R=2时,圆形边界上的点可能不是整数或者正好落在某个格子内,可能位于交界处,可以使用双线性插值法来计算该点的像素值。

(九) LBP特征提取

 其中,p表示圆形区域中总计P个采样点中的第p个采样点,I(c)表示中心像素的灰度值,I(p)表示圆形边界像素点中第p个点灰度值。总共有p个点在圆形边界上,点坐标计算:

(九) LBP特征提取

(3) 旋转不变LBP

从原始LBP的定义来看,LBP算子是灰度不变的,但不是旋转不变的,图像旋转的话就会得到不同的LBP值。提出具有旋转不变性的LBP算子,即不断旋转圆形领域得到一系列初始定义的LBP值,取其最小值作为该领域的LBP值。

(九) LBP特征提取

 在于对LBP的结果进行二进制编码,并做循环位移,取所有结果中最小的那个值:

(九) LBP特征提取

def value_rotation(num): 
	value_list = np.zeros((8), np.uint8) 
	temp = int(num) 
	value_list[0] = temp 
	for i in range(7): 
		temp = ((temp << 1) | (temp / 128)) % 256 
		value_list[i+1] = temp 
	return np.min(value_li

(4) 均匀模式LBP

对于半径为R的圆形区域内含有P个采样点,会有2P-1种模式。很显然,随着采样点数P的增加,二进制模式的种类是呈指数趋势增长的。尽可能少且具有代表性的特征,因此需要对LBP得到的二进制模式种类进行降维,使用更少的数据量来最好地表示图像的信息,这种降维的方法就是uniform LBP。限制一个二进制序列从0到1或1到0的跳变次数不超过2次。模式数量从原来的2P种减少为P(P-1)+2种,其中P表示领域集内的采样点数。

(九) LBP特征提取

 目的就是统计二进制数的跳变次数,跳变次数小于等于2,则各自代表一类,跳变次数大于2的所有情况归为一类。

(5) 均匀模式+旋转不变模式LBP

先计算跳变次数:

(九) LBP特征提取

跳变次数小于等于2,则各自代表一类,跳变次数大于2的所有情况归为一类。得到的结果设为LBPuniP,R,再对其二进制编码做循环移位,求出最小值。

(九) LBP特征提取

 

上一篇:GCN——初步理解


下一篇:【信息技术】【2015.12】基于热成像的广域监控目标检测与跟踪