Șabloane binare locale
Local Binary Patterns ( LBP ) este un operator simplu folosit pentru a clasifica texturile în viziunea computerizată . A fost descris pentru prima dată în 1994 [1] [2] . LBS este o descriere a vecinătății unui pixel de imagine în formă binară. Mai târziu, s-a constatat că LBS în combinație cu o histogramă de gradienți direcționali îmbunătățește semnificativ performanța de recunoaștere pe unele seturi de date [3] . O comparație a mai multor îmbunătățiri față de LBS inițial în domeniul separării fundalului a fost făcută în 2015 [4] .
Descriere
Vectorul caracteristic LBS în forma sa cea mai simplă se găsește după cum urmează:
- Împărțiți caseta de căutare în celule (de exemplu, 16x16 pixeli pe celulă)
- Pentru fiecare pixel din celulă, comparați cu fiecare dintre cei 8 8 vecini (stânga sus, centru sus, stânga jos, dreapta sus etc.). Înconjurați pixelii într-un cerc, adică în sensul acelor de ceasornic sau în sens invers acelor de ceasornic.
- Dacă valoarea pixelului central este mai mare decât a celui vecin, scrieți „0”, în caz contrar scrieți „1”. Rezultatul este un număr binar de 8 biți (care este de obicei convertit în zecimal întreg, pentru comoditate).
- Calculați histograma dintr-o celulă după frecvența de apariție a fiecărui „număr” (adică toate combinațiile de pixeli care sunt mai mari și mai mici decât cel central). Această histogramă poate fi reprezentată ca un vector caracteristic de 256 dimensiuni .
- Opțional, normalizați histograma.
- Concatenează (normalizate) histogramele tuturor celulelor. Aceasta va oferi vectorul caracteristic al întregii ferestre.
Vectorul de caracteristici rezultat poate fi acum procesat folosind mașina de vector de suport , mașina de învățare extremă sau alți algoritmi de învățare automată pentru clasificarea imaginilor. Clasificatori similari pot fi utilizați pentru recunoașterea feței sau analiza texturii.
O completare utilă la operatorul original este așa-numitul generic [5] , care poate fi folosit pentru a reduce lungimea vectorului caracteristic și a implementa un descriptor simplu invariant de rotație. Ideea este inspirată de faptul că unele modele binare sunt mai comune decât altele. Un șablon binar local este numit universal dacă șablonul binar conține nu mai mult de două tranziții 0-1 1-0. De exemplu, 00010000 (două tranziții) este un model generic, dar 0101010 (6 tranziții) nu este. Histograma LBS calculată are o coloană separată pentru fiecare șablon generic, toate celelalte șabloane negenerice sunt alocate aceleiași coloane. Cu ajutorul șabloanelor universale, lungimea vectorului de caracteristici pentru fiecare celulă este redusă de la 256 la 58. 58 de șabloane binare universale corespund numerelor întregi 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, 131, 131, 151, 151 191, 192, 193, 195, 199, 207, 223, 224, 225, 227, 231, 239, 240, 241, 243, 247, 248, 249, 251, 251, 25, 25, 25, 2, 5, 2, 5
Îmbunătățiri
- Over-Complete Local Binary Patterns (OCLBP) [5] : OCLBP este o variantă a LBP pentru îmbunătățirea generală a acurateței recunoașterii feței. Spre deosebire de LBP clasic, OCLBP permite suprapunerea blocurilor învecinate. Formal, OCLBP este definit ca S : (a, b, v, h, p, r): imaginea este împărțită în blocuri de dimensiunea a×b cu suprapunere verticală v și suprapunere orizontală h, apoi modelele universale LBP(u2, p, r) sunt extrase din toate blocurile. Mai mult, OCLBP poate fi compus din mai multe configurații diferite. De exemplu, autorii din articolul original au folosit trei configurații S: (10,10,12,12,8,1), *14,14,12,12,8,2), (18,18,12,12). ,8, 3). Cele trei configurații definesc trei dimensiuni de bloc: 10x10, 14x14, 18x18 și jumătate de suprapunere pe axele orizontale și verticale. Aceste configurații sunt combinate într-un vector de caracteristici de dimensiunea 40877 pentru o imagine de 150x80.
- Modele binare locale de tranziție (tLBP) [6] : Valoarea binară a codului de tranziție LBP este compusă din comparații în sensul acelor de ceasornic ale pixelilor adiacenți, excluzând cel central.
- Modele binare locale codificate în direcție (dLBP): dLBP codifică schimbarea intensității în cele patru direcții de bază prin pixelul central cu doi pixeli.
- LBP cu mai multe blocuri: imaginea este împărțită în mai multe blocuri, histogramele LBP sunt calculate pentru fiecare bloc și combinate într-o histogramă finală.
- Volum Local Binary Pattern (VLBP) [7] : VLBP tratează o textură dinamică ca un set de volume din spațiu (X,Y,T) cu X și Y ca coordonate spațiale și T ca număr de cadru. Astfel, pixelii vecini sunt definiți în spațiul tridimensional.
- RGB-LBP: Acest operator este determinat prin calcularea LBP pentru fiecare canal al spațiului de culoare RGB în mod independent, apoi combinând rezultatele.
Implementări
- CMV , include implementarea standard LBS și multe alte opțiuni de histogramă LBS în MATLAB.
- Python mahotas , un pachet open source Python computer vision care include o implementare LBS.
- Clasificatorul în cascadă OpenCV acceptă LBS începând cu versiunea 2.
- VLFeat , o bibliotecă open source computer vision în C (cu suport pentru mai multe limbi, inclusiv MATLAB) include o implementare .
- LBPLibrary conține o colecție de unsprezece algoritmi LBP dezvoltați pentru problema separării fundalului. Algoritmii au fost implementați în C++ pe baza OpenCV . Fișierul CMake inclus este compatibil cu Windows , Linux și Mac OS X. Biblioteca a fost testată pe versiunea OpenCV 2.4.10.
- BGSLibrary conține implementarea originală a LBS pentru detectarea mișcării [8] , precum și o nouă versiune a operatorului LBS combinată cu câmpuri aleatorii Markov [9] cu recunoaștere și performanță îmbunătățite.
- dlib , o bibliotecă C++ open source: implementare .
- scikit-image , o bibliotecă open source Python. Oferă o implementare C a LBS.
Note
- ↑ T. Ojala, M. Pietikäinen și D. Harwood (1996), „A Comparative Study of Texture Measures with Classification Based on Feature Distributions”, Pattern Recognition, voi. 29, pp. 51-59.
- ↑ T. Ojala, M. Pietikäinen și D. Harwood (1994), „Evaluarea performanței măsurilor de textură cu clasificare bazată pe discriminarea Kullback a distribuțiilor”, Proceedings of the 12th IAPR International Conference on Pattern Recognition (ICPR 1994), vol. 1, pp. 582-585.
- ↑ „An HOG-LBP Human Detector with Partial Occlusion Handling”, Xiaoyu Wang, Tony X. Han, Shuicheng Yan, ICCV 2009
- ↑ C. Silva, T. Bouwmans, C. Frelicot, „An eXtended Center-Symmetric Local Binary Pattern for Background Modeling and Subtraction in Videos”, VISAPP 2015, Berlin, Germania, martie 2015.
- ↑ 1 2 Barkan et. al „Recunoaștere rapidă a feței cu multiplicare vectorială dimensională înaltă.” Proceedings of ICCV 2013
- ↑ Trefný, Jirí și Jirí Matas."Set extins de modele binare locale pentru detectarea rapidă a obiectelor." Proceedings of Computer Vision Winter Workshop. Vol. 2010. 2010.
- ↑ Zhao, Guoying și Matti Pietikainen. „Recunoașterea dinamică a texturii folosind modele binare locale cu o aplicație la expresiile faciale.” IEEE Transactions on Pattern Analysis and Machine Intelligence 29.6 (2007): 915-928.
- ^ M. Heikkilä , M. Pietikäinen, „A texture-based method for modeling the background and detecting moving objects”, IEEE Transactions on Pattern Analysis and Machine Intelligence, 28(4):657-662, 2006.
- ↑ C., Kertész: Texture-Based Foreground Detection, International Journal of Signal Processing, Image Processing and Pattern Recognition (IJSIP), voi. 4, nr. 4, 2011.