# Motif binaire local

Les motifs binaires locaux (local binary patterns en anglais) sont des caractéristiques utilisées en vision par ordinateur pour reconnaître des textures ou pour la détection d'objet dans des images numériques.

## Introduction

Ce descripteur a été mentionné pour la première fois en 1993 pour mesurer le contraste local d'une image mais réellement popularisé trois ans plus tard par Ojala et al pour analyser les textures. Le principe général est de comparer le niveau de luminance d'un pixel avec les niveaux de ses voisins. Cela rend donc compte d'une information relative à des motifs réguliers dans l'image, autrement dit une texture. Selon l'échelle du voisinage utilisé, certaines zones d'intérêt tels des coins ou des bords peuvent être détectés par ce descripteur.

## Définition (mathématique)

Une texture est définie dans le voisinage de rayon $R$ d'une image (en niveaux de gris) comme la distribution jointe de $P+1$ pixels:
    $T=t(g_{c},g_{0},\dots ,g_{P-1})$
où $g_{c}$ est le niveau de gris du pixel $(x_{c},y_{c})$ et $g_{i}$ (avec $i=1,\dots ,P-1$) celui de $P$ points du voisinage circulaire dont il est le centre. Ainsi définie, la texture peut se représenter, sans perte d'information, par les différences de niveau de gris entre le centre et le pourtour :
    $T=t(g_{c},g_{0}-g_{c},\dots ,g_{P-1}-g_{c})$
Si on suppose que ces différences sont localement indépendantes de la valeur du pixel central, on a:
    $T=t(g_{c})t(g_{0}-g_{c},\dots ,g_{P-1}-g_{c})$
Cette hypothèse d'indépendance est bien entendu discutable puisque le niveau de gris des images est limité en pratique, et que des valeurs grandes ou petites de $g_{c}$ limiterait les valeurs possibles des différences (les deux phénomènes ne sont donc alors plus indépendants). La petite perte d'information induite par cette hypothèse d'indépendance (i.e négliger les possibles « couplages » pour les valeurs extrêmes) a néanmoins l'appréciable avantage de rendre la définition invariante aux translations dans l'image.
Puisque $t(g_{c})$ reflète l'information globale de luminance de l'image et n'est pas informatif sur la texture locale, on peut négliger ce terme:
    $T\approx t(g_{0}-g_{c},\dots ,g_{P-1}-g_{c})$
Ce vecteur de dimension P reflète les différences locales de niveau de gris. Afin de renforcer l'invariance à des changements monotones des niveaux de gris, seul le signe de ces différences est pris en compte:
    $T\approx t(\delta (g_{0}-g_{c}),\dots ,\delta (g_{P-1}-g_{c}))$
où $\delta (.)$ est la fonction de Heaviside. Il ne reste alors qu'à pondérer chaque différence avec un facteur de la forme $2^{p}$ pour obtenir un code unique, aboutissant au descripteur du motif binaire local en un point $(x_{c},y_{c})$:
    $LBP_{P,R}(x_{c},y_{c})=\sum _{p=0}^{P-1}{2^{p}\delta (g_{p}-g_{c})}$
Pour une image comportant N pixels ($x_{c},c=0\dots N-1$), ce motif est calculé en chaque point faisant sens (c'est-à-dire où le voisinage peut être défini), ce qui résulte en un descripteur global décrivant la texture de l'image.

### Remarque sur les voisinages

Selon l'application visée l'implémentation des voisinages peut être différente. Dans la définition générale donnée ci-dessus, les coordonnées des P points du voisinage de $(x_{c},y_{c})$ est donnée par:
    ${\biglx_{c}+R\cos(2\pi p/P),y_{c}-R\sin(2\pi p/P){\bigr )}$
la valeur de niveau de gris des points du voisinage qui ne «tombent» pas exactement sur un pixel réel est calculée par interpolation bilinéaire. Dans sa version originale néanmoins, il était proposé d'utiliser directement la valeur du pixel le plus proche du point P$^,$

## Application

Les motifs binaires locaux ont été utilisés pour détecter des personnes. Ils sont également une technique de base pour la reconnaissance faciale ou la soustraction de fond.