<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>0123-921X</journal-id>
<journal-title><![CDATA[Tecnura]]></journal-title>
<abbrev-journal-title><![CDATA[Tecnura]]></abbrev-journal-title>
<issn>0123-921X</issn>
<publisher>
<publisher-name><![CDATA[Universidad Distrital Francisco José de Caldas]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0123-921X2013000200008</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Sistema basado en FPGA para la evaluación de redes neuronales orientadas al reconocimiento de imágenes]]></article-title>
<article-title xml:lang="en"><![CDATA[FPGA-based neural network evaluation system for image recognition]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Ruge Ruge]]></surname>
<given-names><![CDATA[Ilber Adonayt]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Alvarado]]></surname>
<given-names><![CDATA[José David]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad de Cundinamarca  ]]></institution>
<addr-line><![CDATA[Fusagasugá ]]></addr-line>
<country>Colombia</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad del Tolima  ]]></institution>
<addr-line><![CDATA[Ibagué ]]></addr-line>
<country>Colombia</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>06</month>
<year>2013</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>06</month>
<year>2013</year>
</pub-date>
<volume>17</volume>
<numero>36</numero>
<fpage>87</fpage>
<lpage>95</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S0123-921X2013000200008&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S0123-921X2013000200008&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S0123-921X2013000200008&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[En este artículo se presenta la utilización de Matrices Lógicas Programables por Campo (FPGA) para la implementación de un sistema de evaluación de redes neuronales artificiales (RNA), y la aplicación de reconocimiento de patrones de imágenes de caracteres alfabéticos, en el que se utilizan diferentes modelos de redes neuronales. Esta investigación se desarrolló para evaluar el desempeño de las redes neuronales implementadas en la FPGA y para explorar y analizar las características de funcionamiento de la FPOA Spartan-3 XCS200. El proyectó se realizó en cuatro fases, las cuales son: establecer los modelos de redes neuronales, desarrollo de una plataforma de entrenamiento de RNA utilizando Labview, diseño, implementación y verificación de los modelos de RNA, y por último, se establecieron los parámetros y se realizó la evaluación del desempeño de las RNA implementadas en la FPOA Spartan-3 XCS200.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[This paper presents the use of Field Programmable Oate Arrays (FPOA) to evaluate an Artifcial Neural Network (ANN) system, and also to apply image pattern recognition to alphabetic characters in contexts where different neural network models are utilized. This is performed in order to evaluate the performance of the neural networks implemented in the FPOA and also to analyze the Spartan-3 FPGA XCS200 performance. This study has four phases: neural network model selection; development of a training platform using Labview RNA; design, implementation and verification of RNA models; and parameter setup to evaluate RNA Spartan-3 FPOA XCS200 performance.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[FPOA]]></kwd>
<kwd lng="es"><![CDATA[inteligencia artifcial]]></kwd>
<kwd lng="es"><![CDATA[procesamiento digital de imágenes]]></kwd>
<kwd lng="es"><![CDATA[sistemas de reconocimiento de caracteres]]></kwd>
<kwd lng="en"><![CDATA[FPOA]]></kwd>
<kwd lng="en"><![CDATA[artifcial intelligence]]></kwd>
<kwd lng="en"><![CDATA[digital image processing]]></kwd>
<kwd lng="en"><![CDATA[character recognition systems]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[   <font face="verdana" size="2">       <p align="center"><font size="4"><b>Sistema basado en FPGA para la evaluaci&oacute;n de redes neuronales orientadas al reconocimiento de im&aacute;genes</b></font></p>     <p align="center"><font size="3"><b>FPGA-based neural network evaluation system for image recognition</b></font></p>      <p align="center"><b>Ilber Adonayt Ruge Ruge<sup>1</sup>, Jos&eacute; David Alvarado<sup>2</sup></b></p>      <p><sup>1</sup> Ingeniera electr&oacute;nica, magister en Ingenier&iacute;a de Control Industrial. Docente de la Universidad de Cundinamarca. Fusagasug&aacute;, Colombia. Contacto: <a href="mailto:ilberruge@yahoo.es">ilberruge@yahoo.es</a>    <br>  <sup>2</sup> Ingeniero Electr&oacute;nico, magister en Ingenier&iacute;a de Control Industrial. Investigador de la Universidad del Tolima. Ibagu&eacute;, Colombia. Contacto: <a href="mailto:elejosedavid@gmail.com">elejosedavid@gmail.com</a></p>      <p>Fecha de recepci&oacute;n: 10 de noviembre de 2011 Fecha de aceptaci&oacute;n: 27 de noviembre de 2012</p>  <hr>      <p><font size="3"><b>Resumen</b></font></p>      <p>En este art&iacute;culo se presenta la utilizaci&oacute;n de Matrices L&oacute;gicas Programables por Campo (FPGA) para la implementaci&oacute;n de un sistema de evaluaci&oacute;n de redes neuronales Artificiales (RNA), y la aplicaci&oacute;n de reconocimiento de patrones de im&aacute;genes de caracteres alfab&eacute;ticos, en el que se utilizan diferentes modelos de redes neuronales. Esta investigaci&oacute;n se desarroll&oacute; para evaluar el desempe&ntilde;o de las redes neuronales implementadas en la FPGA y para explorar y analizar las caracter&iacute;sticas de funcionamiento de la FPOA Spartan-3 XCS200. El proyect&oacute; se realiz&oacute; en cuatro fases, las cuales son: establecer los modelos de redes neuronales, desarrollo de una plataforma de entrenamiento de RNA utilizando Labview, dise&ntilde;o, implementaci&oacute;n y verificaci&oacute;n de los modelos de RNA, y por &uacute;ltimo, se establecieron los par&aacute;metros y se realiz&oacute; la evaluaci&oacute;n del desempe&ntilde;o de las RNA implementadas en la FPOA Spartan-3 XCS200.</p>      <p><b><i>Palabras clave</i></b>: FPOA, inteligencia artifcial, procesamiento digital de im&aacute;genes, sistemas de reconocimiento de caracteres.</p>  <hr>      ]]></body>
<body><![CDATA[<p><font size="3"><b>Abstract</b></font></p>      <p>This paper presents the use of Field Programmable Oate Arrays (FPOA) to evaluate an Artifcial Neural Network (ANN) system, and also to apply image pattern recognition to alphabetic characters in contexts where different neural network models are utilized. This is performed in order to evaluate the performance of the neural networks implemented in the FPOA and also to analyze the Spartan-3 FPGA XCS200 performance. This study has four phases: neural network model selection; development of a training platform using Labview RNA; design, implementation and verification of RNA models; and parameter setup to evaluate RNA Spartan-3 FPOA XCS200 performance.</p>      <p><b><i>Key words</i></b>: FPOA, artifcial intelligence, digital image processing, character recognition systems.</p>  <hr>      <p><font size="3"><b>1. Introducci&oacute;n</b></font></p>      <p>Una FPGA es un dispositivo l&oacute;gico programable que se caracteriza por su funcionalidad (fexibilidad y versatilidad), y en la actualidad se encuentra presente en el desarrollo de aplicaciones en diferentes &aacute;reas de la ingenier&iacute;a, por tal motivo se busca abordar este tipo de dispositivos para el desarrollo de una aplicaci&oacute;n que nos permita explorar y evaluar esta herramienta tecnol&oacute;gica.</p>      <p>La aplicaci&oacute;n seleccionada para el desarrollo del proyecto es el reconocimiento de patrones aplicados a caracteres alfab&eacute;ticos utilizando redes neuronales Artificiales (RNA), y se busca utilizar diferentes modelos de RNA que, dentro de sus aplicaciones, involucren esta aplicaci&oacute;n, para posteriormente evaluar y analizar el rendimiento de los diferentes modelos implementados en la FPGA XCS200.</p>      <p><font size="3"><b>2. Metodolog&iacute;a</b></font></p>      <p>El sistema de evaluaci&oacute;n de la Red Neuronal Artifcial busca comparar el funcionamiento de diferentes modelos RNA (ver <a href="#fig1">Figura 1</a>) implementados en una FPOA Spartan-3 XCS200 cuyas gu&iacute;as de identificaci&oacute;n est&aacute;n referenciadas por &#91;1&#93; y &#91;2&#93;, con el &aacute;nimo de establecer qu&eacute; modelo de red tiene un mejor rendimiento con relaci&oacute;n a la aplicaci&oacute;n de reconocimiento de patrones.</p>      <p align="center"><a name="fig1"><img src="img/revistas/tecn/v17n36/v17n36a08fig1.jpg"></a></p>      <p>En el proceso de selecci&oacute;n de la RNA, se analizaron diferentes aspectos de la topolog&iacute;a de las redes neuronales, para lo cual, Hilera Jos&eacute; &#91;3&#93; y Freeman James &#91;4&#93; muestran algunas de estas caracter&iacute;sticas a tener en cuenta para realizar una buena clasificaci&oacute;n, en t&eacute;rminos del n&uacute;mero de capas ocultas, as&iacute; como el tipo de datos que va a procesar la red neuronal (redes discretas).</p>      ]]></body>
<body><![CDATA[<p>Despu&eacute;s de analizar la informaci&oacute;n recopilada y de realizar un estudio de las diferentes topolog&iacute;as de RNA, teniendo en cuenta lo anterior, los modelos que mejor cumplen con estas caracter&iacute;sticas son: el modelo de resonancia adaptativa (ART) y el modelo Hopfield.</p>      <p><b>2.1 Plataforma de entrenamiento RNA</b></p>      <p>La plataforma es un software dise&ntilde;ado para realizar el entrenamiento de RNA (ver <a href="#fig2">Figura 2</a>) para la aplicaci&oacute;n de reconocimiento de patrones enfocado a caracteres alfab&eacute;ticos, &eacute;ste es desarrollado en Labview, que es una herramienta de instrumentaci&oacute;n virtual que ofrece ventajas para el desarrollo de este tipo de aplicaciones; la plataforma cuenta con una interfaz de usuario que ofrece facilidades para realizar el entrenamiento y, posteriormente, efectuar la verificaci&oacute;n del funcionamiento de RNA de una manera pr&aacute;ctica, donde se encuentran los controles y las herramientas necesarias para este fin, as&iacute; como la opci&oacute;n de exportar la informaci&oacute;n obtenida del entrenamiento de RNA.</p>      <p align="center"><a name="fig2"><img src="img/revistas/tecn/v17n36/v17n36a08fig2.jpg"></a></p>      <p>La plataforma de entrenamiento cuenta con un m&oacute;dulo que permite realizar el entrenamiento y la verificaci&oacute;n del funcionamiento del modelo de resonancia adaptativa, de igual manera, cuenta con un m&oacute;dulo para el modelo Hopfield que cumple la misma funci&oacute;n, el m&oacute;dulo de comunicaci&oacute;n con la FPGA permite presentar los patrones para ser transmitidos del PC a la FPGA y, por &uacute;ltimo, la opci&oacute;n de salir para terminar la ejecuci&oacute;n de la aplicaci&oacute;n.</p>      <p><b>2.2 Algoritmo de entrenamiento del modelo de resonancia adaptativa (ART)</b></p>      <p>El proceso de entrenamiento de las RNA, tal como lo anuncia Hilera Jos&eacute; &#91;3&#93;, consiste en el proceso de aprendizaje por el cual se modifican los pesos de la red en respuesta a una informaci&oacute;n de entrada, este tipo de mecanismo de aprendizaje se diferencia en cada modelo.</p>      <p>El modelo de resonancia Adaptativa ART es de tipo ON LINE y el n&uacute;mero de neuronas y el de los pesos pueden variar durante el entrenamiento y el funcionamiento de la red &#91;4&#93;. La <a href="#ec1">ecuaci&oacute;n (1)</a> muestra dicha relaci&oacute;n.</p>      <p><a name="ec1"><img src="img/revistas/tecn/v17n36/v17n36a08ec1.jpg"></a></p>      <p>Para iniciar el proceso de adaptaci&oacute;n de los pesos, la dimensi&oacute;n de red depender&aacute; del n&uacute;mero de neuronas de entrada y de patrones que se entrenar&aacute;n inicialmente, cuando se presenta el patr&oacute;n que se desea entrenar, la informaci&oacute;n se propaga a trav&eacute;s de la conexiones hacia adelante y se almacena en los pesos <i>V<Sub>ij</Sub></i> y los pesos <i>W<Sub>ij</Sub></i> se actualizan a partir de la <a href="#ec2">ecuaci&oacute;n (2)</a>:</p>      ]]></body>
<body><![CDATA[<p><a name="ec2"><img src="img/revistas/tecn/v17n36/v17n36a08ec2.jpg"></a></p>      <p>Cuando la red entra en funcionamiento, la relaci&oacute;n de semejanza es el par&aacute;metro encargado de establecer si es necesario que un nuevo patr&oacute;n sea aprendido por la red. El valor de relaci&oacute;n de semejanza que se utilizar&aacute; es de 90%, ya que los caracteres alfab&eacute;ticos tienen bastante similitud, por tal raz&oacute;n hay que ser muy selectivos para poder realizar una buena clasificaci&oacute;n. Dicho valor de relaci&oacute;n de semejanza viene dado por la expresi&oacute;n mostrada en la <a href="#ec3">ecuaci&oacute;n (3)</a>:</p>      <p><a name="ec3"><img src="img/revistas/tecn/v17n36/v17n36a08ec3.jpg"></a></p>      <p>La adaptaci&oacute;n de los pesos de la red, cuando se encuentra en funcionamiento, se realiza utilizando la <a href="#ec2">ecuaci&oacute;n (2)</a> para las conexiones feedforward <i>W<Sub>ij</Sub></i>, y para las conexiones feedback <i>V<Sub>ij</Sub></i>, lo que se realiza es que el patr&oacute;n de entrada se almacena en la matriz. La arquitectura de la red se modificar&aacute; agregando nuevas neuronas en la capa de salida.</p>      <p><b>2.3 Algoritmo de entrenamiento del modelo Hopfield</b></p>      <p>La red neuronal tipo Hopfield tiene un mecanismo de aprendizaje <i>off line</i> &#91;3&#93; y &#91;4&#93;, es decir, que inicialmente se realiza el proceso de aprendizaje, y cuando este procedimiento finaliza, comienza el proceso de funcionamiento de la red, a diferencia del aprendizaje <i>on line</i>, donde el proceso de aprendizaje y funcionamiento son paralelos o simult&aacute;neos.</p>      <p>El funcionamiento del modelo Hopfield se divide en dos partes: la primera es entrenamiento, en donde se presentan diferentes patrones que son almacenados o memorizados en la red neuronal; y la segunda parte es el funcionamiento, que consiste en que, si se le presenta a la entrada algunas de las informaciones almacenadas, la red se propaga hasta estabilizarse, ofreciendo entonces en la salida la informaci&oacute;n correspondiente a la informaci&oacute;n almacenada. Si, por el contrario, la informaci&oacute;n de entrada no coincide con ninguna de las almacenadas, por estar distorsionada o incompleta, la red se propaga generando en la salida lo m&aacute;s parecido posible a la informaci&oacute;n almacenada.</p>      <p>Para realizar a la adaptaci&oacute;n de pesos a la matriz <i>W<Sub>ij</Sub></i> se realizar&aacute; a partir de los patrones de entrada representados por los vectores E, la adaptaci&oacute;n se realiza mediante la expresi&oacute;n dada en la <a href="#ec4">ecuaci&oacute;n (4)</a>:</p>      <p><a name="ec4"><img src="img/revistas/tecn/v17n36/v17n36a08ec4.jpg"></a></p>      <p>Donde la matriz <i>E<Sub>k</Sub><Sup>T</Sup></i> es la transpuesta de la matriz <i>E<Sub>k</Sub></i>, e I es la matriz identidad de dimensiones NxN que anula los pesos de las conexiones autorrecurentes.</p>      ]]></body>
<body><![CDATA[<p><b>2.4 Implementaci&oacute;n de las RNA en FPGA</b></p>      <p>Para la implementaci&oacute;n de la Red Neuronal en la FPOA &#91;5&#93; se cuenta con la FPOA Spartan-3 XCS200 de Xilinx , y algunos aspectos importantes que se tuvieron en cuenta en la s&iacute;ntesis de la redes neuronales, basados en FPGA, son claramente expuestas por Sund Su Kim &#91;6&#93; y Coric &#91;7&#93;. De igual manera, un &iacute;tem importante tomado para el desarrollo del algoritmo de procesamiento de imagen en la FPGA es tomado de Leiner &#91;8&#93;, aunque gran parte de los algoritmos desarrollados son de origen propio. El software utilizado es el Xilinx ISE 9,1, que incorpora herramientas para la s&iacute;ntesis, implementaci&oacute;n, dise&ntilde;o y programaci&oacute;n del dispositivo.</p>      <p>El software de desarrollo permite realizar el dise&ntilde;o utilizando lenguaje de descripci&oacute;n de hardware VHDL, adem&aacute;s de permitir realizar programaci&oacute;n modular basado en este mismo lenguaje de descripci&oacute;n. Tambi&eacute;n se puede encontrar el lenguaje ABEL (Advanced Boolean Expression Language), VHDL (VHSIC Hardware Description Language) y Verilog. El lenguaje de descripci&oacute;n seleccionado para el desarrollo del proyecto es el VHDL, ya que este lenguaje es uno de los m&aacute;s populares y la informaci&oacute;n para desarrollar aplicaciones basadas en este es amplia.</p>      <p><b>2.5 Dise&ntilde;o del modelo de resonancia adaptativa (ART)</b></p>      <p>El dise&ntilde;o del modelo de ART (ver <a href="#fig3">Figura 3</a>) utilizando VHDL, se realiz&oacute; incorporando el algoritmo de funcionamiento de modelo, en donde es necesario adicionar algunos componentes para el dise&ntilde;o del modelo como: reloj del sistema, demultiplexor y el sistema para la visualizaci&oacute;n.</p>      <p align="center"><a name="fig3"><img src="img/revistas/tecn/v17n36/v17n36a08fig3.jpg"></a></p>      <p>El reloj del sistema es el encargado de la sincronizaci&oacute;n, el demultiplexor es utilizado para ajustar la informaci&oacute;n que proviene del PC (puerto paralelo) a 8 bits a los 35 bits que se requieren para representar la imagen, el bloque ART tiene incorporado el algoritmo de funcionamiento del modelo de la red neuronal; y por ultimo, se tiene el proceso de la visualizaci&oacute;n de la imagen que ajusta la se&ntilde;al d salida del modelo ART para representar el patr&oacute;n en una matriz de 7x5.</p>      <p><font size="3"><b>3. Dise&ntilde;o del modelo hopfield utilizando VHDL</b></font></p>      <p>Para realizar la implementaci&oacute;n del modelo Hopfield (ver <a href="#fig4">Figura 4</a>) se desarrolla el algoritmo de funcionamiento en VHDL, donde los bloques que hacen referencia al reloj del sistema y el de multiplexor se utilizan con los descritos anteriormente en el modelo ART (ver <a href="#fig3">Figura 3</a>).</p>      <p align="center"><a name="fig4"><img src="img/revistas/tecn/v17n36/v17n36a08fig4.jpg"></a></p>      ]]></body>
<body><![CDATA[<p>En el bloque Hopfield se desarroll&oacute; el algoritmo de funcionamiento del modelo de red neuronal utilizando VHDL, en el cual, el m&oacute;dulo de visualizaci&oacute;n realiza el ajuste de la se&ntilde;al de salida del m&oacute;dulo Hopfield para representarla en un matriz de 7x5.</p>      <p><font size="3"><b>4. Adquisici&oacute;n y procesamiento de la imagen</b></font></p>      <p>El proceso de adquisici&oacute;n de la imagen se realiza utilizando una herramienta, la cual permite plasmar una imagen de tama&ntilde;o 350x250 p&iacute;xeles, posteriormente, se ejecuta un procesamiento de la imagen realizando una caracterizaci&oacute;n de una imagen obteniendo as&iacute; un patr&oacute;n representativo de la original.</p>      <p><b>4.1 Implementaci&oacute;n de las RNA en FPGA</b></p>      <p>Una vez concluida la etapa de dise&ntilde;o del c&oacute;digo en VHDL que describe cada uno de los m&oacute;dulos necesarios para la implementaci&oacute;n de los modelos de redes seleccionados, el software Xilinx ISE utilizado para el desarrollo de aplicaciones basadas en FPGA permite realizar la metodolog&iacute;a de dise&ntilde;o necesaria para la implementaci&oacute;n, los pasos necesarios para realizar la programaci&oacute;n (reconfiguraci&oacute;n de hardware) del dispositivo <a href="#fig5">Figura 5</a>, &#91;3&#93;.</p>      <p align="center"><a name="fig5"><img src="img/revistas/tecn/v17n36/v17n36a08fig5.jpg"></a></p>      <p><b>4.2 Implementaci&oacute;n del modelo ART</b></p>      <p>El modelo ART es entrenado para clasificar diez patrones diferentes, compuestos por pixeles que representan los primeros caracteres del alfabeto, obteniendo una arquitectura del modelo red neuronal de 35 neuronas en la capa de entrada y de 10 neuronas en la capa de salida alcanzando 350 conexiones e igual n&uacute;mero de pesos entre las neuronas <a href="#fig6">Figura 6</a>.</p>      <p align="center"><a name="fig6"><img src="img/revistas/tecn/v17n36/v17n36a08fig6.jpg"></a></p>      <p><b>4.3 Implementaci&oacute;n del modelo Hopfield</b></p>      ]]></body>
<body><![CDATA[<p>El modelo Hopfield es entrenado para clasificar cinco patrones diferentes, el n&uacute;mero de patrones utilizado se debe a que el autor establece una limitaci&oacute;n de la capacidad del n&uacute;mero de patrones que se pueden entrenar para obtener una buena clasificaci&oacute;n, debe ser menor que el 13.8% del n&uacute;mero de neuronas de la capa de entrada, otra limitaci&oacute;n que presenta el modelo es que los patrones entrenados deben tener una diferencia igual o mayor a 30 %, teniendo en cuenta lo anterior, los patrones entrenados son: G, I, J, K, I, en la <a href="#fig6">Figura 6</a> se encuentran las caracter&iacute;sticas de los patrones.</p>      <p>La arquitectura de red obtenida al realizar el entrenamiento es de 35 neuronas en la capa de entrada y 35 neuronas en la capa de salida, para un total de 1190 conexiones entre la neuronas de la red, vale la pena resaltar que el n&uacute;mero de pesos obtenido en el entrenamiento no se modificar&aacute; si se modifica el n&uacute;mero de patrones entrenados en la red.</p>      <p><font size="3"><b>5. Resultados</b></font></p>      <p>La evaluaci&oacute;n de RNA se realiz&oacute; en dos etapas: lo primero, es efectuar la verificaci&oacute;n del funcionamiento de los modelos de redes implementadas en la FPGA para, posteriormente, evaluar el desempe&ntilde;o de las redes implementadas con respeto a la aplicaci&oacute;n de reconocimiento de patrones.</p>      <p><b>5.1 Verificaci&oacute;n modelo ART</b></p>      <p>Utilizando el m&oacute;dulo de comunicaci&oacute;n para presentarle diferentes patrones a la RNA implementada en la FPGA, los resultados que se obtienen se pueden ver en <a href="#tab1">Tabla 1</a>.</p>      <p align="center"><a name="tab1"><img src="img/revistas/tecn/v17n36/v17n36a08tab1.jpg"></a></p>      <p>El funcionamiento de red neuronal implementada en la FPGA tiene un comportamiento &oacute;ptimo, comparado con los resultados obtenidos en la simulaci&oacute;n. La plataforma s&oacute;lo tiene problemas en la clasificaci&oacute;n de los patrones correspondientes a los caracteres E y F, y los patrones C y G, debido a la similitud que presentan estos. Los resultados mostrados en la <a href="#tab1">Tabla 1</a> corresponden a los obtenidos en la simulaci&oacute;n, y se puede considerar que son satisfactorios para los prop&oacute;sitos de la investigaci&oacute;n.</p>      <p><b>5.2 Verificaci&oacute;n del Modelo Hopfield</b></p>      <p>El proceso de verificaci&oacute;n del funcionamiento no se logr&oacute; realizar debido a que la capacidad de la FPGA utilizada para el desarrollo del proyecto no cuenta con los recursos l&oacute;gicos necesarios para la implementaci&oacute;n de la red neuronal, seg&uacute;n el Report HTML entregado por el software de desarrollo ISE 9,1.</p>      ]]></body>
<body><![CDATA[<p>Debido a que no se pudo realizar la implementaci&oacute;n del sistema completo, se utiliz&oacute; un n&uacute;mero menor de neuronas para verificar el funcionamiento del modelo Hopfield, los resultados obtenidos al comparar el funcionamiento de cinco neuronas implementadas en la FPGA, con los resultados de la simulaci&oacute;n, es que ten&iacute;an un correcto funcionamiento; debido a esto, se puede decir que el c&oacute;digo VHDL dise&ntilde;ado con el fin de describir el funcionamiento del modelo Hopfield es correcto.</p>      <p>Despu&eacute;s de realizar un breve an&aacute;lisis al sistema de evaluaci&oacute;n, el par&aacute;metro m&aacute;s relevante que se estableci&oacute; es la cantidad de recursos con lo que dispone la FPOA Spartan-3 utilizada para el desarrollo del proyecto. Esto se estableci&oacute; teniendo en cuenta las caracter&iacute;sticas y la arquitectura de las RNA para la aplicaci&oacute;n de reconocimiento de patrones, como se muestra en la <a href="#tab2">Tabla 2</a>, debido a la cantidad de recursos que necesita cada modelo para ser implementadas en la FPGA.</p>      <p align="center"><a name="tab2"><img src="img/revistas/tecn/v17n36/v17n36a08tab2.jpg"></a></p>      <p>Los recursos utilizados por el modelo ART y el modelo Hopfield se muestran en la <a href="#tab3">Tabla 3</a>, en donde se encuentran los recursos usados y el porcentaje de utilizaci&oacute;n.</p>      <p align="center"><a name="tab3"><img src="img/revistas/tecn/v17n36/v17n36a08tab3.jpg"></a></p>      <p>Los recursos utilizados por el modelo ART son relativamente bajos, con respecto a la arquitectura de la red neuronal, y se puede establecer que cada neurona utiliza algo m&aacute;s del 2 % de los recursos de la FPGA XC200, en base a esto, es posible entrenar de 30 a 35 patrones adicionales ya que se dispone del 70 % de los recursos de la FPGA XC200.</p>      <p>Para el modelo Hopfield no se puede realizar la implementaci&oacute;n del sistema propuesto, debido a que los recursos de la FPOA no son sufcientes como se observa en la <a href="#tab4">Tabla 4</a>, esto se debe, en parte, a las caracter&iacute;sticas de la red como la representaci&oacute;n de la informaci&oacute;n de entrada, que en este caso utilizan valores binarios de 1 y -1, y debido a &eacute;sto el valor de alguno de los pesos de la red tiene valores negativos lo que implica un gasto computacional elevado, otro aspecto es la arquitectura de la red que en este caso es de 35 neuronas en la capa de entrada y 35 neuronas en la capa de salida que generan 1190 conexiones entre las neuronas de la red.</p>      <p align="center"><a name="tab4"><img src="img/revistas/tecn/v17n36/v17n36a08tab4.jpg"></a></p>      <p>Debido a que no se pudo realizar la implementaci&oacute;n del modelo Hopfield en la FPOA XC200, se buscaron alternativas de dise&ntilde;o para optimizar el c&oacute;digo VHDL y a partir de esto reducir la cantidad de recursos requeridos. La alternativa que se utiliz&oacute; para realizar la optimizaci&oacute;n del c&oacute;digo VHDL es la herramienta de Xilinx System Generator, el cual permite dise&ntilde;ar una aplicaci&oacute;n para FPGA utilizando el simulink de Matlab, y cuyos resultados de requerimientos de implementaci&oacute;n se muestran en la <a href="#tab4">Tabla 4</a>.</p>      <p>Si se comparan los resultados obtenidos entre la opci&oacute;n A y la opci&oacute;n B, el System Generator realmente permite optimizar los recursos utilizados por la FPOA XCS200 Spartan-3, debido a que se presenta una disminuci&oacute;n del 40% de la opci&oacute;n B con respecto a la opci&oacute;n A, pero la implementaci&oacute;n del modelo Hopfield no se puede realizar por que la reducci&oacute;n de los recursos utilizados por la aplicaci&oacute;n superan la capacidad de FPGA con la que se cuenta para el desarrollo del proyecto.</p>      ]]></body>
<body><![CDATA[<p>Debido a que la FPGA utilizada para el desarrollo del proyecto no posee los recursos necesarios l&oacute;gicos para realizar la implementaci&oacute;n del modelo Hopfield, a trav&eacute;s de software Xilinx ISE se realizaron simulaciones con el &aacute;nimo de establecer que FPGA tiene los recursos necesarios para la implementaci&oacute;n, despu&eacute;s de realizar diferentes simulaciones, se obtuvo que la FPOA Spartan-3 XCS1000 que dispone de 1000k compuertas, cuenta con los recursos necesarios para realizar la implementaci&oacute;n del modelo Hopfield.</p>      <p><font size="3"><b>6. Conclusiones</b></font></p>      <p>La utilizaci&oacute;n de una FPGA para la implementaci&oacute;n de RNA en un hardware, ofrece ventajas para el dise&ntilde;o y desarrollo de este tipo de aplicaci&oacute;n, como la disminuci&oacute;n del tiempo de desarrollo, la reducci&oacute;n de los costos de fabricaci&oacute;n, el buen rendimiento del sistema, una alta escala de integraci&oacute;n y de capacidad, y, la m&aacute;s determinante, es que permite la reconfiguraci&oacute;n de hardware sin realizar procesos que impliquen grandes cambios de dise&ntilde;o comparados con otras tecnolog&iacute;as como DSP, VLSI ,PCB y ASIC.</p>     <p>El modelo de red neuronal que mejor desempe&ntilde;o demostr&oacute; es el modelo ART, esto se debe principalmente a que la FPOA Spartan-3 XCS200 contaba con los recursos sufcientes para la implementaci&oacute;n del modelo de red neuronal y, al realizar la verificaci&oacute;n entre la FPOA con respecto a la simulaci&oacute;n, el resultado que se obtuvo fue que el sistema implementado present&oacute; un correcto funcionamiento. Por otra parte, el n&uacute;mero de patrones que puede clasificar el modelo ART es ampliamente mayor al modelo Hopfield en este caso, aunque este margen se podr&aacute; reducir al aumentar las dimensiones del patr&oacute;n de entrada.</p>  <hr>      <p><font size="3"><b>Referencias</b></font></p>      <!-- ref --><p>&#91;1&#93; Xilinx, <i>Spartan-3 Starter Kit Board User Guide, UG130 (v1.1)</i>, Xilinx, 2005.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000088&pid=S0123-921X201300020000800001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>      <!-- ref --><p>&#91;2&#93; K. Parnell and N. Metha, Nick, <i>Programmable logic Design Quick Start Hand Book</i>, Fourth Edition ISE 5, 1i, Xilinx, 2003.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000090&pid=S0123-921X201300020000800002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>      <!-- ref --><p>&#91;3&#93; J. Hilera y V. Mart&iacute;nez, <i>Redes Neuronales Artificiales fundamentos modelo y aplicaciones</i>, RAMA, 1995.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000092&pid=S0123-921X201300020000800003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>      <!-- ref --><p>&#91;4&#93; J. Freeman y D. Skapura, <i>Redes Neurona-les Algoritmos, aplicaciones y t&eacute;cnicas de programaci&oacute;n</i>, Addison Wesley, 1993.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000094&pid=S0123-921X201300020000800004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>      <!-- ref --><p>&#91;5&#93; F. Pardo y J. Baluda, <i>VHDL lenguaje para s&iacute;ntesis y modelado de circuitos</i>. Alfaomega, 2004.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000096&pid=S0123-921X201300020000800005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>      <!-- ref --><p>&#91;6&#93; S. Sund and J. Seul, &quot;Hardware implementation of real time neural network controller with a DSP and FPGA&quot;,<i> IEEE International Conference  on Robotics and Automation</i>, Vol. 5, pp. 3161-3165, April, 2004.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000098&pid=S0123-921X201300020000800006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>      <!-- ref --><p>&#91;7&#93; S. Coric, &quot;A neural network FPGA implementation, Neural Network Applications&quot;, in <i>Electrical Engineering 2000. NEUREL 2000. Proceeding of the 5th seminar on Northeastern University</i>, Boston, 2000.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000100&pid=S0123-921X201300020000800007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>      <!-- ref --><p>&#91;8&#93; B. Leiner y V. Lorena, &quot;Hardware architecture for FPGA implemetation of neural network and its application in images processing programmable logic&quot;, in <i>4th Southern Conference on Digital</i>, pp. 209-212, 2008.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000102&pid=S0123-921X201300020000800008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p> </font>      ]]></body><back>
<ref-list>
<ref id="B1">
<label>&#91;1&#93;</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
</name>
<name>
</name>
</person-group>
<source><![CDATA[Spartan-3 Starter Kit Board User Guide, UG130 (v1.1)]]></source>
<year>2005</year>
<publisher-name><![CDATA[Xilinx]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B2">
<label>&#91;2&#93;</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Parnell]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
<name>
<surname><![CDATA[Metha]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
<name>
</name>
<name>
</name>
</person-group>
<source><![CDATA[Programmable logic Design Quick Start Hand Book]]></source>
<year>2003</year>
<edition>Fourth Edition ISE 5</edition>
<publisher-name><![CDATA[1i, Xilinx]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B3">
<label>&#91;3&#93;</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Hilera]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Martínez]]></surname>
<given-names><![CDATA[V]]></given-names>
</name>
</person-group>
<source><![CDATA[Redes Neuronales Artificiales fundamentos modelo y aplicaciones]]></source>
<year>1995</year>
<publisher-name><![CDATA[RAMA]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<label>&#91;4&#93;</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Freeman]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Skapura]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<source><![CDATA[Redes Neurona-les Algoritmos, aplicaciones y técnicas de programación]]></source>
<year>1993</year>
<publisher-name><![CDATA[Addison Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<label>&#91;5&#93;</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Pardo]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Baluda]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[VHDL lenguaje para síntesis y modelado de circuitos]]></source>
<year>2004</year>
<publisher-name><![CDATA[Alfaomega]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B6">
<label>&#91;6&#93;</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sund]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Seul]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[Hardware implementation of real time neural network controller with a DSP and FPGA]]></source>
<year>Apri</year>
<month>l,</month>
<day> 2</day>
<volume>5</volume>
<page-range>3161-3165</page-range></nlm-citation>
</ref>
<ref id="B7">
<label>&#91;7&#93;</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Coric]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A neural network FPGA implementation, Neural Network Applications]]></article-title>
<source><![CDATA[in Electrical Engineering 2000. NEUREL 2000.]]></source>
<year>2000</year>
<publisher-loc><![CDATA[Boston ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B8">
<label>&#91;8&#93;</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Leiner]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Lorena]]></surname>
<given-names><![CDATA[V]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Hardware architecture for FPGA implemetation of neural network and its application in images processing programmable logic]]></article-title>
<source><![CDATA[4th Southern Conference on Digital]]></source>
<year>2008</year>
<page-range>209-212</page-range></nlm-citation>
</ref>
</ref-list>
</back>
</article>
