Los patrones binarios locales ( LBP ) son un tipo de descriptor visual utilizado para la clasificación en visión por computadora . LBP es el caso particular del modelo Texture Spectrum propuesto en 1990. [ 1 ] [ 2 ] LBP fue descrito por primera vez en 1994. [ 3 ] [ 4 ] Desde entonces, se ha descubierto que es una característica poderosa para la clasificación de texturas; además, se ha determinado que cuando LBP se combina con el descriptor Histogram of oriented gradients (HOG), mejora considerablemente el rendimiento de detección en algunos conjuntos de datos. [ 5 ] Silva et al. realizaron una comparación de varias mejoras del LBP original en el campo de la sustracción de fondo en 2015. [ 6 ] Un estudio completo de las diferentes versiones de LBP se puede encontrar en Bouwmans et al. [ 7 ]
Concepto

El vector de características LBP, en su forma más simple, se crea de la siguiente manera:
- Divide la ventana examinada en celdas (por ejemplo, 16x16 píxeles para cada celda).
- Para cada píxel de una celda, compárelo con cada uno de sus 8 vecinos (arriba a la izquierda, en el centro a la izquierda, abajo a la izquierda, arriba a la derecha, etc.). Siga los píxeles en círculo, es decir, en el sentido de las agujas del reloj o en sentido contrario.
- Si el valor del píxel central es mayor que el de su vecino, escriba "0". En caso contrario, escriba "1". Esto genera un número binario de 8 dígitos (que generalmente se convierte a decimal para mayor comodidad).
- Calcula el histograma , sobre la celda, de la frecuencia de aparición de cada "número" (es decir, cada combinación de píxeles que son menores y mayores que el centro). Este histograma puede considerarse como un vector de características de 256 dimensiones .
- Opcionalmente, normalice el histograma.
- Concatenar (normalizados) los histogramas de todas las celdas. Esto genera un vector de características para toda la ventana.
El vector de características ahora se puede procesar utilizando máquinas de vectores de soporte , máquinas de aprendizaje extremo u otros algoritmos de aprendizaje automático para clasificar imágenes. Estos clasificadores se pueden usar para el reconocimiento facial o el análisis de texturas.
Una extensión útil del operador original es el llamado patrón uniforme, [ 8 ] que puede usarse para reducir la longitud del vector de características e implementar un descriptor simple invariante a la rotación. Esta idea está motivada por el hecho de que algunos patrones binarios aparecen con más frecuencia en las imágenes de textura que otros. Un patrón binario local se llama uniforme si contiene como máximo dos transiciones 0-1 o 1-0. Por ejemplo, 00010000 (2 transiciones) es un patrón uniforme, pero 01010100 (6 transiciones) no lo es. En el cálculo del histograma LBP, el histograma tiene un bin separado para cada patrón uniforme, y todos los patrones no uniformes se asignan a un solo bin. Utilizando patrones uniformes, la longitud del vector de características para una sola celda se reduce de 256 a 59. Los 58 patrones binarios uniformes corresponden a los enteros 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 y 255.
Extensiones
- Patrones binarios locales sobrecompletos (OCLBP): [ 9 ] OCLBP es una variante de LBP que ha demostrado mejorar el rendimiento general en la verificación facial. A diferencia de LBP, OCLBP adopta la superposición a bloques adyacentes. Formalmente, la configuración de OCLBP se denota como S : (a, b, v, h, p, r ): una imagen se divide en a×b bloques con superposición vertical de v y superposición horizontal de h, y luego se extraen patrones uniformes LBP(u2,p,r) de todos los bloques. Además, OCLBP se compone de varias configuraciones diferentes. Por ejemplo, en su artículo original, los autores utilizaron tres configuraciones: S : (10,10,12,12,8,1),(14,14,12,12,8,2),(18,18,12,12,8,3). Las tres configuraciones consideran tres tamaños de bloque: 10×10, 14×14 y 18×18, con tasas de solapamiento del 50% en las direcciones vertical y horizontal. Estas configuraciones se concatenan para formar un vector de características de 40877 dimensiones para una imagen de 150x80 píxeles.
- Patrones binarios locales de transición (tLBP): [ 10 ] El valor binario del LBP codificado de transición se compone de comparaciones de píxeles vecinos en sentido horario para todos los píxeles excepto el central.
- Patrones binarios locales codificados por dirección (dLBP): el dLBP codifica la variación de intensidad a lo largo de las cuatro direcciones básicas a través del píxel central en dos bits.
- LBP multibloque: la imagen se divide en muchos bloques, se calcula un histograma LBP para cada bloque y se concatenan para formar el histograma final.
- Patrón binario local volumétrico (VLBP): [ 11 ] VLBP considera la textura dinámica como un conjunto de volúmenes en el espacio (X,Y,T), donde X e Y representan las coordenadas espaciales y T el índice del fotograma. De esta forma, se define el vecindario de un píxel en un espacio tridimensional, y los textones volumétricos pueden extraerse en histogramas.
- RGB-LBP: Este operador se obtiene calculando LBP sobre los tres canales del espacio de color RGB de forma independiente y, a continuación, concatenando los resultados.
Implementaciones
- CMV incluye la implementación general de LBP archivada el 28/11/2014 en Wayback Machine y muchas extensiones adicionales sobre el histograma LBP en MATLAB .
- Python mahotas , un paquete de visión artificial de código abierto que incluye una implementación de LBP.
- Los clasificadores en cascada de OpenCV admiten LBP a partir de la versión 2.
- VLFeat , una biblioteca de visión artificial de código abierto en C (con enlaces a múltiples lenguajes, incluido MATLAB), tiene una implementación .
- LBPLibrary es una colección de once algoritmos de Patrones Binarios Locales (LBP) desarrollados para el problema de la sustracción de fondo. Los algoritmos se implementaron en C++ utilizando OpenCV. Se proporciona un archivo CMake y la biblioteca es compatible con Windows, Linux y Mac OS X. La biblioteca se probó con éxito con OpenCV 2.4.10.
- BGSLibrary incluye la implementación LBP original para detección de movimiento [ 12 ] así como una nueva variante del operador LBP combinada con campos aleatorios de Markov [ 13 ] con tasas de reconocimiento y robustez mejoradas.
- dlib , una biblioteca C++ de código abierto: implementación .
- scikit-image , una biblioteca Python de código abierto. Proporciona una implementación en Python basada en C para LBP.
Véase también
- Patrones ternarios locales
- Metodología de patrones binarios locales (LBP) en Scholarpedia
- Transformación del censo
Referencias
- ↑ DC. He y L. Wang (1990), "Unidad de textura, espectro de textura y análisis de textura", Transacciones IEEE sobre geociencia y teledetección, vol. 28, págs. 509 - 512.
- ↑ L. Wang y DC. He (1990), "Clasificación de texturas mediante espectro de texturas", Pattern Recognition, vol. 23, n.º 8, págs. 905 - 910.
- ↑ T. Ojala, M. Pietikäinen y D. Harwood (1994), "Evaluación del rendimiento de medidas de textura con clasificación basada en la discriminación de distribuciones de Kullback", Actas de la 12.ª Conferencia Internacional IAPR sobre Reconocimiento de Patrones (ICPR 1994), vol. 1, págs. 582-585.
- ↑ T. Ojala, M. Pietikäinen y D. Harwood (1996), "Un estudio comparativo de medidas de textura con clasificación basada en distribuciones de características", Pattern Recognition, vol. 29, pp. 51-59.
- ↑ "Un detector humano HOG-LBP con manejo de oclusión parcial", Xiaoyu Wang, Tony X. Han, Shuicheng Yan, ICCV 2009
- ↑ C. Silva, T. Bouwmans, C. Frelicot, "Un patrón binario local simétrico centrado extendido para el modelado y la sustracción de fondo en vídeos", VISAPP 2015, Berlín, Alemania, marzo de 2015.
- ↑ T. Bouwmans, C. Silva, C. Marghes, M. Zitouni, H. Bhaskar, C. Frelicot, "Sobre el papel y la importancia de las características para el modelado de fondo y la detección de primer plano", arXiv : 1611.09099
- ↑ Barkan et al. "Reconocimiento facial rápido mediante multiplicación vectorial de alta dimensión". Actas de ICCV 2013
- ↑ Barkan et al. "Reconocimiento facial rápido mediante multiplicación vectorial de alta dimensión". Actas de ICCV 2013
- ↑ Trefný, Jirí y Jirí Matas. "Conjunto extendido de patrones binarios locales para la detección rápida de objetos". Actas del Taller de Invierno de Visión por Computadora. Vol. 2010. 2010.
- ↑ Zhao, Guoying y Matti Pietikainen. "Reconocimiento dinámico de texturas mediante patrones binarios locales con una aplicación a las expresiones faciales". IEEE Transactions on Pattern Analysis and Machine Intelligence 29.6 (2007): 915-928.
- ↑ M. Heikkilä, M. Pietikäinen, "Un método basado en texturas para modelar el fondo y detectar objetos en movimiento", IEEE Transactions on Pattern Analysis and Machine Intelligence, 28(4):657-662, 2006.
- ↑ C., Kertész: Detección de primer plano basada en textura, Revista internacional de procesamiento de señales, procesamiento de imágenes y reconocimiento de patrones (IJSIP), vol. 4, n.° 4, 2011.
- Detección de características (visión por computadora)
