You are on page 1of 23

Sistemas de control difuso y sistemas de control Robusto

Guía N 2

UNIVERSIDAD TECNOLÓGICA DEL PERÚ
FACULTAD DE INGENIERÍA DE SISTEMAS Y ELECTRÓNICA
CARRERA DE INGENIERÍA MECATRÓNICA

Sistemas de control difuso y sistemas de control robusto

Guía N6
Sistema robusto de
reconocimiento de imágenes
con redes neuronales

1

Sistemas de control difuso y sistemas de control Robusto
Guía N 2

ÍNDICE GENERAL

1. Objetivos _________________________________________________________ 4
2. Descripción teórica _________________________________________________ 4
3. Ejemplo del reconocimiento de patrones con RN para 10 imagenes____________ 5
4. Pixeleando 10 fotos a un mismo tamaño de 50x45 (EJEMPLO) _______________ 6
4.1. Consideraciones: ____________________________________________________ 6
4.2. Código en MatLab: __________________________________________________ 6
4.3. Resultados: ________________________________________________________ 9
5. Entrenamiento de la red Neuronal (EJEMPLO): __________________________ 10
5.1. Consideraciones: ___________________________________________________ 10
5.2. Resultados del entrenamiento: _______________________________________ 13
5.2..1. La red se entrenó satisfactoriamente: ____________________________________ 13

6. Validación de la Red Neuronal con fotos distintas a las usadas para entrenar
(EJEMPLO). __________________________________________________________ 14
6.1. Validación con imagen distinta para la persona 1 _________________________ 17
6.2. Validación con imagen distinta para la persona 2 _________________________ 18
6.3. Validación con imagen distinta para la persona 5 _________________________ 19
6.4. Casos en el que empieza a fallar la red neuronal. _________________________ 20
6.5. Resultados: Número de pixeles distintos que soporta la RN1. _______________ 20
6.6. Resumen de resultados con más pruebas variando “nm” y el número de imágenes
de misma persona: ________________________________________________________ 20
7. DESCRIPCIÓN DEL TRABAJO #6 _______________________________________ 21
8. Referencias ______________________________________________________ 23

2

_________ 9 Figura 4 Cuatro etapas de procesamiento de la imagen para pixelearla. ____________________________________ 19 Figura 13 Alteración de la imagen ara encontrar el número de pixeles distintos que soporta el algoritmo. Sistemas de control difuso y sistemas de control Robusto Guía N 2 ÍNDICE DE FIGURAS Figura 1 Tres tomas de la persona 4. ____________________________ 9 Figura 3 Representación del proceso de ingreso de datos en forma de vector a la red neuronal. _______________________________ 13 Figura 7 Proceso de reducción de la función de costo J respecto al número de iteraciones. ____________________________________ 17 Figura 11 Validación con imagen distinta para la persona 2. correcto. con diferentes gestos o expresiones._________________________ 6 Figura 2 Proceso genérico de pixeleado para cada imagen por persona. __________________________ 10 Figura 5 Imágenes de 10 personas que se usan para entrenar a la red neuronal. ___ 14 Figura 9 Estructura de funcionamiento de la red neuronal. _____________________________________ 14 Figura 10 Validación con imagen distinta para la persona 1. __________________ 10 Figura 6 Entrenamiento para la imagen de la persona 1. ____________________________________ 18 Figura 12 Validación con imagen distinta para la persona 5. 20 3 . _____________ 13 Figura 8 Imágenes de las diez personas pexeleadas para validar el entrenamiento de la red neuronal.

