2011-08-17 37 views
9

Quiero medir la distancia a un objeto utilizando un teléfono con cámara estereoscópica en 3D con opencv. Estoy buscando una fórmula que mida la precisión de la medición de distancia, dependiendo de la distancia focal, la distancia entre las 2 cámaras, la resolución de la imagen y el tamaño del objeto medido. googlear un poco, he encontrado esta fórmula:precisión del mapa de profundidad de opencv

d = Z^2 * p/(f * b)

Z - Distancia al objeto, p - exactitud disparidad, f - longitud focal, b - línea de base (distancia entre cámaras).

Conozco la línea de base y la distancia focal, pero no sé la precisión de la disparidad. ¿Es esta fórmula lo que necesito? Si es así, ¿cómo puedo encontrar la precisión de disparidad?

Gracias.

Respuesta

5

Si mira el párrafo después de la fórmula 8 en el document you link, puede ver que tienen una disparidad de precisión de 0.18 * 10^-6m. Leyendo un poco más, concluyo que la precisión de disparidad que utilizan es la distancia en m entre dos píxeles en el CCD de las cámaras utilizadas. Para un CCD de 1/4 "(que mide 3.2 mm por 2.4 mm) con resolución 640X480 (una cámara VGA muy vieja), este sería 5 * 10^-6. No sé cuál es el tamaño del sensor para el LG Optimus 3D es, pero suponiendo 1/4 "CCD y resolución horizontal de 2592 píxeles, la línea de base para la precisión de disparidad sería: 1.23 * 10^-6, proporcionando una precisión de profundidad a 10 m de aproximadamente 0.85 m. Lo cual me parece razonable. Si el CCD es más pequeño, mejorará (es decir, el valor de precisión disminuirá).

Este es el valor más bajo posible que asume la coincidencia perfecta de las funciones entre las dos imágenes estéreo. Este valor solo representa las limitaciones físicas de su par estéreo.

+0

Gracias. Estoy tratando de obtener una estimación aproximada de este valor para ver si mi proyecto es factible. El teléfono al que me dirijo actualmente es LG optimus 3d. Su distancia focal es de 6 mm y su línea base es de 24 mm. Quiero calcular el error de medición de distancia a 10 metros. Incluso si supongo que el error de disparidad es solo 1 píxel, esto no tiene sentido (¿o sí?) d = 10000^2 * 1/(24 * 6) = ~ 694 metros ... ¿Qué soy? haciendo mal? – barisdad

+0

OK, Mi primer error es que esto no está en metros. Pero todavía no entiendo lo que significa. – barisdad

+0

... y mi segundo error es que este valor está claramente por debajo de 1 (es una relación y no un valor de píxel). ¿Qué podría ser una estimación del valor de disparidad de un automóvil a 10 metros? – barisdad

11

Me doy cuenta de que esto es un año tarde, pero por si alguien lo encuentra.

La fórmula es la siguiente:

dD = dd * D^2/fB

donde:

  • error dd = disparidad
  • dD = profundidad error
  • D = profundidad
  • f = distancia focal
  • B = línea de base

si f = 6mm = 0.006m, B = 24mm = 0.024m, D = 10m, dd es de 1 píxel [llamémosle P por ahora, pero es por lo general alrededor 1.4um].

Enchufar todos los números en da:

dD = P * 10^2/(0.006 * 0.024) ~ 694444 P

Para P=1.4um, dD = 0.97 m (que es aproximadamente 9,7%).

Ahora suponiendo que su correspondencia arroja un error de píxel único.Puede hacer una búsqueda subpíxel y, según el nivel de ruido y la textura de la imagen, puede obtener correspondencia precisa subpíxel. En ese caso, su precisión sería un poco mejor.

TEN EN CUENTA que esta fórmula es por error. El mapa entre disparidad y la profundidad es como sigue:

d = fB/D

donde:

  • d = disparidad
  • D = profundidad
  • f = longitud focal
  • B = línea de base

Del mismo modo, conectando los números en da:

d = (0.006 * 0.024/10) m = 0.0000144 m = 0.0144 mm = 14.4 um.

si supone que su tamaño de píxel es aproximadamente 1.4um, entonces 14.4um es de aproximadamente 10 píxeles. Esto es coherente con el error anterior, lo que significa que un error de 1 píxel representa aproximadamente el 10%.

Un automóvil que está a 10 metros de distancia se desplaza 10 píxeles entre los sensores izquierdo y derecho.

Espero que ayude.

+0

Hola @thang, mi pregunta es sobre el error de disparidad. ¿Se usa como un valor típico o se calcula a partir del conocimiento dado de los parámetros del sensor? –

Cuestiones relacionadas