Final Project
Two-Point Perspective Single View Geometry: an Extended Tour Into the Picture

by Faustinus Kevin Gozali (fkg)

This is an extension to project 5, which is the tour into picture from a single view. In project 5, we create the system using only 1 vanishing point, and only from 1 single input image. Although it is good enough, real scene in the world is rarely composed of only 1 vanishing point. A system which exhibits 2 vanishing point perspective model will give us more appealing tour. This this system will generate the 3D model based on the 2 vanishing point perspective. For this, user will have to specify the base lines in the given images. User will also need to specify parallel lines for vanishing points calculation, or they can simply input the horizon location.

The Details

The details of the approach can be found in the paper here, or in the PPT slides here.

The Main Setup

Vanishing Points Calculation
User will specify sets of parallel lines to assist the computation of the vanishing points. This is done separately for left VP and right VP. Note: we assume left VP is to the left of camera vanishing point and right VP is to the right of camera VP. Camera VP is in the horizontal center of the horizon line in the image. The following images show the process:

Then, the estimated horizon line is computed as shown below:

Base Lines Collection
User will specify sets of base lines to build vertical walls. The following image shows the process. Yellow lines denotes the horizon line. Blue circle denotes the camera vanishing point.

Height Collection
User will specify the desired height for his 3D model. The following image shows the process:

3D Model Generation

Based on the setup shown above, we generate 3D model with real 3D coordinates. We separate the process into 2 parts: Ground and Walls

Ground Surface
Ground surface is assumed to be a perfect rectangle plane lying on z=0. The texture is warped properly to this new shape, taking into account the distance of each pixel from the real camera coordinate. We extract the ground texture as shown below:

Wall Surface
Similarly, we compute the wall surfaces based on the baselines and the heights.

Finally, we create the 3D surfaces and wrap the warped textures to these surface. Here's what we get:

 

Fun with Textures

All of the results above are from a single image. We can extend this to include an image of the same exact view but with different exposure. This allows us to do 2 different things:

Texture Interpolation
Given the 2 textures, we can easily interpolate with a factor p such that the texture to be used in the 3D model is the combination of the 2. For instance, if texture 1 is a morning view, texture 2 is a night view, by interpolating these 2, we might get an evening view! Example results for the box above:

Sources

Blending
We can also do pyramid blending on the 2 textures. By carefully selecting mask, we can simulate a half morning, half night view! Sample result:

Gallery

Building View
Source


Results

Library
Source


Results

Newell Simon Bridge
Source


Results

Note: the distortion on the sides is because it's assumed to be a ground plane. This depends on how user selects the wall.

Park View
Source


Results



All input images can be found here and all results can be found here. Sample intermediate results can be found here.

November 28, 2006