60
Robótica y CIM Visión Artificial 07

M083_UD07_01

Embed Size (px)

Citation preview

Page 1: M083_UD07_01

Robótica y CIM

Visión Artificial

07

Page 2: M083_UD07_01
Page 3: M083_UD07_01

Robótica y CIM

Visión Artificial 1

07

• Índice

• OBJETIVOS.......................................................................................................... 3 • INTRODUCCIÓN .................................................................................................. 4

7.1. ¿Qué es la visión artificial?........................................................................ 5 7.2. Componentes de un sistema de Visión Artificial ..................................... 6 7.3. Captura de la Imágen.................................................................................. 8 7.4. Digitalización de la Imagen ...................................................................... 11

7.4.1. Píxel, Resolución y Profundidad de la Imagen.................................... 13 7.5. Filtrado de la Imagen ................................................................................ 20 7.6. Histograma de una Imagen ...................................................................... 23 7.7. Segmentación de la Imagen..................................................................... 25

7.7.1. Búsqueda de contornos en la imagen................................................. 25 7.7.2. Segmentación mediante el uso del histograma .................................. 26

7.8. Interpretación de la Imagen ..................................................................... 28 7.9. Aprendizaje de Elementos ....................................................................... 35 7.10. Reconocimiento de elementos ................................................................ 37 7.11. Programación del sistema ....................................................................... 40

7.11.1. Programación para configurar el sistema............................................ 41 7.11.2. Programación para analizar las imágenes.......................................... 42 7.11.3. Ejemplo de Programación................................................................... 46

7.12. Campos de Actuación de la Vision Artificial .......................................... 47 7.12.1. Ejemplos de Proyectos Realizados..................................................... 47 7.12.2. Servicios prestados por la Vision ........................................................ 51

7.13. Ver sin Ojos ............................................................................................... 54 7.13.1. Volver a ver ......................................................................................... 54

• RESUMEN .......................................................................................................... 57

Page 4: M083_UD07_01
Page 5: M083_UD07_01

Robótica y CIM

Visión Artificial 3

07

• Objetivos

• Comprender el concepto de “sistema de visión artificial” y sus posibles aplicaciones.

• Conocer los componentes que se requieren para poder interpretar imágenes automáticamente, así como la función y tipos de cada uno de ellos.

• Distinguir entre los diferentes pasos que forman el proceso de interpretación de la imagen.

• Familiarizarse con los términos que se utilizan en el procesamiento automatizado de imágenes.

• Conocer las diferentes formas que existen para poder retocar una imagen y conseguir adecuarla a nuestras necesidades.

• Comprender las técnicas que se llevan a cabo para la correcta interpretación de una imagen sin intervención humana.

• Adquirir los conocimientos necesarios para poder configurar adecuadamente un sistema de visión artificial.

• Poder aplicar las instrucciones de visión que nos ofrecen los sistemas de visión artificial con fines de posicionamiento o manipulación de materiales por parte de un robot.

Page 6: M083_UD07_01

Formación Abierta

Visión Artificial 4

• Introducción

Las tres cuartas partes de la información que procesa un ser humano son de tipo visual. Nadie duda del hecho de que un invidente sea capaz de desenvolverse perfectamente en el mundo que nos rodea, pero también está fuera de toda duda que una persona que vea tiene una gran ventaja sobre otra que no. De hecho, las personas que no poseen el sentido de la vista dependen para muchas de las tareas cotidianas de las personas que sí tienen esta capacidad.

Así pues, no es de extrañar que se intente dotar a las máquinas de tan preciado sentido, para incrementar de esta forma su capacidad de trabajo y su versatilidad.

El hecho de disponer de robots que sean capaces de ver permitirá un mayor control sobre las tareas que realice el robot, pudiendo detectar y corregir errores que se den en el posicionamiento de los materiales con los que trabaje y realizar controles de calidad de las piezas que se produzcan, entre otras muchas aplicaciones.

En esta unidad didáctica, aprenderemos los componentes de un sistema de visión artificial, sus principios básicos de funcionamiento, las aplicaciones que se le pueden dar en la industria y la programación de un sistema de visión aplicado a un robot para incrementar sus prestaciones.

Page 7: M083_UD07_01

Robótica y CIM

Visión Artificial 5

07

7.1. ¿Qué es la visión artificial? Podemos oír en algunos ambientes el término “visión artificial” referido a operaciones relacionadas con el mundo de la industria, la investigación e incluso la medicina. Cada vez es más amplio el abanico de aplicaciones que ofrecen los sistemas de visión artificial, pero...

¿Qué se entiende por “visión artificial”?.

La visión artificial, denominada muchas veces “visión de máquina”, implica que se dispone de un sistema automatizado que es capaz de ver el mundo que le rodea.

Este sistema automatizado será capaz de captar una imagen del mundo exterior y actuar de distinta forma en función de lo que esté viendo.

En este punto del capítulo, se podría pensar que una cámara de fotos, o una cámara de video ya son sistemas de visión artificial, porque son capaces de “ver” el mundo exterior, e incluso de plasmarlo en una película. Sin embargo, sería un error el pensar en uno de estos dispositivos como en un sistema de visión artificial.

Una cámara de fotos, o una cámara de video ya son sistemas de visión artificial, porque son capaces de “ver” el mundo exterior.

Como hemos comentado, el sistema será capaz de actuar de una u otra manera dependiendo de lo que esté viendo en cada momento.

El hecho de que el sistema sea capaz de actuar en base a lo que está viendo, implica que no solamente va a visualizar la escena que suceda delante de él sino que va a analizar e interpretar la escena y va a tomar una determinada decisión (que, por supuesto, habremos programado previamente).

De este modo, podremos utilizar sistemas de visión para distinguir entre distintos objetos, para poder detectar errores en materiales mediante inspecciones visuales, para posicionar el brazo del robot y para muchas otras tareas que iremos descubriendo a lo largo de esta unidad didáctica.

Page 8: M083_UD07_01

Formación Abierta

Visión Artificial 6

7.2. Componentes de un sistema de Visión Artificial

En un sistema de visión artificial vamos a encontrar siempre los siguientes elementos:

• Dispositivo de captura de la imagen (cámara).

• Dispositivo para el procesado de la imagen (controlador).

• Dispositivo de visualización de la imagen procesada (monitor).

• Dispositivo de iluminación de la escena.

• Interfases (conexiones) entre los anteriores componentes.

El primer paso que se da cuando se va a trabajar con un sistema de visión artificial es preparar el entorno con las condiciones de iluminación adecuadas para la función que queramos desarrollar.

El primer paso, preparar el entorno con las condiciones de iluminación adecuadas

Aunque a simple vista no parezca demasiado importante, más adelante, en este capítulo, veremos que cualquier cambio en el entorno puede afectar mucho a la hora de trabajar con estos sistemas.

Una vez tenemos la escena correctamente iluminada, el siguiente paso consistirá en capturar la imagen en sí. Esto se lleva a cabo por una cámara de video que, como veremos después, podrá ser de distintos tipos.

El segundo paso consistirá en capturar la imagen en sí. Esto se lleva a cabo por una cámara de video que, como veremos después, podrá ser de distintos tipos, posteriormente se procesara la imagen.

La imagen que la cámara ha captado, tendrá que ser procesada para poder determinar las tareas que llevará a cabo el sistema. Todas las operaciones que se le realicen a la imagen las efectúa el controlador del sistema, que en muchas ocasiones será un ordenador.

Page 9: M083_UD07_01

Robótica y CIM

Visión Artificial 7

07

Después de procesada la imagen, se visualizará en un monitor para que se puedan observar los resultados obtenidos.

Para que el controlador sea capaz de tratar la imagen, será necesario que exista un medio de conexión entre la cámara que capta la imagen y el controlador en sí, y lo mismo sucederá con el monitor a la hora de visualizar la imagen final.

Al medio de conexión entre dos elementos del sistema se le denomina “interfaz” o “interfase”. Por interfaz entenderemos cualquier dispositivo que sirva como intermediario para conseguir que dos sistemas se entiendan entre ellos.

Por interfaz entenderemos cualquier dispositivo que sirva como intermediario para conseguir que dos sistemas se entiendan entre ellos.

Llegados a este punto, ya conocemos los componentes básicos de un sistema de visión artificial y tenemos una idea muy general acerca de las tareas que realiza cada uno de ellos. A lo largo de esta unidad iremos aprendiendo más acerca de estos elementos e iremos profundizando en todos los pasos del proceso de la imagen.

Page 10: M083_UD07_01

Formación Abierta

Visión Artificial 8

7.3. Captura de la Imágen Hemos comentado en el apartado anterior que, una vez iluminada correctamente la escena, el primer paso para trabajar con una imagen determinada es el de capturar la escena del mundo exterior mediante un dispositivo de formación de imágenes (una cámara de vídeo).

Con respecto a las cámaras de vídeo, se podría hablar mucho acerca de su funcionamiento y sus tipos. Sin embargo, para el tema que a nosotros nos ocupa, es indiferente el tipo de cámara que utilicemos y la forma de trabajo que tenga, siendo relevantes únicamente ciertas características comunes a todas las cámaras, que pasaremos a explicar a continuación.

En este punto vamos a explicar brevemente el proceso que se sigue para la formación de las imágenes en la cámara de video.

Este apartado entraría directamente en el campo de la electrónica. Simplemente se va a tratar la formación de imágenes a nivel introductorio y muy general, para poder hacernos una idea del proceso de captación de la imagen en un sistema de visión.

De cualquier forma, para el funcionamiento del sistema es indiferente la forma en que la cámara forme sus imágenes, ya que lo que a nosotros nos interesará será la imagen una vez formada y enviada al controlador del sistema.

En cuanto a las cámaras que se utilizan para los sistemas de visión artificial, se distingue generalmente entre las denominadas cámaras “vidicon” y las cámaras de “estado sólido”.

A rasgos generales, la diferencia entre una cámara vidicon y otra de estado sólido es que la primera de ellas dispone de una membrana en forma de malla donde se depositan cargas eléctricas que formarán la imagen, mientras que las de estado sólido cuentan con un sensor (denominado CCD) que viene a cumplir la misma función que la membrana de las anteriores.

