Sistemas de Visión Artificial, Historia, Componentes y Procesamiento de Imágenes.

May 1, 2020 | Author: Anonymous | Category: Segmentación de imagen, Visión por computador, Matlab, Arduino, Píxel
Share Embed Donate


Short Description

Download Sistemas de Visión Artificial, Historia, Componentes y Procesamiento de Imágenes....

Description

Visión Artificial La visión artificial, también conocida como visión por computador o visión técnica es un subcampo de la inteligencia artificial que tiene como finalidad la extracción de información del mundo físico a partir de imágenes, utilizando para ello un computador. La entrada de un Sistema de Visión Artificial es una imagen obtenida por un elemento de adquisición, mientras que su salida es una descripción de la escena contenida en la imagen. Por un lado, esta descripción debe estar relacionada de algún modo con aquella realidad que produce la imagen y, por el otro, debe contener toda la información requerida para la tarea de interacción con el medio ambiente que se desea llevar a cabo, por ejemplo mediante un robot. El sentido de la vista se implementa en robotica mediante el desarrollo de Sistemas de Visión Artificial, cuyo propósito es el de programar un computador para que "entienda" una escena o las características de una imagen.

Historia La visión artificial surge en la década de los 60 con la idea básica de conectar una cámara de video a un computador; esto implicó no solo la captura de imágenes a través de la cámara sino también la comprensión de lo que estas imágenes representaban. Un resultado muy importante de este trabajo y que marcó el inicio de la visión artificial, fue un trabajo de Larry Roberts, el creador de ARPAnet. En 1961 creó un programa, el “mundo de microbloques”, en el que un robot podía “ver” una estructura de bloques sobre una mesa, analizar su contenido y reproducirla desde otra perspectiva, demostrando así que esa información visual que había sido mandada al ordenador por una cámara, había sido procesada adecuadamente por él. Las técnicas usadas en visión artificial se han desarrollado a gran velocidad en las últimas décadas; los primeros sistemas se basaron en imágenes binarias que se procesaban en bloques, ventanas o píxeles. Gracias al desarrollo de nuevos algoritmos de visión artificial se logró reconocer el contorno de objetos y su posición dentro de una imagen, estos algoritmos tenían la limitante de no poder operar en diferentes tipos de iluminación. Posteriormente se introdujeron los sistemas de intensidad de gris, en estos cada píxel de la imagen es representado con un número proporcional a la intensidad de gris de dicho elemento; esta técnica podía operar en diferentes tipos de iluminación, ya que pueden encontrar los bordes de los objetos utilizando cambios en los valores de intensidad de los píxeles. La visión por computador actualmente comprende tanto la obtención como la caracterización e interpretación de los objetos contenidos en una imagen y es uno de los elementos sensoriales más atractivos para incrementar la autonomía en robótica ya que proveen de información relevante sobre el estado de los robots y de su entorno físico inmediato y son bastante baratos en comparación con otros; la única dificultad que puede existir al emplear estos sistemas es la extracción de la información a partir de una imagen.

Aplicaciones de la Visión Artificial        

Militares: gran parte de los logros informáticos conseguidos han sido promovidos o posteriormente adquiridos y mejorados por este sector. Robótica: en aplicaciones industriales para guiado de robots. Análisis de imágenes tomadas por satélite. Identificación automática de huellas: muy extendidos en sistemas de seguridad y control de acceso. Control de calidad: muy extendido en cadenas de montaje. Medicina: dando especial importancia a los avances obtenidos con imágenes RMI (imágenes por resonancia magnética), y en imágenes por Rayos X. Reconocimiento de Caracteres: dentro de esta área se encuentran aplicaciones como lectura de etiquetas, procesamiento de cheques bancarios, lectura de texto, etc. Cartografía: elaboración de mapas a partir de fotografías, síntesis de mapas de clima, etc.

Componentes de un Sistema de Visión Artificial 1. Iluminación. El propósito de la iluminación es el de controlar la forma en que la cámara va a ver el objeto, juega un papel muy importante dentro de la visión artificial, ya que simplifica considerablemente el posterior procesamiento de la escena captada. Los objetivos de la iluminación son: optimizar el contraste, normalizar cualquier variación de la iluminación ambiente y simplificar el procesamiento posterior de la imagen. El tipo de iluminación dependerá del entorno en que este implementado el sistema de visión artificial. 2. Cámara. La cámara es un dispositivo que utilizando un juego de lentes y un sensor recibe la luz reflejada por la escena y la utiliza para generar imágenes; una cámara desempeña la función de sensor en un sistema de visión artificial, de acuerdo a la aplicación y a las necesidades se selecciona el tipo de cámara y óptica más adecuado. El lente en una cámara se utiliza para transmitir la luz al sensor de la cámara de una forma controlada para poder obtener una imagen enfocada de uno o varios objetos. Los sensores contenidos en una cámara son componentes sensibles a la luz que modifican su señal eléctrica en función de la intensidad luminosa que perciben. La tecnología más habitual en este tipo de sensores es el CCD (Charge Coupled Devices o Dispositivos de Acoplamiento de Carga), en este tipo de sensores la señal eléctrica que transmiten los elementos fotosensibles es función de la intensidad luminosa que reciben, su espectro, y el tiempo de integración (tiempo durante el cual son sensibles a la luz incidente). Otra tecnología son los sensores CMOS (Complementary Metal Oxide Semiconductor), estos son de menor tamaño y precio en comparación con los CCD; este tipo de sensores se adapta mejor al brillo existente en su entorno. 3. Sistema de procesamiento. Suele ser una computadora y es el encargado de recibir las imágenes e implementar las funciones de tratamiento de la imagen de acuerdo al tipo de análisis a realizar, está compuesto por:

a) Tarjeta de adquisición. Permite transferir la imagen de la cámara a la memoria de la computadora con el fin de que ésta pueda realizar el procesamiento adecuado; los aspectos importantes a considerar en la tarjeta de adquisición son: velocidad de transmisión, formato de los datos, la capacidad de preproceso de la imagen, la velocidad de transferencia de la imagen hacia la memoria de la computadora y la capacidad de controlar la cámara en tiempo real. b) Algoritmos de procesado. Es la parte inteligente del sistema, consiste en aplicar las transformaciones necesarias y extracciones de información de las imágenes capturadas, con el fin de obtener los resultados para los que haya sido diseñado. c) Interface. Después de realizar el procesamiento de la imagen y a través de los algoritmos es común mostrar los resultados obtenidos de acuerdo a las necesidades requeridas a un usuario final, por lo que se crea una interfaz para mostrarlos. 4. Actuadores externos. Es el conjunto de elementos que muestran los resultados obtenidos del procesamiento de la imagen; estos pueden ser: monitores, robots, dispositivos neumáticos e hidráulicos, autómatas programables, etc. Procesamiento digital de imágenes Los sistemas de visión artificial se basan en el procesamiento digital de imágenes, el cual es el conjunto de técnicas que se aplican sobre imágenes digitales con el fin de mejorar la calidad o facilitar la búsqueda de información dentro de las mismas.

1. Captación o adquisición de imagen. Esta etapa es la más sencilla, puesto que en esta se realiza con una cámara la obtención de una imagen y su posterior digitalización. Las imágenes digitales son señales discretas, que suelen tener origen en una señal continua, por ejemplo: una cámara digital toma imágenes del mundo real que es continuo. Una imagen digital puede definirse como una matriz bidimensional (x, y), en la que cada par de coordenadas representa un elemento contenido en la imagen, los elementos que componen a una imagen son llamados píxeles, cada uno de los cuales tiene un valor (propiedad del punto que se representa) y una posición especifica. El término píxel (Picture Element/Elemento de Imagen), se trata de la unidad mínima de información de una imagen, la cual aparece como un punto en la pantalla o en una hoja impresa; cada píxel se compone de tres registros de color: rojo, verde y azul; mediante la combinación de estos el píxel adopta un color en particular [28].

