Professional Documents
Culture Documents
Gua N 2
Gua N6
Sistema robusto de
reconocimiento de imgenes
con redes neuronales
1
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
NDICE GENERAL
1. Objetivos _________________________________________________________ 4
2. Descripcin terica _________________________________________________ 4
3. Ejemplo del reconocimiento de patrones con RN para 10 imagenes____________ 5
4. Pixeleando 10 fotos a un mismo tamao de 50x45 (EJEMPLO) _______________ 6
4.1. Consideraciones: ____________________________________________________ 6
4.2. Cdigo 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. Validacin de la Red Neuronal con fotos distintas a las usadas para entrenar
(EJEMPLO). __________________________________________________________ 14
6.1. Validacin con imagen distinta para la persona 1 _________________________ 17
6.2. Validacin con imagen distinta para la persona 2 _________________________ 18
6.3. Validacin con imagen distinta para la persona 5 _________________________ 19
6.4. Casos en el que empieza a fallar la red neuronal. _________________________ 20
6.5. Resultados: Nmero de pixeles distintos que soporta la RN1. _______________ 20
6.6. Resumen de resultados con ms pruebas variando nm y el nmero de imgenes
de misma persona: ________________________________________________________ 20
7. DESCRIPCIN DEL TRABAJO #6 _______________________________________ 21
8. Referencias ______________________________________________________ 23
2
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
NDICE DE FIGURAS
3
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
Gua N2
Sistema robusto de reconocimiento de
1. Objetivos
Entrenar la Red Neuronal para que identifique el rostro de 12 personas.
Validar la red neuronal entrenada, con fotos diferentes a las que se usaron para
entrenar a la Red Neuronal.
2. Descripcin terica
Los sistemas de visin robustos representan el nivel de complejidad ms alto en
el procesamiento de imgenes. Se adaptan a los requisitos especficos de cada
aplicacin. Las soluciones de sistemas de procesamiento de imgenes son adecuadas
para casi todos los sectores de la industria, desde la de automocin hasta la
farmacutica.
Los sistemas robustos de procesamiento de imgenes en la industria tienen diversas
aplicaciones en numerosos mercados tales como:
4
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
5
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
1 Referencia: http://homepages.inf.ed.ac.uk/rbf/CVonline/Imagedbase.htm#face
6
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
7
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
8
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
W1=size(Y2);
I_x=W1(1,1);
I_y=W1(1,2);
for y=1:I_y %recorre filas
for x=1:I_x %recorre columnas
if Y2(x,y)>30
Y3(x,y)=255;
else
Y3(x,y)=0;
end
end
end
I_re=Y3
end
4.3. 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 imgenes aun mismo tamao.
2) Pasar a escala de grises.
3) Bajar la resolucin de la imagen a un tamao de 50x45 en escala de grises.
4) Pixelear la imagen a blanco y negro.
50x45 X2250
9
Figura 3 Representacin del proceso de ingreso de datos en forma
de vector a la red neuronal.
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
10
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
load Imagenes_50x45
figure(1);
subplot(2,5,1); imshow(I_01re); title('Persona 1');
subplot(2,5,2); imshow(I_02re); title('Persona 2');
subplot(2,5,3); imshow(I_03re); title('Persona 3');
subplot(2,5,4); imshow(I_04re); title('Persona 4');
subplot(2,5,5); imshow(I_05re); title('Persona 5');
subplot(2,5,6); imshow(I_06re); title('Persona 6');
subplot(2,5,7); imshow(I_07re); title('Persona 7');
subplot(2,5,8); imshow(I_08re); title('Persona 8');
subplot(2,5,9); imshow(I_09re); title('Persona 9');
subplot(2,5,10); imshow(I_10re); title('Persona 10');
disp('Press ENTER');
pause;
cara1 = abs((I_01re-255)/255);
cara2 = abs((I_02re-255)/255);
cara3 = abs((I_03re-255)/255);
cara4 = abs((I_04re-255)/255);
cara5 = abs((I_05re-255)/255);
cara6 = abs((I_06re-255)/255);
cara7 = abs((I_07re-255)/255);
cara8 = abs((I_08re-255)/255);
cara9 = abs((I_09re-255)/255);
cara10= abs((I_10re-255)/255);
% clear cara1pix cara2pix cara3pix cara4pix;
11
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
end
[nxf nxc] = size(x);
nx = nxf;
yb(1,:) = [1 0 0 0 0 0 0 0 0 0];
yb(2,:) = [0 1 0 0 0 0 0 0 0 0];
yb(3,:) = [0 0 1 0 0 0 0 0 0 0];
yb(4,:) = [0 0 0 1 0 0 0 0 0 0];
yb(5,:) = [0 0 0 0 1 0 0 0 0 0];
yb(6,:) = [0 0 0 0 0 1 0 0 0 0];
yb(7,:) = [0 0 0 0 0 0 1 0 0 0];
yb(8,:) = [0 0 0 0 0 0 0 1 0 0];
yb(9,:) = [0 0 0 0 0 0 0 0 1 0];
yb(10,:)= [0 0 0 0 0 0 0 0 0 1];
ne = nxc;
nm = 200; %Neuronas de capa intermedia/tambin se cambia a 500 luego
ns = nyc;
bias = 1; %input('Bias: SI = 1 : ');
if(bias == 1)
ne = ne +1;
x = [ x ones(nx,1) ];
end
v = 0.2*(rand(ne,nm) - 0.5)*2;
w = 0.2*(rand(nm,ns) - 0.5)*2;
12
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
J(iter,1) = JJ;
end
figure(2);
plot(y(1,:),'or'); % Se grafica sin redondeo
hold on;
plot(yb(1,:),'*b');
figure(3);
plot(count,J);
13
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
6. Validacin de la Red Neuronal con fotos distintas a las usadas para entrenar
(EJEMPLO).
Para validar la red neuronal artificial se emplean imgenes de las 10 personas pero
realizando gestos que producen variaciones en la toma y por ende en la imagen pixeleada.
Se emplea una funcin para encontrar el nmero de pixeles distintos que soporta y validar
la red neuronal.
%% Validacin de la RN con imgenes diferentes y clculo de pixeles
%% distintos que soporta en # y porcentaje
clear all;
clc;
close all;
I01_b=imread('persona_01_a.jpg','jpg');
[I_re,Igr,Ico,Rostro_pix]=imagen_binaria(I01_b);
14
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
I_original=I_re;
I01_b=imread('persona_01_b.jpg','jpg');
[I_re,Igr,Ico,Rostro_pix]=imagen_binaria(I01_b);
I_01re_b=I_re;
I_prueba=I_01re_b;
figure(1);
subplot(1,3,2);imshow(I_prueba);title('Imagen en 50x45')
cara1 = abs((I_01re_b-255)/255);
[nf nc] = size(cara1);
x(1,:)=cara1(1,:);
for k = 2:nf
caras = [ cara1(k,:)
];
x = [ x caras ];
end
[nxf nxc] = size(x);
nx = nxf;
yb(1,:) = [1 0 0 0 0 0 0 0 0 0];
yb(2,:) = [0 1 0 0 0 0 0 0 0 0];
yb(3,:) = [0 0 1 0 0 0 0 0 0 0];
yb(4,:) = [0 0 0 1 0 0 0 0 0 0];
yb(5,:) = [0 0 0 0 1 0 0 0 0 0];
yb(6,:) = [0 0 0 0 0 1 0 0 0 0];
yb(7,:) = [0 0 0 0 0 0 1 0 0 0];
yb(8,:) = [0 0 0 0 0 0 0 1 0 0];
yb(9,:) = [0 0 0 0 0 0 0 0 1 0];
yb(10,:)= [0 0 0 0 0 0 0 0 0 1];
ne = nxc;
load pesoscarasfotos; % Carga nm v w bias
if(bias == 1)
ne = ne +1;
x = [x ones(nx,1)];
end
in = x';
m = v'*in;
n = 1.0./(1+exp(-m)); % Sigmoidea 1
%n = 2.0./(1+exp(-m)) - 1; % sigmoidea 2
%n = exp(-m.^2); % Gaussiana
out = w'*n;
y = out;
15
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
subplot(1,3,3);plot(yb(1,:),'*b');title('Resultado:');grid on ;
% Se grafica sin redondeo
%%
[maxy k] = max(y);
if(k == 1)
disp('La Cara es 1');
elseif(k == 2)
disp('La Cara es 2');
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
%% Funcin para contar la cantidad de pixeles distintis para que
falle
[pix_porce,pix_falla]=pix_error(I_original,I_prueba)
grid;
Ipp=I_original-I_prueba;
figure(3);
imshow(Ipp);
%cambia los bits de 255 a 1:
Y2=Ipp;
W1=size(Y2);
I_x=W1(1,1);
I_y=W1(1,2);
for y=1:I_y %recorre filas
for x=1:I_x %recorre columnas
if Y2(x,y)>150
Y3(x,y)=1;
else
Y3(x,y)=0;
end
end
end
%disp('Cantidad de pixeles distintos para fallar')
pix_falla=sum(sum(Y3));
pix_porce=(pix_falla/2250)*100;
end
16
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
Matlab:
La Cara es 1
pix_porce =
2.9333 %
pix_diferetes =
66
17
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
Matlab:
La Cara es 2
pix_porce =
5.8222%
pix_diferentes =
131
18
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
Matlab:
La Cara es 5
pix_porce =
5.6444 %
pix_diferentes =
127
19
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
La Cara es 8
pix_porce =
9.1556
pix_falla =
206
20
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
__________________________________________________________________________
Nota:
Comentarios de los programas brindados como ejemplo:
Se emplean tres programas y una funcin (imagen_binaria): la primera para pixelear las
10 imgenes: image_to_bin, un segundo programa para entrenamiento de la red
neuronal: NeuronCarasReconoceFotos (Se entrena la RN encontrando los pesos,
nmero de neuronas en capa oculta adecuado, entre otros parmetros adecuados que
usted encontrara) y un tercer programa para la validacin: NeuronCarasValidaFotos
(verificacin de la robustez de la red neuronal, ingresando otras imgenes diferentes a las
de entrenamiento para cada persona).
21
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
Conclusiones
- ____________________________________________________________________
- ____________________________________________________________________
- ____________________________________________________________________
- ____________________________________________________________________
- ____________________________________________________________________
- ____________________________________________________________________
- ____________________________________________________________________
- ____________________________________________________________________
- ____________________________________________________________________
Observaciones:
- ____________________________________________________________________
- ____________________________________________________________________
- ____________________________________________________________________
- ____________________________________________________________________
- ____________________________________________________________________
- ____________________________________________________________________
- ____________________________________________________________________
- ____________________________________________________________________
- ____________________________________________________________________
22
Sistemas de control difuso y sistemas de control Robusto
Gua N 2
8. Referencias
23