Tanto la membrana de las cámaras vidicon como el sensor CCD de las de estado sólido son fotosensibles, lo que significa que reaccionan en función de la luz que les llegue. Conforme reciben una determinada intensidad de luz procedente del exterior, se genera cierta resistencia eléctrica, que será mayor o menor dependiendo de la luz que llegue del exterior.

Page 11: M083_UD07_01

Robótica y CIM

Visión Artificial 9

07

Tanto la membrana de las cámaras vidicon como el sensor CCD de las de estado sólido son fotosensibles, lo que significa que reaccionan en función de la luz que les llegue. Conforme reciben una determinada intensidad de luz procedente del exterior, se genera cierta resistencia eléctrica, que será mayor o menor dependiendo de la luz que llegue del exterior.

Esta señal eléctrica se va generando para cada punto de la imagen, empezando por la parte superior izquierda de la imagen y siguiendo después hacia la derecha y hacia abajo. Una vez llega la señal eléctrica al punto inferior derecho la imagen, ésta ya está formada y preparada para grabarse o visualizarse.

Todo este proceso de recogida de las señales eléctricas para cada imagen se lleva a cabo varias veces por segundo (normalmente 20 o 24 veces), consiguiéndose así el efecto de movimiento de las imágenes.

El otro punto que va a ser importante de cara al tratamiento posterior de las imágenes es el que se refiere a los ajustes de brillo y contraste que realicemos en la cámara.

Un ajuste de brillo alto va a producir una imagen en la que habrá una gran luminosidad, mientras que un ajuste del contraste va a provocar una mayor diferenciación entre los distintos colores de una imagen. Estos controles son exactamente iguales que los que se pueden encontrar en cualquier televisor.

Figura 7.1. Una misma imagen con distintos contrastes.

Como podrá imaginar, la imagen obtenida será distinta dependiendo de los niveles de brillo y contraste que se ajusten en la cámara.

Page 12: M083_UD07_01

Formación Abierta

Visión Artificial 10

Aunque a simple vista la diferencia entre las imágenes no sea muy grande, a la hora de tratarlas automáticamente incluso las diferencias más pequeñas pueden provocar errores en el sistema, como veremos más adelante.

Esta breve introducción es todo lo que nos interesa acerca del funcionamiento de la cámara de video que va a captar la imagen procedente del exterior.

Page 13: M083_UD07_01

Robótica y CIM

Visión Artificial 11

07

7.4. Digitalización de la Imagen Ya sabemos que una vez formada la imagen en la cámara de video, el paso siguiente que efectúa un sistema de visión artificial es el de enviar esta imagen al controlador del sistema.

En la mayoría de los sistemas de visión artificial, el controlador es un ordenador con un programa suministrado por el fabricante del sistema.

En otros casos, el controlador es un elemento independiente, como sucedía con los robots, al que no se le puede dar ninguna otra función aparte de la que cumple como procesador de las imágenes captadas por la cámara.

Sea como sea, la imagen que se ha generado en la cámara tendrá que entrar de alguna forma al controlador, para que éste pueda procesarla.

Sin embargo, la cámara y el controlador del sistema no funcionan de la misma manera; por decirlo de algún modo, no hablan el mismo lenguaje. Es por este motivo que se hace necesario el uso de un elemento intermedio capaz de traducir la señal procedente de la cámara para que el controlador pueda procesar las imágenes.

Al dispositivo que se ocupa de mediar entre dos elementos para realizar una conversión de formatos lo hemos denominado anteriormente “interfaz” o “interfase”.

No obstante, el término interfaz se utiliza para hacer referencia a cualquier dispositivo de conversión de formatos; no se usa solamente en este caso. Por lo tanto, si no especificamos nada más, no comprenderemos realmente la función que lleva a cabo el interfaz entre la cámara y el controlador. En concreto, en el caso de los sistemas de visión artificial, este conversor es del tipo Analógico/Digital.

Cuando hablábamos del controlador del robot y de las señales que era capaz de procesar, introducíamos los conceptos de señal analógica y señal digital.

(Si no recuerda estos dos conceptos, éste sería un buen momento para repasar la unidad didáctica referente al controlador del robot).

Page 14: M083_UD07_01

Formación Abierta

Visión Artificial 12

Si nos paramos a pensarlo, las señales que la cámara capte desde el exterior serán señales analógicas, ya que no podemos cuantificar en intervalos discretos los distintos valores que estamos viendo.

El ejemplo más claro de lo que estamos explicando lo encontramos en la vida cotidiana.

Es muy normal el hecho de ir a comprar pintura para repintar algún objeto y encontrarnos saturados por la gran cantidad de tonalidades de cada uno de los colores que podemos encontrar. Es tremendamente difícil acertar con el color exacto que estamos buscando. De hecho, las empresas que se dedican profesionalmente a temas relacionados con el color (por ejemplo las imprentas) manejan catálogos con miles de referencias distintas. Y seguro que mezclando colores se pueden sacar más y más tonos distintos.

Así pues, vemos que las imágenes que se manifiestan en el mundo que nos rodea tienen infinitos tonos de color, no se muestran a intervalos fijos. Es por esto que una imagen se puede considerar, de entrada, una señal de tipo analógico.

Encontramos en este punto un problema, ya que el controlador del sistema de visión, sea un ordenador o un controlador compacto, va a tratar solamente con señales de tipo digital.

Éste es precisamente el motivo de que sea necesario utilizar un conversor entre la cámara de vídeo y el controlador de visión. Este dispositivo conversor puede ser o bien un conversor externo que se conectará tanto a la cámara como al controlador, o bien un conversor interno que forma parte del controlador del sistema y que se conecte directamente a la cámara. En el caso de que el controlador lo constituya un ordenador, es muy común que el conversor sea una tarjeta que hay que introducir en el ordenador como si se tratase de cualquier otra tarjeta susceptible de conexión a un sistema informático (memoria, control de discos…).

Al hecho de tomar la imagen analógica captada por la cámara y convertirla al formato digital que necesita el controlador se le denomina “digitalizar” la imagen. Por extensión, al conversor analógico/digital que lleva a cabo el proceso de digitalización se le suele llamar “digitalizador”.

Ya conocemos cuál es el dispositivo que nos permite digitalizar la imagen.

Page 15: M083_UD07_01

Robótica y CIM

Visión Artificial 13

07

A continuación, explicaremos en más detalle el proceso que se lleva a cabo a la hora de enviar la imagen de la cámara hacia el controlador del sistema de visión.

7.4.1. Píxel, Resolución y Profundidad de la Imagen

Hemos llegado a la conclusión de que las imágenes procedentes del exterior no le sirven directamente al sistema de visión porque son analógicas y el controlador solamente puede trabajar con señales digitales.

Hasta aquí todo parece muy razonable; pero si profundizamos un poco más, vemos que es imposible que por el hecho de convertir tan sólo una señal analógica a un valor digital tengamos la descripción de toda una imagen.

Así pues, será necesario que se realice algún tipo de proceso especial para que la imagen pueda traducirse y ser interpretada posteriormente por nuestro sistema.

Seguro que usted ha visto alguna vez un acontecimiento (por ejemplo unas olimpiadas) en las que la gente que está en las gradas sostiene unas cartulinas de distintos colores para formar las banderas de los diferentes países.

Supongamos que una cartulina sólo puede ser de un color, nunca puede haber una cartulina con dos colores distintos en ella. Además, vamos a imaginar que tenemos cartulinas de diez colores distintos.

Si queremos representar una bandera que tenga tres franjas de color, nos bastará con tener a tres filas de personas, cada una de las filas con cartulinas de un color distinto. Pero si queremos representar una bandera que contenga en su interior un escudo, serán necesarias muchas más personas.

Vemos pues, que a medida que aumenta la cantidad de personas, aumenta el nivel de detalle que podemos obtener en las composiciones que representen con sus cartulinas. Además, si aumentásemos la cantidad de colores disponibles, podríamos representar imágenes cada vez más complejas. No obstante, a mayor número de personas, más difícil será la tarea de controlarlas a todas para que vayan cambiando coordinadamente sus cartulinas para mostrar las imágenes.

Se ve en este ejemplo cómo podemos utilizar un número limitado de colores (ya estamos hablando de una magnitud digital) para representar distintas imágenes, simplemente dividiendo la imagen en fragmentos lo suficientemente pequeños.

Page 16: M083_UD07_01

Formación Abierta

Visión Artificial 14

Esta filosofía de trabajo es la misma que utiliza un televisor para mostrar las imágenes en la pantalla. Si nos acercamos mucho a la pantalla de un televisor, podemos ver una especie de rejilla en su superficie. Cada uno de los huecos que hay en esta rejilla puede tener un solo color en un momento determinado. El conjunto de cada uno de estos puntos de color individuales forma la imagen que vemos en la pantalla.

A cada uno de estos puntos en los que se divide la imagen y que sólo puede ser de un color en un instante determinado, se le denomina “píxel”. El término píxel viene de la expresión “picture element”, que en inglés significa “elemento de imagen”. Así pues, podemos decir que un píxel es la unidad mínima en la que podemos dividir una imagen.

Así pues, podemos decir que un píxel es la unidad mínima en la que podemos dividir una imagen.

Figura 7.2. Rejilla de píxeles para digitalizar.

En el ejemplo de las cartulinas, veíamos como a mayor número de personas, mayor nivel de detalle podíamos llegar a representar. El nivel de detalle que se puede llegar a representar en un dispositivo en función de los píxeles de que disponga se conoce con el nombre de “resolución”.

El nivel de detalle que se puede llegar a representar en un dispositivo en función de los píxeles de que disponga se conoce con el nombre de “resolución”

Page 17: M083_UD07_01

Robótica y CIM

Visión Artificial 15

07

Los píxeles que es capaz de mostrar un dispositivo se encuentran situados siempre en forma de matriz, es decir, por filas y columnas de tal forma que todas las filas cuentan con el mismo número de píxeles. La resolución se mide en el número de filas multiplicado por el número de columnas que tenga la matriz de píxeles del dispositivo en cuestión. Si multiplicamos el número de filas por la cantidad de píxeles en cada una de ellas obtenemos el número total de puntos que se utilizan para representar una imagen.

La resolución se mide en el número de filas multiplicado por el número de columnas que tenga la matriz de píxeles del dispositivo en cuestión. Si multiplicamos el número de filas por la cantidad de píxeles en cada una de ellas obtenemos el número total de puntos que se utilizan para representar una imagen.