2. Preprocesamiento. Cuando se adquiere una imagen, por lo general tiene cierta cantidad de ruido debido ya sea a deficiencias en la iluminación, a la óptica de la cámara, al medio de transmisión, etc. Generalmente el ruido se manifiesta como píxeles aislados que toman un nivel de color diferente al de sus vecinos. Esta aparición de ruido hace necesario un preprocesamiento de la imagen con el fin de corregirlo; el objetivo del preprocesamiento es mejorar la calidad de la imagen adquirida y realzar las características de la misma. Algunas de las técnicas de preprocesamiento de imágenes más habituales son:

a) Conversión del color. Dependiendo de la aplicación del sistema de visión artificial la imagen se suele convertir a escala de grises, RGB, binaria o indexada; para resaltar sus características. b) Transformaciones aritmético-lógicas. Son las más usadas en un sistema de tratamiento de imágenes, ya que son las que se utilizan para leer y dar valores a los píxeles de las imágenes; las operaciones básicas son: -

Conjunción. Operación lógica AND entre los bits de dos imágenes; se usa para borrar píxeles en una imagen. - Disyunción. Operación lógica OR entre los bits de dos imágenes; se usa para añadir píxeles a una imagen. - Negación. Inversión de los bits que forman una imagen; se usa para obtener el negativo de una imagen. - Suma. Suma de los valores de los píxeles de dos imágenes. - Resta. Resta de los valores de los píxeles de dos imágenes. - Multiplicación. Multiplicación de los valores de los píxeles de una imagen por los de otra; se usa para añadir textura a una imagen. - División. División de los valores de los píxeles de una imagen entre los de otra. c) Transformaciones geométricas. Modifican el aspecto visual de la imagen transformando los valores de una imagen, tal y como podría observarse desde otro punto de vista; algunas de estas transformaciones son: -

Rotación. Giro de los píxeles de una imagen en torno a un origen. Traslación. Movimiento de los píxeles de una imagen. Escalado. Cambio del tamaño de una imagen.

d) Transformación del histograma. El histograma de una imagen es una gráfica en la que se representa la frecuencia de píxeles existentes para cada nivel de cuantificación determinado: habitualmente en el eje de abscisas se disponen los diferentes niveles de cuantificación de valores que pueden tomar los píxeles de la imagen, mientras el eje de las ordenadas refleja el número de píxeles existentes para cada nivel de cuantificación. La transformación del histograma se usa para: aclarar u oscurecer una imagen pero manteniendo la relación entre los valores de cada nivel, mejorar el contraste de la imagen, reducir al máximo el ruido, etc. 3. Segmentación Es el proceso que divide a una imagen en objetos que sean de nuestro interés con respecto a una o más características (como por ejemplo el brillo o el color) con el fin de facilitar un posterior análisis. La segmentación debe verse como un proceso que a partir de una imagen, produce otra en la que cada píxel tiene asociada una etiqueta distintiva del objeto al que pertenece. Así, una vez segmentada una imagen, se podría formar una lista de objetos consistentes en las agrupaciones de los píxeles que tengan la misma etiqueta. El proceso de segmentación de una imagen depende del problema que se desee resolver; por ejemplo, sobre una imagen de una página de texto se pueden segmentar las líneas de

