• No results found

5.3 Objective 4: Best Management Practice (BMP) Design

5.3.5 Design Based on Surface Type

Se han escogido patrones circulares en vez de patrones lineales, porque en estos últimos es más difícil detectar las discontinuidades en piezas geométricas poliédricas que son en las que se han basado los experimentos y las formas que más se encuentran en los procesos de desensamblado que se han contemplado.

Figura 4-28: a) Deformación patrón láser al incidir sobre superficie de objetos. b) Preprocesado proyección de los haces.

Así, se ha decidido proyectar un haz de planos de luz formados por círculos concéntricos (Figura 4-28.a). La distancia de la cámara a la escena ha sido escogida de modo que se abarque la mayor área posible; y de este modo evitar la necesidad de mover el sistema cámara-láser para escanear toda la superficie deseada. Para ello se han empleado una cámara CCD y un láser LASIRIS SNF de 660nm de 20mW de potencia y con un ángulo de apertura de 15º y separación de 0.77º entre líneas. Aunque para la realización de las pruebas que aquí se comentan se ha montado en un trípode fijo, más adelante se verá su utilidad, montada sobre el extremo de un robot, en una configuración ‘eye-in-hand’ típica de control visual.

Aproximación de los contornos de los patrones circulares

Una vez se ha producido la proyección de los haces sobre la superficie de los objetos. El primer paso, consiste en extraer el contorno del patrón. Para ello, en primer lugar, se ha optado por realizar un proceso de suavizado Gaussiano 3x3 que reduzca el ruido producido por los haces del láser al incidir en superficies excesivamente reflectantes. Este tipo de suavizado garantizará, además, la eliminación de pequeños reflejos causados por las imperfecciones de la lente difractiva del láser, que en algunas ocasiones hace que cada uno de los círculos concéntricos proyectados no tengan la definición adecuada en sus bordes. También, este tipo de suavizado permitirá eliminar el ruido propio del proceso de captura y adquisición de una imagen con una cámara analógica y su tarjeta de digitalización.

Capítulo 4. Detección de oclusiones

-109-

A continuación, se binariza la imagen con un umbral adecuado de acuerdo a la longitud de onda del láser con el que se trabaja 660nm. En este caso experimentalmente se ha considerado un umbral de saturación U=70, para extraer únicamente la información de contorno procedente del patrón láser. Posteriormente, se esqueletizan levemente estos contornos, simplemente para reducir el grosor de cada haz (Figura 4-28). Con ello, se pretende reducir el número de puntos que definen un contorno, a los más significativos, que serán todos aquellos que se encuentran más alejados de los bordes de esos contornos. Una esqueletización en exceso puede producir perdida de información y aparición de falsas discontinuidades. Y, a continuación, se detecta la proyección de los haces circulares en la imagen mediante convolución de la imagen binaria con máscaras de 8-conectividad. Así, se buscan los píxeles que definen cada contorno y que corresponden a los puntos 2D que forman cada una de las proyecciones de un haz.

Una vez se han detectado los contornos, como un conjunto de puntos es necesario aproximar cada uno de esos contornos por algún tipo de primitiva geométrica que defina el contorno, y le procure una serie de propiedades. Propiedades que más adelante se emplearan para diferenciar unos contornos de otros. Se ha escogido como método de aproximación para determinar la representación de cada contorno circular, una aproximación poligonal.

La ventaja de emplear una aproximación poligonal radica en dos objetivos básicos: Por un lado obtener una representación sencilla de cada contorno que permita un proceso de comparación entre contornos rápido y eficiente. Y por otro, busca reducir el número de puntos de interés detectados en la etapa de extracción de contornos. De este modo, se consigue que la proyección del haz, sólo venga representada por un conjunto mínimo de puntos de interés definiendo una forma más estable para representarlo, que el conjunto de todos los puntos que inicialmente formaban el contorno (Figura 4-30).

El método empleado de aproximación se basa en el algoritmo de Douglas-Peucker [Douglas- 1973][Hershberger-1993]. Dónde, cada contorno se aproxima por una poli-línea, Ps. Si se define un

contorno como Cs =

{

p1,p2,...,pn

}

que viene determinado por una secuencia de n puntos. Se puede

definir una poli-línea Ps, como la unión de segmentos l de grado uno.

{

}

1

{

(1 ) 1/0 1

}

1 1 1 1 = + − ≤ ≤ = − + = + − = ll tp t p t P i i n i i i n i s U U (4.8)

{

1... ≥2

}

= p p n Ps n (4.9)

El ajuste se basa en la representación de un conjunto de puntos por segmentos de borde donde la proximidad de cada punto al segmento de borde tiene que ser inferior a un factor de tolerancia ε que se toma como umbral de referencia. La proximidad se mide como un vector normal de distancia a cada segmento de borde candidato. El algoritmo comienza aproximando todos los puntos

