Logo Studenta

4 Art - Identificación de usuario mediante algoritmo en MATLAB

¡Estudia con miles de materiales!

Vista previa del material en texto

REFI UPN.2015; 3(1): 01-10 Sistema básico de identificación de usuario 
 
1 
 
SISTEMA BÁSICO DE IDENTIFICACIÓN DE USUARIO MEDIANTE 
ALGORITMO DE PROCESAMIENTO EN MATLAB 
Basic system for user identification using a Mathlab algorithm 
 
Carlos Sánchez Márquez1 
1
Universidad Privada del Norte 
Recibido ene. 2015; aceptado mar. 2015; versión final abr. 2015. 
Correspondencia: augusto.sanchez@upn.edu.pe 
_______________________________________________________________ 
 
Resumen 
El sistema consta de una webcam común, un microcontrolador PIC 16f628A de microchip y un dispositivo 
de transmisión serial (que incluye el integrado MAX232) cuyo programa de comunicación está 
desarrollado en lenguaje C. El programa de identificación está basado en la técnica de identificación de 
objetos mediante algoritmos de binarización y segmentación de imágenes. Dichos algoritmos incluyen los 
comandos de erosión y dilatación que se aplican directamente sobre el elemento estructurante, a través 
de sus operadores morfológicos. Para finalizar el proceso, las piezas de la imagen se encuadran dentro 
de un área o intervalo mínimo y máximo para determinar el número de piezas. El algoritmo procesa las 
imágenes en blanco y negro (casi como un código de barras) captadas por la webcam y si determina que 
está dentro del rango y la zona de conteo, "identifica" al usuario. El programa de identificación fue 
desarrollado en Matlab. 
 
Palabras clave: Procesamiento de imágenes, segmentación, operadores morfológicos, identificación de 
usuario. 
 
 
Abstract 
This system consists of a common webcam, a PIC 16F628A microchip serial transmission system 
(including integrated MAX232) whose microcontroller communication program was developed in C 
language. The identification program is also simple, is based in the technique for identifying objects by 
binarization and image segmentation algorithms, whose erosion and dilation commands are applied 
directly to the element estructurant through morphological operators. Finally the included image parts are 
framed within an area, or range interval to determine the number of pieces. The algorithm works on black 
and white images (almost like a barcode) captured by the webcam and then, if it determines that it is within 
range and the counting zone, "identifies" the user. The identification program was developed in Matlab. 
 
Keywords: Images processing, sequencing, morphological operators, user identification. 
 
 
 
 
 
 
 
 
 
REFI UPN.2015; 3(1): 01-10 Sistema básico de identificación de usuario 
 
2 
 
I. INTRODUCCIÓN 
 
El procesamiento de imágenes puede conducirnos a obtener mejoras en la 
presentación de una imagen, puede ayudarnos a reconstruir una imagen, así como 
puede ayudar en el diagnóstico clínico de los pacientes o el mejoramiento de las 
imágenes satelitales (Malacara, 1997) (Martínez-Nistal y Sampedro, 1995). Otra de 
sus aplicaciones puede ser la identificación de usuarios, como por ejemplo zonas o 
áreas restringidas, y es ahí donde trabajamos en esta oportunidad, en este proyecto, 
en el cual hacemos uso de accesorios multimedia como webcam, microcontroladores y 
programas desarrollados en Matlab. 
 
Existen diversas formas y aplicaciones para el procesamiento de imágenes (Yang, 
2014), una de ellas es la identificación de usuario. Esta identificación puede darse para 
fines de seguridad, como por ejemplo para brindar acceso restringido al personal que 
pertenece a una determinada área o grupo de trabajo. Sobrado Malpartida (2011) 
señala que una etapa importante de la visión artificial es el pre procesamiento de 
imágenes; es decir, la transformación de la imagen original en una nueva en la cual se 
eliminaron los problemas de ruido granular de cuantización o de iluminación espacial 
variable. El uso de dichas técnicas mejora las imágenes digitales adquiridas de 
acuerdo a los objetivos planteados en el sistema de visión artificial. 
 
