Beruflich Dokumente
Kultur Dokumente
1. OBJETIVOS
Implementar una red neuronal que aprenda a identificar gestos faciales como feliz, triste entre
otros.
Crear una arquitectura para que la neurona aprenda de una forma más eficiente.
Investigar los gestos faciales producidos por una persona en diferentes estados de
ánimo.
2. INTRODUCCION
1
ideas del campo de las ciencias naturales para aplicarlos a la resolución de problemas
pertenecientes a otras ramas de las ciencias y la ingeniería.
Podemos decir que la tecnología ANS incluye modelos inspirados por nuestra comprensión del
cerebro, pero que no tienen por qué ajustarse exactamente a los modelos derivados de dicho
entendimiento.
Los primeros ejemplos de estos sistemas aparecen al final de la década de los cincuenta. La
referencia histórica más corriente es la que alude al trabajo realizado por Frank Rosenblatt en
un dispositivo denominado perceptrón. Hay otros ejemplos, tales como el desarrollo del
Adaline por el profesor Bernard Widrow.
Durante todos estos años, la tecnología ANS no siempre ha tenido la misma consideración en
las ramas de la ingeniería y las ciencias de la computación, más ansiosas de resultados que las
ciencias neuronales. A partir de 1969, el pesimismo debido a las limitadas capacidades del
perceptrón hizo languidecer este tipo de investigación.
A principios de los 80, por un lado Hopfield y sus conferencias acerca de la memoria
autoasociativa y por otro lado la aparición del libro Parallel Distributed Processing (PDP),
escrito por Rumelhart y McClelland reactivaron la investigación en el campo de las redes
neuronales. Hubo grandes avances que propiciaron el uso comercial en campos tan variados
como el diagnóstico de enfermedades, la aproximación de funciones o el reconocimiento de
imágenes.
3. MARCO TEORICO
3.1 Redes Neuronales Artificiales con Matlab
Las redes neuronales artificiales son una técnica de aprendizaje y procesamiento automático
inspirada en el funcionamiento del cerebro humano. Podemos definir las redes neuronales
artificiales como una estructura de procesamiento paralelo masivo constituida por unas
2
unidades muy sencillas (denominadas neuronas), que tienen la capacidad de almacenar
conocimiento experimental y ponerla a disposición para su uso.
Las conexiones entre las neuronas determinan la función de la red. Estas conexiones,
conocidas como pesos (pesos sinápticos), se utilizan para almacenar el conocimiento
adquirido.
3.1.1 Arquitectura
Cada neurona recibe un conjunto de entradas multiplicadas por su interconexión (peso), que
son sumados y operados por una función de transferencia (o función de activación) antes de
transmitirse a la siguiente capa o como salida de la red.
Fig. 1 Red con una sola capa, N elementos de capa de entrada y S neuronas.
3
La capa que contiene las salidas de la red se conoce como capa de salida y el resto de capas
como capas ocultas.
3.1.2 Aprendizaje
En numerosas ocasiones, se suelen también clasificar en función del tipo de aprendizaje que
realizan. Así, distinguimos entre:
3.1.3 Aplicaciones
Las redes neuronales artificiales han sido y son ampliamente utilizadas en muchos campos:
Aero espacio (pilotos automáticos, simulaciones de trayectorias de vuelo, detección de fallo de
componentes), automoción (sistemas de guiado automático, controladores, análisis de la
garantía), finanzas (lectores automáticos de cheques, solicitudes de crédito, detección de
4
fraude, calificación de bonos), defensa (seguimiento de objetos, reconocimiento facial,
eliminación de ruido), medicina (análisis de células cancerígenas, diseño de prótesis, análisis
de electroencefalografía y electrocardiograma), telecomunicaciones (reconocimiento y
compresión de voz, compresión de imágenes, traducción en tiempo real de un idioma), etc.
4. DESARROLLO
Reconocimiento facial mediante visión artificial
El reconocimiento facial es el proceso de identificación de una o varias personas en imágenes
o vídeos mediante análisis y comparación de patrones. Los algoritmos normalmente extraen
las características faciales y las comparan con una base de datos para obtener la mejor
coincidencia.
Es una parte importante de muchos sistemas biométricos, de seguridad y de vigilancia, así
como de sistemas de indexación de imágenes y vídeos.
5
Técnicas de Machine Learning se pueden aplicar para extraer características para realizar
reconocimiento facial o clasificación mediante:
Técnicas de aprendizaje supervisado como máquinas de vector soporte (SVM) y
árboles de decisión
Métodos de aprendizaje ensamblado
Redes neuronales profundas
Detección de la cara: detecta que hay una cara en la imagen, sin identificarla. Si se
trata de un video, también podemos hacer un seguimiento de la cara. Proporciona la
localización y la escala a la que encontramos la cara.
6
Los resultados obtenidos dependen de las características extraídas para representar el patrón de
la cara y de los métodos de clasificación utilizados para distinguir los rostros, pero para extraer
estas características apropiadamente, hace falta localizar y normalizar la cara adecuadamente.
5. PROCEDIMIETO
7
8
6. CONCLUSIONES
7. BIBLIOGRAFIA
https://es.mathworks.com/discovery/redes-neuronales.html
http://avellano.fis.usal.es/~lalonso/RNA/index.htm
https://www.frro.utn.edu.ar/repositorio/catedras/quimica/5_anio/orientadora1/monograias/mati
ch-redesneuronales.pdf
8. ANEXOS
GUIDE
function varargout = guide(varargin)
9
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Outputs from this function are returned to the command line.
function varargout = guide_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
10
% Get default command line output from handles structure
varargout{1} = handles.output;
%hist = imhist(I)
detector1 = vision.CascadeObjectDetector;%('Mouth');
detector1.MergeThreshold = 5;
box1 = step(detector1, I);
out1 = insertObjectAnnotation(I,'Rectangle',box1,'boca');
imshow(out1);
for i = 1:size(box1,1)
J= imcrop(out1,box1(i,:));
end
J = imresize (J, [110 110]);
J = J *1.65;
J=imagerbg(J);
imwrite(J,'feliz_boca.jpg');
clear cam
% --- Executes on button press in em2.
function em2_Callback(hObject, eventdata, handles)
clear cam
cam = webcam(1)
11
detector1 = vision.CascadeObjectDetector;%('Mouth');
detector1.MergeThreshold = 5;
box1 = step(detector1, I);
out1 = insertObjectAnnotation(I,'Rectangle',box1,'boca');
imshow(out1);
for i = 1:size(box1,1)
J= imcrop(out1,box1(i,:));
end
J = imresize (J, [110 110]);
J = J *1.65;
J=imagerbg(J);
imwrite(J,'triste_boca.jpg');
clear cam
detector1 = vision.CascadeObjectDetector;%('Mouth');
detector1.MergeThreshold = 5;
box1 = step(detector1, I);
out1 = insertObjectAnnotation(I,'Rectangle',box1,'boca');
imshow(out1);
for i = 1:size(box1,1)
J= imcrop(out1,box1(i,:));
end
J = imresize (J, [110 110]);
J = J *1.65;
J=imagerbg(J);
imwrite(J,'enojado_boca.jpg');
clear cam
% --- Executes on button press in cap.
function cap_Callback(hObject, eventdata, handles)
clear cam
cam = webcam(1)
12
for idx = 1:20
img = snapshot(cam);
%image(img);
if(idx==19)
imwrite(img,'muestra.jpg');
end
end
img = imread('muestra.jpg');
img = imresize(img, 0.5);
guide(handles.axes1)
I = rgb2gray(img);
subplot (4,3,11)
detector1 = vision.CascadeObjectDetector;%('Mouth');
detector1.MergeThreshold = 5;
box1 = step(detector1, I);
out1 = insertObjectAnnotation(I,'Rectangle',box1,'boca');
imshow(out1);
for i = 1:size(box1,1)
J= imcrop(out1,box1(i,:));
end
J = imresize (J, [110 110]);
J = J *1.65;
J=imagerbg(J);;
imwrite(J,'muestra_boca.jpg');
p=double(imread('muestra_boca.jpg'));
%p = imresize(p, 0.25);
%grisp=double(rgb2gray(p));
muestraNeurona=[p(:)]
y=cris6(muestraNeurona);
y
date= round (y)
if date(1)==1
disp('Feliz');
set(handles.text4,'String','Em1')
end
if date(2)==1
disp('Enojado');
set(handles.text4,'String','Em3')
end
if date(3)==1
disp('Triste');
set(handles.text4,'String','Em2')
end
clear cam
13
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
MATRIZ ENTRADA
grisx=double(imread('feliz_boca.jpg'));
% grisx=imagerbg(x);
% figure, imshow(grisx);
%x = imresize(x, 0.25);
%grisx=double(rgb2gray(x));
figure(1)
subplot(1,3,1);
imshow(grisx)
grisy=double(imread('enojado_boca.jpg'));
%y = imresize(y, 0.25);
%grisy=double(rgb2gray(y));
figure(1)
14
subplot(1,3,2);
imshow(grisy)
grisz=double(imread('triste_boca.jpg'));
%z = imresize(z, 0.25);
%grisz=double(rgb2gray(z));
figure(1)
subplot(1,3,3);
imshow(grisz)
grism=imread('muestra_boca.jpg');
%z = imresize(z, 0.25);
%grism=double(rgb2gray(m));
Entradasyy=[grisx(:),grisy(:),grisz(:)]
Muestrayy=[grism(:)]
Salidasyy=[1,0,0;
0,1,0;
0,0,1;]
LLAMAR NEURONA
m=double(imread('enojado_boca.jpg'));
%grism=double(rgb2gray(m));
Muestrayy=[m(:)]
y=CRIS5(Muestrayy);
round (y)
15