Para que nos hagamos una idea, la televisión europea convencional utiliza una matriz de píxeles en la que hay 625 filas.

Llegados a este punto podemos ver que un dispositivo que tuviese 100 líneas y 200 columnas por cada línea podría representar un total de 20000 píxeles. Así mismo un dispositivo que dispusiera de 50 líneas por 400 columnas tendría también 20000 píxeles en total. Sin embargo, las imágenes que podríamos representar en uno y en otro serían diferentes.

Es por esto por lo que cuando hablamos de resolución de un dispositivo no decimos el número de píxeles totales con los que puede trabajar, sino que indicamos el número de filas y el número de columnas por fila. De esta forma, no hay lugar a equivocaciones.

Aunque en campos como en la televisión o la informática se habla de resoluciones superiores a 1000 x 1000 píxeles, en el terreno de la visión artificial es común disponer de resoluciones mucho más bajas, por ejemplo 256 x 256 píxeles.

Estas resoluciones vienen determinadas por el hecho de que a mayor resolución, mayor será el número de conversiones a realizar y el número de cálculos después, cuando se trate la imagen. Esto conlleva que, a mayor resolución, mayor tiempo de proceso se requerirá para trabajar con una imagen.

Los sistemas de visión artificial en entornos industriales deben ser lo más rápidos y económicos posibles, por lo que se tiende a utilizar resoluciones más bajas que las usadas en otros ámbitos al no ser necesario, por lo general, tanto nivel de detalle.

Page 18: M083_UD07_01

Formación Abierta

Visión Artificial 16

Figura 7.3. Una misma imagen a distintas resoluciones.

Ahora ya estamos en condiciones de entender cómo se las arregla el conversor analógico/digital para convertir la señal procedente de la cámara en información digital que el controlador pueda comprender.

Al ser la señal procedente de la cámara una señal continua en el tiempo, existen una serie de señales de sincronización que indican el principio de cada imagen (cuando se trasmite la información correspondiente al píxel superior izquierdo de la imagen). A partir de aquí el conversor va dividiendo la señal procedente de la cámara a intervalos fijos (a esto se le denomina “muestreo” de la imagen) que estarán establecidos en función de la resolución con la que trabaje el controlador.

Para cada una de estas muestras de la imagen que se van tomando, el conversor realiza la transformación de nivel de señal analógica a valor discreto digital y se lo envía al controlador. En este momento, el controlador va almacenando en una memoria el valor digital correspondiente a cada uno de los píxeles de la imagen hasta que se reciba la imagen completa (el píxel inferior derecho de la imagen).

De esta forma, el controlador va reconstruyendo en su memoria una representación digital de la imagen que tenía la cámara en un momento dado.

A la hora de trabajar con una imagen, otro punto importante es la cantidad de colores con los que se trabaje. Si trabajamos con una imagen que sea exclusivamente en blanco y negro (sin grises intermedios), cada uno de los píxeles que conforman la imagen sólo puede tener dos valores posibles.

Hablando en términos del controlador del sistema, una vez digitalizada la imagen, cada uno de los píxeles que la componen puede tener un valor 1 o 0, dependiendo si ese punto en concreto es de color blanco o negro.

Si disponemos de un controlador capaz de interpretar hasta cuatro colores distintos, cada uno de los valores desde uno hasta cuatro representará un color o tonalidad distinta (por ejemplo, el 0 sería negro, el 1 gris oscuro, el 2 gris claro y el 3 blanco).

Así pues, los valores almacenados en la memoria del controlador oscilarán entre 0 y 3 dependiendo del resultado obtenido mediante el conversor analógico/digital.

Page 19: M083_UD07_01

Robótica y CIM

Visión Artificial 17

07

Debemos tener en cuenta que, al trabajar los microprocesadores en el sistema binario, solamente podemos trabajar con elementos de la memoria que en un momento dado pueden contener un valor uno o un valor cero. A cada uno de estos elementos de la memoria se le denomina un “bit”.

De esta forma, con un bit sólo podemos representar dos valores. Para representar valores más altos, utilizaremos varios bits e iremos asignando los distintos valores mediante la adecuada combinación de unos y ceros. Con dos bits podremos representar cuatro valores, con tres bits podremos representar ocho, y así progresivamente, siempre según las potencias de dos.

Por ejemplo, con cuatro bits, podemos formar hasta dieciséis combinaciones distintas de unos y ceros, como se puede observar en la siguiente tabla:

Combinación de unos y ceros Valor

0000 0

0001 1

0010 2

0011 3

0100 4

0101 5

0110 6

0111 7

1000 8

1001 9

1010 10

1011 11

1100 12

1101 13

1110 14

1111 15

A la cantidad de colores que es capaz de representar un sistema se le conoce con el nombre de “profundidad” de la imagen. La profundidad se mide siempre mediante potencias de dos, de tal modo que una imagen de profundidad 1 puede representar 21 colores, es decir, 2 colores distintos. A continuación se muestran las profundidades de color posibles:

Page 20: M083_UD07_01

Formación Abierta

Visión Artificial 18

Profundidad Operación Total Colores

1 21 2

2 22 4

3 23 8

4 24 16

5 25 32

6 26 64

7 27 128

8 28 256

Y así sucesivamente para cada potencia de dos. Lo normal es trabajar con profundidades de 1 (2 colores), 4 (16 colores) u 8 (256 colores).

Dependiendo de la profundidad de la imagen, necesitaremos más o menos capacidad en la memoria del controlador para almacenar una imagen determinada.

En una imagen que tenga una profundidad de valor uno, necesitaremos un solo bit para cada píxel de la escena. Si la imagen tiene profundidad de valor dos, serán necesarios dos bits para cada píxel y así sucesivamente.

Como se podrá suponer, a mayor profundidad de imagen, mayor complejidad y por lo tanto mayor tiempo de proceso se requerirá para cada imagen a tratar.

Para conocer la cantidad de memoria necesaria para almacenar una determinada imagen en la memoria del controlador utilizaremos el siguiente cálculo:

memoria = filas x columnas x profundidad

Donde multiplicamos el número de filas que tenga la resolución en la que trabajamos por el número de puntos por cada fila (es decir, las columnas). De esta forma obtenemos el número total de puntos que tiene una imagen en una resolución dada.

Page 21: M083_UD07_01

Robótica y CIM

Visión Artificial 19

07

A continuación, multiplicamos el resultado por la profundidad de la imagen, dependiendo del número de colores con que hayamos realizado la digitalización. Al multiplicar el total de puntos por la cantidad de bits necesarios para cada uno de ellos (profundidad), obtenemos la cantidad de memoria total (en bits) que será necesaria para almacenar la imagen completa.

Por ejemplo, para una imagen con resolución de 250 x 100 puntos y que admita 16 colores, necesitaremos la siguiente cantidad de memoria:

250 x 100 x 4 (profundidad) = 25000 (puntos totales) x 4 = 100000 bits

Antes de pasar al siguiente apartado, conviene hacer una aclaración sobre el tema de los colores. Cuando a lo largo de todo este punto hemos hablado de colores, nos referimos tanto a colores como a tonalidades de grises.

Es por esto que muchas veces no se habla tan solo de sistemas de visión que soportan 16 o 256 colores, sino que es común verlos muchas veces como sistemas que soportan 16 o 256 tonalidades de gris.

En estos sistemas, las imágenes se muestran como en los antiguos televisores de blanco y negro, donde las imágenes van desde el negro hasta el blanco, pasando por varios tonos de gris intermedios.

Figura 7.4. Escala de grises.

Genéricamente, cuando un sistema no trabaja con colores, sino con tonalidades de gris, se suele hablar de sistemas que trabajan con “escala de grises”, siendo esto lo más habitual en las aplicaciones de la visión artificial, ya que el color no es realmente necesario en la inmensa mayoría de los casos.

Page 22: M083_UD07_01

Formación Abierta

Visión Artificial 20

7.5. Filtrado de la Imagen En muchas ocasiones, la imagen obtenida por la cámara no es la más adecuada para trabajar con un sistema de visión artificial. Aunque a simple vista las imágenes parezcan buenas y sin lugar a confusión, realmente pueden llevar a muchos errores si se intentan procesar tal cual llegan desde la cámara.

Supongamos una imagen en la que aparezcan dos llaves. Si las llaves están separadas, el sistema va a funcionar sin ningún problema. Sin embargo, si las llaves están situadas de forma que se toquen en algún punto, el sistema no funcionará correctamente, ya que será incapaz de determinar que hay dos llaves distintas, tomando las dos llaves como si fueran un solo objeto.

Figura 7.5. Imagen que produciría una interpretación errónea.

Llegados a este punto podemos pensar que el sistema de visión sería muy tonto si se confundiese y pensase que sólo hay un objeto en lugar de dos. Pero imaginemos que realmente las dos llaves están unidas y que solamente se trata de un objeto. En ese caso, nosotros llevados por nuestro sentido común pensaríamos que hay dos llaves cuando en realidad lo que había era un único objeto con la forma de dos llaves unidas. Así pues, incluso nuestro avanzado sistema de visión humano es capaz de confundirse e interpretar erróneamente las imágenes que capta.

Es por esto por lo que se hace necesario el tratar la imagen obtenida por la cámara antes de intentar analizarla y trabajar con ella.

Así pues, el filtrado de la imagen va a consistir en una serie de operaciones (filtros) que se van a realizar sobre la señal digitalizada, dando lugar a un nuevo modelo digital de la imagen más adecuado para su tratamiento automático por parte del sistema de visión.

Page 23: M083_UD07_01

Robótica y CIM

Visión Artificial 21

07

Por lo general, existen varios filtros distintos para cada sistema de visión artificial, y se utilizan unos u otros dependiendo del uso que vayamos a dar al sistema. Existe un amplio abanico de filtros para tratar imágenes, habiendo muchos que se programan a medida para necesidades concretas.

Dentro de los distintos filtros que podemos encontrar existen muchos destinados a eliminar impurezas que puedan aparecer en la imagen. Para eliminar estas interferencias o ruidos de la imagen, existen muchos métodos distintos.

Por ejemplo, un caso muy sencillo consiste en comparar cada uno de los píxeles de la imagen con todos los píxeles que le rodean. Si existe una gran diferencia entre este píxel y los circundantes, se le da al píxel el valor medio que tuviesen los píxeles de su entorno. De esta forma, se consiguen eliminar puntos de la imagen aislados consiguiéndose representaciones mucho más uniformes de la escena.