El procesamiento de imágenes puede ser aplicado también en el conteo de objetos en 
un proceso industrial, e incluso grupos de objetos dentro de una imagen. Todo ello 
contribuye a la selección de productos o un número determinado de objetos. 
 
Marcos Asensio (2013) detalla los pasos para desarrollar algoritmos: 
1. Lectura del fichero: En este paso se carga en memoria la imagen a procesar. 
2. Conversión a mapa de bits: Separa los objetos del fondo, aprovechando el 
contraste de la imagen. 
3. Relleno de huecos: Recupera pixeles interiores que forman parte del objeto, 
pero que no se reconocieron. 
4. Suavizado de bordes: Redondea las aristas en la imagen para suavizar el 
contorno de los objetos. 
5. Filtrado por tamaño: Elimina las virutas pequeñas. 
6: Etiquetado y conteo: Contabiliza los bloques de pixeles. 
 
 
 
REFI UPN.2015; 3(1): 01-10 Sistema básico de identificación de usuario 
 
3 
 
Técnicas de segmentación de Imágenes 
La segmentación es un proceso que consiste en dividir una imagen digital en regiones 
homogéneas con respecto a algunas características (e.g., el brillo o el color) para 
facilitar un posterior análisis o reconocimiento automático. Dos aplicaciones de 
segmentación de imágenes son localizar un rostro humano dentro de la imagen de una 
fotografía o encontrar los límites de una palabra dentro de una imagen de un texto. A 
continuación se describen las técnicas más frecuentes. 
 
Binarización 
Permite cambiar la escala de colores de una imagen a una escala de grises; es decir, 
solo niveles de blanco y negro. 
 
Umbralización 
Empleada para definir un umbral, de tal forma que permite distinguir los objetos de 
interés respecto del fondo. 
 
Elemento estructurante: 
Examinar la estructura geométrica de una imagen usando como sonda un patrón de 
ajuste que se denomina elemento estructurante (E.E.). 
 
Dilatación 
Es el producto de la aplicación de la binarización, el resultado es una imagen binaria 
 
Erosión 
Técnica que elimina grupos de píxeles con espacio insuficiente para incorporar una 
estructura geométrica que emplea un patrón de ajuste, conocida como elemento 
estructurante. 
 
 
II. MATERIALES Y MÉTODOS 
 
Al inicio el individuo ingresa su plantilla codificada en la ranura del módulo de lectura 
de código, la webcam toma la imagen. Luego el programa en la computadora digitaliza 
la imagen y aplica la técnica de segmentación de imagen. El individuo ingresa su 
Usuario en el panel de acceso de la pantalla. Si el código ingresado coincide con el 
del algoritmo, se envía un pulso al microcontrolador, desde el cual se envía un pulso a 
un transistor que activa un relay abre la puerta de acceso (ver Figura 1). 
 
REFI UPN.2015; 3(1): 01-10 Sistema básico de identificación de usuario 
 
4 
 
 
 
 
 
 
 
 
 
Figura 1. Diagrama del sistema 
Fuente: Elaboración propia 
 
 
Accesorios utilizados 
 
Webcam 
Para la adquisición de imágenes se utilizó la webcam HA 013 de Halion, cuyas 
características técnicas son las siguientes: 
 Interfaz: USB 2.0. / 2.0 Mega pixel. 
 Resolución de video: 640 x 480 / 1600 x 1200. 
 
Microcontrolador 
Se empleó el microcontrolador PIC16F628A de microchip, cuyas características son: 
 Emcapsulado: DIP 18 pines. / Oscilador interno de 4MHz. 
 Memoria flash: 2K / Memoria RAM: 224 bytes. / Memoria EEPROM: 128 bytes. 
 Dos comparadores análogicos y USART. 
 
Hyperterminal 
Permite efectuar el enlace de comunicación entre la computadora y el 
microcontrolador. En el Hyperterminal se determina el puerto de comunicación (e.g., el 
puerto serial es el COM4). Así se produce el enlace, siempre que la velocidad de 
transmisión sea de 2400 o 9600 baudios por segundo (bps) en ambas etapas. 
 
 
 CÓDIGO 