texto (si el objetivo es localizar la estructura de los párrafos), o las palabras y los caracteres que las forman o los logotipos y membretes (si se desea clasificar el documento), etc. Por ello, dentro de una misma imagen pueden realizarse diversas segmentaciones. Los diferentes objetos que aparecen en una imagen pueden ser localizados atendiendo a aspectos como sus contornos o su textura; algunos de los tipos de segmentaciones más comunes se describen a continuación: 1. Segmentación basada en umbralización. La umbralización es un proceso que permite convertir una imagen de niveles de gris o de color en una imagen binaria, de tal forma que los objetos de interés se etiqueten con un valor distinto al de los píxeles del fondo. 2. Segmentación basada en detección de los contornos. Usa la información proporcionada por las fronteras de los objetos que aparecen en una imagen; al encontrar las fronteras de los objetos se pueden diferenciar estos del fondo. 3. Segmentación basada en propiedades locales de las regiones. Determinan zonas dentro de una imagen basándose en criterios de similaridad y proximidad entre los píxeles de la misma. Este tipo de segmentación es adecuada en imágenes con ruido y en donde los contornos son difíciles de localizar. 4. Segmentación basada en el color. Dentro de esta segmentación se suele convertir la imagen original a otro tipo de imagen requerida (RGB, indexada, intensidad de grises o binaria), de acuerdo a lo que se requiera, para así identificar diversas regiones dentro de una imagen de acuerdo a su color o realizar posteriormente algún otro tipo de segmentación. 5. Segmentación basada en la textura. En este enfoque se definen modelos de texturas para reconocer agrupaciones de estos dentro de la imagen; en la Figura 2.38 se muestra un ejemplo de imagen texturada y de cómo resultaría su segmentación. 6. Segmentación basada en el movimiento. El movimiento puede ser una potente herramienta para la segmentación de objetos animados sobre fondos estáticos; esta segmentación consiste en el estudio de la imagen resultante de la resta de dos imágenes consecutivas de una secuencia animada. Cada uno de estos tipos de segmentación suele resultar insuficiente para describir los objetos contenidos en una imagen, es por ello que suelen combinarse de acuerdo a las necesidades requeridas. 4. Representación y descripción Una vez que los objetos de interés contenidos en una imagen son aislados, el siguiente paso es la obtención de características convenientes para describir cada objeto. Las propiedades que deben tener estos descriptores son: -

Ser capaces de hacer una adecuada discriminación, deben proporcionar valores numéricos diferentes para cada objeto. Ser fiables, debe de haber cambios numéricos pequeños para objetos iguales. Se calculen en un tiempo aceptable, de manera que sean utilizables en problemas de tiempo real.

-

La descripción del objeto tiene que ser lo más completa posible y no presentar ambigüedades.

Entre los descriptores comúnmente usados en el procesamiento digital de imágenes tenemos: 1. Descriptor de color. El color es una característica importante cuando se requiere de la clasificación y descripción de objetos. 2. Descriptor de textura. Se basan en la vecindad, ya que la textura se define para regiones y no para píxeles individuales, es muy utilizado para el reconocimiento de objetos. 3. Descriptor de rasgos geométricos de un objeto. Son mediciones que pueden ser usadas para describir un objeto, se obtienen a partir de los píxeles que componen la región del objeto o los píxeles obtenidos del contorno del objeto; dentro de estos descriptores encontramos: -

Área. Es igual a la suma de todos los píxeles correspondientes al objeto dentro de la imagen. Perímetro. Se obtiene al sumar solamente los píxeles del contorno del objeto. Centroide. Es un punto geométrico que se refiere a la parte central del objeto. Factor de compacidad. Se define como el perímetro al cuadrado del objeto dividido por 4π veces su área; el factor de compacidad será cercano a 1 para objetos circulares, mayor a 1 para objetos cuadrados y para otro tipo de objetos se obtendrán valores más grandes. La importancia de este rasgo característico radica en que es invariante a traslaciones, rotaciones y cambios de escala.

