Technion - Israel Institute of Technology
Computer Science Department
Center for Graphics and Geometric Computing

Novel View Generation


[Introduction] [Solution] [Implementation] [User's Manual] [Results] [ References] [Authors]


Introduction:

This project focused on solving the problem of synthesizing novel images, from arbitrary viewing positions, given two reference images from the scene.
In order to generate the third image we use the camera's parameters (focal length, center ext.), camera's position (translation and rotation components) and corresponding points between the two source images.

 

[ top]


Solution:

Our solution involves three steps.

First, we compute the fundamental matrix between the two source images using an eight-points algorithm. This allows us to derive the relative translation and rotation between the two images. Using the derived translation and rotation plus what we already know (the relative translation and rotation from the first source image to the third desired image), we compute the fundamental matrix from the second source image to the third desired image.
Second, we compute the fundamental matrix between the first source image to the third desired image (in our case here, the relative translation and rotation between these two images have already been given as inputs).
The last phase is to take the two fundamental matrices and the corresponding points and compute the third desired image.
Note that all the computations are made at the third image's axes system. All synthetic images must be in a perspective mode.
The solution's scheme:

 

After generating the points of the desired image, we triangulate them according to Delaunay triangulation and match the texture according to the corresponding points.


Additional details (in Hebrew) see doc , pdf .

[ top]


Implementation:

1. Matlab code includes implementations of the problem's solution (function main) as explained above.
2. The viewer program is used to generate the input to the Matlab code: loads vrml files and generates images in different positions in perspective mode with texture.

[ top]


User's Manual:

Project implementation here.
1. Unzip code. zip file.
2. Run code/input/SimpleViewer.exe and load code/input/test.wrl example file.
4. Build three different images :

5. Open Matlab in directory code/
6. Open main.m and update the following parameters:
[ top]


Results:

Example 1: Points corresponding in double accuracy and dense sampling. More details here.
The desired image The generated image.
test3.jpg pos3_tri3_joined.wrl

Example 2: Points corresponding in integer accuracy and regular sampling with noise. More details here.
The desired image The generated image.
test3.jpg pos3_tri3_joined.wrl
[ top]


References:

Multiple View Geometry in Computer Vision by Richard Hartley and Andrew Zisserman, Cambridge University Press 2000 .

[
top]


Authors:

Irina Rahmatulina : dveira@tx.technion.ac.il

Orit Cohen: oritc@cs.technion.ac.il

This work was done as a semester project in the Computer Graphics Course of the Faculty of Computer Science under the supervision of Prof. Craig (Chaim) Gotsman and Dr. Ilan Shimshoni

 

[ top]


October 2002