LBP算法及其改进算法

这篇具有很好参考价值的文章主要介绍了LBP算法及其改进算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

LBP

LBP指局部二值模式,英文全称:Local Binary Pattern,是一种用来描述图像局部特征的算子,LBP特征具有灰度不变性和旋转不变性等显著优点。它是由T. Ojala, M.Pietikäinen, 和 D. Harwood在1994年提出,由于LBP特征计算简单、效果较好,因此LBP特征在计算机视觉的许多领域都得到了广泛的应用,LBP特征比较出名的应用是用在人脸识别和目标检测中,在计算机视觉开源库Opencv中有使用LBP特征进行人脸识别的接口,也有用LBP特征训练目标检测分类器的方法,Opencv实现了LBP特征的计算,但没有提供一个单独的计算LBP特征的接口。
原始的LBP算子定义在像素33的邻域内,以邻域中心像素为阈值,相邻的8个像素的灰度值与邻域中心的像素值进行比较,若周围像素大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,33邻域内的8个点经过比较可产生8位二进制数,将这8位二进制数依次排列形成一个二进制数字,这个二进制数字就是中心像素的LBP值,LBP值共有种可能,因此LBP值有256种。中心像素的LBP值反映了该像素周围区域的纹理信息。
备注:计算LBP特征的图像必须是灰度图,如果是彩色图,需要先转换成灰度图。
LBP算法及其改进算法

def LBP(srcimg):
    '''
    :param src:图像
    :return:
    '''
    src = cv2.cvtColor(srcimg, cv2.COLOR_RGB2GRAY)
    height = src.shape[0]
    width = src.shape[1]
    # dst = np.zeros([height, width], dtype=np.uint8)
    dst = src.copy()

    lbp_value = np.zeros((1,8), dtype=np.uint8)
    neighbours = np.zeros((1,8), dtype=np.uint8)
    for x in range(1, width-1):
        for y in range(1, height-1):
            neighbours[0, 0] = src[y - 1, x - 1]
            neighbours[0, 1] = src[y - 1, x]
            neighbours[0, 2] = src[y - 1, x + 1]
            neighbours[0, 3] = src[y, x - 1]
            neighbours[0, 4] = src[y, x + 1]
            neighbours[0, 5] = src[y + 1, x - 1]
            neighbours[0, 6] = src[y + 1, x]
            neighbours[0, 7] = src[y + 1, x + 1]

            center = src[y, x]

            for i in range(8):
                if neighbours[0, i] > center:
                    lbp_value[0, i] = 1
                else:
                    lbp_value[0, i] = 0

            lbp = lbp_value[0, 0] * 1 + lbp_value[0, 1] * 2 + lbp_value[0, 2] * 4 + lbp_value[0, 3] * 8 \
                + lbp_value[0, 4] * 16 + lbp_value[0, 5] * 32 + lbp_value[0, 6] * 64 + lbp_value[0, 0] * 128

            dst[y, x] = lbp

    return dst

LTP(2007)

作者做出了三个主要贡献:(i)提出了一个简单有效的预处理链,消除了光照变化的大部分影响,同时仍然保留了识别所需的基本外观细节;(ii)引入了局部三元模式(LTP),这是局部二元模式(LBP)局部纹理描述符的一种推广,在均匀区域中更具鉴别能力,对噪声不太敏感;(iii)用基于局部距离变换的相似性度量代替局部历史图,进一步提高了基于LBP /LTP的人脸识别的性能。
LTP将LBP扩展到三值码,即局部三值模式,其中ic周围宽度±t区域中的灰度量化为零,高于此区域的灰度量化为+1,低于此区域的灰度量化为−1,即指示器s(u)替换为三值函数:
LBP算法及其改进算法
将二进制LBP码替换为三元LTP码。这里,t是用户指定的阈值(因此LTP代码更能抵抗噪声,但不再对灰度变换严格保持不变)。图2中示出了LTP编码过程。此处阈值t设置为5,因此公差间隔为[49,59]。
LBP算法及其改进算法
下图展示了来自 Extended Yale-B frontal数据库的一个人的图像示例。这些列分别给出了子集1到5的图像。(a) 输入图像。(b) 预处理链中相应的照明归一化图像。
LBP算法及其改进算法
参考文献:
Tan X , Triggs B . Enhanced Local Texture Feature Sets for Face Recognition Under Difficult Lighting Conditions[J]. Amfg, 2007, 4778(6):1635-1650.

CLBP(2010)

完整的局部二值模式(Complete Local Binary Patterns,CLBP)提出了三种局部纹理描述算子表达纹理:窗口灰度差异描述算子(CLBP-Sign,CLBP_S)、窗口梯度差异描述算子(CLBP-Magnitude,CLBP_M)以及中心像素点描述算子(CLBP-Center,CLBP_C)。其计算方式如下:
LBP算法及其改进算法
其中,LBP算法及其改进算法
N 为图像划分的子窗口个数。从公式中可以看出:CLBP_SP,R 即为传统意义上的 LBP;CLBP_MP,R 通过两像素点的灰度差异幅值与全局灰度差异幅值的均值比较,描述了局部窗口的梯度差异信息,作为 CLBP_SP,R 的互补信息;CLBP_CP,R 反应中心像素点的灰度信息。相比于传统 LBP 及其变种,此三种描述算子联合构成的CLBP_SMC 对纹理的描述更加精细,对纹理的识别准确率有了大幅度提高。
对 CLBP 算法分析可知,当因光照不均导致图像灰度梯度分布不均匀时,即相比于图像的大部分区域,小部分区域变化幅度剧烈或变化幅度平缓时,CLBP_MP,R就显现出了它的局限性。【对光照不敏感,会遗漏掉图像光滑部分的纹理信息】

参考文献:
GUO Z, ZHAN GL, ZHANG D. A completed modeling of local binary pattern operator for texture classification [J]. IEEE Transactions on Image Processing, 2010, 19(6):1657-1663

ICLBP(2014)

在 CLBP 算法的基础上,对 CLBP 算法作了进一步改进,同时提出了一种灰度梯度差异特征描述算子 ICLBP_TP,R ,即采用两像素点的灰度差异幅值与窗口灰度差异幅值的均值比较,其计算方式如下:
LBP算法及其改进算法
其中,LBP算法及其改进算法
LBP算法及其改进算法
ICLBP算法将产生的四个纹理描述算子分别是:ICLBP_SP,R、ICLBP_MP,R、ICLBP_CP,R、ICLBP_TP,R ,其中,ICLBP_SP,R 通过对比两个像素点的灰度值大小描述局部窗口的灰度差异特征,与 CLBP_SP,R 一致;ICLBP_MP,R 通过对比两像素点的灰度差异幅值与窗口灰度差异幅值的均值大小描述局部窗口内灰度梯度差异特征;ICLBP_CP,R 通过对比窗口灰度均值与图像全局灰度均值大小描述全局图
像的灰度值差异特征;ICLBP_TP,R 通过对比窗口灰度差异幅值的均值与图像全局灰度差异幅值的均值大小描述了全局图像的梯度差异特征。
相比于原 CLBP算法,改进后的 ICLBP算法对图像纹理的描述具有更好的精细性和鲁棒性,且图像边缘更清晰,纹理更清晰精细
LBP算法及其改进算法
参考文献:刘豪,杨永全,郭仙草,等.用于纹理特征提取的改进的LBP算法[J].计算机工程与应用,2014,50(6):182-185,245.
LIU Hao, YANG Yongquan, GUO Xiancao, et al. Improved LBP used for texture feature extraction [J] . Computer Engineering and Applications, 2014,50(6):182-185,245.

FLBP(2008)

现有LBP是首先将邻域像素点灰度值和中心像素点灰度值进行相减 运算,若结果为正,将该像素局部二值编码设置为1,结果为负,将其设置0。该算法阈值固定,仅仅取决于中心像素和邻域像素灰度值的差异性,所以,此算法存在不同局部空间结构模式中可能得出同样的局部二值编码的情况,如下图所示。
LBP算法及其改进算法
为增强基本LBP对局部边缘特征鉴别程度,将模糊数学结合基本LBP。转换二值编码时,起初必须量算中心像素与邻域像素点的灰度差异度,接下来计算邻域像素点相对中心像素点的隶属度,以隶属度为依据判定局部二值编码值。如图2,隶属度高于0.5的情况下,局部二值编码确定为1,不然确定为0。
LBP算法及其改进算法