de un mismo contorno Cs =

{

p1,p2,...,pn

}

mediante una poli-línea que une el primer y último punto del contorno Ps =l1 =

{

p1pn

}

. Se va midiendo, la distancia de cada punto intermedio pia la poli-línea,

y el punto más alejado con un factor de tolerancia superior a ε, es añadido al proceso de simplificación e interviene para formar una nueva poli-línea Ps =

{

p1pipn

}

que posteriormente quedará dividida en dos segmentos l1 =

{

p1pi

}

y l2 =

{

pipn

}

que compondrán Ps =

{

l1,l2

} {

= p1pipn

}

.

Así, se repite este proceso iterativamente, para cada contorno hasta que todos los puntos de la poli-línea están dentro del rango marcado por el factor de tolerancia. Si la distancia de un punto intermedio es menor que el valor de tolerancia, no es tomado en cuenta para la simplificación de la poli-línea (Figura 4-29).

Figura 4-29: Ejemplo de Aproximación de Douglas-Peucker.

El proceso de ajuste poligonal ha permitido aproximar los contornos del haz del láser de un modo más estable que un conjunto de puntos de contorno. Donde cada contorno está compuesto ahora por un número inferior de puntos mayor que dos, que es el número mínimo de puntos necesarios para definir un segmento.

Sin embargo, a pesar del preprocesamiento previo durante el proceso de detección de contornos, se han aproximado contornos por polígonos de pequeña longitud, y formados por un número de puntos pequeño. Este conjunto de contornos aún puede deberse a ruidos, datos espurios o puntos de contorno que aportan poca información, en la detección de discontinuidades de contorno. Por lo tanto, conviene filtrar los contornos aproximados para trabajar sólo con aquellos que tienen cierta longitud y están determinados por un número de puntos superior a tres Ps =

{

p1p2...pn n≥3

}

. Se escoge un mínimo de tres puntos, porque es necesario al menos tres puntos para determinar un polígono, o bien para definir un cambio de dirección.

Curva original Polilinea aproximada Polilinea aproximada Curva original Refinar ε

Capítulo 4. Detección de oclusiones

-111-

Figura 4-30: Ajuste poligonal de contornos.

Una vez depurados, es necesario renumerar los contornos candidatos, despreciando los que no son de utilidad porque no aportan información de discontinuidad importante o pueden llevar a confusión (Figura 4-31).

Figura 4-31: Distribución de los puntos críticos.

Una vez, las aproximaciones poligonales ya han sido filtradas, obtenemos únicamente los puntos de los extremos, que van a ser los puntos críticos que determinarán las zonas de discontinuidad,Ps =

{

p1pn n≥3

}

. Estas zonas de discontinuidad no son más que las regiones de rotura de las proyecciones de los haces de luz, al incidir sobre la superficie de los objetos. El conjunto de estos puntos delimitará una dirección de búsqueda de posibles oclusiones.

Posteriormente, se realiza un método de ajuste de los puntos críticos mediante líneas rectas. Estas líneas rectas definirán las regiones candidatas y la dirección adecuada para la búsqueda de posibles oclusiones (Figura 4-34).

Se ha empleado una aproximación de patrones basados en aproximación poligonal de Douglas-Peucker por dos factores fundamentalmente. El primero de ellos, radica en la rapidez de éste tipo de aproximación lineal, ya que para una curva formada por n puntos, es proporcional a nlog2(n).

Contornos originales Detalle de la aproximación

A

B C

Y el segundo, porque no es necesario disponer de un conocimiento a priori de datos sobre la curva. Aunque esta información podría considerarse no relevante, porque las curvas tienen un patrón definido, sí que puede serlo porque no se dispone de un conocimiento previo de cómo se deformará el haz de luz sobre la superficie de los objetos. Además, el algoritmo permite modificar el valor de tolerancia para ajustar con mayor o menor precisión y conseguir aproximaciones poligonales de los contornos más o menos complejas. Puesto que a mayor precisión, mayor número de puntos formarán parte de la poli-línea.

Agrupamiento de puntos: Clusterización

Para poder determinar cuántas líneas son necesarias para ajustar el conjunto de puntos críticos y determinar qué conjuntos de puntos críticos pertenecen a una u otra poli-línea de aproximación, se lleva a cabo un proceso de clusterización del conjunto de puntos críticos. Este proceso de clusterización permitirá agrupar los puntos críticos en función de dos parámetros: momentos inerciales [Teague-1980] y distancia [Chavez-1999]. Así cada contorno aproximado por una poli-línea

s

P tiene dos puntos críticos, cada uno de ellos deberá pertenecer a clusters distintos. Se entiende, que pertenecerán a clusters distintos porque formarán parte de dos roturas distintas del haz de proyección. Y, además, a cada uno de esos puntos críticos se le asocia los momentos espaciales y centrales de la poli-línea a la que pertenecen.

