Gli
algoritmi di Machine Learning inclusi nelle librerie OpenCV sono numerosi e permettono di elaborare set di dati a seconda degli scenari di applicazione; la quasi totalità degli algoritmi si trovano nella
libreria ML, che espone una serie di classi e funzioni per la classificazione statistica delle informazioni, a meno dell'algoritmo di clustering
K-means e
Mahalanobis, presenti in
CVCORE, e l'algoritmo di
face detection la cui implementazione è in CV.
L'
algoritmo Maholanobis consente di misurare la distanza nello spazio dei dati, calcolando le correlazioni tra le variabili: se la covarianza corrisponde alla matrice identità, allora la misurazione coincide con la distanza euclidea; il
K-means, come detto, fa parte della famiglia degli algoritmi di
clustering e opera suddividendo i gruppi di oggetti da analizzare in K partizioni, sulla base dei loro attributi rappresentati sotto forma di vettori in uno spazio vettoriale ben definito.
Il metodo basato sull'utilizzo di un albero delle
decisioni è di tipo discriminativo e funziona trovando una caratteristica ben precisa dei dati nel nodo correttamente elaborato al fine di dividere in modo ottimale il campo di dati in classi ben separate; questo permette di procedere nella realizzazione dell'albero sino a un'esatta definizione delle caratteristiche descrittive di ogni elemento. Questo algoritmo è uno dei primi che dovrebbe essere provato, perché oltre a essere molto veloce, risulta anche molto funzionale. Un uso più avanzato di questa tecnica, insieme a un processo di analisi stocastica, permette di adoperare i
random tree, che è possibile immaginare come una combinazione di più alberi decisionali.
Il
boosting nasce dall'esigenza di stabilire se un insieme di
learner deboli, correlati solo parzialmente alla classificazione originale, può dar vita a un
learner forte, il quale invece rappresenta fedelmente il campione reale. Inizialmente, tutti i punti sono considerati deboli e, a ogni passo dell'algoritmo, tramite il training, vengono riclassificati per valutarne l'errore e la validità sino a ridurre al minimo l'incertezza.
L'
haar classifier, detto anche algoritmo di
face detection, si basa sul metodo del
boosting visto prima; le OpenCV offrono un classificatore per i visi inquadrati frontalmente, di cui è possibile trovare un
esempio sul sito ufficiale del progetto OpenCV.