Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Image recognition and 3d rendering

How hard would it be to take an image of an object (in this case of a predefined object), and develop an algorithm to cut just that object out of a photo with a background of varying complexity.

Further to this, a photo's object (say a house, car, dog - but always of one type) would need to be transformed into a 3d render. I know there are 3d rendering engines available (at a cost, free, or with some clause), but for this to work the object (subject) would need to be measured in all sorts of ways - e.g. if this is a person, we need to measure height, the curvature of the shoulder, radius of the face, length of each finger, etc.

What would the feasibility of solving this problem be? Anyone know any good links specialing in this research area? I've seen open source solutions to this problem which leaves me with the question of the ease of measuring the object while tracing around it to crop it out.

Thanks


Essentially I want to take a 2d image (typical image:which is easier than a complex photo containing multiple objects, etc.)

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

But effectively I want to turn that into a 3d image, so wouldn't what I want to do involve building a 3d rendering/modelling engine?

Furthermore, that link I have provided goes into 3ds max, with a few properties set, and a render is made.

like image 391
GurdeepS Avatar asked Jan 09 '09 21:01

GurdeepS


People also ask

What is 3D image rendering?

3D rendering generates a 2D image from a digital three-dimensional model or scene. Using the 3D data and image, the goal is to create a lifelike, photorealistic image. The entire process can be done using 3D rendering software, which uses data from 3D models to create the render.

What is difference between 3D and rendering?

Difference Between 3D Modeling and 3D Rendering. The main difference between 3D modeling and 3D rendering is that they are two separate steps within CGI (Computer Generated Image) creation. That is, in order to create a 3D render, you must first have objects that are 3D modeled.

What is 3D rendering and visualization?

3D Rendering is a Part of 3D Visualization The process of 3D visualization transforms a 3D model into its matching real-life format. That's why it's a multi-step process that includes creating the view of an object in the 3D plane.

What is rendering in CGI?

Rendering or image synthesis is the process of generating a photorealistic or non-photorealistic image from a 2D or 3D model by means of a computer program. The resulting image is referred to as the render.


2 Answers

It sounds like you want to do several things, all in the domain of computer vision.

  1. Object Recognition (i.e. find the predefined object)
  2. 3D Reconstruction (make the 3d model from the image)
  3. Image Segmentation (cut out just the object you are worried about from the background)

I've ranked them in order of easiest to hardest (according to my limited understanding). All together I would say it is a very complicated problem. I would look at the following Wikipedia links for more information:

Computer Vision Overview (Wikipedia)

The Eight Point Algorithm (for 3d reconstruction)

Image Segmentation

like image 92
Carlos Rendon Avatar answered Oct 10 '22 00:10

Carlos Rendon


You're right this is an extremely hard set of problems, particularly that of inferring 3D information from a 2D image. Only a very limited understanding exists of how our visual system extrapolates 3D information from 2D images, one such approach is known as "Shape from Shading" and the linked google search shows how much (and consequently how little) we know.

Rob

like image 27
RobS Avatar answered Oct 10 '22 00:10

RobS