模糊局部二值模式较大程度上改善基本无法区别局部结构特征的问题,优化后的 LBP 公式写作:
LBP算法及其改进算法
其中,局部二进值编码S′定义方式

LBP算法及其改进算法
μA(u)* 为邻域像素相对于中心像素隶属度,形式化可以写作
LBP算法及其改进算法
式中:Gmax 和Gmin 分别代表的含义是半径 R 的区域内灰度最大值和最小值。
FLBP提高对于噪声的鲁棒性,但是其计算量大并且难以扩展到多尺度分析。

参考文献:
Iakovidis D K,Keramidas E G,Maroulis D. Fuzzy Local Binary Patterns for Ultrasound Texture Characterization[J]. Image Analysis and Recognition,2008:750-759.

ALBP(2010)

因为LBP无法完全表示图像的局部空间特征,不能表达纹理图像的方向性信息,Guo Zhenhua等人于2010年提出了对于旋转不变的纹理分类使用方向统计信息,用平均值和标准差来定义每个像素点及其周围像素点在每个方向上的局部差分布。为了减小局部差的统计误差,发展出了使用最小二乘估计(LSE)的自适应LBP方法(ALBP)。而且使用LSE的ALBP方法可以为分类带来附加信息,提高分类准确性。
自适应LBP是一种包含方向统计信息的旋转不变纹理分类方法。每个像素与
其周围像素灰度值的局部差的分布是由其平均值和标准差塑造的。给出一个中央像素点灰度值为g。,它的P个邻近点的灰度值为gp,P的值是从0到P-1,gc和gp之间的差值的分布是随着P不同而变化的。图3.7是一个例子,两幅纹理图像有相似的LBP分布,但是他们的局部差|gc-gp|不同。
LBP算法及其改进算法
LBP算法及其改进算法ALBP方法也可以被扩展为多尺度的方法。

参考文献:
Guo Z H, Zhang L, Zhang D, Zhang S. Rotation invariant texture classification using adaptive LBP with directional statistical features. In: Proceedings of the 17th IEEE International Conference on Image Processing. Hong Kong,China: IEEE, 2010. 285−288
宋克臣,颜云辉,陈文辉,张旭. 局部二值模式方法研究与展望[J].自动化学报,2013,39(06):730-744.

NTLBP(2012)

Fathi A等提出的NTLBP算子,使用圆形多数表决滤波器和合适的旋转不变标记方法来获得更规则的均匀和非均匀模式,这些模式具有更好的识别能力和更强的噪声鲁棒性。

作者为LBP算子设计了一种新的标记方案,该方案能够以旋转不变的方式描述模式,并且与真实图像中的模式分布更具兼容性。此方法尝试使用具有四个位转换(v=4)的所有非均匀图案。因为对于P位LBP模式,这组模式至少有两个“1”(对于P=8为00100010),最多有P-2个“1”(对于P=8,为11011101)采用1减去“1”的个数作为此类中每个图案的索引。因此,在这组非均匀模式中,与均匀模式一样,作者根据模式中“1”位的数量对P-3存储箱中的所有现有模式进行分类。此外,对于其他非均匀模式,作者对具有相同位转换(v)值的每个组使用一个标签,而不是为所有模式指定一个标签。
此外,为了降低噪声敏感性问题,作者尝试将所提出的LBP算子与标准平滑和降噪平均滤波方法相结合。为此,作者在LBP域中引入了一种新的空间平均滤波,称为循环多数投票滤波。在该滤波器中,为了减少噪声影响,使用其左右两侧邻域的多数值修改每个位的值。与平均滤波一样,这种多数表决滤波器可以平滑所获得的二进制码,并提高所提出的LBP的抗噪声性。由于多数表决是容错系统实现的传统方式,作者将该方法命名为noise tolerant LBP(NTLBP),其公式如下:
LBP算法及其改进算法
LBP算法及其改进算法
该方法的核心思想不仅是有效合理地利用局部纹理模式中更规则的非均匀原始信息,而且对噪声具有更强的鲁棒性。为此,采用了循环多数投票过滤和新的标记方案的集成。在不同数据库上的实验表明,该方法在现有LBP算子中具有最高的识别能力和分类精度,以及更好的纹理分析抗噪能力。