electrónica. ▪ Validar la red neuronal entrenada. neuronas de entrada y de salida. Se adaptan a los requisitos específicos de cada aplicación. bias. Objetivos ▪ Entrenar la Red Neuronal para que identifique el rostro de 12 personas. los datos ofrecidos por la red son los pesos de sus neuronas. Los sistemas robustos de procesamiento de imágenes en la industria tienen diversas aplicaciones en numerosos mercados tales como: ▪ La industria del automóvil y proveedores de la industria del automóvil ▪ Los proveedores de sistemas de automatización. con fotos diferentes a las que se usaron para entrenar a la Red Neuronal. en nuestro caso utilizaremos las imágenes de rostros de personas tomadas de una base de datos de rostros (database face). las fundiciones y entre muchas otras. número de capas ocultas. ??? . se presenta un esquema que muestra el funcionamiento completo de trabajo. En primer lugar (1) se parte de unas imágenes capturadas. etc)(4). tecnología médica e industria alimentaria ▪ La industria eléctrica. Sistemas de control difuso y sistemas de control Robusto Guía N 2 Guía Nº2 Sistema robusto de reconocimiento de imágenes con redes neuronales 1. 2. [2]. número de entradas y salidas. 4 .[1]. se seleccionan las imágenes más apropiadas. Una vez entrenada. Descripción teórica Los sistemas de visión robustos representan el nivel de complejidad más alto en el procesamiento de imágenes. desde la de automoción hasta la farmacéutica. fabricantes de robots y empresas de servicios informáticos ▪ Los proveedores de ingeniería de maquinaria y equipos de manipulación ▪ La industria farmacéutica. Tras un análisis del tipo de imagen a procesar. junto con información adicional de cada imagen (3). Estas imágenes pueden ser de cualquier tipo que se pretenda analizar. Para el desarrollo de sistemas robusto de reconocimiento de patrones en imágenes. Por último luego del entrenamiento de la red neuronal se obtendrá los pesos (??? .(2) La Red Neuronal debe ser entrenada con las salidas pertenecientes al código asignado a las imágenes (ejm: para la imagen de la personas 1 se asigna la salida 1000000000) de forma que se obtenga el mínimo error posible (se emplea el algoritmo de entrenamiento de la RN). Dichas imágenes son almacenadas por el administrador del sistema en una carpeta del servidor (existen bases de datos de imágenes de rostros almacenadas en la Web). Las soluciones de sistemas de procesamiento de imágenes son adecuadas para casi todos los sectores de la industria.…) y las características de la RN (número de pesos en la capa oculta.

. . . . . * * 1 00100000 . . . . . . . Sistemas de control difuso y sistemas de control Robusto Guía N 2 3. . * * 1 10000000 2 * * . . Primero se pixelean a un tamaño inferior para una mayor rapidez de procesamiento en la RN (calculo computacional) y a partir de esas imágenes se trabaja como se muestra a continuación: Imagen de entrada original: 200x180 Imagen pixeleada entrada: 50x45 Datos básicos de la red neuronal: Entradas a la Neural Network (red neuronal) Neurona Salida Persona Entrada (imagen 50x45 en vector 1x2250) Bias ?1 ?2 . . . . . . . . . * * 1 00000001 5 . . . . * * 1 00000010 10 * * . . Ejemplo del reconocimiento de patrones con RN para 10 imagenes En el siguiente ejemplo se entrena una red neuronal (RN) con 10 imágenes (variando el número de neuronas en la capa intermedia. * * 1 01000000 3 * * . Una vez entrenada se validad con imágenes diferentes a las del entrenamiento. . . . 9 * * . . . ?2249 ?2250 ?2251 ?̅ 1 * * . Para el proceso de entrenamiento no se trabaja con las imágenes del tamaño originas. el ratio de aprendizaje y otros parámetros de la RN). . .

I_01=Rostro_pix.2. I02_normal=imread('persona_02_a. Pixeleando 10 fotos a un mismo tamaño de 50x45 (EJEMPLO) 4. %FUNCIÓN: [I2. Sistemas de control difuso y sistemas de control Robusto Guía N 2 4.htm#face 6 .Rostro_pix]=imagen_binaria(I03_normal).uk/rbf/CVonline/Imagedbase.Rostro_pix]=imagen_binaria(I01_normal). Ico_02=Ico. Ico_01=Ico.1. [I_re.jpg'.Igr. Script: %% Principal programa que pasa las 10 imágenes a formato pixeleado empleando la función.ac.Igr.inf. A esta función de le carga en “I1” la imagen en un tamaño AxB y retorna la imagen pixeleada a 50x45. Igr_03=Igr. Código en MatLab: Para reducir todas las imágenes a un mismo tamaño de 50x45 se empleó el siguiente algoritmo que recurre al empleo de la función: [I2. %empleando función para binarizar imagen de persona 03. I03_normal=imread('persona_03_a.jpg'. I01_normal=imread('persona_01_a. I_01re=I_re.ed. Imagen entrenamiento Imagen de validación Imagen de validación Figura 1 Tres tomas de la persona 4. [I_re. Consideraciones: Se emplea la base de datos de imágenes (Face Databases1) tomadas por: “Computer Vision Research Projects”. cabe recalcar que cada imagen es tomada con un gesto diferente como las presentadas en la figura 1. Igr_02=Igr. Ico_03=Ico. Igr_01=Igr. I_03=Rostro_pix.'jpg') [I_re.Rostro_pix]=imagen_binaria(I02_normal).jpg'. con diferentes gestos o expresiones.Ico.Ico.Rostro_pix]=imagen_binaria(I1).'jpg'). I_03re=I_re. una para entrenar y las otras dos para validar. 4. 1 Referencia: http://homepages. %empleando función para binarizar imagen de persona 02. de la cual se usan 3 por persona de 10 sujetos.Ico. I_02=Rostro_pix.Igr. I_02re=I_re.'jpg').Rostro_pix]=imagen_binaria(I1) clc clear all close all %% Leyendo las imagenes de las 10 personas %empleando función para binarizar imagen de persona 01.

I_08re=I_re.Rostro_pix]=imagen_binaria(I10_normal). Igr_07=Igr.10.4). Igr_06=Igr. subplot(4.31).Ico.'jpg').Ico. imshow(I05_normal).10. title('Persona 4').Ico.Igr. subplot(4.Ico.jpg'. I_05re=I_re. I_09=Rostro_pix. I_10=Rostro_pix.10.10. title('Imagen 50x45').imshow(I_03re). %empleando función para binarizar imagen de persona 09.imshow(uint8(I_01)).'jpg').imshow(I_01re).Sistemas de control difuso y sistemas de control Robusto Guía N 2 %empleando función para binarizar imagen de persona 04.5).jpg'.Igr. I04_normal=imread('persona_04_a.').jpg'.10. title('Imagen pixel. subplot(4. title('Persona 5'). %empleando función para binarizar imagen de persona 06.15). I_06re=I_re. imshow(uint8(Igr_02)).jpg'.').10. I08_normal=imread('persona_08_a. title('Persona 3'). title('Imagen 50x45').1).'jpg').imshow(uint8(I_04)). I_05=Rostro_pix. imshow(uint8(Igr_04)). Ico_10=Ico. I_10re=I_re.10.10. %empleando función para binarizar imagen de persona 07. I09_normal=imread('persona_09_a. subplot(4.21).Igr. imshow(I04_normal).Rostro_pix]=imagen_binaria(I05_normal).Rostro_pix]=imagen_binaria(I07_normal).10. I_08=Rostro_pix. I05_normal=imread('persona_05_a. imshow(I02_normal). Igr_04=Igr. title('Escala de grises').'jpg'). subplot(4. %empleando función para binarizar imagen de persona 08. imshow(uint8(Igr_03)).10. %empleando función para binarizar imagen de persona 06.24). imshow(uint8(Igr_01)).32).Rostro_pix]=imagen_binaria(I08_normal). Igr_09=Igr.10. subplot(4. title('Imagen pixel.'jpg').'). I_07re=I_re. subplot(4.10.10. %empleando función para binarizar imagen de persona 05.Igr.10. title('Persona 1'). subplot(4. Igr_08=Igr. title('Escala de grises').25). title('Imagen 50x45'). subplot(4. [I_re.10. I_04re=I_re. subplot(4. subplot(4.Rostro_pix]=imagen_binaria(I09_normal).'jpg'). imshow(I03_normal). Ico_09=Ico. imshow(I01_normal). I_06=Rostro_pix.'). Igr_10=Igr. title('Escala de grises'). title('Escala de grises'). I10_normal=imread('persona_10_a.Igr.imshow(I_02re).2). [I_re.12). Ico_05=Ico. I_09re=I_re. subplot(4. subplot(4.imshow(uint8(I_03)). [I_re.23). I_04=Rostro_pix.imshow(uint8(I_02)).33). title('Persona 2'). title('Escala de grises'). [I_re.14).Ico. I_07=Rostro_pix. subplot(4. title('Imagen pixel.Rostro_pix]=imagen_binaria(I04_normal).10.jpg'. title('Imagen 50x45'). [I_re. title('Imagen pixel. subplot(4. 7 . subplot(4.jpg'. Ico_04=Ico. subplot(4.imshow(I_04re). [I_re.Ico.10. subplot(4.Igr. imshow(uint8(Igr_05)).3).Igr. [I_re. Ico_08=Ico. Ico_07=Ico. subplot(4. %% Mostrando en un cuadro el proceso de la binarización de las 10 imagenes: figure(1) subplot(4.10. I07_normal=imread('persona_07_a.11). Ico_06=Ico.'jpg').35).Rostro_pix]=imagen_binaria(I06_normal). title('Imagen pixel.imshow(I_05re). Igr_05=Igr.10.13).22). title('Imagen 50x45').Ico.imshow(uint8(I_05)).jpg'.').10.34). I06_normal=imread('persona_06_a.

imshow(I07_normal).imshow(uint8(I_07)).imshow(uint8(I_06)). imshow(I08_normal). imshow(uint8(Igr_06)). imshow(uint8(Igr_07)). %figure(2).imshow(I_09re). title('Persona 7').jj) = round(im). subplot(4. for i = 1:4:200 jj = 1. subplot(4. %imshow(uint8(Iz)). title('Persona 6'). title('Imagen 50x45').'). subplot(4. subplot(4.30). title('Imagen 50x45').10.'). im = sum(sum(im))/16. ii = 1.37). title('Imagen pixel. title('Escala de grises'). title('Imagen 50x45'). imshow(uint8(Igr_08)). title('Imagen 50x45').10. subplot(4. jj = jj + 1. Sistemas de control difuso y sistemas de control Robusto Guía N 2 subplot(4. subplot(4.10.10. subplot(4. title('Imagen pixel. title('Escala de grises'). title('Persona 10'). subplot(4. subplot(4.8). imshow(I09_normal).10. imshow(uint8(Igr_10)). Iz=I2(:.7). save Imagenes_50x45 I_01re I_02re I_03re I_04re I_05re I_06re I_07re I_08re I_09re I_10re Función que pixelea a 50x45: function [I_re. %imhist(Iz) Igr=Iz Ico=Iz % Pixelamiento en cuadrados de 30x30 Izz = Iz.j:j+3).10. subplot(4. title('Imagen pixel.10.10. subplot(4. subplot(4. subplot(4.10.'). title('Escala de grises').20).10.Rostro_pix]=imagen_binaria(I1) %imshow(uint8(I1)).40).10.36).imshow(uint8(I_09)).').16). for j = 1:4:180 im = Iz(i:i+3. subplot(4.28). subplot(4. title('Imagen pixel.10.imshow(I_10re).10.39).10.29). Inueva30(ii. imshow(uint8(Igr_09)). subplot(4.imshow(I_07re). title('Persona 9').imshow(I_06re). title('Escala de grises').imshow(I_08re).:.26).10. imshow(I06_normal).17).2) [nf nc] = size(Iz). title('Imagen 50x45'). title('Imagen pixel.').10.Igr.Ico.imshow(uint8(I_08)). subplot(4. subplot(4. end Rostro_pix=Inueva30 %Umbralizacion de la imagen con umbral(threshold)=30 Y2=Inueva30 8 .imshow(uint8(I_10)).38).10.9).10.10).27). imshow(I10_normal).10.10. title('Escala de grises'). end ii = ii + 1. subplot(4.6). I2 = I1.18).19). title('Persona 8').

