Les motifs binaires locaux ( LBP ) sont un type de descripteur visuel utilisé pour la classification en vision par ordinateur . Le LBP est un cas particulier du modèle de spectre de texture proposé en 1990 Décrit pour la première fois en 1994 , le LBP s'est révélé être un outil puissant pour la classification de textures. Il a également été démontré que sa combinaison avec le descripteur d' histogramme des gradients orientés (HOG) améliore considérablement les performances de détection sur certains jeux de données . Une comparaison de plusieurs améliorations du LBP original dans le domaine de la soustraction d'arrière-plan a été réalisée en 2015 par Silva et al. . Une étude complète des différentes versions du LBP est disponible dans Bouwmans et al.
Concept

Le vecteur de caractéristiques LBP, dans sa forme la plus simple, est créé de la manière suivante :
- Divisez la fenêtre examinée en cellules (par exemple 16x16 pixels pour chaque cellule).
- Pour chaque pixel d'une cellule, comparez-le à chacun de ses 8 voisins (en haut à gauche, au milieu à gauche, en bas à gauche, en haut à droite, etc.). Suivez les pixels en suivant un cercle, dans le sens horaire ou antihoraire.
- Lorsque la valeur du pixel central est supérieure à celle de son voisin, inscrivez « 0 ». Sinon, inscrivez « 1 ». On obtient ainsi un nombre binaire à 8 chiffres (généralement converti en décimal par commodité).
- Calculez l' histogramme , sur la cellule, de la fréquence d'apparition de chaque « nombre » (c'est-à-dire chaque combinaison de pixels inférieurs et supérieurs à la valeur centrale). Cet histogramme peut être vu comme un vecteur de caractéristiques à 256 dimensions .
- Normaliser l'histogramme (facultatif).
- Concaténer les histogrammes (normalisés) de toutes les cellules. Cela donne un vecteur de caractéristiques pour la fenêtre entière.
Le vecteur de caractéristiques peut désormais être traité à l'aide de machines à vecteurs de support (SVM) , de machines d'apprentissage extrême (ELM ) ou d'autres algorithmes d'apprentissage automatique pour classifier les images. Ces classificateurs peuvent être utilisés pour la reconnaissance faciale ou l'analyse de texture.
Une extension utile de l'opérateur original est le motif uniforme , qui permet de réduire la longueur du vecteur de caractéristiques et d'implémenter un descripteur simple invariant par rotation. Cette idée repose sur le constat que certains motifs binaires sont plus fréquents que d'autres dans les images de texture. Un motif binaire local est dit uniforme s'il contient au plus deux transitions 0-1 ou 1-0. Par exemple, 00010000 (2 transitions) est un motif uniforme, contrairement à 01010100 (6 transitions). Lors du calcul de l'histogramme LBP, chaque motif uniforme est représenté par une case distincte, tandis que tous les motifs non uniformes sont regroupés dans une seule case. En utilisant des motifs uniformes, la longueur du vecteur de caractéristiques d'une cellule unique passe de 256 à 59. Les 58 motifs binaires uniformes correspondent aux entiers suivants : 0, 1, 2, 3, 4, 6, 7, 8, 12, 14, 15, 16, 24, 28, 30, 31, 32, 48, 56, 60, 62, 63, 64, 96, 112, 120, 124, 126, 127, 128, 129, 131, 135, 143, 159, 191, 192, 193, 195, 199, 207, 223, 224, 225, 227, 231, 239, 240. 241, 243, 247, 248, 249, 251, 252, 253, 254 et 255.
Extensions
- Motifs binaires locaux sur-complets (OCLBP) : OCLBP est une variante de LBP qui améliore les performances globales de la vérification faciale. Contrairement à LBP, OCLBP utilise le chevauchement des blocs adjacents. Formellement, la configuration d'OCLBP est notée S : (a, b, v, h, p, r) : une image est divisée en blocs a×b avec un chevauchement vertical v et horizontal h, puis des motifs uniformes LBP(u2,p,r) sont extraits de tous les blocs. De plus, OCLBP se compose de plusieurs configurations différentes. Par exemple, dans leur article original, les auteurs ont utilisé trois configurations : S : (10,10,12,12,8,1), (14,14,12,12,8,2) et (18,18,12,12,8,3). Les trois configurations considèrent trois tailles de blocs : 10×10, 14×14 et 18×18, ainsi que des taux de chevauchement de 50 % dans les directions verticale et horizontale. Ces configurations sont concaténées pour former un vecteur de caractéristiques de dimension 40 877 pour une image de taille 150×80.
- Motifs binaires locaux de transition (tLBP) : la valeur binaire du LBP codé de transition est composée de comparaisons de pixels voisins dans le sens horaire pour tous les pixels sauf le central.
- Motifs binaires locaux codés par direction (dLBP) : le dLBP encode la variation d'intensité le long des quatre directions de base à travers le pixel central en deux bits.
- LBP multi-blocs : l’image est divisée en plusieurs blocs, un histogramme LBP est calculé pour chaque bloc et concaténé pour former l’histogramme final.
- Le VLBP (Volume Local Binary Pattern) considère la texture dynamique comme un ensemble de volumes dans l'espace (X, Y, T), où X et Y désignent les coordonnées spatiales et T l'indice de l'image. Le voisinage d'un pixel est ainsi défini dans l'espace tridimensionnel, et les textons volumiques peuvent être extraits et représentés sous forme d'histogrammes.
- RGB-LBP : cet opérateur est obtenu en calculant indépendamment le LBP sur les trois canaux de l’espace colorimétrique RGB, puis en concaténant les résultats.
Mises en œuvre
- CMV inclut l' implémentation générale de LBP (archivée le 28 novembre 2014 sur la Wayback Machine) et de nombreuses extensions supplémentaires sur l'histogramme LBP dans MATLAB .
- Python mahotas , un package de vision par ordinateur open source qui inclut une implémentation de LBP.
- Les classificateurs en cascade d'OpenCV prennent en charge les LBP à partir de la version 2.
- VLFeat , une bibliothèque de vision par ordinateur open source en C (avec des liaisons vers plusieurs langages, dont MATLAB), possède une implémentation .
- LBPLibrary est une collection de onze algorithmes de motifs binaires locaux (LBP) conçus pour la soustraction d'arrière-plan. Ces algorithmes ont été implémentés en C++ avec OpenCV. Un fichier CMake est fourni et la bibliothèque est compatible avec Windows, Linux et macOS. Elle a été testée avec succès avec OpenCV 2.4.10.
- BGSLibrary inclut l'implémentation LBP originale pour la détection de mouvement ainsi qu'une nouvelle variante d'opérateur LBP combinée avec des champs aléatoires de Markov avec des taux de reconnaissance et une robustesse améliorés.
- dlib , une bibliothèque C++ open source : implémentation .
- scikit-image est une bibliothèque Python open source. Elle fournit une implémentation Python basée sur le C pour LBP.