参考文献:
Fathi A,Naghsh-Nilchi A R. Noise tolerant local binary pattern operator for efficient texture analysis[J]. Pattern Recognition Letters,2012,33(9):1093-1100.
基于抗噪的LBP纹理特征提取研究

NRLBP、ENRLBP(2013)

Jiang 等在FLBP此基础上提出noise-resistant LBP (NRLBP)和extended noise-resistant LBP (ENRLBP),与LBP、LTP和许多其他变体相比,提议的NRLBP和ENRLBP更耐噪声。在各种应用中,建议的NRLBP和ENRLBP表现出优于LBP\LTP变体的性能。
NRLBP在具有模糊性的像素位置可以产生m种不同的均匀模式,那么每个均匀模式对最后直方图统计的权值简单的取 1/m。如果不确定模式 C(x)无
法产生均匀模式,将表示非均匀模式的 bin增加 1,通过建立一个查找表来实现,使得其计算量比FLBP 明显降低, 仅仅稍高于传统 LBP 方法而计算量依旧很复杂。
LBP算法及其改进算法
LBP算法及其改进算法
参考文献:
Ren,Jianfeng,Jiang,et al. Noise-Resistant Local Binary Pattern With an Embedded Error-Correction;Mechanism[J]. IEEE Transactions on Image Processing A Publication of the IEEE Signal Processing Society,2013,22(10):4049-4060.
基于抗噪的LBP纹理特征提取研究

CRLBP(2013)

Zhao等提出了一种完备鲁棒局部二值模式(CRLBP),其中 3*3 局部区域中每个中心像素的值被其平均局部灰度级替换。与中心灰度值相比,平均局部灰度级对噪声和光照变化更稳健。为了使 CRLBP更加稳健和稳定,还引入了加权局部灰度(WLG)代替原中心像素值,该方法对噪声具有较好的鲁棒性。

参考文献:
Zhao Y,Jia W,Hu R X,et al. Completed robust local binary pattern for texture classification[J]. Neurocomputing,2013,106(6):68-76
基于抗噪的LBP纹理特征提取研究

BRINT(2014)

Liu 等在传统 LBP 方法基础上,设计一种新的对噪声稳健的 BRINT 描述子。首先将中心像素的圆形邻域系统进用连续 Q 个邻域像素的平均值表示新的邻域系统中的一个邻域像素点,最后得到一个新的圆形邻域系统;然后再以原中心像素值为阈值对新的邻域系统进行二值量化,最终获得一个二进制模式。
BRINT是一种理论上和计算上都很简单、抗噪的纹理分类方法。该方法效率高,对加性噪声、光照和旋转不变性具有鲁棒性,避免了与均匀模式相关的缺点,并且能够对大量尺度进行编码。所提出的方法在所有数据集上都产生了一致良好的分类结果,在高噪声情况下,其表现最显著地优于最先进的方法。

参考文献:
Liu L,Yang B,Fieguth P,et al. BRINT:A binaryrotation invariant and noise tolerant texture descriptor[C]// IEEE International Conference on Image Processing. IEEE,2014.
基于抗噪的LBP纹理特征提取研究

co-ALBP(2014)

CoALBP(Co-Occurrence of adjacent Local Binary Pattern)相邻局部二值模式,它是由原始 LBP 算子模型改进得到的。因为 LBP 算子对光照具有很强的鲁棒性,所以原始 LBP 算子在纹理识别、面部识别等应用比较多,但是原始 LBP 是通过中间像素与周围像素比较二值化,然后进行直方图的统计,这会导致算子之间缺少空间信息。如图 2.10,表示了 LBP 和 CoALBP 特征的差异,CoALBP 相较于 LBP 特征算子,考虑了算子的空间信息。
LBP算法及其改进算法