Otro tipo de filtrado que se suele utilizar es el destinado a acentuar los bordes de los objetos.

Cuando no existe un gran contraste entre los objetos de la escena puede ser conveniente tratar la imagen con un filtro que se dedique a buscar los bordes de todos los elementos que encuentre en la escena captada.

Otros filtros que se pueden utilizar para mejorar la imagen son los de erosión y dilatación. Un filtro de erosión se ocupa de buscar todos los contornos de las figuras que aparezcan en la imagen y estrecharlos.

De esta forma, si tenemos objetos que se tocan en un punto, como sucedía en el ejemplo de las llaves, al estrechar los contornos en la imagen se van a ver dos objetos diferentes.

Los filtros de dilatación tienen el efecto contrario. Un filtro de dilatación busca los contornos de las figuras que aparezcan en la imagen y los ensancha, de tal forma que las figuras tienen la misma forma, pero ocupan una zona mayor.

Esto puede ser útil cuando tengamos objetos que por efecto de los reflejos de la luz, o por tener zonas muy estrechas, den la impresión de que hay dos objetos muy cercanos en lugar de solo uno. Si aplicamos un filtro de dilatación, al ensancharse los contornos encontrados, las dos zonas separadas se juntarían, interpretándose correctamente como un solo objeto.

Page 24: M083_UD07_01

Formación Abierta

Visión Artificial 22

Figura 7.6. Imagen después de pasar un filtro de erosión.

En estos ejemplos, hemos visto como hay filtros que realizan acciones contrarias entre sí. Es por esto que antes de utilizar un determinado filtro en un sistema automático de visión es muy importante tener en cuenta el tipo de utilidad que va a tener y el tipo de objetos con los que va a trabajar.

También sería interesante apuntar que un mismo filtro se puede aplicar sobre una misma imagen y producir resultados distintos. ¿Cómo es esto posible? La respuesta es muy sencilla; un filtro se puede aplicar con distinta intensidad, dependiendo del problema que queramos resolver y de los resultados que nos interese obtener.

De esta forma, podemos marcar valores límite a partir de los que un filtro va a actuar o no, por ejemplo a la hora de eliminar ruidos de una imagen. Podríamos aplicar un filtro para limpiar una imagen que elimine cualquier píxel aislado que encuentre en la imagen, pero también podríamos aplicarlo haciendo que eliminase cualquier agrupación de píxeles menor de 4x4 puntos por ejemplo. A estos límites que se le aplican a un filtro se les suele denominar “umbrales” o “pasos” del filtro.

De esta forma, el uso de unos u otros filtros dependerá en cada sistema de visión de la aplicación concreta que se desee cubrir, no existiendo ningún filtro general que se aplique en todas las ocasiones.

Page 25: M083_UD07_01

Robótica y CIM

Visión Artificial 23

07

7.6. Histograma de una Imagen El histograma de una imagen es una gráfica que nos va a permitir en muchos casos reducir el tiempo necesario para el análisis de la imagen en cuestión.

Un histograma es una gráfica de dos dimensiones en la que el eje de abcisas (horizontal) representa cada una de las tonalidades posibles en nuestro sistema, mientras que el eje de ordenadas (vertical) representa la cantidad de puntos de cada tonalidad que aparecen en la imagen.

Un histograma es una gráfica de dos dimensiones en la que el eje de abcisas (horizontal) representa cada una de las tonalidades posibles en nuestro sistema, mientras que el eje de ordenadas (vertical) representa la cantidad de puntos de cada tonalidad que aparecen en la imagen.

De esta forma, el punto 0 del eje de abcisas representará a la tonalidad más oscura (típicamente el negro), mientras que el punto más a la derecha (por lo general 255) del eje de abcisas representará la tonalidad más clara (típicamente el color blanco). Todas las posibles tonalidades que se pueden obtener a la hora de digitalizar una imagen en nuestro sistema se sitúan entre estos dos puntos del eje de abcisas.

En el eje de ordenadas se va a ir representando, para cada una de las diferentes tonalidades que se den en la imagen digitalizada, la cantidad de puntos de la imagen que tienen esa tonalidad.

Dicho esto, podemos deducir que para una determinada imagen obtendremos un único histograma, que reflejará los niveles de cada uno de los tonos de la imagen. Sin embargo, un histograma puede pertenecer a más de una imagen, ya que podemos encontrar dos imágenes que tengan la misma cantidad de puntos para cada tonalidad diferente.

Por ejemplo, si tenemos una imagen totalmente blanca con un punto negro en la esquina superior derecha, obtendremos el mismo histograma que si tenemos una imagen blanca con un punto negro en la esquina inferior izquierda, o en cualquier otro lugar de la imagen.

Para cualquiera de estos casos, obtendremos un histograma con un valor muy alto para el color blanco, y sólo un punto en el valor negro.

Page 26: M083_UD07_01

Formación Abierta

Visión Artificial 24

0

50

100

150

200

250

300

1 51 101 151 201 251

Figura 7.7. Histograma de una imagen.

Además, el histograma nos proporciona otra función muy importante. Si nos atenemos a lo aprendido hasta el momento, para analizar una imagen se tienen que ir analizando cada uno de sus puntos, uno por uno. Si tenemos en cuenta que las resoluciones más bajas que utilizaremos están alrededor de los 100x100 puntos, obtenemos un total de 10000 valores a analizar. Sin embargo, si nos atenemos al histograma de una imagen, tan solo necesitamos analizar 256 valores (suponiendo que el sistema soporte 256 colores).

Por lo tanto, el análisis de una imagen puede ser mucho más rápido si nos limitamos a estudiar su histograma que si nos detenemos a analizar independientemente cada uno de sus puntos.

De cualquier modo, cuando hablemos de aprendizaje y reconocimiento de objetos por parte del sistema, veremos como no siempre es posible utilizar solamente el histograma para analizar los elementos contenidos en la imagen.

Page 27: M083_UD07_01

Robótica y CIM

Visión Artificial 25

07

7.7. Segmentación de la Imagen Una vez hemos digitalizado y preparado la imagen por medio de los filtros apropiados, el sistema ya está en disposición de empezar el análisis de la escena.

Para analizar la imagen digitalizada, uno de los primeros pasos a dar, es el de encontrar cuántos objetos distintos aparecen en la escena.

Al proceso que se le aplica a la imagen para poder separar los distintos elementos que en ella aparecen se le denomina “segmentación” de la imagen, y es uno de los puntos claves en cualquier sistema de visión artificial.

Tras realizar la segmentación de la imagen el sistema conoce la cantidad de objetos que existen en el encuadre y la posición que ocupa cada uno de ellos.

Una de las funciones que se pueden llevar a cabo durante la segmentación de la imagen consiste en discriminar los objetos que sean demasiado grandes o demasiado pequeños.

Se podría dar el caso de que el sistema de visión estuviese manchado y se detectasen las manchas como si fueran objetos de la imagen. Una forma de evitar este problema sería indicarle al sistema que desprecie los objetos que no sobrepasen una medida predeterminada.

De cualquier forma, el sistema recurre a distintos métodos para conseguir separar todos los objetos encontrados en la imagen y poder así empezar a analizarlos uno por uno.

Los dos métodos más utilizados para conseguir segmentar la imagen son los filtros de reconocimiento de bordes y la clasificación de elementos basándose en el histograma.

7.7.1. Búsqueda de contornos en la imagen

Un filtro de reconocimiento de bordes es un filtro que toma la imagen original y acentúa la zona exterior de todos los objetos que encuentra en la escena.

Page 28: M083_UD07_01

Formación Abierta

Visión Artificial 26

Para conseguir encontrar los límites de cada uno de los elementos de la imagen se sigue un sencillo procedimiento que se basa en la comparación del color de cada píxel de la imagen con el color de los píxeles que le rodean.

Ya hemos comentado anteriormente que, una vez digitalizada la imagen, los valores más bajos representan colores oscuros, mientras que los valores más altos representan colores claros y en el rango entre el valor mínimo y máximo se encuentran los tonos intermedios. De esta forma, los valores similares representarán tonalidades también similares.

Para buscar los bordes de los objetos que aparecen en la imagen se compara el valor correspondiente a cada uno de los píxeles que en ella aparecen con el valor de los píxeles que le rodean.

Si la diferencia entre los valores de los píxeles supera un límite previamente fijado (el denominado “umbral”), se considera que el punto en cuestión pertenece al borde de un objeto.

Como se podrá observar, con este sencillo método sólo podremos trabajar eficazmente cuando los objetos tengan colores uniformes. Si un objeto tiene grandes variaciones de color, se interpretará como objetos distintos.

Por otra parte, si los objetos en la imagen son del mismo color y se superponen, también se van a interpretar como un único objeto. De igual forma, si dos objetos se superponen en una imagen y son de distinto color, el sistema los interpretará correctamente como dos objetos distintos. No obstante, se debe tener en cuenta que el objeto parcialmente oculto no se reconocerá adecuadamente.

De cualquier modo, existen otros procedimientos más complejos basados en cálculos matemáticos complejos que permiten extraer con más fiabilidad los contornos que aparecen en las imágenes. Sea como sea, para muchas de las aplicaciones en las que utilizamos visión artificial, será suficiente con el procedimiento de comparación descrito anteriormente, teniendo la ventaja de su mayor velocidad con respecto a los cálculos más complicados.

7.7.2. Segmentación mediante el uso del histograma

Mediante el histograma de una determinada imagen, obtenemos la frecuencia con la que aparece cada uno de los colores (o tonos) en la escena captada y digitalizada.

Page 29: M083_UD07_01

Robótica y CIM

Visión Artificial 27

07

El histograma típico de una imagen en la que aparezca un único objeto, tiene dos zonas muy bien definidas. Por una parte estará el área correspondiente al color del fondo (por lo general la zona más clara o más oscura del histograma). Por otro lado, encontraremos una zona con muchos valores, que corresponderá al punto del histograma donde se encuentra la tonalidad del objeto de la escena.

