1
2 Sistemas Actuales SIMATIC VS 710 – the first intelligent digital PROFIBUS camera in the world! The ideal solution for distributed automation tasks with image processing System for the low-cost market below 10,000 DM ProVision ® – Windows 95 parameterization software for configuration of applications on a programming device/PC PC architecture in the camera is also the right platform for image processing experts involved in C programming Benefits: Errors are detected cost-effectively at an early stage – further expensive operations are avoided (intermediate checks instead of final check)
3 Sistemas Actuales ProVision - a simple Windows parameterization software for the SIMATIC VS 710
4 Sistemas Actuales System components of an image processing solution PCMCIA II Printer interface Processing unit Test station Lighting Test item CCD camera SIMATIC VIDEOMAT Keyboard Process interface Digital I/O SIMATIC bus serial RS 232 Mouse Monitor
5 Placa digitalizadora
6 Imagen capturada
7 3. Kit de procesamientos de imágenes desarrollado por el grupo GIA
8 Acumuladores
9 Listado (1)
10 Listado (2)
11 Listado (3)
12 Listado (4)
13 Listado (5)
14 4. Transformada de Hough
15 Transformada de Hough Transformada de Hough: Permite representar contornos tan complejos como se desee, siempre y cuando estos puedan ser parametrizables. El número de parámetros necesarios para describir el contorno condicionará la dimensión del acumulador en el espacio de votación. ContornoCantidad Par. parámetros Recta2 ,, Circulo3X,y,r Elipse52 puntos de la elipse y 3 del eje
16 Transformada de Hough La expresión de la recta es: = x. cos + y. sen con lo cual puede ser parametrizada en el espacio ( , ) es el ángulo de la perpendicular con el eje x [0,2 ] es la longitud de la perpendicular. Utilizo una matriz acumulador dada por matr[0][ ][ ] Siendo max = 100, entonces salta de a 3,6º
17 Transformada de Hough Para cada pixel que supere un cierto umbral realizo el calculo de las rectas que pasan por él, es decir calculo para cada uno de los , incrementando el acumulador que corresponde a cada recta. Ejemplo: punto(x,y) = (30,70) = 70º se obtiene: = 30*cos (70) + 70* sen (70)
18 Transformada de Hough Si es el primer pixel que analizo en la matriz acumulador tendría un 1 en cada punto marcado en la figura: Luego al analizar otro punto (ubicado en el circulo) resulta que una de las rectas que pasan por él tambien lo hace por el punto anterior.
19 Transformada de Hough Esto se ve reflejado en la matriz acumulador ya que tendrá valor 2 el parámetro correspondiente a dicha recta. Luego al seguir analizando la imagen el acumulador evoluciona incrementando mas las rectas de la imagen.
20 Transformada de Hough Al terminar obtenemos en la matriz acumulador sectores con mayor cantidad de votos, luego con una busqueda de máximos locales se puede obtener las rectas con mayor cantidad de votos, es decir las rectas mas largas contenidas en la imagen.
21 Transformada de Hough Problemas: El nª de votos que sirve de umbral varia con cada imagen diferente Aparecen rectas parásitas. Aplicaciones: Se puede extraer la distancia perpendicular al centro y el ángulo que tienen las rectas. Calcular la distancia entre dos rectas,ej: abertura de la puerta. Con el ángulo de una de las rectas se puede “enderezar” la imagen
22 Imagen original B mediana A 3 ; Le aplico el gradiente a la imagen original C grad A 4 5 ; Le aplico el gradiente a la mediana de la imagen original C grad B 4 5 ; Vemos que al reducir el ruido antes de realizar el gradiente, se puede realizar una mejor detección de bordes Transformada de Hough. Ejemplo
23 Rectas que obtuvieron mas de 100 votos. B hline C J 100 3 ; Rectas que obtuvieron mas de 80 votos. B hline C J 80 3 ; Transformada de Hough. Ejemplo Se aplica la Transformada de Hough de líneas.
24 5.1 Medición de distancias por Métodos Fotogramétricos
25 Mediciones a)Piso sin inclinación. b)Medición de la distancia sobre el nivel del suelo Medición de distancias: Se mide la distancia que existe entre el punto que indica el cursor y la cámara. Para ello es necesario de un análisis geométrico y una calibración que permite obtener las constantes necesarias para el calculo. Hipótesis Con la calibración se obtienen las constantes que permiten pasar de píxeles a metros y viceversa Para determinar la distancia: Píxeles Metros Para representar la distancia Metros Píxeles
26 Mediciones Objetivos: Proyectar la forma del robot en la pantalla para determinar si el camino esta libre de obstáculos Verificar que el robot puede pasar por un determinado lugar, como ser una puerta semiabierta Medición de distancias: Se mide la distancia que existe entre el punto que indica el cursor y la cámara. Para ello es necesario de un análisis geométrico y una calibración que permite obtener las constantes necesarias para el calculo.
27 Mediciones Ejemplo: Una caja con la forma a proyectar se coloca a una determinada distancia, en el punto objetivo (donde se quiere llegar con el robot) Se ubica el cursor en el punto objetivo sobre la pantalla, y se puede comprobar que la caja dibujada tiene las mismas dimensiones que la real ubicada en ese punto
28 Calculo de distancia Y Calibración: Con Yo y h obtengo . Luego con varias mediciones en las que se comparan metros con píxeles obtengo las constantes K1, K2 y K3. K1,K2 y K3 dependen de h y la inclinación de la cámara Datos: h: altura al lente de la cámara Yo: distancia en m a una referencia = arctg (Yo / h) PixY: ubicación del cursor PixX: ubicación del cursor PixYo: ubicación de la referencia en pixeles
29 Calculo de distancia Y Pixeles Metros = K1 * PixY Y= h * tang ( + ) D = h / cos ( + ) Metros Pixeles = arctg( Y/ h) - PixY = / K1 Datos: h, Yo, , PixYo, PixY, PixX, K1, K2 Incógnita: Y ó PixY
30 Calculo de distancia Y Datos: h, Yo, , PixYo, PixY, PixX, K1, K2, Y, D, Incógnita: X ó PixX
31 Calculo de distancia X Pixeles Metros = K2 * PixX X= D * tang ( ) Dist = (X 2 + Y 2 ) 1/2 Metros Pixeles = arctang(X / D) PixX = / K2 Datos: h, Yo, , PixYo, PixY, PixX, K1, K2, Y, D, Incógnita: X ó PixX
32 Calculo de altura H D’= ( D 2 + H1 2 + 2*D*H1*cos ( + ) ) 1/2 = arcsen ( H1/D’ * sen( + )) K3 = m * PixY + b PixH1 = / K3 K1, K2, m, b se deducen en la calibración Datos: h, Yo, , PixYo, PixY, PixX, K1, K2, Y, D, , H1, = + Incógnita: PixH1
33 5.2. Medición de distancias por Métodos Fotogramétricos (cont.)
34 Introducción yp fLx D Lx / D = f / yp
35 Mediciones yp = 107 pixels D = 60cm f = 356.66 pixels Lx = D. ( f / yp ) Lx = 199.99 cm E = 0.005 %
36 6. Medición de distancias por el Método de Moiré
37 Las franjas de Moiré aparecen visualmente cuando dos grillas implícitas en 2D se superponen rotadas entre sí por un cierto ángulo. En nuestro caso la grilla implícita es la matriz de la imagen digital de 256x200 px. Introducción
38 Medición de distancia Lx = D * f * M * cos / (n + 1 + e1 - e2) * T D: distancia de referencia en cm en el plano del objeto de referencia. Se forma por el segmento que une a dos puntos de referencia p1 y p2. F: distancia focal de la cámara digital medido en pixels M: factor de magnificación del dispositivo de adquisición de imágenes : ángulo formado entre las franjas de Moiré y el segmento de referencia n: cantidad de períodos completos de franjas de Moiré que atraviesan el segmento de referencia (1- e2) : fracción del período de franjas de Moiré que atraviesan el segmento de referencia al inicio y no forma parte del primer período completo. e1 : fracción del período de franjas de Moiré que atraviesan el segmento de referencia al final y no forma parte del último período completo. T : período completo medido en pixels de las franjas de Moiré. Se miden sobre la imagen empleando la Transformada de Fourier unidimensional
39 Método práctico (1)
40 Método práctico (2)
41 Método práctico (3) T = 7.27 px Frec = 22
42 Método práctico (4) Son datos reales, D = 60cm, distancia entre puntos de referencia F = 356.66 pixels, obtenido en forma práctica, M = 1,factor de magnificación El ángulo es de 4 , por lo tanto conocemos el cos , cuyo valor es 0.99756. T = 7.27pixels. En este caso, n = 15(1-e2) = 0e1 = 0 Lx = 195.76 cm Error% = 2.12 %
43 Set de Comandos a openbmp 1b.bmp ; b giro a 8 128 100 ; fsavebmp b 1m1.bmp ; a moire b 1 ; fsavebmp a 1m2.bmp ; b giro a 352 128 100 ; fsavebmp b 1m3.bmp ; a grad b 0 0 ; fsavebmp a 1m4.bmp ; b giro a 4 128 100 ; fsavebmp b 1m5.bmp ; q perfilx b 126 4 ; r ft1d q ; c ecual a ; fsavebmp c 1m6.bmp ; ver a ; ver c ; ver q ; ver r ;&
44 Referencias 1. Pablo Meilán, Anibal Laquidara y Mario Garavaglia. "Hidden grids, moiré patterns, and 3D metrology”, año 2001. 2. Mario Garavaglia y Anibal Laquidara. “Optoelectronic hidden grids and moiré patterns: basics and applications in distance measurement”, Optical Engineering, 40, 2510-2516, 2001.
45 7. Implementación y aplicaciones del grupo GIA Desarrollo de Kit de visión artificial. Adquisición y procesamiento de imágenes. Programación en ANSI C. Portable a diversos sistemas. Funcionamiento basado en PC o ejecutable desde un DSP. Posibilidad de operación a través de línea de comandos y procesamiento de archivos por lotes. Ejemplo de aplicación: Medición de distancias por método fotogramétrico y método Moiré
46 9. Aplicaciones futuras posibles
47 Giróscopo óptico Patrones de Moire ante rotaciones y traslaciones
48 Giróscopo óptico IMAGENMoiré DFT Red Neuronal Obtención de parámetros de la roto- traslación. Ángulo, unidades de traslación x,y,z
49 Detección de zonas libres de paso Detección de bordes y líneas + Morfología de imágen
50 Medición de distancias sin puntos de referencia en el plano objeto Iluminación del terreno con una grilla de leds (Visión estructurada) Imagen filtrada DFT Red Neuronal Distancia al obstáculo