Los momentos espaciales de un contorno, determinado por una poli-línea, dependen del área y la posición que ésta ocupa en la imagen.

∫∫

= x y f x y dxdy

mp,q p q ( , ) (4.10)

A partir de los momentos espaciales, se pueden derivar los momentos centrales que son invariantes a la traslación de haces idénticos en la imagen, y no depende de la posición que las proyecciones que estos ocupan en la imagen.

∫∫

− −

= x xc p y yc q f x y dxdy

q

p, ( ) ( ) ( , )

μ (4.11)

Estos, se pueden calcular como una derivación de los momentos espaciales:

q p q p q p m m m m m m ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ ⋅ ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ − = 0 , 0 1 , 0 0 , 0 0 , 1 0 , 0 , , μ (4.12)

Y a su vez, a partir de los momentos centrales y con ayuda de las componentes del tensor inercial, se puede determinar la rotación de cada contorno, sobre su centro de gravedad, como:

Capítulo 4. Detección de oclusiones -113- 2 , 0 0 , 2 1 , 1 2 arctan 2 1 μ μ μ θ − = (4.13)

Para evitar la ambigüedad que se puede dar en la orientación en función del valor del ángulo, se han empleado los criterios mostrados en la tabla 4-2.

2 , 0 0 , 2 μ μ − μ1,1 θ Cuadrante + + θ =θ 0º<θ <45º + - θ =θ −45º<θ<0º - + θ =θ+90 45º<θ <90º - - θ =θ−90 −90º<θ <−45º

Tabla 4-2: Criterios de eliminación de ambigüedad en la orientación.

El parámetro de momentos inerciales se emplea para discernir entre puntos críticos que pertenecen a poli-líneas, y por lo tanto a contornos que tienen una misma orientación. De este modo, se puede suponer, lo cual parece lógico, que proyecciones de haces sobre una misma superficie de un objeto A tienen momentos inerciales similares. Sin embargo, los momentos inerciales, calculados para las proyecciones de los haces sobre la superficie de otro objeto B, que se encuentre solapado ocluyendo parte de A, difieren con respecto a los de A (Figura 4-31). Esto se debe a que cuando se produce una discontinuidad en los haces, esta discontinuidad provoca un cambio de orientación de los haces, y por lo tanto un valor de los momentos inerciales de los contornos que los definen en la imagen.

También, se ha empleado un parámetro de distancia para evitar que se agrupen como puntos de misma regiones candidatas, aquellos que pueden coincidir en momento, pero por falta de proximidad es posible que no pertenezcan a la misma región candidata. Así, se agrupan únicamente puntos críticos próximos entre sí, y cuyas poli-líneas a las que pertenecen tienen momentos similares. Se procede del siguiente modo:

Se calculan las distancias de cada punto crítico, al resto de puntos críticos, tratando de minimizar la distancia Minkowski L2, también conocida como Euclídea:

r j i r j i L p p d r / 1 , ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ − =

(4.14)

Y se obtienen n conjuntos de puntos del siguiente tipo: pi =

{

s1s2...sn

}

/0<i<n donde

{

s1s2...sn

}

son los puntos más próximos a piordenados en orden de proximidad. Y a continuación para

cada conjunto de puntos se obtiene la diferencia de momentos.

sj pi ij

dθ =θ −θ (4.15)

A partir de las distancias y la diferencia de momentos calculados para cada conjunto

{

n

}

i s s s

p = 1 2... , se realiza el proceso de clusterizado, almacenando juntos los puntos críticos de acuerdo al esquema de la figura 4-32, para evitar almacenar dos puntos críticos como pertenecientes a dos cluster o agrupaciones distintas.

Figura 4-32: Esquema de proceso de clusterizado.

El proceso de clusterizado consiste en numerar todos los puntos significativos o puntos críticos (Figura 4-31), que son todos aquellos puntos de los extremos de las poli-líneas aproximadas. Se toma un punto pi, se busca y comprueba que no éste almacenado. Si no está almacenado se almacena y se inserta como elemento de un cluster nuevo. Y si ya estaba almacenado, se buscan de entre los puntos s de mayor proximidad al punto i pi, los que tienen un momento similar dentro de un

rango de tolerancia.

De esta manera, dados dos puntos piysj, estos se podrán almacenar conjuntamente formando

parte de un cluster, únicamente si cumplen que dθijc, siendo ϕc la tolerancia angular permitida

para considerar como similar o distinta orientación.

En caso de que sí se cumpla el criterio de similitud de orientación habrá que comprobar si estos puntos se encuentran ya almacenados formando parte de un cluster o no es así. En el esquema de

Capítulo 4. Detección de oclusiones

-115-