参考文献:
Qi X, Xiao R, Li C G, et al. Pairwise rotation invariant co-occurrence local binary pattern[J].IEEE transactions on pattern analysis and machine intelligence, 2014, 36(11): 2199-2213.
基于网络摄像头的人脸识别系统设计文章来源地址https://www.toymoban.com/news/detail-477226.html

到了这里,关于LBP算法及其改进算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【多智能体强化学习】协作 + 值分解 + QMIX算法及其改进

    将深度强化学习技术与多智能体协作相结合,可以帮助解决现代军事决策、虚拟游戏等多个领域中的复杂任务场景。而 值分解 是平衡智能体可拓展性和环境平稳性的重要思想。 作为该思想的经典算法,QMIX将联合动作值函数近似为局部动作值函数的单调非线性组合,在StarC

    2024年03月24日
    浏览(42)
  • 安全:AES算法及其加密模式

    AES(高级加密标准)是一种对称密钥加密算法,被广泛用于保护数据的机密性。 AES算法: 结构: AES算法使用替代(SubBytes)、置换(ShiftRows)、混淆(MixColumns)和轮密钥加(AddRoundKey)等四种基本操作来处理数据块。 密钥长度: AES支持128位、192位和256位三种密钥长度,分别

    2024年01月23日
    浏览(51)
  • 数据挖掘|序列模式挖掘及其算法的python实现

    序列(sequence)模式挖掘也称为序列分析。 序列模式发现(Sequential Patterns Discovery)是由R.Agrawal于1995年首先提出的。 序列模式寻找的是事件之间在顺序上的相关性。 例如,“凡是买了喷墨打印机的顾客中,80%的人在三个月之后又买了墨盒”,就是一个序列关联规则。对于保险

    2024年04月09日
    浏览(60)
  • SIFT 算法和SURF(Speeded Up Robust Features)算法的全称是什么,分别是什么意思,分别是用来干什么的?

    问题描述:SIFT 算法和SURF(Speeded Up Robust Features)算法的全称是什么,分别是什么意思,分别是用来干什么的? 问题解答: SIFT 算法: 全称: 尺度不变特征变换(Scale-Invariant Feature Transform)。 意义: SIFT 算法用于检测图像中的关键点,并提取这些关键点的特征描述子,具有尺度

    2024年01月20日
    浏览(53)
  • 基于遗传算法改进BP神经网络的承载力预测,基于ga-bp的破坏模式预测

    目录 BP神经网络的原理 BP神经网络的定义 BP神经网络的基本结构 BP神经网络的神经元 BP神经网络的激活函数, BP神经网络的传递函数 遗传算法原理 遗传算法主要参数 遗传算法流程图 完整代码包含数据下载链接: 基于遗传算法改进BP神经网络的承载力预测,基于ga-bp的破坏模

    2024年02月02日
    浏览(55)
  • 现代密码学第二次实验:分组加密算法DES及其工作模式

    为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正! 1、掌握DES算法的工作原理。 2、熟悉分组加密算法的4种工作模式(OFB模式可不做)。 3、了解DES的雪

    2024年02月06日
    浏览(72)
  • 图像二值化算法

    图像二值化( Image Binarization)就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。二值图像每个像素只有两种取值:要么纯黑,要么纯白。进行二值化有多种方式,其中最常用的就是采用阈值法(Thresholding)进行二值化。 根据阈值

    2024年02月06日
    浏览(50)
  • 【图像处理】CCL算法--二值图的连通域提取

    https://en.wikipedia.org/wiki/Connected-component_labeling 目录 一、说明 二、连通性是拓扑模型 2.1 拓扑连通定义 2.2 道路连通

    2024年02月05日
    浏览(58)
  • 【人工智能】—局部搜索算法、爬山法、模拟退火、局部剪枝、遗传算法

    在某些规模太大的问题状态空间内,A*往往不够用 问题空间太大了 无法访问 f 小于最优的所有状态 通常,甚至无法储存整个边缘队列 解决方案 设计选择更好的启发式函数 Greedy hill-climbing (fringe size = 1) Beam search (limited fringe size) 瓶颈:内存不足,无法存储整个边缘队列 爬山搜

    2023年04月22日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包