2009-01-09 624 views
5

Qué tan difícil sería tomar una imagen de un objeto (en este caso de un objeto predefinido) y desarrollar un algoritmo para cortar ese objeto de una fotografía con un fondo de complejidad variable.Reconocimiento de imágenes y representación en 3D

Además de esto, el objeto de una foto (por ejemplo, una casa, automóvil, perro, pero siempre de un tipo) tendría que transformarse en un render 3d. Sé que hay motores de renderizado 3D disponibles (a un costo, gratis o con alguna cláusula), pero para que esto funcione, el objeto (tema) debería medirse de muchas maneras, por ej. si se trata de una persona, necesitamos medir la altura, la curvatura del hombro, el radio de la cara, la longitud de cada dedo, etc.

¿Cuál sería la viabilidad de resolver este problema? ¿Alguien sabe algún buen enlace especial en esta área de investigación? He visto soluciones de código abierto para este problema, lo que me deja con la cuestión de la facilidad de medir el objeto mientras lo trazo para recortarlo.

Gracias


Esencialmente me quieren tomar una imagen en 2D (imagen típica: que es más fácil que una foto complejo que contiene varios objetos, etc.)

http://benmartin3d.com/WIP/Project1/image1small.jpg,

Pero efectivamente Quiero convertir eso en una imagen en 3D, entonces ¿no sería lo que quiero hacer construir un motor de renderizado/modelado 3D?

Además, ese enlace que he proporcionado entra en 3ds max, con algunas propiedades establecidas, y se realiza un renderizado.

+0

Parece que puede tener información/restricciones adicionales que no está compartiendo. En primer lugar, para hacer la reconstrucción necesita al menos dos imágenes. En segundo lugar, la reconstrucción misma no dice nada sobre la escala. Para determinar el tamaño de algo en una imagen, debe tener una referencia. –

+0

No, en absoluto. Simplemente no sé nada sobre este campo (ser desarrollador web general en primer lugar). Es por eso que estoy obteniendo opiniones aquí e investigando el problema antes de escribir una sola línea de código para resolver este problema. – dotnetdev

Respuesta

4

Parece que quiere hacer varias cosas, todas en el ámbito de la visión artificial.

  1. reconocimiento de objetos (es decir, encontrar el objeto predefinido)
  2. Reconstrucción 3D (hacer que el modelo 3D de la imagen)
  3. segmentación de imágenes (cortar simplemente el objeto que está preocupado desde el fondo)

Los clasifiqué en orden de más fácil a más difícil (según mi entendimiento limitado). Todos juntos diría que es un problema muy complicado. Me gustaría ver en los siguientes enlaces de Wikipedia para más información:

Computer Vision Overview (Wikipedia)

The Eight Point Algorithm (for 3d reconstruction)

Image Segmentation

+1

La segmentación de imágenes no es difícil, si puedes asumir que lo que estás segmentando obedece a ciertas reglas. El ejemplo que recuerdo de la escuela fueron granos de arroz fotografiados mientras avanzaban a lo largo de una cinta transportadora. A través de la segmentación, su tamaño y calidad podrían medirse. –

+1

Estoy de acuerdo en que la segmentación puede ser simple en un entorno altamente restringido, como una fábrica con objetos muy homogéneos. Pero en general, el problema de segmentar objetos es difícil. –

0

Asumiendo que es posible, que sería extremadamente difícil, sobre todo con una sola imagen del objeto. El rasterizador tiene que adivinar la profundidad y las distancias de los objetos.

Lo que describes suena muy similar a Microsoft PhotoSynth.

1

Tiene razón este es un conjunto extremadamente difícil de problemas, particularmente el de inferir información 3D de una imagen 2D. Solo existe una comprensión muy limitada de cómo nuestro sistema visual extrapola información 3D de imágenes 2D, uno de estos enfoques se conoce como "Shape from Shading" y la búsqueda de google enlazada muestra cuánto (y, en consecuencia, tan poco) sabemos.

Rob

1

Esta es una tarea muy difícil. La parte más difícil es no reconocer ni segmentar el objeto de la imagen, sino inferir la geometría tridimensional del objeto a partir de la imagen bidimensional. Tendrás más éxito si puedes usar una cámara estereoscópica (o un escáner láser, si tienes acceso a uno;).

Para el caso de imágenes en 2-D, intente buscar en Google "forma-de-sombreado". Este es un método para inferir la forma tridimensional a partir de una imagen bidimensional. Hace suposiciones sobre las condiciones de iluminación y las propiedades de la superficie (BRDF y geometría) que pueden fallar en muchos casos, pero si lo usa solo para una clase predefinida de objetos (por ejemplo, rostros humanos) puede funcionar razonablemente bien.

Cuestiones relacionadas