Una práctica muy habitual es definir en el sistema de visión si el fondo es más claro o más oscuro que los objetos que situamos sobre él. De esta manera, a la hora de trabajar sobre el histograma se puede eliminar todo el rango de valores más alto o más bajo de la gráfica, y así podemos trabajar solamente con los valores del histograma correspondientes al objeto en cuestión.

Si en una misma imagen aparece más de un objeto, una vez eliminado el fondo tendremos en el histograma dos zonas bien diferenciadas. Una de ellas corresponderá a los valores de la gráfica que representen las tonalidades del primer objeto, mientras que la otra corresponderá a los valores de las tonalidades del segundo objeto.

Como se podrá imaginar, si los dos objetos son del mismo material (del mismo color) el análisis del histograma no nos servirá de cara a segmentar la imagen, ya que sólo aparecería en el histograma una zona con valores, que sería la correspondiente al color que tienen ambos objetos.

Así pues, el uso del histograma de cara a la segmentación de la imagen está restringido a ciertos casos en los que se pueda aplicar, pudiendo aparecer situaciones en las que no sea de utilidad.

No obstante, más adelante volveremos a hablar de la utilidad que le podemos dar al histograma de cara a la identificación de los objetos que aparezcan en una determinada imagen.

Page 30: M083_UD07_01

Formación Abierta

Visión Artificial 28

7.8. Interpretación de la Imagen Tras segmentar la imagen digitalizada, el sistema de visión artificial ya sabe cuántos objetos aparecen en la escena y en qué lugar se encuentra cada uno de ellos.

De cualquier forma, esta información es insuficiente para muchas de las aplicaciones en las que se requiere un sistema de visión artificial.

Por lo tanto, después de la segmentación de la imagen, el sistema tiene que llevar a cabo un proceso de interpretación de la escena visualizada.

Cuando finalice el proceso de interpretación de la imagen, el sistema no sólo conocerá cuántos objetos hay en la escena y qué lugar ocupan, sino que también conocerá qué objeto es cada uno de ellos, si se encuentra girado o no, si hay más de un objeto del mismo tipo en una imagen, si hay objetos de igual forma pero de tamaños distintos…

Si nos fijamos en lo dicho en el párrafo anterior, veremos que cuando el sistema haya terminado la interpretación de la escena, habrá obtenido información relevante acerca de cada uno de los diferentes objetos que encuentre en la imagen.

La información que el sistema obtiene de cada uno de los objetos se basa en lo que se denomina “características discriminantes” de los objetos.

Estas características discriminantes pueden ser de distinto tipo, siendo lo más habitual que se trate del área del objeto, la longitud de su perímetro o la forma que tenga. De cualquier modo, en muchas ocasiones se recurre a otras características discriminantes basadas en modelos matemáticos complejos.

Sean cuales sean las características discriminantes que se quieran hallar para los objetos reconocidos en la imagen, el primer paso que se tiene que dar es el de identificar el perímetro de cada uno de los objetos para poder realizar todos los cálculos posteriores en base al perímetro calculado.

Como acabamos de ver, el perímetro de un objeto es una de las características más importantes que se tienen en cuenta a la hora de interpretar una imagen.

Page 31: M083_UD07_01

Robótica y CIM

Visión Artificial 29

07

Para poder identificar el perímetro de un objeto determinado, se suele recurrir a un procedimiento denominado “código cadena”.

El código cadena es un método que nos permite representar los contornos de los distintos objetos con gran precisión, y ocupando a la vez poco espacio en memoria. De esta manera, conseguimos que el proceso de reconocimiento de los perímetros sea bastante rápido a la hora de procesar las imágenes.

Como veremos más adelante, otra de las ventajas del “código cadena” es que la identificación de los distintos objetos se puede llevar a cabo independientemente de la inclinación que presenten en la imagen.

Pero, ¿qué es el código cadena? El código cadena es una lista de números, con valores entre 0 y 7, que representa el contorno de un objeto. A lo largo de este apartado iremos conociendo cómo podemos codificar el perímetro de un objeto en una lista de números de estas características.

El código cadena es una lista de números, con valores entre 0 y 7, que representa el contorno de un objeto. A lo largo de este apartado iremos conociendo cómo podemos codificar el perímetro de un objeto en una lista de números de estas características.

Supongamos una imagen ya captada, filtrada y segmentada en la que aparezca un único objeto. El primer paso para comenzar a describir el objeto será buscar un punto de inicio. Este punto de inicio suele ser el punto del objeto que aparezca más a la izquierda y arriba en la imagen.

Este punto será el origen del código cadena, y se representa como cualquier punto dentro de un sistema de coordenadas cartesianas, es decir, con un valor de “x” y otro de “y” entre paréntesis.

Por ejemplo, en el siguiente ejemplo el primer punto en el que aparece un valor es el correspondiente a la coordenada x = 1, y = 1, por lo que el código cadena resultante para este objeto comenzará de esta forma (1,1).

Page 32: M083_UD07_01

Formación Abierta

Visión Artificial 30

Figura 7.8. Ejemplo de objeto en una imagen digitalizada.

De momento, sólo hemos identificado un punto de inicio para el código cadena, pero todavía no hemos realizado ninguna operación que nos permita identificar su perímetro.

Para conseguir esta identificación del perímetro con acuerdo al método del código cadena, nos valdremos del siguiente patrón gráfico.

1

0

76

5

4

32

Figura 7.9. Patrón para hallar el código cadena de un objeto.

Este patrón representa la dirección en la que se encuentra el siguiente punto del contorno de un objeto. De esta forma, si queremos indicar que el siguiente punto del contorno de un objeto está a su izquierda, utilizaremos el valor “4”.

La utilización del patrón para hallar un código cadena es muy sencilla. En el ejemplo anterior, habíamos establecido el inicio del código cadena en el punto (1,1). Ahora vamos a utilizar el patrón gráfico para completar su código cadena.

El siguiente punto del contorno del objeto se encuentra justo debajo del punto de origen, así pues el código cadena (de momento) quedará: “(1,1)6”.

Page 33: M083_UD07_01

Robótica y CIM

Visión Artificial 31

07

Si seguimos recorriendo el contorno de la figura, el código cadena que obtendremos será el siguiente:

1

0

76

5

4

32

(1,1)6660075447112222444

Figura 7.10. Código cadena para el objeto representado.

Cuando se está siguiendo el contorno de la pieza para hallar su código cadena, se debe seguir algún tipo de criterio en cuanto a cómo se aplique el patrón gráfico para evitar que se den errores.

Si no seguimos un criterio fijo para identificar el perímetro, podría suceder que para una misma imagen obtuviésemos distintos códigos cadena, perdiéndose así su utilidad. Por ejemplo, en la imagen que estamos utilizando hemos comenzado el código cadena hacia abajo (con el código “6”), pero podríamos haber empezado igualmente hacia la derecha (con el código “0”). Si no utilizásemos siempre la misma forma de identificación, sería imposible utilizar el código cadena eficazmente.

Además, si mantenemos siempre el mismo criterio, obtendremos códigos cadena que sirven para identificar a una determinada imagen independientemente de si está rotada o no.

Vamos a tomar como ejemplo la imagen anterior girada noventa grados.

Page 34: M083_UD07_01

Formación Abierta

Visión Artificial 32

1

0

76

5

4

32

Figura 7.11. Imagen anterior girada noventa grados.

Si sobre una misma imagen tomamos ocho códigos cadena, cada uno de ellos con el patrón girado una posición, tendremos perfectamente identificada esa imagen esté con la inclinación que esté.

Una vez conocemos el código cadena del objeto, y con él su perímetro, ya podemos pasar al cálculo de las demás características discriminantes.

Otras de las características que se suelen buscar es el área del objeto. Para el cálculo del área se puede recurrir a cálculos matemáticos a partir del perímetro o directamente contar los puntos que están contenidos en la imagen, dependiendo del sistema de visión con el que estemos trabajando.

De cualquier manera, al finalizar el cálculo del área conoceremos la superficie que ocupa el objeto en cuestión, con lo que conocemos ya otra de sus características discriminantes que lo pueden diferenciar de otros objetos.

Como se podrá suponer se puede dar el caso de encontrar dos objetos diferentes que ocupen un área de igual tamaño. Así pues, se deberá tener en cuenta que a mayor número de características discriminantes que utilicemos, más difícil será cometer errores en la interpretación de la imagen.

Page 35: M083_UD07_01

Robótica y CIM

Visión Artificial 33

07

En algunos casos, es interesante no trabajar directamente con el perímetro y el área del objeto, sino utilizar la relación existente entre área y perímetro. De este modo podemos conseguir que el sistema interprete como equivalentes dos objetos que sean de la misma forma sólo que en distinta escala.

Otras características discriminantes que es frecuente utilizar a la hora de interpretar imágenes se refieren a la forma de los objetos analizados.

De esta forma es común encontrar medidas como por ejemplo la denominada “esbeltez”, que viene definida por la fórmula:

esbeltez = (perímetro)2/área

Dependiendo del sistema de visión en el que estemos trabajando, existirán más o menos características discriminantes que hagan referencia a la forma del objeto.

Un punto que también es interesante analizar cuando se está interpretando la imagen digitalizada de un objeto determinado es el que se refiere a los agujeros que tenga la pieza.

Así pues, se analiza el número de agujeros que tenga el objeto en cuestión, la posición, el área y la orientación de cada uno de estos agujeros.

Se debe tener en cuenta que cuando hablamos de análisis de los agujeros de un objeto nos referimos solamente a los agujeros pasantes, es decir, a aquellos que atraviesan la pieza de lado a lado. En principio, los sistemas de visión no son capaces de detectar agujeros de otro tipo.

Dentro de las características discriminantes, y sobre todo si el sistema de visión va orientado hacia la manipulación de los objetos analizados, es frecuente calcular también el centro de gravedad del objeto.

Para hallar el centro de gravedad del objeto, se calcula su centro de gravedad horizontal y su centro de gravedad vertical (nótese que al tratar con sistemas de visión bidimensionales, el centro de gravedad hallado podría no ser el centro de gravedad real del objeto).

Las fórmulas que se utilizan para hallar los centros de gravedad son las siguientes:

∑=xx

x xn

GC 1..

Donde “nx“ es el número total de puntos en horizontal y “ny” el número total de puntos en vertical. Así pues, el centro de gravedad (horizontal o vertical) no es más que el valor medio de todos los puntos que aparezcan en el objeto.

Por último, otra de las características discriminantes que pueden ser de gran ayuda en la interpretación de la imagen es la que se refiere al histograma.

Page 36: M083_UD07_01

Formación Abierta

Visión Artificial 34

Ya hemos comentado anteriormente que para un objeto siempre se dará un histograma determinado, dependiendo de la cantidad de puntos de cada tonalidad que tenga el objeto en cuestión.

Así pues, podemos tomar como característica discriminante del objeto los valores que refleja en el histograma, teniendo así identificado el objeto con bastante precisión y con un número de valores relativamente pequeño si lo comparamos con la enorme cantidad de valores que se requieren para almacenar toda la información de una imagen (en el punto relativo al histograma visto anteriormente se comenta este hecho con más detalle).

Page 37: M083_UD07_01

Robótica y CIM

Visión Artificial 35

07

7.9. Aprendizaje de Elementos En lo que llevamos de capítulo, hemos ido conociendo los distintos procedimientos que se llevan a cabo cuando el sistema va a analizar una imagen.

Sin embargo, todos los procedimientos que hemos estudiado se llevan a cabo internamente, sin que el operario tenga que realizar ninguna tarea.

Además, simplemente con lo que hemos visto de momento, el sistema es capaz de analizar cualquier imagen que le presentemos, pero este análisis no nos es de ninguna utilidad si no le damos alguna aplicación.

La finalidad del sistema de visión va a ser el reconocimiento automático de elementos sea cual sea la utilidad que le queramos dar después a este reconocimiento.

Pero para que un sistema sea capaz de reconocer un elemento, es obvio que tiene que conocerlo previamente. Antes de pedirle que identifique un objeto en una imagen, será necesario enseñarle todos los posibles objetos que va a poder encontrar. Sólo de esta manera podemos pedirle al sistema que identifique los elementos que le vayamos presentando.

Para comenzar el aprendizaje de objetos por parte del sistema, el programa de visión artificial que estemos utilizando dispondrá de una opción que deberemos seleccionar.

A continuación, el sistema se pondrá en marcha, capturando, digitalizando, filtrando e interpretando la imagen como hemos visto en los apartados anteriores.

Como resultado de todo este proceso, el sistema de visión habrá extraído las características discriminantes de cada uno de los objetos que aparezcan en la escena.

En este punto, para cada uno de los objetos encontrados y analizados, el sistema le pedirá al usuario un código y una descripción. De esta forma, cuando le presentemos los mismos objetos al sistema posteriormente (u otros con características discriminantes equivalentes), será capaz de identificarlos adecuadamente.

Toda la información de los objetos que se le vayan enseñando al sistema se guardará en lo que se denomina una “base de datos”, que no es otra cosa más que un conjunto de datos relacionados entre sí.

Page 38: M083_UD07_01

Formación Abierta

Visión Artificial 36

Por lo general, los programas de visión artificial suelen permitir que el usuario disponga de diferentes bases de datos, y que trabaje con una o con otra según le interese.

Además, se suele permitir también que el usuario vea toda la información contenida en la base de datos, y que pueda realizar modificaciones en la descripción de los elementos, o eliminar aquellos que ya no se utilicen.

Page 39: M083_UD07_01

Robótica y CIM

Visión Artificial 37

07

7.10. Reconocimiento de elementos La forma más sencilla de llevar a cabo el reconocimiento de elementos es lo que se denomina reconocimiento “en línea” (on-line), es decir, que el operario tiene que pedir al sistema que analice las imágenes según le interese y éste le informará acerca de los objetos encontrados en ellas. Esta forma de trabajo no es conveniente muchas veces porque requiere tener al operario trabajando para que trabaje el sistema.

La otra forma de reconocimiento, llamada “fuera de línea” (off-line) entra en la programación del sistema de visión, donde se pueden escribir programas que analicen automáticamente los objetos y que tomen determinadas decisiones, pudiendo interactuar con su entorno por medio de señales.

En el siguiente apartado profundizaremos en la programación de un sistema de visión artificial.

Bien trabajemos en línea o fuera de línea, la identificación de los elementos que aparezcan en una determinada imagen se realiza siempre de la misma forma.

El primer paso es extraer las características discriminantes de los elementos que aparezcan en la imagen capturada. Una vez se tienen estas características se empiezan a comparar con las características discriminantes de los objetos almacenados en la base de datos que se creó durante el aprendizaje del sistema.

Es muy frecuente que, debido a la complejidad del análisis de las imágenes, a partir de un objeto no se extraigan siempre exactamente las mismas características discriminantes, sino que pueden variar ligeramente de una vez a otra.

Es por esto por lo que los sistemas de visión suelen permitir trabajar con ciertas tolerancias. De esta forma, no se buscan objetos que cumplan exactamente con las características discriminantes almacenadas en la base de datos, sino que se buscan objetos con características discriminantes muy parecidas (dependiendo del nivel de tolerancia que se permita).

Page 40: M083_UD07_01

Formación Abierta

Visión Artificial 38

Lo ideal es que para cada elemento se extraigan todas sus características discriminantes y que se comparen todas ellas con las características discriminantes de los objetos previamente enseñados al sistema. Si se da una coincidencia entre las características analizadas y las almacenadas en la base de datos, el sistema informará de que se ha encontrado el objeto, mostrando su código y su descripción.

No obstante, llevar a cabo la extracción de todas las características de los elementos y compararlas con todas las características de los objetos almacenados requiere muchos cálculos, por lo que puede llegar a ser muy lento.

Así pues, la mayoría de los sistemas de visión artificial permiten que solamente se analicen y se comparen ciertas características discriminantes para agilizar el proceso.

Por ejemplo, si tenemos piezas que sean muy distintas en cuanto a tamaño, podemos usar simplemente la característica del área, e incluso solamente el histograma, para diferenciar entre unas y otras. De esta manera, se ahorra realizar todos los cálculos del resto de características.

No obstante, dependiendo del tipo de elementos analizados, no será posible distinguir entre ellos por el área, siendo necesario configurar adecuadamente las características discriminantes que deseamos utilizar para cada aplicación concreta que queramos darle al sistema.

De cualquier modo, aunque a la hora de identificar los elementos solamente utilicemos ciertas características discriminantes, en la fase de aprendizaje siempre se analizarán y se almacenarán todas las características, para poder después utilizar las que más nos interesen.

Además, ya comentábamos en el apartado dedicado al aprendizaje que se suele permitir que el usuario disponga de distintas bases de datos.

Esto es importante también para la velocidad del sistema durante la identificación. Si el sistema tiene que comparar cada elemento con todos los almacenados, el tiempo será mucho mayor en una base de datos grande que en una base de datos pequeña.

Es por esto por lo que puede ser de gran utilidad trabajar con diferentes bases de datos y usar una u otra dependiendo de la aplicación que se efectúe en cada instante.

Page 41: M083_UD07_01

Robótica y CIM

Visión Artificial 39

07

De esta manera, evitamos que a la hora de identificar, el sistema compare las piezas analizadas con otras almacenadas en la base de datos que no tengan nada que ver, con lo que ahorramos tiempo sin disminuir para nada la fiabilidad del sistema.

Page 42: M083_UD07_01

Formación Abierta

Visión Artificial 40

7.11. Programación del sistema Por medio de la programación del sistema de visión podemos conseguir que se analicen automáticamente las imágenes y que el sistema sea capaz de tomar ciertas decisiones y de comunicarse con su entorno por medio de señales de entrada y salida, tal y como pasaba con la programación del robot.

De hecho, muchos sistemas de visión artificial están orientados hacia la robótica, por lo que realmente la programación se realiza a través de las instrucciones que veíamos en el módulo de “programación del robot” a las que se añaden ciertas instrucciones para el control del sistema de visión y su coordinación con el robot.

Por supuesto, el sistema de visión dispondrá de un editor de programas en el que iremos escribiendo todo el programa que deberemos ejecutar después, seleccionando las opciones correspondientes, en función del lenguaje utilizado.

Cuando el sistema de visión no está orientado a la robótica, la programación es igual que la comentada en el módulo de programación del robot, exceptuando la parte de control de movimientos.

Así pues, tenemos que los programas de visión artificial nos van a permitir el uso, por lo general, de:

• Variables.

• Entradas y Salidas.

• Instrucciones de ejecución Condicional.

• Instrucciones de ejecución Repetitiva.

• Instrucciones de ejecución Repetitiva Condicional.

• Saltos y Etiquetas.

• Subrutinas.

• Retardos y Esperas.

Page 43: M083_UD07_01

Robótica y CIM

Visión Artificial 41

07

La forma general de uso de estas instrucciones es idéntica a la descrita para la programación del robot. Además, si el sistema de visión está enfocado hacia la robótica, existirán también las instrucciones que ya conocemos para el control del manipulador:

• Movimientos del Robot.

• Posición HOME.

• Control de Trayectoria.

• Programación del Elemento Terminal.

Hasta aquí, todas las posibilidades de programación son idénticas a las que veíamos para la programación del robot. Sin embargo, en el caso de los sistemas de visión artificial podemos encontrar también las siguientes instrucciones (dependiendo del lenguaje utilizado):

• Configuración de la Captura.

• Configuración de la Identificación.

• Inspección de la escena.

• Búsqueda de elementos en una imagen.

• Control de Movimientos en función de las imágenes.

7.11.1. Programación para configurar el sistema

Para la configuración de la captura de imágenes en el sistema, dispondremos de instrucciones que nos permitan ajustar parámetros tales como la resolución, el brillo y el contraste con los que se realizará la captura y digitalización de la imagen. La forma general de uso de estas instrucciones es:

parámetro = valor

Set parámetro = valor

Donde “parámetro” indica cuál es el parámetro referente a la captura que queremos modificar y “valor” es un número que indica en qué medida queremos que se aplique el parámetro en cuestión.

Dependiendo del sistema de visión con el que trabajemos, dispondremos de más o menos parámetros que nos permitan modificar la captura de imágenes mediante programación.

Además, dependiendo también de los diferentes sistemas, variará el rango de valores permitidos para cada uno de los parámetros que deseemos modificar.

Page 44: M083_UD07_01

Formación Abierta

Visión Artificial 42

En cuanto a la configuración de la identificación de imágenes mediante programación, se permitirá la modificación de los parámetros referentes a los filtros que se aplicarán, la base de datos que se utilizará para el reconocimiento de las imágenes, las características discriminantes que se analizarán y se compararán y las tolerancias para cada una de estas características.

Las instrucciones que se utilicen para llevar a cabo todas estas tareas varían mucho de un sistema de visión a otro, existiendo muchos que no permiten su uso mediante programación, sino que tendremos que configurar todos los parámetros por medio de los menús disponibles en el programa de visión.

7.11.2. Programación para analizar las imágenes

Con todo lo visto hasta el momento, ya sabemos cómo escribir un programa de visión artificial para configurar todo el sistema como mejor nos interese en cada momento.

Así pues, con lo visto hasta el momento podremos ir ajustando los diferentes parámetros en función de lo que pase en el exterior (ya hemos comentado que el control de entradas y salidas se realizará de la forma explicada en el módulo de programación del robot).

Sin embargo, todavía no conocemos las instrucciones que nos permiten llevar a cabo la identificación de los elementos que aparezcan en las imágenes y las operaciones relacionadas con esta identificación.

El primer paso para comenzar la identificación de la escena será la digitalización, filtrado y segmentación de la imagen, es decir, todas las operaciones previas a la identificación de elementos en sí.

Para efectuar estas operaciones, dispondremos de una instrucción denominada “inspección de la escena”, “análisis de imagen” o similar.

El nombre exacto de la instrucción dependerá del sistema de visión, admitiendo en algunos casos ciertos parámetros, como por ejemplo:

Tamaño mínimo de los elementos a analizar, tamaño máximo de los elementos a analizar, si el fondo es más claro o más oscuro que los objetos que aparecen en la imagen…

Page 45: M083_UD07_01

Robótica y CIM

Visión Artificial 43

07

Como aviso, es conveniente comentar que antes de realizar la inspección de la escena nos tendremos que asegurar de que el brazo del robot no esté situado en la zona de encuadre de la cámara ya que si no estorbaría a la hora de capturar la imagen y podría llevar a una identificación incorrecta de la imagen.

Con la imagen ya preparada, podremos empezar a buscar los elementos que nos interesen dentro de la escena.

Una de las instrucciones que podemos encontrar en la mayoría de los sistemas de visión artificial es la que nos permite contar todos los objetos que aparecen en la imagen.

Esta instrucción nos va a devolver como resultado un valor, por lo que tendremos que utilizar una variable para poder consultar el valor que se haya calculado.

Para esto, los sistemas de visión artificial suelen disponer de una variable reservada con un determinado nombre y en la que no podremos almacenar valores, sino solamente consultarla. Cada vez que se consulte la variable, ésta tendrá almacenado el número total de objetos que había en la última imagen que se haya inspeccionado.

Esta variable puede ser útil si queremos realizar un programa que esté continuamente inspeccionando la imagen de la cámara y que solamente intente realizar la identificación de elementos en el momento en que aparezca algún objeto en la imagen.

Para hacer esto, tendríamos que hacer un bucle que estuviese chequeando continuamente el valor de la variable de cuenta de los elementos. A continuación podemos ver un ejemplo de cómo programar un caso de estas características.

Repetir

Inspeccionar_imagen

Hasta contador_imagen > 0

(tareas de identificación)

Donde “Inspeccionar _ imagen” indica la instrucción para capturar, filtrar y segmentar la imagen y “contador _ imagen” representa la variable donde se almacena el número total de objetos que aparecen en la escena.

Page 46: M083_UD07_01

Formación Abierta

Visión Artificial 44

En este pequeño programa, tendríamos un bucle que se ejecutaría continuamente hasta que pusiéramos un objeto delante de la cámara. Una vez que se analizase la imagen y se comprobase que hay por lo menos un objeto se pasaría a la siguiente línea del programa, donde pone “tareas de identificación”.

Se debe tener cuidado al utilizar esta variable en un programa, ya que si se nos ha olvidado inspeccionar la imagen previamente con la instrucción correspondiente, podemos estar obteniendo valores falsos en la variable que sirve como contador.

Después de contar los elementos que aparecen en la imagen, lo más normal es que empecemos a buscar los objetos que nos interesen.

Para llevar a cabo esta función, los programas de visión artificial incorporan una instrucción condicional con la siguiente forma de uso:

Si Existe Objeto Número … Entonces

Instrucciones si está el objeto

Si no

Instrucciones si no está

Fin Si

Esta instrucción es muy parecida a la instrucción condicional que veíamos en el módulo de programación del robot. Al igual que sucedía entonces, en esta instrucción la parte correspondiente al “si no” es opcional.

La única diferencia está en que la condición en este caso no se refiere a variables, sino a objetos que aparezcan en la imagen.

Con esta instrucción se está preguntando si un determinado objeto aparece o no en la escena actual. El número de objeto que se utiliza, será el código de objeto que se introdujo en el sistema a la hora de efectuar el aprendizaje de elementos.

Se debe tener cuidado de utilizar esta instrucción siempre y cuando se haya realizado previamente la instrucción de inspección de la escena. De no ser así, algunos sistemas nos darán un mensaje de error. Sin embargo, podemos encontrar sistemas de visión que no den error y que nos den resultados inesperados. Es por esto por lo que hay que prestar atención a este punto, evitando así posibles problemas.

Es frecuente que, una vez analizada la escena e identificados los elementos que aparezcan queramos manipularlos con el robot. Si el sistema de visión artificial está orientado a la robótica, nos permitirá la siguiente instrucción:

Mover Al Objeto Número…

Page 47: M083_UD07_01

Robótica y CIM

Visión Artificial 45

07

Esta instrucción moverá el robot a la posición que ocupa el objeto del código indicado. Más exactamente, la instrucción moverá la pinza del robot justo al punto de gravedad de ese objeto.

Una vez situada allí la pinza, será necesario programar la secuencia de movimientos del robot tal y como hemos aprendido anteriormente. Se debe tener en cuenta que si tratásemos de mover al robot con la pinza cerrada, el robot golpearía la pieza. Será necesario moverlo con la pinza abierta.

Si se intenta mover al robot a por un objeto que no existe es posible que se produzca un error y se detenga la ejecución del programa (dependiendo del sistema utilizado).

Así pues, como recomendación, es una buena idea comprobar siempre si existe un objeto con la instrucción comentada anteriormente antes de intentar coger el objeto, asegurándonos de esta forma que el objeto deseado aparece en la imagen antes de mover el robot.

Si en una misma imagen apareciese más de una vez el objeto al que queremos mover el robot, el manipulador se moverá indistintamente a por cualquiera de ellos.

Por último, queda comentar que en algunos lenguajes de visión artificial, al enviar al robot a por un objeto se modifica automáticamente la variable que lleva la cuenta de los objetos que aparecen en la imagen. Sin embargo, en muchos otros casos esto no es así, debiéndose volver a inspeccionar la imagen si queremos actualizar la cuenta de los elementos en la misma.

Esto mismo sucede si queremos volver a utilizar instrucciones de identificación de elementos o de movimientos a por los objetos que aparezcan en la imagen. Será necesario volver a inspeccionar la imagen para asegurarnos de que la identificación es correcta.

En el caso de que el sistema de visión acepte las instrucciones de movimiento sincronizadas con la visión, existirán opciones en el sistema para poder sincronizar el robot con la visión y configurar los parámetros de movimiento (velocidad, ángulo de inclinación de la pinza, altura de aproximación a la pieza…).

Page 48: M083_UD07_01

Formación Abierta

Visión Artificial 46

7.11.3. Ejemplo de Programación

A continuación se muestra un breve ejemplo de un posible caso de programación en un sistema de visión:

Etiqueta Inicio Inspeccionar Imagen Si Existe Objeto 25 Entonces Abrir Mover Al Objeto Número 25 Cerrar Mover a la posición 10 Mover a la posición 30 Mover a la posición 23 Abrir Mover a la posición 30 Cerrar Fin Si Salta a Inicio

En este programa, se analiza la imagen actual y, en el caso de que se encuentre un objeto correspondiente al código “25”, el robot se desplazará hasta donde se encuentra el punto de gravedad, cerrará la pinza cogiendo el objeto y realizará un cierto movimiento.

Después abre la pinza para dejar el objeto y vuelve a una posición en la que cierra la pinza. El programa se repite continuamente.

Page 49: M083_UD07_01

Robótica y CIM

Visión Artificial 47

07

7.12. Campos de Actuación de la Vision Artificial

• Inspección Dimensional sin contacto:

Distancias entre bordes.

Diámetro de círculos.

Ángulos.

Posición de orificios.

Ensamblado de la pieza.

• Guiado de Robots y máquinas:

Localización de centro y de piezas.

Manipulado de piezas </UL< li>.

Identificación Automática de Piezas:

Por dimensiones.

Por marca característica.

Por código de barras.

Por color.

Por área.

• Lectura de Códigos Impresos:

Tipo:

Números.

Caracteres.

Logotipo.

• Presencia / ausencia de componentes.

• Verificación del producto acabado.

• Contaje de elementos.

7.12.1. Ejemplos de Proyectos Realizados

Presentamos a continuación una serie de ejemplos de proyectos mas comunes donde se utiliza sistemas de visión artificial, tanto para calidad como para guiados de Robots y maquinas.

Page 50: M083_UD07_01

Formación Abierta

Visión Artificial 48

Veamos los siguientes ejemplos:

Inspección de llantas de aluminio

• Descripción del proceso:

Mecanizado automático de llantas de aluminio:

Célula de mecanizado.

Torno.

Centro mecanizado.

Robot.

Equipo de visión.

Función del equipo de visión.

Figura 7.12. Identificación Figura 7.13. Orientación

Interface de usuario.

Aplicaciones similares:

Identificación de perfiles de aluminio.

Clasificación de tornillos.

Orientación de tapacubos.

Identificación de piezas dentadas.

Identificación de modelo de asiento de automóvil.

Control de línea de corte de chapa

• Descripción del proceso:

Corte de chapa a medida.

A partir de la bobina en continuo, se cortan formatos de dimensiones determinadas.

Page 51: M083_UD07_01

Robótica y CIM

Visión Artificial 49

07

• Función del equipo de visión:

Medición del espesor antes del corte.

Medición del ancho, largo y escuadra del corte 100% de los formatos cortados.

Resultados en bases de datos.

• Interface de usuario.

• Aplicaciones similares

Medición de planchones en caliente.

Medición de arandelas, tornillos, muelles,...

Medición de diámetro de agujeros.

Figura 7.14. Descripción de visión.

Descripción del sistema

La aplicación de la visión por computadora en la realización de trabajos de inspección tiene como ventaja la utilización un de un sensor remoto (la cámara de TV), que no requiere ningún contacto físico con los objetos a visualizar. Adicionalmente, se pueden conseguir velocidades de operación y fiabilidad mejores que en sistemas convencionales.

Las principales características del sistema son las siguientes:

Facilidad de programación y de utilización por el usuario, que no necesita tener conocimientos informáticos.

Flexibilidad de adaptación a diferentes entornos

Alta velocidad de operación gracias al preprocesador especializado en el tratamiento de imágenes. El sistema se basa en una computadora tipo PC, dotada de un procesador especializado VLSI

Bajo coste

Page 52: M083_UD07_01

Formación Abierta

Visión Artificial 50

Forma de operación

El sistema esta orientado a la realización de trabajos de inspección de dos tipos:

Inspección cuantitativa: Realización de medidas (Áreas, longitudes, perímetros, etc), contajes y ángulos de orientación.

Inspección cualitativa: Verificación de la correcta realización del trabajo como el ensamblado, el embotellado, el etiquetado, el empaquetado, etc...

Características técnicas del sistema

El sistema se compone de los siguientes elementos:

Cámara de TV

Placa preprocesadora de imagen

Ordenador PC/AT de control

Gracias a la tarjeta de preprocesado de vídeo, el ordenador PC/AT de control puede operar con imágenes a una elevada velocidad, tal y como exigen la gran mayoría de aplicaciones industriales. La interconexión con el entorno se realiza a través de una tarjeta de entradas/salidas del PC/AT.

El sistema de inspección tiene las siguientes características: Cuatro entradas de vídeo multiplexadas

Detección y sincronización automática con la pieza o bien sincronización externa

Resolución de 336 x 286 píxeles

Tratamiento de imágenes de grises (256 niveles) binarios o contornos

Posibilidad de discriminación de colores

Tiempo de procesado: dependiendo del número de parámetros y ventanas a considerar (tiempos típicos entre 80ms y 200ms)

Posibilidad de definir ventanas de coordenadas fijas sobre la imagen, o bien ventanas que se posicionan y siguen automáticamente el objeto (tracking)

Posibilidad de simulación del test de desarrollo para validar estrategias y obtener los tiempos de procesado de cada test

Facilidad de depuración de errores en el desarrollo de inspecciones

Page 53: M083_UD07_01

Robótica y CIM

Visión Artificial 51

07

Figura 7.15. Instalación Formación Vision.

7.12.2. Servicios prestados por la Vision

Asesoramiento sobre las posibilidades que ofrecen los equipos de visión en cada proceso productivo concreto.

Estudio de la viabilidad de diversas opciones.

Diseño y desarrollo de aplicaciones a medida de las necesidades del cliente.

Instalación llave en mano.

Mantenimiento de instalaciones.

Integración de un sistema de visión en una máquina. (robot, empaquetadora, máquina herramienta,etc)

Proyectos de colaboración con fabricantes de maquinaria con el fin de diseñar equipos con capacidad de realizar tareas de visión.

En todo tipo de aplicación de visión artificial, se deben tener en cuenta las siguientes variables:

Tipo de Aplicación:

Inspección.

Guiado de robots.

Identificación.

Tiempo de Proceso:

Velocidad de paso del objeto.

Frecuencia de paso del objeto.

Page 54: M083_UD07_01

Formación Abierta

Visión Artificial 52

Características de los Objetos:

Tamaño.

Rango de piezas a inspeccionar.

Color y acabado superficial.

Incertidumbre/tolerancia posicional.

Posicionado previo.

Precisición Requerida:

Inspección dimensional.

Inspección superficial.

Condiciones Ambientales:

Accesibilidad.

Espacio disponible para la instalación.

Ambiente de trabajo.

Comunicación con otras máquinas:

Tipo de máquina.

Tipo de comunicación.

Resultados:

Base de datos de tendencias.

Estadísticas.

Activación de señales de control.

Una vez definido el tipo de aplicación y las variables más significativas, se puede realizar un estudio de viabilidad que permita valorar al alcance tanto económico como técnico del proyecto.

En la instalación de un equipo de visión, sigue los siguientes pasos:

Estudio del Proceso en Planta:

Visita a planta.

Análisis de la aplicación.

Definición de variables significativas del proceso.

Recogida de muestras.

Page 55: M083_UD07_01

Robótica y CIM

Visión Artificial 53

07

Estudio de la Viabilidad:

Análisis de muestras.

Estudio técnico.

Estudio económico.

Estudio exhaustivo de la línea:

Definición detallada de los requisitos.

Composición definitiva del equipo.

Adaptaciones a realizar en la línea.

Instalación del equipo:

Plan de instalación del equipo.

Instalación llave en mano.

Cursillo de formación.

Page 56: M083_UD07_01

Formación Abierta

Visión Artificial 54

7.13. Ver sin Ojos

Veamos a continuación una anécdota de otra de las utilidades de la visión artificial

Una de las ramas mas revolucionarias de la robótica es sin duda la visión artificial, la cual trata de traducir el mundo visual que todos entendemos como real a un sistema informático que, con esa información, pueda interactuar con el medio. Por ello la visión artificial es definida por muchos como la gran barrera a superar para la implementación de sistemas inteligentes autónomos en nuestras monótonas vidas.

La visión artificial basa la gran mayoría de sus descubrimientos en facilitar la vida a las personas invidentes o tetraplejico. Sin duda el ejemplo más positivo de la experimentación en humanos es devolver la visión a un invidente o las facultades motoras a un discapacitado físico. Hay que reconocer que la implementación de uno de estos sistemas no es fácil, dado que la mayoría de las veces es necesario realizar una operación a "cerebro descubierto" para implantar las conexiones biomecánicas en el propio organismo del paciente.

Se han realizado multitud de experimentos en humanos relacionados con la visión artificial. Uno de ellos se hizo popular al conseguir que un tetraplejico pudiera mover el ratón del monitor solo proponiéndoselo, o sea, se logro lo mas parecido a la telekinesia que el Homo Sapiens podrá ver jamás. El sistema tenía implantados unas conexiones biomecánicas en el cerebro del paciente, estas conectaban directamente con un área del cerebro que esta relacionada con el movimiento de las extremidades y su propia percepción. Asm, cuando el paciente deseaba mover con la mano el cursor, este se movía, dado que el sistema recibía la orden por medio de las mismas descargas sinápticas que generarían el movimiento del brazo.

7.13.1. Volver a ver

Hace poco nos hemos vuelto a asombrar con otro acontecimiento relacionado con lo anterior. Jerry, un invidente de Nueva York ha sido capaz de ver gracias a una cámara artificial implantada en sus ojos. El hombre en cuestión perdis la visión a los 36 años en un accidente de trafico. No perdis las esperanzas de volver a ver algún día y por ello entre en contacto con un equipo de investigación de visión artificial que requería un voluntario para sus experimentos.

Page 57: M083_UD07_01

Robótica y CIM

Visión Artificial 55

07

Desde hace ya treinta años Jerry lleva implantado en la zona del cerebro identificada con la percepción visual una conexión biomecánica que conecta directamente con el exterior en forma de enchufe. Desde entonces el equipo de investigación, liderado por Willian Dobele ha realizado multitud de experimentos para devolver la visisn a Jerry.

Ahora Jerry tiene 62 años y ya es capaz de ver e interactuar con entornos de alto contraste (blanco sobre negro) y distinguir letras grandes gracias a la cámara que llevan implantadas sus gafas y el mini-ordenador que lleva a sus hombros

Page 58: M083_UD07_01
Page 59: M083_UD07_01

Robótica y CIM

Visión Artificial 57

07

• Resumen

• Entendemos por sistema de visión artificial un sistema automatizado capaz de captar una imagen del mundo que le rodea y actuar de una forma u otra dependiendo de lo que esté viendo.

• En un sistema de visión artificial encontramos: un dispositivo de captura de imágenes (cámara), un controlador, un monitor, un dispositivo de iluminación y las distintas conexiones (o interfases) entre estos dispositivos.

• Para que el sistema pueda trabajar con la imagen es necesario “digitalizarla”, es decir, convertir la imagen analógica procedente del exterior en una señal digital que pueda entender el controlador del sistema.

• Llamamos “píxel” a cada punto que compone la imagen. Al número total de puntos del sistema lo llamamos “resolución”, y para referirnos a la cantidad de colores que puede manejar el sistema hablamos de “profundidad” de la imagen.

• Generalmente es necesario “filtrar” la imagen. Un filtro es un proceso que toma la señal digital de la imagen y la modifica dando lugar a otra señal digital más adecuada a las necesidades del sistema.

• El “histograma” de una imagen es una gráfica bidimensional que nos indica la cantidad de puntos de cada color que aparecen en la escena. Su uso suele permitir una mayor velocidad en el funcionamiento del sistema.

• Una vez tenemos la imagen preparada para ser tratada necesitamos “segmentarla”, es decir, distinguir cuántos elementos hay y dónde está cada uno de ellos. Podemos segmentar mediante la detección de bordes o mediante el uso del histograma.

• Para la identificación de objetos se recurre al cálculo de las llamadas “características discriminantes”, que suelen ser: el perímetro, el área, la forma, el centro de gravedad y el histograma.

• Para poder calcular las características discriminantes de los distintos objetos, se utiliza un procedimiento llamado “código cadena” que permite definir de una manera simple el contorno de un elemento.

Page 60: M083_UD07_01

Formación Abierta

Visión Artificial 58

• Antes de intentar identificar elementos tendremos que enseñárselos al sistema, mediante las operaciones de aprendizaje, en las que se asigna a cada objeto un código y una descripción. Los datos de cada elemento se asignan en una base de datos.

• El reconocimiento de los elementos se realiza comparando las características discriminantes de los elementos de una imagen con los almacenados en la base de datos.

• Los sistemas de visión permiten ser programados para funcionar automáticamente. Aparte de las funciones de programación que encontramos en un robot, dispondremos de operaciones referentes a la configuración del sistema, el reconocimiento de objetos y la coordinación del robot con el sistema de visión.