lector de codigos de barras

7
Diagrama global del proceso de nuestra investigación

Upload: saintmike03

Post on 30-Sep-2015

241 views

Category:

Documents


5 download

DESCRIPTION

Funcionamiento del reconocimiento de patrones

TRANSCRIPT

Diagrama global del proceso de nuestra investigacin

Los cdigos de barras son un sistema de codificacin creado con el objetivo de identificar objetos y facilitar la obtencin de informacin y de esta forma eliminar la posibilidad de error en la captura. La utilizacin de este sistema de codificacin es tan exitosa debido a la fiabilidad que presenta en la recoleccin automtica de datos, reduciendo los posibles errores humanos que se pueden producir en el caso de una introduccin errnea de informacin.Podemos definir un cdigo de barras como un patrn formado por barras y espacios paralelos que codifica informacin mediante las anchuras relativas de estos elementos. Su estructura bsica consiste de un patrn de inicio, uno o ms caracteres de datos, opcionalmente unos o dos caracteres de verificacin y un patrn de termino.Adems el implementar un sistema de captura de datos por cdigos de barras es poco costoso y el conocimiento necesario para utilizar el sistema es mnimo, por lo que no debe presentarse como un problema el aprendizaje del personal que manipule el mismo.El desarrollo de este sistema de codificacin nos permite disponer de tres categoras de cdigos de barras, dependiendo de la tecnologa que es necesaria para realizar una lectura de los mismos: lineales, multifilas y bidimensionales. Una gran parte de la literatura existente llama tambin cdigos bidimensionales a los considerados multifilas. Por tanto se puede realizar una divisin entre cdigos de una dimensin (lineales) donde slo importa el ancho de las barras y el espacio entre ellas y cdigos de dos dimensiones (multifilas y bidimensionales) donde importa la altura y anchura del smbolo.

Nomenclatura Bsica.

La visualizacin fsica de los cdigos de barras suele presentarse mediante barras verticales: estas representan caracteres de informacin mediante barras negras y espacios, donde el ancho de las barras y espacios puede ser variable. Por tanto, cada digito o carcter representado en un cdigo est formado por barras y espacios que tienen una anchura total de una cierta cantidad de unidades o mdulos, dependiendo del cdigo, de esta forma cada barra y cada espacio puede tener una anchura de diversas unidades o mdulos. De forma resumida se puede expresar de la siguiente manera:

Mdulo: es la unidad mnima o bsica de un cdigo. Las barras y espacios estn formados por un conjunto de mdulos. Barra: el elemento (oscuro) dentro del cdigo. Se hace corresponder con el valor binario 1. Espacio: el elemento (claro) dentro del cdigo. Se hace corresponder con el valor binario 0. Carcter: formado por barras y espacios. Normalmente se corresponde con un carcter alfanumrico.

Grficamente tendramos algo esto:

Cabe destacar que cada carcter o digito est formado por un conjunto de mdulos.Deteccin de bordes

Tcnicas de localizacin de cdigos de barras

Existen distintas tcnicas para identificar donde se encuentra un cdigo de barras dentro de una imagen:

Algoritmo Morfolgico Matemtico: Mtodo de localizacin basado en operaciones morfolgicas bsicas como: dilatacin, erosin, cierre y un conjunto de operaciones morfolgicas geodsicas. El algoritmo se basa en el hecho que los cdigos de barras poseen (valles estrechos) (espacios estrechos existentes entre las barras), un alto contraste y lneas paralelas. Mediante una segmentacin, estos valles se juntan para formar una regin que corresponde al cdigo de barras, descartando pequeas reas que no pertenecen al cdigo, para a continuacin aplicar filtros morfolgicos en diferentes orientaciones con el fin de extraer la orientacin del cdigo de barras.

