¿Cómo obtener el tamaño real de un objeto de una imagen, cuando no se conoce la distancia entre el objeto y la cámara?


Tengo que hacer una aplicación móvil que calcula el tamaño real de un objeto en una imagen.

He hecho algunas investigaciones al respecto y he encontrado útil [pregunta]: ¿Cómo encontrarías la altura de los objetos dados a una imagen?

La relación entre la distancia de la cámara y el tamaño real del objeto en realidad no es tan compleja, la relación entre el tamaño del objeto en el sensor y el tamaño del objeto en la vida real es la misma que la relación entre la longitud focal y distancia al objeto.

distance to object (mm) = focal length (mm) * real height of the object (mm) * image height (pixels)
                          ---------------------------------------------------------------------------
                          object height (pixels) * sensor height (mm)

Pero ¿cómo obtener el valor de la altura real del objeto si la distancia no se conoce?

¿Las herramientas que crean modelos 3d a partir de imágenes tienen dimensiones reales?

Author: Community, 2012-03-30

1 answers

La respuesta simple es no puedes.

Por cierto, esta es la razón por la que los humanos tienen dos ojos. Si quieres juzgar el tamaño sin una distancia conocida, necesitarás al menos dos puntos de referencia. Esto le permite triangular la posición del objeto, obtener una distancia a él y usar su distancia focal conocida para calcular el tamaño.

La respuesta más compleja es hay formas de evitar esto por ejemplo:

  1. Engañar mediante el uso de un conocido referencia:

    Por ejemplo, si tiene un objeto de tamaño conocido, puede inferir la distancia. Esto es similar a lo que hace la NASA para calibrar sus cámaras, por ejemplo.

    Puede hacer suposiciones seguras si está tratando con objetos comunes, como la altura de un piso al analizar la imagen de un edificio.

  2. Mueve tu cámara:

    Esto le permite obtener más de un punto de referencia con la misma cámara.

    Supongo que podría usar el acelerómetro para medir con precisión la relación posicional entre la imagen capturada en el punto T1 en el tiempo y el punto T2. Esto te daría dos imágenes del mismo sujeto con una distancia conocida entre ellas. Esto te permite triangular como si tuvieras dos ojos.

    Si el nerviosismo normal de la cámara de mano será suficiente para la triangulación, o si el acelerómetro será lo suficientemente preciso para posicionar inercialmente el teléfono, no saber.

  3. Supongamos una distancia:

    Si tu aplicación está diseñada para comparar algo en la escala de una mano humana (u otra parte de la anatomía humana), probablemente puedas asumir con seguridad una distancia basada en lo que la gente hará naturalmente. Los límites de enfoque de la propia cámara también darán un rango superior e inferior sobre cuán lejos puede estar un objeto y aún estar enfocado. Esto probablemente estará dentro de un margen de error tolerable.

Como usted menciona en su pregunta, hay un subcampo completo dedicado a esta pregunta, y es un área de investigación activa .

 29
Author: brice,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-30 09:45:33