la figura 4-32, se muestra cuando y cómo se almacenaría un punto piy/osj como parte de un cluster. En él se muestra cómo, si los puntos ya habían sido almacenados como parte de un cluster no se almacenan, y en caso de que alguno de ellos no forme parte de un cluster aún, pero el otro sí, entonces se guarda el punto no almacenado en el mismo cluster en el cual se encontraba el otro.

Analizando la distribución espacial de los clusters de los puntos críticos mostrados en la figura 4-31, se observa que conjugando parámetros como distancia y momentos inerciales, se pueden agrupar puntos que a priori podrían considerarse muy distintos entre sí (Figura 4-33.b), es decir pertenecientes a objetos distintos. En concreto, en la figura 4-33.a se observa cómo quedan agrupados los puntos críticos mostrando los clusters obtenidos en contraste con la posición que ocupan en la imagen. Y en la figura 4-33.b, se observa cómo se han agrupados los puntos críticos tomando no sólo la referencia de la posición sino también de los momentos.

200 300 400 500 600 700 150 200 250 300 350 400 450 500 200 300 400 500 600 700 100 200 300 400 500 -60 -40 -20 0 20 40 60 80

Figura 4-33: a) Representación 2D de los clusters. b) Representación 3D de los clusters.

Cálculo de las direcciones de discontinuidad

Para finalizar, una vez agrupados los puntos críticos mediante el proceso de clusterización. Se pueden definir las regiones candidatas como aquellas que contienen cada uno de los conjuntos de puntos calculados. Para determinar la dirección de búsqueda de esas regiones candidatas y su delimitación basta realizar un ajuste lineal por mínimos cuadrados que calcule los segmentos de recta que minimizan la distancia de Minkowski L1-L2 de cada uno de los conjuntos de puntos críticos al

segmento de recta (Figura 4-34).

Finalmente, en la figura 4-34 se observa el resultado de la clusterización de los puntos críticos y su posterior ajuste por segmentos de recta para delimitar regiones y direcciones de solapamiento u oclusión.

A

B C

a) b)

Posición punto en la imagen

Distancia [pí xe les] Filas en la imag en [p íx eles]

Figura 4-34: a) Escena real. b) Limitaciones posibles regiones de solapamiento calculadas.

Un pequeño estudio de los costes temporales de ejecución de este algoritmo de detección de oclusiones por discontinuidades se puede observar en el Anexo B.1.2. En dicho anexo se muestran los tiempos de ejecución para cada una de las fases de las que consta el algoritmo, las cuales ya han sido comentadas a lo largo de este apartado de la Tesis doctoral. Los tiempos de ejecución del orden de 0.2ms (ver Anexo B.1.2) permiten implementar el método conjuntamente con un sistema de control visual basado en imagen para la detección de discontinuidades como se comenta más adelante en el Apartado 4.2.2.2.

Experimentos.

En los experimentos que se detallan a continuación han sido empleados objetos sencillos de formas poliédricas. Las imágenes adquiridas se han realizado en formato CCIR de 768x576 píxeles y todas las imágenes han sido adquiridas con una cámara JAI CCD monocromo para evitar disponer de información de color.

Los resultados experimentales muestran satisfactoriamente y de modo coherente la detección espacial de las discontinuidades cuando éstas son causadas por solapamiento de objetos (Figura 4-35). Además es importante destacar, que el método propuesto permite trabajar correctamente, incluso en situaciones difíciles, en las cuales las discontinuidades no son causadas por solapamiento de objetos, en los que un objeto B oculta parte de otro A. Supóngase el caso en que se dispone de tres objetos uno B oculta parte de A, porque tiene un solapamiento (B se encuentra encima de A) y otro objeto C presente en la escena se encuentra en contacto o muy próximo al objeto A, pero sin ocultar parte de este en el campo visual de la cámara. La situación deseada sería que se pudiera detectar la discontinuidad causada por el solapamiento que produce una oclusión, pero que a su vez no se considerará en ningún caso la discontinuidad que no viene producida como consecuencia de una configuración de solapamiento con oclusión.

A

B C

Capítulo 4. Detección de oclusiones

-117-

En las figuras 4-35.b y 4.35.c se puede observar cómo únicamente las discontinuidades por solapamiento con oclusión son detectadas, y las discontinuidades, dónde no existe una oclusión entre dos objetos de la escena no son detectadas como tales. Este es el caso, en que dos objetos por su localización uno de ellos, B, obstruye parcialmente la vista de otro A, y a su vez ambos reposan sobre una mesa. De modo que habría una discontinuidad dónde las superficies visibles de B y A se encuentran, y a su vez, habría también discontinuidades en las regiones dónde las superficies de B y/o A se encuentran con la superficie de la mesa. En estos casos, sólo las discontinuidades entre superficies de objetos deben ser detectadas.

4.2.2.2. Detección de discontinuidad de superficies en un sistema de control visual con

Related documents