Anlisis de texturas mediante filtros de Gabor: La idea fundamental sobre la que se basa este mtodo es asumir que un cdigo de barras es una regin con una textura homognea. Adems en una imagen donde se encuentra presente la textura, el nivel de gris de los pixels individuales no proporcionan suficiente informacin para llevar a cabo una segmentacin satisfactoria de la imagen, por ello se hace necesario incluir las relaciones espaciales existentes entre los niveles de gris de los pixels dentro de una vecindad local.

Deteccin de texto en las imgenes: Otra idea para la localizacin de cdigos de barras es utilizar tcnicas provenientes de los algoritmos de bsqueda de texto, sin embargo este tipo de mtodos presentan como inconveniente que suelen consumir mucho tiempo.

Densidad de Gradiente: Otro mtodo de localizacin de cdigos de barras es el basado en la extraccin de reas que poseen una alta densidad de gradientes mono-orientados. La localizacin de cdigos de barras en una imagen con baja resolucin es el principal propsito de este algoritmo, que utiliza para tal objetivo el clculo de gradientes y filtros morfolgicos.

En el que nos vamos a centrar es en este ltimo punto ya que vimos unas caractersticas muy buenas para ser mencionada.

Por tanto, el objetivo final que perseguimos es conseguir la decodificacin del cdigo de barras, para lo cual un paso esencial es la localizacin dentro de la imagen del cdigo en cuestin. La idea fundamental se presenta en la localizacin de sus caractersticas basndonos en el mtodo de la deteccin de bordes, ya que cada uno de los puntos de borde que conforman el cdigo de barras presentaran una orientacin similar y por tanto, sern susceptibles de ser clasificados como puntos de la imagen con una alta probabilidad de contener el cdigo de barras pretendido.

Detector de bordes de Canny

Un concepto relacionado con la extraccin de bordes es el de la primera derivada, ya que esta es cero en todas las regiones donde no vara la intensidad y tiene un valor constante en toda la transicin de intensidad. Por tanto un cambio de intensidad se manifiesta como un cambio brusco en la primera derivada, caracterstica esta que puede utilizarse para detectar la presencia de un borde.Uno de los operadores basados en la primera derivada para la deteccin de bordes es el algoritmo de Canny, que consiste en tres grandes pasos:

Obtencin del gradiente (magnitud y orientacin del vector gradiente en cada pixel).

Supresin no mxima o adelgazamiento del ancho de los bordes, obtenidos con el gradiente, hasta lograr bordes de un pixel de ancho.

Histresis de umbral al resultado de la supresin no mxima, con este proceso se pretende reducir la posibilidad de aparicin de falsos contornos.

Por tanto, en primer lugar a la imagen se le aplica un filtro gaussiano, para suavizar la imagen y tratar de conseguir la eliminacin del posible ruido que afecte a la misma. Sin embargo hay que ir con cuidado para no realizar un suavizado excesivo de la imagen y perder detalles o caractersticas de inters, provocando de esta forma un peor resultado.A continuacin se realiza el clculo del gradiente de la imagen suavizada, utilizando para ello una aproximacin del gradiente de la funcin Gaussiana.La imagen correspondiente a la magnitud del gradiente de la funcin gaussiana tendr valores grandes donde la variacin de la intensidad sea grande. Por esta razn se debe eliminar aquellos pixeles que no tienen una magnitud alta utilizando para ello un cierto umbral.Posteriormente se realiza un proceso de eliminacin de falsos bordes, conjuntamente a un realzado de bordes poco definidos. Este proceso se consigue eliminando aquellos pixeles que no son mximos locales.Un punto a tener en cuenta es la eleccin de los valores de las variables que se aplican en cada uno de los pasos anteriores, ya sea el valor de los umbrales o de la varianza en los filtros gaussianos por ejemplo, ya que segn estos valores los resultados pueden ser mejores o peores.Los valores tomados en cuenta se expresan ms adelante.En resumen, la deteccin de bordes usando operadores de aproximacin del gradiente tiende a funcionar bien en los casos en que se utilizan imgenes con transiciones de intensidad claramente definidas y ruidos relativamente bajos.

