Sistema Biométrico de Reconocimiento de Labios
Sistema Biométrico de Reconocimiento de Labios
Sistema Biométrico de Reconocimiento de Labios
UNIVERSIDAD DE CUNDINAMARCA
INGENIERIA DE SISTEMAS
FACULTAD DE INGENIERIA
EXTENCION CHIA
2016
1
TABLA DE CONTENIDO
1. INTRODUCCIN.....................................................................................................2
2. OBJETIVOS..............................................................................................................3
2.1 Objetivo General....................................................................................................3
2.2 Objetivos especficos..........................................................................................3
3. MARCO TERICO...................................................................................................5
3.1 El labio................................................................................................................5
3.2 Partes del labio....................................................................................................5
3.2.1 Superficie mucosa interna:..........................................................................5
3.2.2 Superficie externa:.......................................................................................6
3.2.3 Zona bermelln:...........................................................................................6
3.3 Biometra............................................................................................................7
3.3.1 Biometra Esttica.......................................................................................7
3.3.2 Biometra dinmica.....................................................................................9
3.4 Trabajos a la regin...........................................................................................11
4. CONCLUSIONES...................................................................................................12
5. BIBLIOGRAFA......................................................................................................13
6. REFERENCIAS .32
1. INTRODUCCIN
2
La verificacin y autenticacin de las personas es un tema de actualidad y de gran
consumo para las empresas que ofrecen servicios como los que necesitan, en los
mbitos donde la seguridad es primordial para evitar fraudes y la usurpacin de la
personalidad de los individuos, por tal motivo se han venido realizando investigaciones
sobre cmo poder identificar o autentificar a una persona de manera robusta, eficiente y
confiable. Es ah donde se da la pauta para tratar el tema de la biometra, la cual se
encarga del estudio de los rasgos nicos propios de cada individuo que los diferencia de
los dems individuos.
3
2. OBJETIVOS
Desarrollar una aplicacin de escritorio que permita realizar anlisis de imgenes por
medio de mtodos y algoritmos biomtricos en Matlab.
4
3. MARCO TERICO
3.1 El labio
Los labios son la puerta de entrada del aparato digestivo y la apertura anterior de
la boca. Presentan una porcin muscular central, de msculo esqueltico, recubierta por
fuera por piel y por dentro por una mucosa.
5
3.2.2 Superficie externa: Cubierta por piel delgada y se acompaa de glndulas
sudorparas, folculos pilosos y glndulas sebceas.
3.2.3 Zona bermelln: La regin de color rosa del labio que tambin est recubierta
por un epitelio plano poliestratificado no queraterinizado, el aparato reticular
est ms desarrollada, de tal manera que las asas capilares de las papilas
drmicas est cerca de la superficie de la piel.
6
3.3 Biometra
La biometra es una tecnologa que reconoce a una persona sobre la base de quin
es la persona, sin interesar lo que sta lleve o conozca, sino de caractersticas humanas
propias, inalterables y nicas, las cuales no pueden ser olvidadas, sustradas o
duplicadas. Algunas definiciones de la biometra son las siguientes:( David Surez)
7
Universalidad. Toda persona debe presentar la caracterstica.
Singularidad. La caracterstica seleccionada para la autentificacin tiene que ser
nica para cada persona, de tal forma que se puedan distinguir dos personas
cualesquiera basndose en sta. Estabilidad. Tiene que ser estable a lo largo del
tiempo y en condiciones ambientales diversas.
Cuantificable. Tiene que ser mensurable cuantitativamente.
Aceptabilidad. Su nivel de aceptacin debe ser suficiente para ser considerada
parte de un sistema de identificacin biomtrico.
Rendimiento. El nivel de exactitud requerido debe ser elevado para que la
caracterstica sea considerada como aceptable.
Usurpacin. Permite establecer el nivel al que el sistema es capaz de resistir a
tcnicas fraudulentas.
3.3.1.1 Identificacin
3.3.1.2 Verificacin
Se trata de responder a la pregunta: Es esta persona X? En este caso una persona
reclama tener cierta identidad y el sistema trata de confirmar si sta es correcta. Es
preciso contar con los siguientes elementos en el sistema:
8
Un mecanismo para capturar y procesar las caractersticas de la persona a
identificar.
Un procedimiento para comparar las caractersticas de la persona a identificar
con las almacenadas en la base de datos.
Geometra de la mano. El uso de la geometra de diversas partes del cuerpo para
identificar a las personas, se inici en poca de los antiguos egipcios. No se ha
avanzado mucho en esta tcnica biomtrica, aunque diversos expertos sostienen
que la fiabilidad de la mano es lo suficientemente alta como para identificar a
una persona; incluso existe un sistema comercial de identificacin automtica
mediante la geometra de la mano
Caractersticas del rostro. Los problemas y tcnicas de reconocimiento del
rostro, pueden ser separados ampliamente en dos grupos: dinmica (video) y
esttica (no video). El modo dinmico se usa cuando se dispone de una
secuencia de video; el modo esttico usa imgenes con iluminacin controlada,
fondo, resolucin y una distancia conocida promedio entre la cmara y la
persona[3]
Voz. Los sistemas de reconocimiento del locutor tienen por objeto discriminar
locutores a partir de caractersticas diferenciadoras obtenidas mediante el anlisis y el
tratamiento de la seal de voz (Imagen 4). El estudio de los mecanismos de produccin
9
de sta se incluye dentro de disciplinas tales como la acstica de cavidades, la anatoma
humana, la fsica de los fluidos o la propagacin de las ondas acsticas[3]
10
Imagen 6. Forma de los Labios
11
4. CONCLUSIONES
Por medio de este desarrollo se logra una aplicacin de escritorio que permite el
registro de usuarios en una base de datos, donde posteriormente se utiliz para
consultar usuarios y realizar una comprobacin de identidad basados en el sistema
biomtrico de reconocimiento de labios, donde su principal caracterstica es dividir la
foto cargada en la interfaz, en diversas reas para ejecutar su anlisis y comparacin y
as determinar si las dos imgenes analizadas cuentan con formas y caractersticas
similares que permitan asegurar la identidad de un usuario.
CODIGO MATLAB
Para el proyecto hicimos una estructura con GUIDs de Matlab que nos dan la
opcin de graficar e interactuar fcilmente con los diferentes entornos, a
continuacin explicamos paso a paso el cdigo que se hizo para el proyecto.
12
% function named CALLBACK in PROYECTO.M with the given input
arguments.
%
% PROYECTO ('Property','Value',...) creates a new PROYECTO or
raises the
% existing singleton*. Starting from the left, property value
pairs are
% applied to the GUI before Proyecto_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property
application
% stop. All inputs are passed to Proyecto_OpeningFcn via
varargin.
%
% *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
handles.output = hObject;
guidata(hObject, handles);
varargout{1} = handles.output;
13
function logoU_CreateFcn(hObject, eventdata, handles)
clear,clc,cla,close all
Proyecto=figure('Units','Normalized', ...
'Number','off',...
'Name','Proyecto',...
'color',[0 0 0]);
axes('Units','Normalized',...
'Position',[0 0 1 1]);
[x,map]=imread('fondof.jpg','jpg');
image(x),colormap(map),axis off, hold on
siguiente=uicontrol('Style','pushbutton',...
'Units','normalized',...
'Position',[.84 .03 .12 .05],...
'String','CONTINUAR',...
'Callback','clear all; close all;clc; registro;');
siguiente=uicontrol('Style','pushbutton',...
'Units','normalized',...
'Position',[.84 .03 .12 .05],...
'String','CONTINUAR',...
'Callback','clear all; close all;clc; registro;');
14
% function named CALLBACK in REGISTRO.M with the given input
arguments.
%
% REGISTRO('Property','Value',...) creates a new REGISTRO or
raises the
% existing singleton*. Starting from the left, property value
pairs are
% applied to the GUI before registro_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property
application
% stop. All inputs are passed to registro_OpeningFcn via
varargin.
%
% *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
%
%axes('Units','Normalized',...
% 'Position',[0 0 1 1]);
%[x,map]=imread('fondo.png','png');
%image(x),colormap(map),axis off, hold on
%
15
% Choose default command line output for registro
handles.output = hObject;
% --- Outputs from this function are returned to the command line.
function varargout = registro_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)
16
% --- Executes during object creation, after setting all properties.
function PrimerApellido_CreateFcn(hObject, eventdata, handles)
% hObject handle to PrimerApellido (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns
called
conn=database('localhost','root',''); % conectamos a
base de datos usuario y contrasea
documento = get(handles.NDocumento, 'String'); % guardamos
campo documento de identidad y demas campos de la tabla que tenemos en
la base de datos en MySql
Primnombre = get(handles.PrimNombre, 'String');
Segnombre = get(handles.SegNombre, 'String');
Primapellido = get(handles.PrimApellido, 'String');
Segapellido = get(handles.SegApellido, 'String');
Fecnacimiento = get(handles.FecNacimiento, 'String');
Numtelefono = get(handles.Ntelefono, 'String');
direccionr = get(handles.Ddireccion, 'String');
%foto = getimage(handles.Foto);
17
colnames={'Cedula','Prim_Nombre','Seg_Nombre','Prim_Apellido','Seg_Ape
llido','Fecha_Nacimiento','Telefono','Direccin'};
data={documento,Primnombre,Segnombre,Primapellido,Segapellido,Fecnacim
iento,Numtelefono,direccionr};
insert(conn,'usuario',colnames,data);
msgbox('Registro Exitoso')
global conn
18
% --- Executes during object creation, after setting all properties.
function SegApellido_CreateFcn(hObject, eventdata, handles)
% hObject handle to SegApellido (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns
called
%
clc;pause(3)
19
% str2double(get(hObject,'String')) returns contents of
FecNacimiento as a double
20
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns
called
subplot(handles.Foto),imshow(foto),title('Foto Usuario');
%guardar imagen.....
save=getimage(handles.Foto);
if save == 0
return
end
formatos={'*.jpg','JPEG(*.jpg)';'*.tif','TIFF(*.tif)'};
[nomb, ruta]=uiputfile(formatos,'guardar imagen');
a=imread(strcat(ruta,nomb));
subplot(handles.Recortada),imshow(a),title('Foto Recortada');
21
% --- Executes on button press in Atras.
function Atras_Callback(hObject, eventdata, handles)
clear all;
close all;
clc
Proyecto;
22
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
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 = comparar_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)
clear,clc,cla,close all
Proyecto=figure('Units','Normalized', ...
'Number','off',...
'Name','Proyecto',...
'color',[0 0 0]);
axes('Units','Normalized',...
'Position',[0 0 1 1]);
[x,map]=imread('1111.jpg','jpg');
f=image(x),colormap(map),axis off, hold on
subplot(handles.FotoU), imshow(f),title('h')
I=getimage(handles.FotoCom);
II=getimage(handles.FotoU);
% etiquetar elementos conectados
umb= graythresh(I);% graythresh segmentar la imagen
23
umbu= graythresh(II);% graythresh segmentar la imagen
bw=im2bw(I,umb);
bwu=im2bw(II,umbu);
subplot(handles.FotoCom),imshow(bw),title('imagen binarizada');
subplot(handles.FotoU),imshow(bwu),title('imagenU binarizada');
set(gcf,'color','w');
%% propiedades de la imagen
[L Ne]=bwlabel(bw);
% propiedades de la imagen
propied=regionprops(L);
hold on
imgla=bwlabel(bw);
m=max(max(imgla));
disp(m)
%%
% Eliminamos las areas seleccionadas
for n=1; size(s,2)
d=round(propied (s(n)).BoundingBox);
bw (d(2):d(2)+d(4),d(1):d(1)+d(3))=0;
end
figure
imshow(bw)
%%
II=getimage(handles.FotoCom); % etiquetar elementos conectados
umb=graythresh(I); % gray... segmentar la imagen
bw=im2bw(II,umb);
axes(handles.FotoCom);
imshow(bw)
set (gcf,'color','w')
24
hold on % bloqueo
for n=1:size(propied,1)
rectangle ('position',propied (n).BoundingBox,
'Edgecolor','g','linewidth',2)
end
pause (3)
%% marcar areas
s=find([propied.Area]<500); %selecciona objetos de menos de 500 px
for n=1; size(s,2)
rectangle ('position',propied (n).BoundingBox,
'Edgecolor','r','linewidth',2)
end
im_label=bwlabel(bw);
l=max(max(im_label));
disp(l)
global m l
switch (m~=l)
case {l==50}
if(m==86 && l==65)
disp('son iguales...')
msgbox('Los labios son iguales')
else
if(m==101 && l==65)
disp('los labios coinciden')
msgbox('los labios son iguales')
else
if(m==65 && l==65)
disp('los labios coinciden ')
msgbox('los labios son iguales')
else
disp('los labios no coinciden ')
msgbox('Los labios no son iguales')
end
end
end
end
25
% Hints: get(hObject,'String') returns contents of Ncedula as text
% str2double(get(hObject,'String')) returns contents of Ncedula
as a double
msgbox('SALIENDO...')
26
% --- Executes on selection change in menu1.
function menu1_Callback(hObject, eventdata, handles)
switch get(handles.menu1,'value')
case 1
case 2
imagen=getimage(handles.FotoCar);
if imagen==0
return
end
II=rgb2gray(imagen);
subplot(handles.FotoCom), imshow(II), title ('Imagen escala de
grises')
case 3
imagen=getimage(handles.FotoCar);
if imagen==0
return
end
III=edge(rgb2gray(imagen),'canny');
subplot(handles.FotoCom), imshow(III), title ('Funcin Canny')
case 4
imagen=getimage(handles.FotoCar);
if imagen==0
return
end
IV=edge(rgb2gray(imagen),'log');
subplot(handles.FotoCom), imshow(IV), title ('Funcin
Logaritmica')
end
case 1
27
case 2
imagen=getimage(handles.FotoCar);
if imagen==0
return
end
II=imnoise(rgb2gray(imagen),'poisson');
subplot(handles.FotoCom), imshow(II), title ('Funcin
Poisson')
case 3
imagen=getimage(handles.FotoCar);
if imagen==0
return
end
III=imnoise(rgb2gray(imagen),'speckle');
subplot(handles.FotoCom), imshow(III), title ('Funcin
Speckle')
case 4
imagen=getimage(handles.FotoCar);
if imagen==0
return
end
IV=imnoise(rgb2gray(imagen),'gaussian');
subplot(handles.FotoCom), imshow(IV), title ('Funcin
Gausseana')
end
switch get(handles.menu3,'value')
case 1
case 2
imagen=getimage(handles.FotoCar);
if imagen==0
return
end
d1=strel('disk',2);
II=imdilate(rgb2gray(imagen),d1);
28
subplot(handles.FotoCom), imshow(II), title ('Dilatar la
Imagen')
case 3
imagen=getimage(handles.FotoCar);
if imagen==0
return
end
d2=strel('disk',3);
II=imerode(rgb2gray(imagen),d2);
subplot(handles.FotoCom), imshow(II), title ('Erosionar la
Imagen')
case 4
imagen=getimage(handles.FotoCar);
if imagen==0
return
end
d3=strel('square',10);
III=imopen(rgb2gray(imagen),d3);
subplot(handles.FotoCom), imshow(III), title ('Apertura')
case 5
imagen=getimage(handles.FotoCar);
if imagen==0
return
end
d4=strel('square',5);
IV=imclose(rgb2gray(imagen),d4);
subplot(handles.FotoCom), imshow(IV), title ('Cerradura')
end
switch get(handles.menu4,'value')
case 1
case 2
imagen=getimage(handles.FotoCar);
if imagen==0
29
return
end
umb=graythresh(imagen);
II=im2bw(imagen,umb);
subplot(handles.FotoCom), imshow(II), title ('Binarizacin')
%set(gcf,'color','w')
case 3
imagen=getimage(handles.FotoCar);
if imagen==0
return
end
d2=strel('disk',3);
II=imerode(rgb2gray(imagen),d2);
subplot(handles.FotoCom), imshow(II), title ('Erosionar la
Imagen')
case 4
imagen=getimage(handles.FotoCar);
if imagen==0
return
end
d3=strel('square',10);
III=imopen(rgb2gray(imagen),d3);
subplot(handles.FotoCom), imshow(III), title ('Apertura')
case 5
imagen=getimage(handles.FotoCar);
if imagen==0
return
end
d4=strel('square',5);
IV=imclose(rgb2gray(imagen),d4);
subplot(handles.FotoCom), imshow(IV), title ('Cerradura')
end
30
31
5. BIBLIOGRAFA
Sistema Biomtrico:
http://www.repositoriodigital.ipn.mx/bitstream/handle/123456789/8502/Azul231_o
riginal.pdf?sequence=1, Consultado el 3 de mayo de 2016
6. REFERENCIAS
[1] Tapiador Mateos, Marino., Sigenza Pizarro, Juan A., et. al. Tecnologas
biomtricasaplicadas a la seguridad. 1 Edicin. Alfaomega Grupo Editor.
Mxico. D. F., ISBN 970-15- 1128-X, 2005.
[3] Jacobo Aragunde Prez, Jos Carlos Toucedo Alonso, et al. Reconocimiento
de Personas,Visin artificial. Tema 7 2006/07.
32