INDIVIDUO 
camara COMPUTADOR 
ACCESO A ZONA 
RESTRINGIDA 
http://www.google.com.pe/url?sa=i&rct=j&q=&esrc=s&frm=1&source=images&cd=&cad=rja&uact=8&docid=4B01AttBLqkh9M&tbnid=x-D4V_4hf8S_UM:&ved=&url=http://www.sigmaelectronica.net/microchip-m-14.html?page=2&sort=2a&ei=WnQOVKeuCdLygwTjiICgCw&bvm=bv.74649129,d.eXY&psig=AFQjCNFp2hVAAWA3iL3ep2FlqwBN_wEm8A&ust=1410319834557590REFI UPN.2015; 3(1): 01-10 Sistema básico de identificación de usuario 
 
5 
 
 
Virtual serial port 
Es otro paquete que permite crear puertos virtuales para el caso de la simulación de la 
comunicación. Este sistema fue simulado previamente mediante este paquete, el cual 
permite asignar puertos virtuales desde el COM1:COM4 hacia adelante. 
 
 
Programas empleados en las diferentes etapas 
 
Comunicación serial 
El programa fue desarrollado en lenguaje C. Para la comunicación serial usa los pines 
de transmisión y recepción del microcontrolador. Para que funcione correctamente es 
necesario utilizar programas complementarios como el Hyperterminal y el Virtual serial 
port, los cuales asignan los puertos de comunicaciones (ver Anexo 1). 
 
Acceso restringido 
La ventana de diálogo se diseñó en el módulo Guide de Matlab, en cuya plantilla se 
lee el título "Acceso restringido", debajo del cual hay un recuadro en blanco para 
ingresar un código y presionar el botón Ingresar. Con este evento, el individuo pasa la 
primera etapa de identificación (ver Figura 2). 
 
 
Figura 2. Ingreso de código numérico 
Fuente: Elaboración propia 
 
Identificación del usuario 
Ventana de diálogo también diseñada en Guide de Matlab, en cuya plantilla se leen los 
títulos "Ingrese identificador", y "Elija usuario". Debajo de este rótulo aparece un menú 
desplegable de usuarios numerados del 1 al 100, desde el cual el individuo selecciona 
el usuario correspondiente (ver Figura 3). En el Anexo 2 se presenta un extracto del 
código fuente de este programa. 
 
 
REFI UPN.2015; 3(1): 01-10 Sistema básico de identificación de usuario 
 
6 
 
 
 
Figura 3. Ingreso de código numérico 
Fuente: Elaboración propia 
 
Transmisión serial 
Esta es una plantilla clásica de Matlab para transmisión serial, la misma se puede 
obtener de manera libre de la página de Mathworks (ver Anexo 3). 
 
 
III. RESULTADOS 
 
Cuando el individuó trató de ingresar a una zona de acceso restringido, ingresando el 
código y seleccionando el usuario del menú desplegable, se activó el programa de 
identificación de usuarios. 
 
Para entender mejor el procesamiento realizado, se incluyen los circuitos de 
simulación desarrollados en Proteus. Inicialmente se observa la activación de un motor 
dc que representa la activación del motor de una puerta automática. En un segundo 
momento se presenta la activación de una puerta (apertura) por medio de la activación 
de un relay, previa identificación del Usuario mediante su código (ver Figuras 4 y 5). 
 
 
 
Figura 4. Circuito de activación de motor de apertura 
 
 
REFI UPN.2015; 3(1): 01-10 Sistema básico de identificación de usuario 
 
7 
 
 
 
 
Figura 5. Circuito de activación de acceso a área restringida (Puerta) 
 
 
IV. CONCLUSIONES 
 
