LBP中等价模式即Uniform Pattern为什么是P*(P-1)+2维向量?

       考察LBP算子的定义可以发现,一个LBP算子可以产生不同的二进制模式,对于LBP(RP)将会产生2P种模式。显然,随着领域集内采样点数的增加,二进制模式的种类是急剧增加的。如3×3领域内8个采样点,则得到28种二进制模式;5×5领域内20个采样点,有220=1,048,576种二进制模式;7×7的领域内有36个采样点,则二进制模式的种类达到236,约为687×1010。显然,如此多的二值模式无论对于纹理的提取还是纹理的识别、分类及信息的存取都是不利的。在实际应用中,不仅要求所采用的算子尽量简单,同时也要求计算速度足够快、数据存储量尽量小。而随着模式种类的增加,计算量和数据量也会急剧增加,同时,过多的模式种类对于纹理的表达也是不利的。 

        为了解决二进制模式过多的问题,提高统计性,Ojala提出了采用一种“等价模式”(Uniform Pattern)来对LBP算子的模式种类进行降维。Ojala等认为,在实际图像中,绝大多数LBP模式最多只包含两次从1到0或从0到1的跳变。因此,Ojala将“等价模式”定义为:当某个局部二进制模式所对应的循环二进制数从0到1或从1到0最多有两次跳变时,该局部二进制模式所对应的二进制就成为一个等价模式类。如0000 0000,1111 1111,1000 0111都是等价模式类。 

 

        以LBP(1,8)为例,即在半径为1的环形区域上8个采样点的领域进行LBP编码,有资料显示,原始的二进制模式为28=256种,等价模式为P*(P-1)+2=58种,那为什么就是58种二进制模式?

       首先,要注意Ojala对等价模式的定义,即当某个局部二进制模式所对应的循环二进制数从0到1或从1到0最多有两次跳变时,该局部二进制模式所对应的二进制就成为一个等价模式类;

       其次,对于式子P*(P-1)+2中的2,很容易理解,其模式即为0000 0000和1111 1111,这是0到1或1到0跳变次数为0的情况;

       最后,式子中的P*(P-1)怎么理解?稍微列举一些等价模式就能发现规律,如1011 1111,1001 1111,1000 1111,0001 1111等,可以发现,这些等价模式中0到1或1到0的跳变次数为2(注意:等价模式中不存在跳变次数为1的情况),而且其中0的出现必须是连续的(观察以0的出现规律为例,1的出现规律类似),0连续出现的意思是中间不出现1

 

       本人数学不好,利用一种直观的较笨的方法进行统计如下:

       当8个二进制位中只出现1个0时,0的位置存在8种情况,列举如下:0111 1111,1011 1111,1101 1111,1110 1111,1111 0111,1111 1011,1111 1101,1111 1110。

      当8个二进制位中连续出现两个0时,00的位置也存在8种情况,0011 1111,1001 1111,1100 1111,1110 0111,1111 0011,1111 1001,1111 1100,0111 1110。

      同理,当8个二进制位中连续出现7个0时,0000 000的位置也存在8种情况,这样,规律就出现了,总共有8*(8-1)=56种情况。

      综上:如果对像素进行LBP(R,P)编码时,采用等价模式,产生的二进制模式种类为P*(P-1)+2种,此在MATLAB实现中将产生58维的向量。

 

      以上文字部分参考:重庆大学,黄非非的硕士学位论文《基于LBP的人脸识别研究》。

 

 

你可能感兴趣的:(图像处理,LBP,等价模式,维数)