Un ejemplo de los resultados que se obtienen al aplicar el algoritmo de Canny se puede observar a continuacin:

Resultado de aplicar el detector de bordes de Canny: (a) imagen original; (b) orientacin; (c) supresin no mxima; (d) histresis de umbral

Detector de bordes de Canny

Como se ha comentado en esta investigacin nos hemos enfocado en la deteccin de bordes como una posible tcnica para la localizacin del cdigo de barras dentro de una imagen, debido a las caractersticas que este presenta. Por esta razn, se utiliza para tal objetivo, el algoritmo de deteccin de bordes de Canny, ya que este es presentado tambin como uno de los mejores mtodos para la deteccin de bordes y con el cual se obtienen unos buenos resultados.El algoritmo de Canny se fundamenta en la teora de operadores primera derivada para la extraccin de bordes y se desglosa en tres grandes pasos:

1. Obtencin del gradiente (magnitud y orientacin del vector gradiente en cada pixel) La entrada es una imagen I corrompida por ruido. Sea H un ncleo Gaussiano discreto con media cero y desviacin estndar .

Suavizar la imagen I con dicho ncleo para obtener una imagen de salida J.

Para cada pixel (i, j) en J obtener la magnitud y modulo del gradiente basndose en las siguientes expresiones:El gradiente de una imagen f(x, y) en un punto (x, y) se define como un vector bidimensional dado por la ecuacin:

Siendo un vector perpendicular al borde, donde el vector G apunta en la direccin de variacin mxima de f en el punto (x, y) por unidad de distancia, con la magnitud y direccin dadas por:

Es una prctica habitual aproximar la magnitud del gradiente con valores absolutos de la siguiente manera:

|G| = |Gx| + |Gy|

Obtendremos dos imgenes de salida: Em de la magnitud del gradiente y Eo de la orientacin, de acuerdo a las expresiones anteriores.

2. Supresin no mxima al resultado del gradiente Con Em y Eo como entradas y una nueva imagen IN como salida, considerar las cuatro direcciones d1, d2, d3, d4 identificadas por las orientaciones de 0o, 45o, 90o y 135o con respecto al eje horizontal. Para cada pixel (i, j):

Encontrar la direccin dk que mejor se aproxima a la direccin Eo(i, j) (la perpendicular al borde).

Si Em(i, j) es ms pequeo que al menos uno de sus dos vecinos en la direccin dk, al pixel (i, j) de IN se le asigna el valor 0, IN(i, j) = 0 (supresin), de otro modo IN(i, j) = Em(i, j).

La salida IN(i, j) es una imagen con los bordes adelgazados, es decir, es Em(i, j) despus de la supresin no mxima de puntos de borde.

3. Histresis de umbral a la supresin no mxima

La salida IN(i, j) suele contener mximos locales creados por el ruido. Se podran eliminar los pixeles por debajo de un determinado umbral, pero esto presenta problemas. Una solucin puede ser la histresis de umbral, cuyo procedimiento es el siguiente:

Tomar como entrada IN, que es la salida del proceso anterior, Eo la orientacin de los puntos de borde de la imagen, y dos umbrales t1 y t2, tales que t1 < t2.

Para todos los puntos de IN y explorando IN en un orden fijo:

Localizar el siguiente punto de borde no explorado previamente, IN(i, j), tal queIN(i, j) > t2.

Comenzar a partir de IN(i, j), seguir las cadenas de mximos locales conectados en ambas direcciones perpendiculares a la normal de borde, siempre que IN > t1.Marcar todos los puntos explorados y salvar la lista de todos los puntos en el entorno conectado encontrado.

La salida es un conjunto de bordes conectados de contornos de la imagen, as como la magnitud y orientacin, describiendo las propiedades de los puntos de borde.