jueves, 8 de abril de 2010

AFORGE.NET framework para agilizar el desarrollo de aplicaciones de visión artificial en C#

Recientemente durante el desarrollo de mi trabajo de grado me vi en la necesidad de buscar una herramienta que me permitiera agilizar el desarrollo de un algoritmo en el que estoy trabajando llamado IRA, en español algoritmo de reconocimiento del iris, en particular necesitaba una herramienta que me permitiera aplicar filtros sobre imágenes, segmentar y reconocer algunos patrones en las imágenes.
En la búsqueda de esta herramienta tuve el placer de encontrar AFORGE.net


Fragmento extraído de la documentación oficial:

AForge.NET Framework is a C# framework designed for developers and researchers in the fields of Computer Vision and Artificial Intelligence - image processing, computer vision, neural networks, genetic algorithms, machine learning, etc.

Como lo dice el fragmento anterior Aforge.NET es un marco de trabajo para C# diseñado para desarrolladores e investigadores en los campos de visión artificial, inteligencia artificial, procesamiento digital de imágenes, redes neuronales, algoritmos genéticos y maquinas de aprendizaje, además de otras características que se van a agregando al proyecto que es por supuesto open source y todos podemos contribuir.


El siguiente es un ejemplo de como se utiliza el framework para entrenar un perceptron multicapa comúnmente utilizado para reconocer patrones








// initialize input and output values

double[][] input = new double[4][] {

    
new double[] {00}, new double[] {01},

    
new double[] {10}, new double[] {11}

}
;

double
[][] output = new double[4][] {

    
new double[] {0}, new double[] {1},

    
new double[] {1}, new double[] {0}

}
;

// create neural network

ActivationNetwork   network = new ActivationNetwork(

    SigmoidFunction( 
),

    
2// two inputs in the network

    
2// two neurons in the first layer

    
)// one neuron in the second layer

// create teacher

BackPropagationLearning teacher = new BackPropagationLearning( network );

// loop

while ( !needToStop )

{

    
// run epoch of learning procedure

    
double error teacher.RunEpoch( input, output );

    
// check error value to see if we need to stop

    // ...

}



Colorized by: CarlosAg.CodeColorizer






Por ultimo les dejo el link del framework para los que quieran investigar un poco mas

http://www.aforgenet.com/framework/

1 comentario: