You are on page 1of 37

Visin artificial

Visin artificial
Introduccin a los sistemas de
visin artificial
11 de agosto de 2011
Copyright 2008-2011 Jorge Rodrguez Arajo
grrodri@gmail.com
ndice
1. Visin artificial............................................................................................1
1.1 Introduccin............................................................................................................ 1
1.2 Sistema de iluminacin........................................................................................... 1
1.2.1 Fuentes de luz................................................................................................................. 1
1.2.2 Esquemas de iluminacin................................................................................................ 2
1.3 Captura de imagen.................................................................................................. 3
1.3.1 Sensores digitales de imagen.......................................................................................... 3
Sensor CCD.......................................................................................................................... 3
Sensor CMOS....................................................................................................................... 4
Caractersticas...................................................................................................................... 4
1.3.2 Objetivos.......................................................................................................................... 4
Caractersticas...................................................................................................................... 5
Seleccin de la lente............................................................................................................. 5
2. Procesado de imagen...............................................................................6
2.1 Introduccin............................................................................................................ 6
2.2 Imgenes digitales.................................................................................................. 6
2.3 Transformaciones del espacio de color...................................................................7
2.4 Transformaciones de histograma .........................................................................10
Negativo................................................................................................................................... 11
Imagen gamma........................................................................................................................ 12
Pseudocolor............................................................................................................................. 12
Estiramiento del histograma..................................................................................................... 12
Ecualizacin del histograma.................................................................................................... 12
2.5 Eliminacin de ruido .............................................................................................13
2.6 Segmentacin....................................................................................................... 14
2.7 Deteccin de bordes.............................................................................................15
2.8 Operadores morfolgicos......................................................................................18
3. Localizacin y posicionamiento de objetos.............................................21
3.1 Contraste de modelos........................................................................................... 21
3.2 Histogram backprojection......................................................................................22
3.3 Posicionamiento de objetos..................................................................................24
4. Seguimiento de objetos...........................................................................27
4.1 Introduccin.......................................................................................................... 27
4.2 Meanshif Tracking................................................................................................. 27
5. Identificacin de un contorno rectangular...............................................28
5.1 Introduccin.......................................................................................................... 28
5.2 Deteccin del contorno rectangular.......................................................................29
Tranformada de Hough para lneas......................................................................................... 29
i
5.3 Identificacin del contorno rectangular..................................................................31
6. Clculo de la homografa........................................................................32
6.1 Introduccin.......................................................................................................... 32
6.2 Homografa........................................................................................................... 32
6.3 Resolucin de sistemas de ecuaciones lineales...................................................33
7. Anexo: Instalaciones robotizadas............................................................34
7.1 Introduccin.......................................................................................................... 34
7.2 Fases del desarrollo de un proyecto.....................................................................34
ii
Visin artificial
1. Visin artificial
1.1 Introduccin
Un sistema de visin artificial se compone bsicamente por:
Sistema de iluminacin: Proporciona unas condiciones de iluminacin uniformes e
independientes del entorno, permitiendo o facilitando la extraccin de los rasgos de inters
para una determinada aplicacin.
Captura de imagen: Conjunto encargado de recoger las caracterstica del objeto en
estudio y proporcionar los datos para su procesado, por medio de una imagen digital.
Procesado de imagen: Conjunto de algoritmos y transformaciones necesarias para realizar
el anlisis de la imagen y de este modo extraer la informacin de las imgenes capturadas,
con el fin de obtener los resultados para los que haya sido diseado.
1.2 Sistema de iluminacin
Dado que la imagen se forma a partir de la luz que reflejan los objetos, la nica posibilidad
de obtener una imagen con caractersticas constantes en la que se resalten los aspectos de inters y
se atenen los intrascendentes permitiendo o facilitando la resolucin del problema es controlando
las condiciones de iluminacin.
Para ello, se emplea el sistema de
iluminacin, que se encuentra formado por la
fuente de luz segn un determinado esquema
de iluminacin, lo que en conjunto
proporciona unas condiciones de iluminacin
determinadas.
Hay que tener en cuenta que el
problema de iluminacin no resulta trivial y
su coste supone una parte importante del
total del proyecto.
1.2.1 Fuentes de luz
Entre la multitud de fuentes de luz existentes, las ms utilizadas son:
Fluorescente de alta frecuencia
1
: no ofrece demasiada luz y presenta deriva con el tiempo,
pero su precio econmico y su adaptabilidad tanto en forma como en color los hacen
atractivos.
Halgena: presenta gran luminosidad, pero desprende calor, su luz es caliente y su precio
es caro. Adems, presentan envejecimiento.
1 Deben emplearse fluorescentes de alta frecuencia dado que los estndar producen un efecto parpadeo en
la imagen que la hace inservible.
1
Dentro de la reflexin de la luz se distingue
entre reflexin especular, donde el rayo
incidente es reflejado en una nica direccin, y
reflexin difusa, donde los rayos incidentes
son dispersados en mltiples direcciones.
En la reflexin directa el ngulo de incidencia
es igual al ngulo de reflexin:
0
i
=0
r
Visin artificial
Xenn: presenta an mayor luminosidad, aunque los mismos inconvenientes, y un precio
an mayor.
LED: admite multitud de configuraciones y estn disponibles en multitud de colores, son
estables, duraderos, funcionan en baja tensin, aunque su precio es elevado.
LSER: permiten generar patrones de iluminacin.
1.2.2 Esquemas de iluminacin
Los principales esquemas de iluminacin son:
Iluminacin posterior difusa (Backlight): mediante la iluminacin difusa por la parte
posterior del objeto se obtiene una imagen de alto contraste, donde la silueta oscura de los
objetos se ve resaltada frente al fondo blanco, y por tanto resulta adecuado para medir la
forma de los objetos.
Iluminacin difusa direccional: emulando a la luz
natural pero sin variaciones se emiten los rayos
paralelos y en una direccin determinada para
lograr una iluminacin uniforme.
Iluminacin omni-direccional difusa: consigue
una imagen libre de sombras y con gran contraste,
gracias a que el objeto es iluminado desde todas
direcciones con luz difusa. Para ello se emplea una
superficie reflectante de forma semiesfrica llamada domo, que acta como fuente de
iluminacin al reflejar la luz, con lo que se logra eliminar las sombras y reflejos, y se
aumenta el contraste, suavizando las texturas y minimizando la influencia de las rayas, el
polvo y los relieves, as como de las curvaturas que pueda tener el objeto inspeccionado.
Se emplea en la deteccin de marcas de diferentes colores, caracteres y deteccin de todo
lo que suponga un cambio de color tanto en superficies lisas, esfricas, rugosas o con
brillo.
Iluminacin direccional lateral (Grazing): resalta la textura de los objetos o aquellas
caractersticas salientes, dado que al incidir la luz con un ngulo muy pequeo slo ser
reflejada hacia la cmara cuando se encuentre algn saliente. Por tanto, resulta til para
resaltar protuberancias y hendiduras de la superficie del objeto.
Iluminacin con luz polarizada: puede servir para eliminar brillos de objetos brillantes,
como en el caso de una bolsa de patatas, dado que los filtros que se instalan en iluminacin
y cmara impedirn que la luz que no provenga de la fuente de iluminacin, y que por tanto
presentar distinta polarizacin, sea capturada por la cmara.
Iluminacin estructurada: mediante la proyeccin de puntos, franjas o rejillas de luz
sobre la superficie de trabajo se establece un patrn que permite extraer las caractersticas
dimensionales del objeto por medio de la medicin de la distorsin que sufre dicho patrn
de luz ante la presencia de un objeto. Uno de los sistemas ms conocidos consiste en la
2
Cmara
Domo
Luz
Objeto
Visin artificial
iluminacin con un haz lser plano, de modo que al situarse en un ngulo conocido
respecto a la cmara, la lnea proyectada y distorsionada por la presencia de un objeto
presentar un determinado desplazamiento segn la profundidad a la que se encuentre el
punto, permitiendo de este modo conocer su posicin en el espacio, y finalmente
reconstruir el objeto 3D mediante tcnicas de computacin.
Montajes con espejos: los montajes realizados con espejos permiten ver distintas partes de
un objeto en una misma imagen.
1.3 Captura de imagen
En la captura de imagen intervienen las
cmaras y las tarjetas de adquisicin de imagen,
estando las cmaras, al igual que el ojo humano,
formadas por una lente convergente que proyecta la
imagen sobre una superficie sensible a la luz
denominada sensor de imagen.
1.3.1 Sensores digitales de imagen
Los sensores digitales de imagen estn
formados por una serie de elementos fotosensores
(sensibles a la luz) que modifican su seal elctrica
segn la intensidad luminosa que reciben, lo que permite la captura de los puntos que conforman la
imagen.
Estos sensores suelen estar configurados en forma matricial de modo que proporcionan una
imagen bidimensional.
A nivel industrial tambin se emplean los sensores con configuracin en lnea, dada sus altas
resoluciones, cuando los objetos se sitan en superficies en movimiento para aplicaciones de
medida (metrolgia).
Con objeto de reducir costes suelen existir en el mercado multitud de cmaras que emplean
lo que se conoce como imagen entrelazada, donde se capturan por un lado las lneas pares y por
otro las impares, con lo que al hacerse en instantes de tiempo diferentes no pueden ser empleadas
con objetos en movimiento.
Los sensores son realizados en dos dos tecnologas, principalmente en CCD y en CMOS.
Sensor CCD
La tecnologa CCD (Charge Coupling Device) es la que proporciona una mejor imagen,
sobre todo en el caso de las cmaras profesionales en las que se emplea un sensor para cada color,
mientras que en las de consumo se emplea un nico sensor, de modo que este est constituido como
un mosaico de detectores de colores y por tanto captura una menor densidad de puntos. Cuando el
sensor ha capturado la imagen enva la informacin completa serializada fila a fila.
3
Visin artificial
Sensor CMOS
La tecnologa CMOS es la ms econmica, y ofrece un menor tamao, gracias a su grado de
integracin electrnica. Adems, puede capturar partes de la imagen, no teniendo que transmitirla
completamente.
Caractersticas
A la hora de seleccionar una cmara hay que tener en cuenta una serie de caractersticas, y
entre las principales se destacan:
Resolucin: nmero de pxeles que conforman la imagen capturada.
Sensibilidad: nivel mnimo de iluminacin que puede capturar el sensor.
Rango dinmico: margen de luz (intensidad luminosa) que puede capturar el sensor, o sea,
diferencia mxima entre luz y oscuridad que puede distinguir.
Seal/ruido y Smear: influencia entre pxeles.
Velocidad: velocidad mxima a la que puede capturar imgenes, siendo su medida en
frames por segundo [fps].
1.3.2 Objetivos
El objetivo tiene como funcin concentrar los rayos de luz, provenientes de los objetos a
visualizar, en un plano donde se formar la imagen para ser captada por el sensor.
Est formado por el diafragma, que controla la apertura y por tanto limita el haz de rayos
entrante, la lente, que enfoca el objeto, y el zoom, que permite variar la distancia focal (distancia al
objeto).
El diafragma permite regular la apertura del objetivo y con ello la luminosidad de la imagen.
Adems, aunque al cerrar el diafragma los rayos salen enfocados independientemente de la
distancia al objeto, entrar menos luz y por tanto la escena ser ms oscura, con lo que se requerir
un mayor tiempo de exposicin.
La lente viene caracterizada por la distancia focal (f), que es la distancia desde su centro
hasta el punto en el que convergen los rayos que llegan paralelos a ella. As, el aumento de la
distancia focal disminuye el campo visible y con ello la distancia de trabajo de la misma.
De este modo, el desenfoque se produce segn el objeto se aleja o acerca de la posicin
ideal, dado que la imagen dejar de formarse sobre el sensor, y por tanto cada punto de la imagen
no se corresponder con su elemento correspondiente del sensor. Para corregirlo, se cambia la focal
de la lente, lo que se traduce en variar la distancia entre lente y sensor.
4
Eje ptico
f
Lente
Diafragma
Visin artificial
Existen una clase de objetivos, llamados telecntricos, que permiten ver los objetos en
proyeccin ortogrfica; siempre y cuando sean ms pequeos que el dimetro de la propia lente.
Caractersticas
La dos caractersticas principales que definen un objetivo son:
Campo visible (FOV): es el rea visible por la lente para una cierta distancia de trabajo en
la que los objetivos aparecen enfocados.
Profundidad de campo (DOF): es el rango de distancias a las cuales los objetos se
encuentran enfocados.
Seleccin de la lente
Como la lente est muy cerca del
sensor frente a la distancia al objeto, se
aproxima la distancia focal (f) por aquella
que exista entre la lente y el sensor, de modo
que los rayos pasarn por el centro de la
lente.
As, si se desea que un objeto de
150x150 mm sea recogido por una cmara
con un sensor CCD 1/3 (3,6x4,8 mm) que se coloca a 400 mm del objeto, la distancia focal
mxima que permitira que el objeto entrase en la imagen capturada por el sensor, vendra dada por:
f
h
=
F
H

De tal modo que para que el objeto quepa en la imagen, la distancia focal mxima vendr
dada por la altura menor del sensor (h=3,6 mm), siendo H=150 mm la altura del objeto y F=400
mm la distancia.
Distancia focal: f = (3,6 400) / 150 = 9,6 mm
5
Lente de Fresnel: est compuesta por
microcurvaturas que le permiten, en teora, ser
igual de funcional que una lente de alta
curvatura. En la prctica se utilizan,
principalmente, para conseguir una fuente de
luz colimada (rayos paralelos) a bajo coste,
dado su ahorro de material.
f
F
Eje ptico
H
Sensor
Objeto
h
Lente
Procesado de imagen
2. Procesado de imagen
2.1 Introduccin
El procesado de imagen digital se aplica con multitud de propsitos, estando formado por el
conjunto de transformaciones y algoritmos que se aplican a una imagen. Ms concretamente, la
visin artificial consiste en la aplicacin de tcnicas de procesado de imagen y datos para extraer
informacin de las imgenes.
En este caso, y con el fin de proporcionar un camino que permita explorar diferentes
algoritmos de procesado de imagen, se recurre a su implementacin en Python.
La razn de utilizar Python se encuentra en su naturaleza de lenguaje interpretado, sencillo y
potente. Lo que lo convierte en un lenguaje de programacin especialmente indicado para el
prototipado rpido de algoritmos.
Para la realizacin de estos algoritmos de procesamiento de imagen se apoya en las libreras
numpy (clculo algebraico), matplotlib (representacin grfica) y opencv (procesamiento de
imagen).
import cv
from pylab import *
image = cv.LoadImage('parrots.png', cv.CV_LOAD_IMAGE_COLOR)
2.2 Imgenes digitales
Una imagen digital es un conjunto de puntos (pixels) ordenados en forma de matriz, donde
la informacin de cada pixel se encuentra contenida en la posicin correspondiente de la matriz,
cuyo tamao (size) viene dado por el ancho (width) y el alto (height) de la imagen.
6
Procesado de imagen
El valor de cada pixel se representa, normalmente, por medio de uno o varios valores de
entre 0 y 255 (un byte) dependiendo del modelo de color de la imagen. Donde, para imgenes en
color, lo normal es que cada pixel venga dado por un conjunto de tres valores que identifican el
nivel de intensidad de cada uno de los colores bsicos rojo, verde y azul (RGB, Red Green Blue).
As, la imagen en formato RGB de 24 bits, tambin llamada de color verdadero, presenta los
colores que deben ser directamente representados en el monitor, pudiendo llegar hasta un total de
16777216 de colores diferentes.
2.3 Transformaciones del espacio de color
Adems del formato RGB, existen otros muchos espacios de color con los que representar
los valores de los pixels de la imagen, como el de escala de grises (Luminance) o el HSV.
En procesamiento de imagen para visin por computador suele ser habitual trabajar con
imgenes en escala de grises, donde los valores RGB de cada pixel se convierten a su
correspondiente valor de luminosidad (L, Luminance); dado que reduce sustancialmente la cantidad
de datos a procesar, sin apenas asumir prdida de informacin.
L=0,299R+0,587G+0,114B
def rgb2gray(image):
"""Converts the image from RGB to gray scale."""
gray = cv.CreateImage(cv.GetSize(image), cv.IPL_DEPTH_8U, 1)
cv.CvtColor(image, gray, cv.CV_BGR2GRAY)
return gray
gray_image = rgb2gray(image)
7
Image
image(x,y)
(0, 0)
X
Y
width
height
Procesado de imagen
cv.SaveImage('gray.png', gray_image)
Tambin suele ser habitual utilizar el espacio HSV (Hue Saturation Value), donde el tono (H)
representa la fuerza del color, la saturacin (S) representa cuan lejos est el color del blanco puro, y
el valor (V) representa el brillo o iluminacin (intensidad) del color. Con lo que resulta apropiado
para obtener informacin independiente de las condiciones de iluminacin.
def hsv((b, g, r)):
"""Converts a RGB value to a HSV value."""
r = float(r) / 255
g = float(g) / 255
b = float(b) / 255
# Value
v = max([r, g, b])
# Saturation
if v > 0:
s = 1 - min([r, g, b]) / v
else:
s = 0
# Hue
if s > 0:
if v == r:
h = (g - b) / (6 * s)
elif v == g:
h = (b - r) / (6 * s) + 1.0/2
elif v == b:
h = (r - g) / (6 * s) + 2.0/3
else:
h = 0
return h, s, v
print hsv((37, 174, 103))
# Handles data as a numpy array matrix.
img = asarray(cv.GetMat(image))
8
Procesado de imagen
# Creates a new image that shows the HSV channels and the original
image.
w, h = image.width, image.height
H, S, V = zeros((h, w)), zeros((h, w)), zeros((h, w))
for j in range(h):
for i in range(w):
H[j,i], S[j,i], V[j,i] = hsv(img[j,i])
figure()
subplot(221)
imshow(H)
subplot(222)
imshow(S)
subplot(223)
imshow(V)
subplot(224)
imshow(img)
axis('off')
#show()
(0.4452125375697724, 0.7873563218390804, 0.6823529411764706)
def rgb2hsv(image):
"""Converts the image from RGB to HSV."""
hsv = cv.CreateImage(cv.GetSize(image), 8, 3)
cv.CvtColor(image, hsv, cv.CV_RGB2HSV)
return hsv
hsv_image = rgb2hsv(image)
cv.SaveImage('hsv.png', hsv_image)
hue_image = cv.CreateImage(cv.GetSize(image), 8, 1)
cv.Split(hsv_image, hue_image, None, None, None)
cv.SaveImage('hue.png', hue_image)
9
Procesado de imagen
2.4 Transformaciones de histograma
El histograma (histogram) es un modelo de la imagen que viene dado por las frecuencias
de aparicin de cada uno de los niveles de gris o color de la imagen.
import Image
from pylab import *
# Representa los histogramas de la imagen a color
fruit_image = Image.open('fruits.png')
h = fruit_image.histogram()
fruit_image = imread("fruits.png")
# Representa la imagen
figure()
subplot(121)
imshow(fruit_image)
# Representa los histogramas
subplot(333)
bar(range(256), h[0:256], ec='r', fc='r')
subplot(336)
bar(range(256), h[256:512], ec='g', fc='g')
subplot(339)
bar(range(256), h[512:768], ec='b', fc='b')
# Guarda el resultado
savefig('histogram.png')
10
Procesado de imagen
Es uno de los atributos de la imagen ms utilizado, tanto en procesado de imagen como en
visin por computador, dado que facilita informacin para realizar multitud de operaciones de
reasignacin de los valores de cada pixel de la imagen.
def histogram(image, bins):
"""Creates a histogram of the specified size."""
bins = [bins]
ranges = [[0, 255]]
hist = cv.CreateHist(bins, cv.CV_HIST_ARRAY, ranges)
cv.CalcHist([image], hist)
return hist

histogram = histogram(gray_image, 32)
print array(histogram.bins)
[ 7.68000000e+02 2.00000000e+00 5.20000000e+01 8.41000000e+02
2.25800000e+03 6.18800000e+03 1.38440000e+04 2.67480000e+04
2.41770000e+04 2.99970000e+04 3.72030000e+04 4.43790000e+04
4.13650000e+04 2.52110000e+04 2.20780000e+04 1.75470000e+04
1.49480000e+04 8.78900000e+03 6.50300000e+03 6.21400000e+03
5.71700000e+03 7.08500000e+03 8.44900000e+03 9.57200000e+03
8.66100000e+03 5.55600000e+03 4.91600000e+03 4.20500000e+03
3.58000000e+03 2.48900000e+03 1.51900000e+03 1.16400000e+03]
As, las transformaciones de histograma como el realce, la linealizacin y los ajustes de
brillo y contraste, son operaciones puntuales, que buscan mejorar la visualizacin o facilitar el
tratamiento posterior de la imagen por medio de la reasignacin de los valores de cada "pixel" de la
imagen, segn su valor original.
Negativo
El negativo, o vdeo inverso, es una transformacin de punto en la que se cambian los
valores oscuros por claros y viceversa.
11
Procesado de imagen
g x , y)=255 f x , y)
def negative(image):
"""Inverts the color values of the image."""
negative = cv.CreateImage(cv.GetSize(image), 8, 3)
cv.AbsDiffS(image, negative, [255, 255, 255])
return negative
#img = 255 asarray(cv.GetMat(image)) # As numpy array
negative_image = negative(image)
cv.SaveImage('negative.png', negative_image)
Imagen gamma
La imagen gamma resalta los valores oscuros y satura los claros, mejorando la percepcin en
imgenes oscuras, o a la inversa, segn el valor del exponente.
g x , y)= f x , y)
y
Pseudocolor
Se llama pseudocolor a la asignacin de un mapa de colores a una imagen en escala de
grises, o a la reasignacin del mapa de colores de una imagen a color (color falso), con lo que se
logra apreciar detalles de la imagen que debido a la limitacin del ojo humano (slo detecta unos
20 niveles de gris) pasaran desapercibidos.
Estiramiento del histograma
El estiramiento del histograma se emplea para mejorar el contraste de las imgenes, dado
que distribuye un intervalo del histograma de la imagen de modo que ocupe todo el rango de
valores, de tal modo que g(x,y) = 255 (f(x,y) a)/(b-a)), donde [a,b] es el intervalo de la imagen
que ser extendido.
Ecualizacin del histograma
Mediante la ecualizacin del histograma se intenta igualar la frecuencia de aparicin de
12
Procesado de imagen
todos los niveles de gris, mejorando el contraste de la imagen, aunque a veces, donde hay una
rampa en el histograma acumulado, puede provocar la aparicin de ruido.
def equalization(gray_image):
equalized = cv.CreateImage(cv.GetSize(gray_image), 8, 1)
cv.EqualizeHist(gray_image, equalized)
return equalized
equalized_image = equalization(gray_image)
cv.SaveImage('equalization.png', equalized_image)
2.5 Eliminacin de ruido
def gauss(image):
"""Filter to remove white noise."""
gauss = cv.CreateImage(cv.GetSize(image), image.depth,
image.nChannels)
cv.Smooth(image, gauss, cv.CV_GAUSSIAN, 5, 5)
return gauss
gauss_image = gauss(image)
cv.SaveImage('gauss.png', gauss_image)
El ruido tipo sal y pimienta (salt and pepper) es un tipo especial de ruido impulsivo, que
presenta un punteado caracterstico que lo hace fcilmente identificable y que se elimina mediante
el empleo del filtro de mediana. Este filtro presenta la ventaja de no eliminar los bordes como lo
hara un filtro de media, aunque resulta computacionalmente costoso debido a que requiere la
ordenacin de los valores de los puntos de la vecindad para calcular la mediana y as sustituir el
valor de cada pxel.
def median(image):
"""Filter to remove salt and pepper noise."""
median = cv.CreateImage(cv.GetSize(image), cv.IPL_DEPTH_8U,
image.nChannels)
13
Procesado de imagen
cv.Smooth(image, median, cv.CV_MEDIAN, 15)
return median
median_image = median(image)
cv.SaveImage('median.png', median_image)
El ruido coherente es aquel que presenta un patrn de comportamiento frecuencial, y se
elimina por medio del filtrado en frecuencia. Para esto, se realiza la transformacin en frecuencia
de la imagen por medio de la aplicacin de la transformada discreta de Fourier (DFT), y se le aplica
un filtro para eliminar el ruido.
2.6 Segmentacin
En la segmentacin se busca la separacin entre objetos y fondo (background), siendo lo
ms simple transformar la imagen a binaria segn un determinado umbral (threshold).
def threshold(image, thresh=None):
"""Binarizes the image from a threshold value."""
thr_img = cv.CreateImage(cv.GetSize(image), 8, 1)
if thresh:
cv.Threshold(image, thr_img, thresh, 255, cv.CV_THRESH_BINARY)
else:
cv.Threshold(image, thr_img, 0, 255, cv.CV_THRESH_OTSU)
return thr_img
threshold_image = threshold(gray_image, thresh=50)
cv.SaveImage('threshold.png', threshold_image)
14
Procesado de imagen
otsu_image = threshold(gray_image)
cv.SaveImage('otsu.png', otsu_image)
2.7 Deteccin de bordes
La identificacin de bordes (edges) o contornos, representa otro mtodo de segmentacin,
dado que un borde es toda regin de la imagen donde aparece una fuerte variacin del nivel de
intensidad entre pixels adyacentes.
A la hora de identificar un borde en una imagen, existen dos posibilidades matemticas,
aplicar un filtro basado en un operador gradiente o en un operador laplaciano. Donde la diferencia
estriba en que mientras que con el operador gradiente se obtienen los niveles de variacin entre
pixels, con el laplaciano lo que se obtienen son los puntos de inflexin de las variaciones de
intensidad, o sea, los cambios de tendencia.
15
Procesado de imagen
Sin embargo, operacionalmente, la deteccin de bordes consiste en la aplicacin de alguno
de los ncleos de convolucin (Sobel, Roberts, Laplaciano) diseado a tal efecto. Lo que permite
identificar las regiones en las que los pixels experimentan fuertes variaciones en sus niveles de
intensidad.
Uno de los operadores ms usados es el de Sobel, cuyo kernel de convolucin vara segn la
direccin de deteccin de los bordes.
|
1 2 1
0 0 0
1 2 1
|
o
|
1 0 1
2 0 2
1 0 1
|
[Sobel]
def sobel(image):
img = cv.CreateImage(cv.GetSize(image), cv.IPL_DEPTH_16S,
image.nChannels)
cv.Sobel(image, img, 1, 1)
cv.Convert(img, image)
return image
sobel_image = sobel(gray_image)
cv.SaveImage('sobel.png', sobel_image)
Otro kernel tpico es el del operador laplaciano, que es ms exacto que el gradiente en la
precisin del borde.
|
0 1 0
1 4 1
0 1 0
|
[Laplaciano]
def laplace(image):
laplace = cv.CreateImage(cv.GetSize(image), cv.IPL_DEPTH_16S,
16
Procesado de imagen
image.nChannels)
cv.Laplace(image, laplace, 3)
cv.Convert(laplace, image)
return image
laplace_image = laplace(gray_image)
cv.SaveImage('laplace.png', laplace_image)
Tambin existe la posibilidad de aplicar un algoritmo conocido como filtro de Canny, que
permite detectar un contorno ptimo de un pixel de ancho.
Este filtro consiste en la determinacin del borde ms probable bajo las condiciones de que:
debe detectar todos los contornos y solamente los contornos, la distancia entre el pixel sealado
como contorno y el contorno real debe ser tan pequea como se pueda, y un nico contorno debe
ser identificado por un nico pxel. De este modo la aplicacin del filtro de Canny produce un
mximo local donde existe un contorno, eliminando as los efectos del ruido.
def canny(gray_image, low_threshold, high_threshold):
img = cv.CreateImage(cv.GetSize(gray_image), cv.IPL_DEPTH_8U, 1)
cv.Canny(gray_image, img, low_threshold, high_threshold)
return img
canny_image = canny(gray_image, 155, 185)
cv.SaveImage('canny.png', canny_image)
17
Procesado de imagen
2.8 Operadores morfolgicos
Los operadores morfolgicos, que se basan en la matemtica morfolgica, suelen emplearse
en la mejora de los resultados de la segmentacin, ya que descartan o unen puntos que componen
los objetos presentes en una imagen segn un criterio de forma.
Para esto, las distintas operaciones morfolgicas emplean una estructura (ncleo) que define
la forma y tamao de la superficie mnima que compone el objeto. Y se definen dos operaciones
bsicas, erosin y dilatacin, que darn lugar a otras dos, apertura y cierre.
Con la erosin se seleccionan los puntos para los cuales el ncleo se encuentra totalmente
incluido en la imagen.
def erosion(image):
erosion = cv.CreateImage(cv.GetSize(image), cv.IPL_DEPTH_8U,
image.nChannels)
cv.Erode(image, erosion, None, 3)
return erosion
erosion_image = erosion(image)
cv.SaveImage('erosion.png', erosion_image)
18
Procesado de imagen
Con la dilatacin se seleccionan los puntos para los cuales el ncleo toca a algn punto de la
imagen.
def dilation(image):
dilation = cv.CreateImage(cv.GetSize(image), cv.IPL_DEPTH_8U,
image.nChannels)
cv.Dilate(image, dilation, None, 3)
return dilation
dilation_image = dilation(image)
cv.SaveImage('dilation.png', dilation_image)
Con la apertura se eliminan objetos pequeos y se suavizan los contornos generados por la
mala segmentacin, dado que est compuesto por una operacin de erosin seguida de una de
dilatacin.
19
Procesado de imagen
Con el cierre se cierran los huecos y aperturas del tamao del ncleo que presente el objeto,
dado que est compuesto por una dilatacin seguida de una erosin.
20
Localizacin y posicionamiento de objetos
3. Localizacin y posicionamiento de objetos
3.1 Contraste de modelos
El contraste de modelos ("Model Matching") permite calcular el grado de concordancia entre
los modelos de una imagen fuente y otra candidata, para ver cuan prximos estn sus histogramas,
y de este modo localizar el objetivo.
Entre las tcnicas disponibles para el clculo del grado de concordancia se puede destacar el
clculo del coeficiente de Bhattacharyya, que se aplica a histogramas normalizados con un nmero
idntico de clases. Dado que usando normalizacin, por medio de la divisin del nmero de
apariciones de cada valor de pixel entre el nmero total de pixels, se aade al histograma
invarianza de escala. Lo que significa que el mismo objeto con diferentes escalas tendr idnticos
histogramas.
As, dados los histogramas p y q, el coeficiente de Bhattacharyya se define como:
p=

u=1
m
.
p
u
q
u
[coeficiente de Bhattacharyya]
# Target Frecuency
pu = array([0.065, 0.114, 0.147, 0.065, 0.081, 0.049, 0.032, 0.016,
0.016, 0.049, 0.081, 0.114, 0.016, 0.032, 0.049, 0.065])
# Candidate Frecuency
qu = array([0.035, 0.124, 0.167, 0.045, 0.081, 0.049, 0.032, 0.026,
0.026, 0.049, 0.081, 0.124, 0.016, 0.032, 0.049, 0.035])
# Histograms
figure()
subplot(211)
21
Localizacin y posicionamiento de objetos
bar(arange(len(pu)), pu, facecolor='green')
subplot(212)
bar(arange(len(qu)), qu, facecolor='blue')
savefig('histrograms.png')
# Bhattacharyya coefficient
rho = sqrt(pu * qu)
print "+-----+-------+-------+-------------+"
print "| Bin | pu | qu | sqrt(pu*qu) |"
print "+=====+=======+=======+=============+"
for i in range(16):
print "| %3i | %.3f | %.3f | %.5f |" %(i+1, pu[i], qu[i],
rho[i])
print "+-----+-------+-------+-------------+"
print "Bhattacharyya Coefficient: %.4f" %(sum(rho))
+-----+-------+-------+-------------+
| Bin | pu | qu | sqrt(pu*qu) |
+=====+=======+=======+=============+
| 1 | 0.065 | 0.035 | 0.04770 |
| 2 | 0.114 | 0.124 | 0.11889 |
| 3 | 0.147 | 0.167 | 0.15668 |
| 4 | 0.065 | 0.045 | 0.05408 |
| 5 | 0.081 | 0.081 | 0.08100 |
| 6 | 0.049 | 0.049 | 0.04900 |
| 7 | 0.032 | 0.032 | 0.03200 |
| 8 | 0.016 | 0.026 | 0.02040 |
| 9 | 0.016 | 0.026 | 0.02040 |
| 10 | 0.049 | 0.049 | 0.04900 |
| 11 | 0.081 | 0.081 | 0.08100 |
| 12 | 0.114 | 0.124 | 0.11889 |
| 13 | 0.016 | 0.016 | 0.01600 |
| 14 | 0.032 | 0.032 | 0.03200 |
| 15 | 0.049 | 0.049 | 0.04900 |
| 16 | 0.065 | 0.035 | 0.04770 |
+-----+-------+-------+-------------+
Bhattacharyya Coefficient: 0.9737
As, el clculo del coeficiente de Bhattacharyya se encuentra en el rango entre 0 y 1, siendo
1 cuando los histogramas son idnticos.
3.2 Histogram backprojection
El "histogram backprojection" es una tcnica que se utiliza para localizar un objeto conocido
en una imagen a color, por medio del clculo de la probabilidad de cada "pixel" de pertenecer al
objetivo.
Para ello, se modela el objetivo ("target") a travs de su histograma de color y se proyecta
sobre la imagen, de tal modo que el resultado muestra la probabilidad de que un "pixel" pertenezca
al objeto.
La caracterizacin del modelo de histograma de color se lleva a cabo a travs de
agrupaciones o clases de valores ("bins") que permiten reducir los recursos de computacin,
aunque a costa de la consecuente prdida de precisin.
As, si el valor de un "pixel" RGB es 13, 232, 211, entonces significa que se corresponde con
la clase 0, 14, 13:
22
Localizacin y posicionamiento de objetos
def get_bin_index(value, bins):
"""Devuelve el ndice de la clase (bin) a la que pertenece el
valor (value).
"""
return value * bins / 256
pixel = array([13, 232, 211])
bins = 16
print get_bin_index(pixel, bins)
[ 0 14 13]
Mientras que la implementacin del histograma de color, que considerando nicamente 16
clases por color y est formado por 4096 valores (16x16x16), viene dado por:
def get_histogram_color(img, bins):
"""Devuelve el histograma de color de la imagen."""
hist = zeros((bins, bins, bins))
for i in arange(len(img)):
bin = get_bin_index(img[i], bins)
hist[bin[0]][bin[1]][bin[2]] += 1
hist = hist / len(img)
return hist
Una vez se tiene la implementacin del clculo de los histogramas de color, hay que calcular
los histogramas del objetivo (histT, target histogram) y de la imagen (histI, image histogram), para
poder realizar la proyeccin.
Dicha proyeccin consiste en asignar a cada valor de "pixel" de la imagen el correspondiente
a la probabilidad de que pertenezca al objetivo, de tal modo que histT[idx] / histI[idx], siendo idx el
ndice del contenedor al que pertenece el valor del "pixel" de la imagen.
As, la imagen de "backprojection" se obtiene como aquella donde el valor de cada "pixel" se
corresponde con dicho ratio.
23
Localizacin y posicionamiento de objetos
# Backprojection
target_img = Image.open('target.png')
image_img = Image.open('image.png')
imgT = array(target_img.getdata())
imgI = array(image_img.getdata())
# Histograma de color
bins = 8
histT = get_histogram_color(imgT, bins)
histI = get_histogram_color(imgI, bins)
# Backprojection image
width, height = image_img.size
imgB = zeros(width * height)
for i in arange(width * height):
idx = get_bin_index(imgI[i], bins)
imgB[i] = (histT[idx[0]][idx[1]][idx[2]] /
histI[idx[0]][idx[1]][idx[2]])
figure()
gray()
imshow(imgB.reshape(height, width))
savefig('backprojection.png')
#show()
As, los valores ms altos se corresponden con la mayor probabilidad de pertenecer al
objetivo, o sea, el objetivo viene dado por los "pixels" de valores ms brillantes, al igual que algn
ruido.
3.3 Posicionamiento de objetos
Una vez localizado el objetivo, normalmente habr que posicionarlo, devolviendo su
posicin y orientacin en trminos de coordenadas de la imagen.
Para ello suele ser habitual utilizar las caractersticas geomtricas del objeto segmentado, a
travs del clculo de los momentos, dado que pueden ser descritos simplemente como una funcin
de la intensidad de los pixels de la imagen.
24
Localizacin y posicionamiento de objetos
El momento de orden cero es el rea de la imagen. As que lo que necesitamos es
bsicamente los valores de intensidad de los pixels y las coordenadas x e y para encontrar los
momentos. Usando momentos, podemos encontrar el centroide o centro de gravedad de la imagen.
El centroide o centro de masas (
X
CM
,
Y
CM
) viene dado por:
(
X
CM
=

X
i
A
,
Y
CM
=

Y
i
A
)
Donde el tamao queda definido por medio del rea ( A ), que no es ms que el nmero
de pxeles que lo componen, y que tambin se utiliza para identificar el marcador, dado que ser el
mayor.
Se puede obtener la orientacin del marcador por medio de la determinacin de los ejes
principales de inercia, cuya direccin queda definida por medio del ngulo ( ), siendo aquel
que forman los ejes principales con respecto al sistema de referencia ( x , y ) situado en el
centro de masas.
tan 2=
2P
xy
I
x
I
y
Donde los momentos de inercia del blob respecto a los ejes x e y vienen dados por:
I
x
=

y
i
2
, I
y
=

x
i
2
Y, el producto de inercia por:
P
xy
=

x
i
y
i

Dado que la posicin de los pixels viene dada para el sistema de referencia absoluto (
X , Y ) de la imagen, habr que aplicar el teorema de Steiner para determinar los momentos
y el producto de inercia que hay que aplicar.
I
p
=I
CM
+Ad
p
2
De tal modo, que los momentos y productos de inercia quedan definidos a partir de aquellos
respecto al origen de la imagen, como:
25
Imagen
img(x,y)
(0, 0)
X
Y
width
height
x
y

(X
CM
, Y
CM
)
Localizacin y posicionamiento de objetos
I
x
=

Y
i
2
AY
CM
2
I
y
=

X
i
2
AX
CM
2
P
xy
=

X
i
Y
i
AX
CM
Y
CM
26
Seguimiento de objetos
4. Seguimiento de objetos
4.1 Introduccin
El seguimiento visual puede ser descrito como la identificacin de un objeto en un
fotograma de vdeo y su posterior seguimiento a travs de la secuencia. Siendo uno de los
algoritmos de seguimiento ms populares el llamado Meanshift Tracking Algorihm".
Este algoritmo, basado en segmentacin en color, permite el seguimiento de objetos por
medio de la bsqueda del mejor candidato en las posiciones vecinas de dos frames consecutivo,
realizando el seguimiento y proporcionando la localizacin del marcador.
En este mtodo, la identificacin del objeto se establece a travs del patrn de color que lo
identifica, con lo que, para que los resultados sean independientes de las condiciones de
iluminacin, habr que utilizar un modelo de color como el HSI (Tono, Saturacin, Intensidad), en
lugar del RGB.
As, una vez establecido y calculado el modelo de referencia en el frame actual, se busca el
modelo en el siguiente frame. Para lo cual se empieza en la posicin actual y se busca en las
posiciones vecinas del siguiente frame, hasta que se encuentra el mejor candidato segn una
funcin de mxima similitud, con la que se detiene el algoritmo y se empieza con el siguiente par
de frames.
4.2 Meanshif Tracking
El algoritmo de Meanshift Tracking, para el seguimiento de un objeto en una imagen, se
puede resumir a travs de los siguientes pasos:
1. Seleccionar el objeto en la imagen y crear el histograma del rea o ventana dentro de la
cual se encuentra el objetivo(target).
2. Segmentar el objeto usando backprojection, pero en lugar de buscar en toda la
imagen, proyectar en una determinada rea de bsqueda (ROI, Region Of Interest) para
reducir el riesgo de fallo del algoritmo de seguimiento.
3. Encontrar el centroide del objeto.
4. Obtener el siguiente frame y segmentar la seccin bajo la ventan de bsqueda
search window realizando la proyeccin de fondo del histograma.
5. Encontrar el centroide del objetivo y centrar la ventana de bsqueda sobre este.
6. Repetir desde el paso 4 hasta finalizar la secuencia de imgenes.
Se usa una ventana de bsqueda en torno al objeto original para optimizar la velocidad y
resultados del algoritmo. Esto significa que la probabilidad de que el seguidor se pierda por causa
de un objeto de similar coloracin en el fondo se reduce. Adems, al limitar el rea se incrementa la
velocidad de procesamiento, haciendo el tracker ms rpido.
27
Identificacin de un contorno rectangular
5. Identificacin de un contorno rectangular
5.1 Introduccin
Cuando se quiere obtener, independientemente de la posicin de la cmara, la imagen de un
plano delimitado por un contorno rectangular, como una hoja de papel o la pantalla de un
ordenador, se puede establecer la proyeccin que define la verdadera proporcin de la imagen
conocidas las dimensiones reales del rectngulo e identificndolo en la imagen.
Para identificar ese contorno rectangular se realiza un proceso de tres etapas:
1. Se aplica un operador tipo laplaciano para detectar los bordes existentes en la imagen.
2. Sobre la imagen de bordes, se identifican los bordes rectos por medio de la aplicacin de la
transformada de Hough para lneas.
3. Una vez obtenidas las lneas, se buscan aquellas que verifican las condiciones impuestas
por un contorno rectangular.
image = cv.LoadImage('background.png', cv.CV_LOAD_IMAGE_COLOR)
image_gray = rgb2gray(image)
image_laplace = laplace(image_gray)
image_threshold = threshold(image_laplace, 17)
# Hough
from math import pi, cos, sin
storage = cv.CreateMemStorage(0)
#lines = cv.HoughLines2(image_threshold, storage, cv.CV_HOUGH_STANDARD,
1, pi/180, 100, 0, 0)
#print lines
#for line in lines:
# rho = line[0]
# theta = line[1]
# a = cos(theta)
# b = sin(theta)
# x0 = a * rho
# y0 = b * rho
# pt1 = (cv.Round(x0 + 1000*(-b)), cv.Round(y0 + 1000*(a)))
# pt2 = (cv.Round(x0 1000*(-b)), cv.Round(y0 1000*(a)))
# cv.Line(color_dst, pt1, pt2, CV_RGB(255,0,0), 3, 8)
lines = cv.HoughLines2(image_threshold, storage,
cv.CV_HOUGH_PROBABILISTIC, 1, pi/180, 75, 50, 10)
for line in lines:
cv.Line(image, line[0], line[1], cv.CV_RGB(255, 0, 0), 1, 8)
cv.SaveImage('rectangle.png', image)
28
Identificacin de un contorno rectangular
5.2 Deteccin del contorno rectangular
Para la identificacin de contorno rectangular se aplica, sobre la imagen de bordes
binarizada, la transformada de Hough para lneas, para de este modo identificar las lneas rectas de
la imagen que permitirn encontrar las que conforman el contorno rectangular.
Tranformada de Hough para lneas
La transformada de Hough para lneas es una tcnica muy robusta que permite encontrar
puntos alineados en una imagen binarizada, o sea, detectar lneas rectas.
Una serie de puntos (x
i
, y
i
) alineados definen una lnea recta cuya ecuacin en la forma
explcita es y = mx + b. Con lo que cada recta del espacio de la imagen (X, Y) vendr dada por un
nico par (m, b) en el espacio paramtrico.
Debido a que tanto la pendiente de la recta (m) como el trmino independiente (b) tienden a
infinito cuando la recta tiene una posicin cercana a la vertical, en lugar de utilizar la ecuacin y =
mx + b se emplea la parametrizacin (, ), que define la recta en su forma polar:
= x cos + y sen
Por tanto hay que realizar una transformacin entre el plano de imagen (x, y) y el espacio de
parmetros (, ).
29
Identificacin de un contorno rectangular
Como por cada punto de la imagen podrn pasar un nmero infinito de rectas, y por tanto
podr presentar un conjunto infinito de parmetros, se toma un espacio de parmetros discretizado.
As, dado que dos puntos que estn sobre la misma recta presentarn un par de parmetros
comunes, si por cada punto perteneciente a la recta se genera un voto sobre un acumulador, se tiene
que el nmero de votos para un par de parmetros es el nmero de puntos perteneciente a esa recta.
Para ello, en la transfomada de Hough se crea una matriz de acumulacin A(i,j) que
subdivide el espacio paramtrico en una serie de intervalos que irn desde min a max, y desde min a
max, de tal modo cada celda (i,j) de la matriz contendr la probabilidad de que (
i
,
j
) sea una recta
de la imagen.
Dado que la parametrizacin (, ) se define desde el centro de la imagen, los intervalos de
valores posible para una imagen de tamao WxH vendrn dados por:
p
|
.W
2
+H
2
2

d
,
.W
2
+H
2
2

d
|

0 | 0,)
De este modo se toma un conjunto de ngulos 0 de prueba, resultado de dividir 90 veces
el intervalo [0, 180) , y con cada uno de ellos se calculan los valores de p para cada punto de
la imagen y se vota la celda de acumulacin A(i,j) correspondiente a (,), estando el intervalo [-d,
d] dividido en 100 partes, donde d es la mitad de la diagonal de la imagen.
Finalmente se tiene que las celdas de la matriz de acumulacin A(i,j), ms votadas, sern las
rectas ms probables, y siempre segn la precisin de las subdivisiones tomadas.
Algoritmo
// Descripcin del algoritmo
30
Imagen
img(x,y)
(0, 0)
X
Y
width
height
width/2
height/2

x
y
Identificacin de un contorno rectangular
1. Inicializar el acumulador a cero.
2. Para cada punto de la imagen calcular los posibles
valores de partiendo de los valores de .
= x cos + y sen
3. Incrementar la celda del acumulador correspondiente.
A(,) ++
4. Identificar las celdas con mayor valor.
5.3 Identificacin del contorno rectangular
Finalmente, para localizar los vrtices que definen el contorno rectangular, se buscarn entre
todas las lneas ms probables proporcionadas por la transformada de Hough aquellas primeras que
cumplan las siguientes condiciones:
La orientacin de dos lado vecinos debe diferir en al menos 20 (lados perpendiculares).
La orientacin de dos lados opuestos no debe diferir en ms de 20 (lados paralelos).
Los lados opuestos deben presentar un p diferente en al menos 40 pxeles.
31
Clculo de la homografa
6. Clculo de la homografa
6.1 Introduccin
Para establecer la correspondencia entre las coordenadas de la imagen y las reales se asume
que la cmara cumple con una perspectiva proyectiva (modelo pin-hole), de modo que la relacin
entre la proyeccin de un plano y su vista ortogonal viene dada por la homografa.
6.2 Homografa
Dado un punto (x, y) que se sita en la proyeccin del plano identificado en la imagen, el
punto correspondiente en la vista ortogonal de ese plano buscado (X, Y) viene dado por la relacin
que establece la matriz de homografa ( H ), de tal modo que:
\

X
Y
1
)
=

h
11
h
12
h
13
h
21
h
22
h
23
h
31
h
32
1
)

x
y
1
)
donde \ es un factor de escala distinto de cero que queda fijado al hacer h
33
=1 .
As, se tiene que para determinar H y con ella realizar la correccin de orientacin y posicin
que permita obtener la posicin real del marcador, basta con establecer la correspondencia entre los
cuatro pares de puntos, los determinados en la etapa anterior sobre la imagen, y los que representan
a los vrtices del contorno rectangular de dimensiones reales, quedando un sistema de ecuaciones
lineales con solucin nica, tal que:

x
1
y
1
1 0 0 0 x
1
X
1
) y
1
X
1
)
x
2
y
2
1 0 0 0 x
2
X
2
) y
2
X
2
)
x
3
y
3
1 0 0 0 x
3
X
3
) y
3
X
3
)
x
4
y
4
1 0 0 0 x
4
X
4
) y
4
X
4
)
0 0 0 x
1
y
1
1 x
1
Y
1
) y
1
Y
1
)
0 0 0 x
2
y
2
1 x
2
Y
2
) y
2
Y
2
)
0 0 0 x
3
y
3
1 x
3
Y
3
) y
3
Y
3
)
0 0 0 x
4
y
4
1 x
4
Y
4
) y
4
Y
4
)
)

h
11
h
12
h
13
h
21
h
22
h
23
h
31
h
32
)
=

X
1
X
2
X
3
X
4
Y
1
Y
2
Y
3
Y
4
)
32
v1
v2
v3
v4
Transformacin
proyectiva
V1
V3 V4
V2
Clculo de la homografa
Cada punto proporciona dos ecuaciones lineales para la solucin de los elementos de la
matriz H, con lo que conocidos 4 puntos se tiene una solucin exacta, ya que h
33
= 1.
6.3 Resolucin de sistemas de ecuaciones lineales
A la hora de resolver un sistema de ecuaciones lineales, la solucin pasa por aplicar alguno
de los mtodos existentes, pudiendo ser directo o iterativo segn las caractersticas del problema en
cuestin.
A
nn
x
n
=b
n
En este caso se opta por aplicar un mtodo directo , concretamente el mtodo de eliminacin
de Gauss con pivotacin parcial, con lo que se logra minimizar los problemas debidos a los errores
de redondeo. Esto se debe a que con este tipo de pivotacin se toma como pivote el elemento de
mayor valor absoluto de la columna.
Este es el mtodo ms sencilllo de resolucin de sistemas de ecuaciones lineales.
1. Eliminacin: consiste en reducir el sistema a uno triangular superior
2
.
2. Sustitucin: consiste en la obtencin de la solucin por medio del mtodo conocido
como sustitucin regresiva.
Otra opcin podra ser aplicar el mtodo de Gauss-Jordan, con el que se elimina la etapa de
sustitucin regresiva al eliminar los elementos a ambos lados de la diagonal.
2 Matriz que tiene todos sus coeficientes debajo de la diagonal iguales a cero.
33
Si se tuviesen ms de cuatro puntos, la matriz sera sobredeterminada y H tendra que ser
estimado en trminos de minimizacin, donde la mejor opcin pasara por aplicar el
mtodo de descomposicin en valores singulares (SVD), dado que facilita la obtencin de
una solucin ptima y robusta de un sistema de ecuaciones lineales, a pesar de que se
encuentre mal condicionado.
Anexo: Instalaciones robotizadas
7. Anexo: Instalaciones robotizadas
7.1 Introduccin
Las instalaciones robotizadas son aquellas que se encuentran formadas por una agrupacin
de elementos en torno a un robot constituyendo una clula de trabajo, que de forma autnoma
realizan una serie de tareas.
Siendo un robot un manipulador multifuncional reprogramable, capaz de mover materiales,
piezas, herramientas o dispositivos especiales, segn trayectorias variables, que son programadas
para realizar tareas diversas en aplicaciones de automatizacin industrial. Con todo esto resulta un
sistema mecnico, electrnico e informtico capaz de adaptarse a diferentes tipos de acciones en las
que concurren la polivalencia, autonoma, movilidad y gobernabilidad.
Un robot industrial est constituido por dos elementos principales, la unidad de control, y el
manipulador, de modo que mientras que la unidad de control proporciona la inteligencia del robot,
el manipulador es la parte mecnica encargada de realizar el trabajo.
Existen multitud de configuraciones del manipulador, de las que depende directamente el
volumen de trabajo y la movilidad del robot. Siendo las configuraciones ms utilizadas la articular
y la cartesiana, aunque tambin se emplean otras como la Scara, la cilndrica, la esfrica o la
paralela.
Los sistemas de visin artificial y los robots industriales suelen encontrarse ligados, como
sistemas complementarios, en aplicaciones de un alto grado de automatizacin y sofisticacin.
7.2 Fases del desarrollo de un proyecto
1. Definicin y especificacin de requerimientos: descripcin detallada de lo que debe hacer
el sistema.
2. Diseo: modelado, descripcin y especificacin de la solucin adoptada para la
implementacin del sistema.
3. Desarrollo, construccin e integracin: realizacin de los sistemas hardware, software y de
comunicaciones, e integracin y verificacin de los mismos. (tal vez la parte ms delicada
del proyecto)
4. Instalacin, validacin y puesta en servicio: tras el desarrollo del sistema se procede a su
instalacin y validacin. (mientras que verificar es comprobar que el sistema funciona,
validar es que lo hace cumpliendo los requerimientos especificados)
5. Explotacin, mantenimiento y mejora del sistema: se pone el sistema en produccin
corrigiendo las desviaciones que se produzcan y se aplica la mejora continua.
6. Retirada: la retirada de un sistema de produccin al final de su vida til puede ser un
problema si no ha sido contemplado desde la concepcin del proyecto.
34

You might also like