5 Reconocimiento e interpretación La última etapa en el procesamiento digital de imágenes es la que comprende el reconocimiento e interpretación de forma; en esta etapa se asigna un significado, se etiqueta o asigna un nombre a los objetos contenidos en la imagen basándose en las características obtenidas en la etapa de descripción. MatLab El nombre de MatLab es una abreviatura de Matrix Laboratory (Laboratorio Matricial), desde su aparición en los años 70, ha ido introduciéndose con fuerza en el ámbito científico y universitario; en la actualidad es una de las principales herramientas para el cálculo matemático, análisis de datos, simulación y visualización de resultados. Una ventaja importante que presenta MatLab es el entrono gráfico de trabajo, la claridad en la presentación de resultados y la versatilidad que presenta para la creación de funciones. Todas las operaciones que realiza MatLab se basan en una estructura de datos matriciales; todas las funciones o comandos de MatLab se agrupan en las llamadas toolbox, y abarcan diferentes campos, como son el análisis y adquisición de datos, procesamiento de imágenes y de señales, análisis y diseño de sistemas de control, comunicaciones, simulaciones en tiempo real y también herramientas para finanzas, estadística, economía o lógica difusa.

MatLab puede almacenar información en variables y no se declaran con un tipo de dato específico como en otros lenguajes de programación. MatLab trabaja con números enteros, reales, cadenas de caracteres y esencialmente con vectores y matrices numéricas rectangulares; los vectores se introducen entre corchetes y los elementos están separados por espacios o comas, por ejemplo A = [1 2 3]; las matrices se introducen por filas, los elementos de una misma fila están separados por espacios o comas, mientras que las filas están separados por un punto y coma, por ejemplo A = [1 2 3; 4 5 6; 7 8 9]. En MatLab se emplean matrices porque con ellas se puede describir infinidad de cosas de una manera altamente flexible y matemáticamente eficiente. El toolbox de Procesamiento de Imágenes (Image Processing Toolbox) de MatLab proporciona un conjunto de funciones para el desarrollo de aplicaciones y nuevos algoritmos en el campo del procesamiento y análisis de imágenes; algunas de sus funciones más importantes son: -

Análisis de imágenes y estadística. Diseño de filtros y recuperación de imágenes. Mejora de imágenes. Operaciones morfológicas. Definición de mapas de colores y modificación gráfica. Operaciones geométricas. Transformación de imágenes.

MatLab almacena la mayoría de las imágenes como arreglos bidimensionales (matrices) en los cuales cada elemento de la matriz corresponde a la intensidad de un píxel de la imagen. Algunas imágenes, como las imágenes a color (RGB), requieren de un arreglo tridimensional, donde el primer plano en el espacio tridimensional representa la intensidad de rojo de los píxeles, el segundo plano representa la intensidad de verde de los píxeles y el tercer plano la intensidad de azul de los píxeles (Figura 2.44).

Figura 2.44 Representación de imagen RGB en MatLab [34].

El toolbox Image Acquisition resulta de suma utilidad para implementar algoritmos de visión o adquisición de imágenes en tiempo real utilizando dispositivos simples y de bajo costo tales como las webcams. Utilizando el comando imaqhwinfo de este toolbox se obtiene la información del adaptador de video instalado, versión de Matlab, Toolbox (nombre y versión).

Dentro del entorno de trabajo de MatLab se pueden crear scripts y funciones, programadas por el propio usuario, a través de los ficheros “.m”. Un scripts es una secuencia de comandos que se pueden ejecutar cuando sea necesario y que se pueden guardar en un archivo para no tener que escribirlos de nuevo. Las funciones son un bloque de código estructurado que se ejecutan cuando son invocadas dentro de un script y permiten añadir a MatLab funciones adicionales expandiendo así su capacidad. Arduino Arduino es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar (Figura 2.47). Se creó para artistas, diseñadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos. Arduino puede tomar información del entorno a través de sus pines de entrada de toda una gama de sensores y puede afectar aquello que le rodea controlando luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programación Arduino y el entorno de desarrollo Arduino; los proyectos hechos con Arduino pueden ejecutarse sin necesidad de estar conectado a un ordenador.

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF