Il
training guidato in OpenCV consente di scrivere applicazioni in grado di riconoscere elementi in comune tra più immagini e identificare figure predefinite all'interno di un set di dati iniziale.
Le librerie OpenCV includono un
meccanismo di apprendimento, che consente di trasformare un insieme di file di immagini in informazioni, che possono essere riutilizzate, in automatico, per poter processare ulteriori dati alla ricerca di determinate caratteristiche. Ovviamente, a seconda dei tratti da rilevare, occorre scegliere con cura l'algoritmo più adatto per l'operazione di training.
Ad esempio, se si è interessati a riconoscere dei
volti umani allora si può adoperare un
algoritmo di clustering, che è un tipo di apprendimento non supervisionato, che usa delle analisi statistiche sui dati per descrivere il modo in cui questi sono organizzati; invece, se si vuole stimare l'
età di una persona prendendo in considerazione dei tratti specifici del viso è meglio ripiegare su un algoritmo di classificazione.
Sicuramente, il
Machine Learning (ML) è un tema molto vasto, che assume connotati diversi a seconda dell'ambito di utilizzo. In OpenCV, si è scelto di assumere dei risultati attraverso delle computazioni statistiche piuttosto che far uso delle
reti Bayesane o
campi di Markov casuali.
Il metodo basato sulla classificazione è quello che viene scelto più spesso dagli sviluppatori, in quanto è anche il più veloce da applicare: l'unico requisito è avere un vasto set di immagini, sceglierne un certo numero su cui far girare l'algoritmo dopo aver definito dei
feature vector e, alla fine dell'iter, testare l'apprendimento sui campioni di immagini restanti. I
feature vector sono dei vettori n-dimensionali, che fanno riferimento a tutte le
n caratteristiche che definiscono un oggetto.
Nel prossimo articolo verrà fatta una rapida carrellata degli altri algoritmi che è consentito utilizzare in OpenCV per implementare tecniche di ML.