for y=1:I_y %recorre filas for x=1:I_x %recorre columnas if Y2(x. Resultados: En la imagen 2 se puede apreciar las 4 etapas por las cuales se pasa la imagen para que finalmente se pixelea a 50x45: Procesamiento de la imagen (empleando el programa: “image_to_bin”) : 1) Pixelear todas las imágenes aun mismo tamaño. Sistemas de control difuso y sistemas de control Robusto Guía N 2 W1=size(Y2). . I_y=W1(1. else Y3(x.3.1). end end end I_re=Y3 end 4. I_x=W1(1.2). 4) Pixelear la imagen a blanco y negro.y)=0.y)>30 Y3(x. Figura 2 Proceso genérico de pixeleado para cada imagen por persona. 2) Pasar a escala de grises. 3) Bajar la resolución de la imagen a un tamaño de 50x45 en escala de grises.y)=255. 50x45 X2250 9 Figura 3 Representación del proceso de ingreso de datos en forma de vector a la red neuronal.

Sistemas de control difuso y sistemas de control Robusto Guía N 2 En esta Figura 4 se muestra el procesamiento previamente mostrado para las 10 imágenes en simultáneo que luego serán procesadas por la red neuronal: Figura 4 Cuatro etapas de procesamiento de la imagen para pixelearla. Entrenamiento de la red Neuronal (EJEMPLO): 5. 10 . Figura 5 Imágenes de 10 personas que se usan para entrenar a la red neuronal. Consideraciones: Para el entrenamiento de la red neuronal se emplean las 10 imágenes mostradas en la figura 5. 5. que fueron previamente procesadas para ser pixeleadas en la sección 3.1.

