Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Greenpeace
Gli algoritmi di machine learning in OpenCV: presentazione e descrizione
Scritto da Rocco Galati il 14-04-2011 ore 07:17
Intel Parallel Studio XE
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.
Precedente: HTML 5: Guida pratica
Successiva: Lisp, miti e leggende
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.947 secondi.