Este sistema básico para el procesamiento de señales permite identificar individuos 
que desean acceder a áreas restringidas de trabajo. Las técnicas de procesamiento de 
imágenes empleadas son diversas y pueden ser aplicadas a procesos industriales, 
tales como selección de objetos o mejoramiento de la calidad de producción. Además, 
el procesamiento de imágenes también se puede aplicar en el mejoramiento de 
imágenes médicas para un mejor diagnóstico. 
 
 
BIBLIOGRAFÍA 
 Malacara, D. (1997). Óptica tradicional y moderna. Editorial Ciencia para todos, México D.F. 
 
Marcos, B. (2013). Provisión de servicios de procesado de imágenes basados en 
arquitecturas orientadas a servicios. Proyecto de fin de carrera / Trabajo de fin de 
grado. Universidad Politécnica de Madrid. Recuperado 13 de marzo de 2015, a partir 
de http://oa.upm.es/22223/ 
 
Martínez-Nistal, A. y Sampedro, A. (1995). Introducción al proceso de digital de imágenes. 
Universidad de Oviedo. Servicios de proceso de imágenes, Asturias, España. 
 
Sobrado, E. (2011). Sistema de visión artificial para el reconocimiento y manipulación de 
objetos utilizando un brazo robot. Tesis de Maestría en Ingeniería de Control y 
http://oa.upm.es/22223/
http://repositorio.pucp.edu.pe/index/handle/123456789/24890
http://repositorio.pucp.edu.pe/index/handle/123456789/24890
 
REFI UPN.2015; 3(1): 01-10 Sistema básico de identificación de usuario 
 
8 
 
Automización. Pontificia Universidad Católica del Perú, Escuela de 
Posgrado. Disponible en http://tesis.pucp.edu.pe/repositorio/handle/123456789/68 
 
Yang, H. (2014). Computer digital image processing: application and research. Advanced 
Materials Research, 926-930, 3389-3392. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
http://tesis.pucp.edu.pe/repositorio/handle/123456789/68
 
REFI UPN.2015; 3(1): 01-10 Sistema básico de identificación de usuario 
 
9 
 
ANEXOS 
 
Anexo 1. Programa para la transmisión serial 
 
#include <16F628.h> 
#fuses XT,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT 
#use delay(clock=4000000) 
 
#use rs232(baud=9600, xmit=pin_B2, rcv=pin_B1) 
#use delay (clock=4000000) 
unsigned char X=0; 
#int_rda 
void serial_isr() { 
X=getc(); 
} 
main() { 
enable_interrupts(int_rda); 
enable_interrupts(GLOBAL); 
 while(true) { 
 if(X=='O') 
 { 
 output_high(pin_a0); 
 output_low (pin_a1); 
 } 
 } 
} 
 
 
Anexo 2. Programa de identificación del usuario 
 
function popupmenu1_Callback(hObject, eventdata, handles) 
% hObject handle to popupmenu1 (see GCBO) 
% Start up the video. 
fun =get(handles.popupmenu1,'Value'); 
switch fun 
case 1 
vid = videoinput('winvideo', 1, 'mjpg_800x600'); 
vid.FramesPerTrigger = 1; 
start(vid); 
bn=im2bw(rgbImage);%Convertir a blanco y 
%negro la imagen 
bn2=not(bn); 
im_dilate=imdilate(im_erode,SE); 
im_label1=bwlabel(im_dilate,6); 
set(handles.text4,'String',n1) 
 case 2 
vid = videoinput('winvideo', 1, 'mjpg_800x600'); 
vid.FramesPerTrigger = 1; 
start(vid); 
set(handles.text4,'String',n2) 
end 
 
 
 
REFI UPN.2015; 3(1): 01-10 Sistema básico de identificación de usuario 
 
10 
 
Anexo 3. Programa de transmisión serial 
 
%CONDICION DE APERTURA 
clc; 
disp('BEGIN') 
s = serial('COM3'); 
set(s,'BaudRate',2400); 
set(s,'DataBits',8); 
set(s,'Parity','none'); 
set(s,'StopBits',1); 
set(s,'FlowControl','none'); 
fopen(s); 
if (n1 == 10) 
 fprintf(s,'O'); end 
fclose(s); 
clear s

Continuar navegando