5. subplot(2.:) = cara2(1.:) cara6(k.4). disp('Press ENTER'). title('Persona 9').1).:).:).:) = cara7(1. subplot(2.5. cara8 = abs((I_08re-255)/255). imshow(I_10re).7).:) cara5(k. for k = 2:nf caras = [ cara1(k. x(5.6).5.:).9).:) cara8(k.:) = cara6(1. subplot(2. subplot(2. title('Persona 5'). imshow(I_09re). close all. cara9 = abs((I_09re-255)/255). imshow(I_03re).:) = cara4(1.2).:). x(2.:). title('Persona 8'). title('Persona 10').5. title('Persona 4'). x(1.:).:) = cara9(1. title('Persona 2').:) cara7(k. clc. x(9. imshow(I_08re).:) ]. cara7 = abs((I_07re-255)/255). cara1 = abs((I_01re-255)/255).:) cara3(k.:). load Imagenes_50x45 figure(1).:) cara2(k.5. x(3. subplot(2. cara3 = abs((I_03re-255)/255). cara4 = abs((I_04re-255)/255). x(6. imshow(I_05re).:) cara10(k. imshow(I_07re).:) cara9(k. cara6 = abs((I_06re-255)/255).:) = cara8(1. imshow(I_02re).:). subplot(2. pause. Sistemas de control difuso y sistemas de control Robusto Guía N 2 En MATLAB se crea un Script para solucionar el problema considerando: %% Entrenamiento patron clear. subplot(2. imshow(I_04re).:). x = [ x caras ]. x(7. [nf nc] = size(cara1).:) cara4(k.8). title('Persona 1').:) = cara5(1. x(10. subplot(2.5).5. cara10= abs((I_10re-255)/255). % clear cara1pix cara2pix cara3pix cara4pix. subplot(2. title('Persona 6').5.:) = cara3(1. x(4.3).10).:)= cara10(1.5. title('Persona 3'). imshow(I_06re).5. 11 . x(8. cara2 = abs((I_02re-255)/255).:) = cara1(1. subplot(2. title('Persona 7'). cara5 = abs((I_05re-255)/255). imshow(I_01re).:).5.

eta*dJdw/nx. JJ = 0. eta = input('eta pesos : ').5*sum(sum(error. % Gaussiana dydw = n. for k = 1:nx in = (x(k.*n)/2.:) = [0 0 0 0 1 0 0 0 0 0].0.0. yb(5. %v = v . % sigmoidea 2 %n = exp(-m.:) = out'. yb(3. ny = nyf. % Sigmoidea 1 %n = 2.*dndm)'.eta*dJdw/nx. for iter = 1:1000 count(iter.1) = iter.:))'.2*(rand(nm. dJdv = 0. bias = 1. error(k. [ nyf nyc ]=size(yb). yb(7. w = 0.*error)) 12 .nm) . %input('Bias: SI = 1 : '). %Neuronas de capa intermedia/también se cambia a 500 luego ns = nyc. % Sigmoidea 2 %dndm = -2. end v = 0. if(bias == 1) ne = ne +1.^2).Sistemas de control difuso y sistemas de control Robusto Guía N 2 end [nxf nxc] = size(x). dJdv = 1*dJdv + in*((w*er).5)*2.0.1) ]. % Sigmoidea 1 %dndm = (1 .:) = [1 0 0 0 0 0 0 0 0 0].eta*dJdv/nx.:) = [0 0 0 0 0 1 0 0 0 0]. yb(2.n. % Gaussiana out = w'*n. er = out . end w = w .0*(n.5)*2.*m). dndm = n.n).:) = [0 0 0 0 0 0 0 1 0 0]. dJdw = 0./(1+exp(-m)). m = v'*in.:) = [0 1 0 0 0 0 0 0 0 0]. %w = w . yb(4. ne = nxc. y(k.:)= [0 0 0 0 0 0 0 0 0 1]. yb(10. n = 1.:) = [0 0 0 1 0 0 0 0 0 0]. nx = nxf.:) = [0 0 0 0 0 0 1 0 0 0].:) = [0 0 1 0 0 0 0 0 0 0].*(1 .(yb(k.:) = er.ns) . nm = 200.:))'.:) = [0 0 0 0 0 0 0 0 1 0].0. yb(1.1./(1+exp(-m)) . x = [ x ones(nx.2*(rand(ne. dJdw = 1*dJdw + dydw*er'. yb(8. yb(6. yb(9.eta*dJdv/nx. v = v .

1. Figura 6 Entrenamiento para la imagen de la persona 1. end save pesoscarasfotos ns nm v w bias. figure(2). correcto. Figura 7 Proceso de reducción de la función de costo J respecto al número de iteraciones.1) = JJ. plot(count.. 13 . 5. La red se entrenó satisfactoriamente: Como se aprecia la red pudo entrenarse correctamente.J). % Se grafica sin redondeo hold on. Resultados del entrenamiento: 5. plot(yb(1. figure(3).2.'*b').:).:). en la siguiente imagen se muestra el entrenamiento frente a la imagen de la persona 1. Sistemas de control difuso y sistemas de control Robusto Guía N 2 J(iter.2.'or'). plot(y(1.

'jpg'). Por tanto se puede decir que la Red Neuronal tuvo un entrenamiento satisfactorio. 6. Figura 8 Imágenes de las diez personas pexeleadas para validar el entrenamiento de la red neuronal. clc.Rostro_pix]=imagen_binaria(I01_b). %% Validación de la RN con imágenes diferentes y cálculo de pixeles %% distintos que soporta en # y porcentaje clear all. Se emplea una función para encontrar el número de pixeles distintos que soporta y validar la red neuronal.Igr. I01_b=imread('persona_01_a. Para validar la red neuronal artificial se emplean imágenes de las 10 personas pero realizando gestos que producen variaciones en la toma y por ende en la imagen pixeleada. [I_re. close all.jpg'. Sistemas de control difuso y sistemas de control Robusto Guía N 2 Como se puede apreciar en la Figura 6 la función de costo se reduce en las primeras 10 iteraciones y llega rápidamente a valores cercanos a 0 o valores permisibles. Validación de la Red Neuronal con fotos distintas a las usadas para entrenar (EJEMPLO).Ico. Figura 9 Estructura de funcionamiento de la red neuronal. 14 .

yb(7.:) ]. subplot(1. figure(1).:). x = [ x caras ]./(1+exp(-m)) ./(1+exp(-m)).imshow(I01_b). % Blanco I_prueba=I_01re_b.2).Ico. end [nxf nxc] = size(x).0.:)= [0 0 0 0 0 0 0 0 0 1].16).15). x(1. y = out.:) = [0 1 0 0 0 0 0 0 0 0]. ne = nxc.3. for k = 2:nf caras = [ cara1(k. % Negro % I_01re_b(40:48.2). load pesoscarasfotos.'jpg').:) = [0 0 0 0 0 1 0 0 0 0].3.:) = [0 0 0 0 0 0 0 1 0 0]. % Negro % I_01re_b(6:20. I01_b=imread('persona_01_b.1.Igr. persona 1') % I_01re_b(35:50. yb(9. yb(3.:)=cara1(1.title('Imagen de prueba b.0. [I_re. % Blanco % I_01re_b(9:10. subplot(1. end in = x'.:) = [0 0 1 0 0 0 0 0 0 0]. 15 . [nf nc] = size(cara1). I_01re_b=I_re.:) = [1 0 0 0 0 0 0 0 0 0].:) = [0 0 0 0 0 0 0 0 1 0]. % Negro % I_01re_b(15. m = v'*in. % sigmoidea 2 %n = exp(-m.imshow(I_prueba). ny = nyf. yb(1.jpg'. yb(10. x = [x ones(nx.:) = [0 0 0 0 0 0 1 0 0 0].15:30) = zeros(16.18:19) = 255*ones(2.1)]. % Sigmoidea 1 %n = 2. % Gaussiana out = w'*n.20:28) = zeros(9.9).26:40) = 255*ones(15.1).23).Sistemas de control difuso y sistemas de control Robusto Guía N 2 I_original=I_re. [ nyf nyc ]=size(yb). yb(8.Rostro_pix]=imagen_binaria(I01_b). n = 1. nx = nxf.title('Imagen en 50x45') cara1 = abs((I_01re_b-255)/255).20:42) = zeros(1.^2).:) = [0 0 0 0 1 0 0 0 0 0]. yb(5. % Carga nm v w bias if(bias == 1) ne = ne +1. yb(4. yb(6. yb(2.:) = [0 0 0 1 0 0 0 0 0 0].

I_prueba) Ipp=I_original-I_prueba.plot(yb(1. W1=size(Y2).3). if(k == 1) disp('La Cara es 1'). end end end %disp('Cantidad de pixeles distintos para fallar') pix_falla=sum(sum(Y3)). figure(3). elseif(k == 3) disp('La Cara es 3'). elseif(k == 4) disp('La Cara es 4') elseif(k == 5) disp('La Cara es 5') elseif(k == 6) disp('La Cara es 6') elseif(k == 7) disp('La Cara es 7') elseif(k == 8) disp('La Cara es 8') elseif(k == 9) disp('La Cara es 9') elseif(k == 10) disp('La Cara es 10') end %% Función para contar la cantidad de pixeles distintis para que falle [pix_porce.y)=0. pix_porce=(pix_falla/2250)*100. % Se grafica sin redondeo %% [maxy k] = max(y).grid on .y)>150 Y3(x.:).pix_falla]=pix_error(I_original.2). I_y=W1(1. %cambia los bits de 255 a 1: Y2=Ipp. I_x=W1(1. for y=1:I_y %recorre filas for x=1:I_x %recorre columnas if Y2(x. Función: Detecta el número de pixeles distintos frente a la imagen original.1).y)=1.title('Resultado:').I_prueba) grid. elseif(k == 2) disp('La Cara es 2'). Sistemas de control difuso y sistemas de control Robusto Guía N 2 subplot(1. else Y3(x. function [pix_porce.pix_falla]=pix_error(I_original. end 16 .'*b').3. imshow(Ipp).

Validación con imagen distinta para la persona 1 Se empleas una imagen distinta a la que se usó para entrenar y se calculó el número de pixeles distintos respecto a la imagen de entrenamiento y en su respectiva expresión de porcentaje Matlab: La Cara es 1 pix_porce = 2. Sistemas de control difuso y sistemas de control Robusto Guía N 2 6.9333 % pix_diferetes = 66 Figura 10 Validación con imagen distinta para la persona 1.1. 17 .

Sistemas de control difuso y sistemas de control Robusto Guía N 2 6. Validación con imagen distinta para la persona 2 Se empleas una imagen distinta a la que se usó para entrenar y se calculó el número de pixeles distintos respecto a la imagen de entrenamiento y en su respectiva expresión de porcentaje Matlab: La Cara es 2 pix_porce = 5.8222% pix_diferentes = 131 Figura 11 Validación con imagen distinta para la persona 2. 18 .2.

3. Sistemas de control difuso y sistemas de control Robusto Guía N 2 6.6444 % pix_diferentes = 127 Figura 12 Validación con imagen distinta para la persona 5. 19 . Validación con imagen distinta para la persona 5 Se empleas una imagen distinta a la que se usó para entrenar y se calculó el número de pixeles distintos respecto a la imagen de entrenamiento y en su respectiva expresión de porcentaje Matlab: La Cara es 5 pix_porce = 5.

2 2250 + 1 (Bias) 500 10 1 416 18.16 % R.5.16%. pasado ese límite empieza a fallar la red neuronal.N.4.N.N. La red neuronal empieza a fallar cuando se supera el límite 206 pixeles distintos frente a la imagen que se usó para entrenarse lo que equivale en porcentaje a 9. en porcentaje seria 9.6. 1 2250 + 1 (Bias) 200 10 1 206 9. Figura 13 Alteración de la imagen ara encontrar el número de pixeles distintos que soporta el algoritmo. Casos en el que empieza a fallar la red neuronal. 3 2250 + 1 (Bias) 500 10 2 594 26. Resultados: Número de pixeles distintos que soporta la RN1.1556 pix_falla = 206 6. % Superado el límite de 206 pixeles distintos empieza fallar el reconocimiento. 6.16% de pixeles diferentes que soporta. La Cara es 8 pix_porce = 9.40 % 20 . Resumen de resultados con más pruebas variando “nm” y el número de imágenes de misma persona: Resultados del entrenamiento de la red neuronal Número de Neuronas Números de # de Número de Porcentaje de entradas (ne) intermedias salidas imágenes pixeles pixeles (nm) de misma distintos distintos que persona que soporta soporta R. Sistemas de control difuso y sistemas de control Robusto Guía N 2 6.49 % R.

un segundo programa para entrenamiento de la red neuronal: ” NeuronCarasReconoceFotos” (Se entrena la RN encontrando los pesos. entre otros parámetros adecuados que usted encontrara) y un tercer programa para la validación: “NeuronCarasValidaFotos” (verificación de la robustez de la red neuronal. 21 . y variando otros parámetros de entrenamiento que usted considere pertinentes (número de iteraciones. etc). DESCRIPCIÓN DEL TRABAJO #6 -Realice las modificaciones al programa para que reconozca 5 imágenes de personas distintas (usar imágenes diferentes a la base de datos brindada). uso de Bias. -Muestre y analice que ocurre cuando aumenta y disminuye el número de neuronas en la capa oculta (nm). -Modifique la función de activación para sigmoidea tipo 1. __________________________________________________________________________ Nota: Comentarios de los programas brindados como ejemplo: Se emplean tres programas y una función (“imagen_binaria”): la primera para pixelear las 10 imágenes: “image_to_bin”. ingresando otras imágenes diferentes a las de entrenamiento para cada persona).pe / con asunto: Control robusto con un sustento verificable del porque no pudo subirlo a sistema. ▪ Súbalo al intranet Nimbus UTP en la tarea del TRABAJO #6 (informe y programas) y si tiene inconvenientes Envié al correo: jlbohorquez@pucp. Sistemas de control difuso y sistemas de control Robusto Guía N 2 7. sigmoidea tipo 2 y gaussiana cuando realice el entrenamiento y compare los resultados. número de neuronas en capa oculta adecuado.

____________________________________________________________________ . ____________________________________________________________________ . ____________________________________________________________________ . ____________________________________________________________________ . ____________________________________________________________________ . ____________________________________________________________________ . ____________________________________________________________________ Observaciones: . ____________________________________________________________________ . ____________________________________________________________________ . ____________________________________________________________________ . ____________________________________________________________________ . ____________________________________________________________________ . ____________________________________________________________________ . ____________________________________________________________________ 22 . ____________________________________________________________________ . ____________________________________________________________________ . ____________________________________________________________________ .Sistemas de control difuso y sistemas de control Robusto Guía N 2 Conclusiones . ____________________________________________________________________ .

Universidad Complutense de Madrid. García García. 2001. [2] D. Referencias [1] P. Sistemas de control difuso y sistemas de control Robusto Guía N 2 8. «Redes Neuronales: Conceptos Básicos y Aplicaciones.». «Reconocimiento de imágenes utilizando redes neuronales artificiales». J. P. 23 . Matich. 2013.