4.7.4 Stereo Framework

Compute the ground elevation based on one or multiple stereo pair(s)

Detailed description

Compute the ground elevation with a stereo block matching algorithm between one or multiple stereo pair in sensor geometry. The output is projected in desired geographic or cartographic map projection (UTM by default). The pipeline is made of the following steps:
for each sensor pair :
- compute the epipolar displacement grids from the stereo pair (direct and inverse)
- resample the stereo pair into epipolar geometry using BCO interpolation
- create masks for each epipolar image : remove black borders and resample input masks
- compute horizontal disparities with a block matching algorithm
- refine disparities to sub-pixel precision with a dichotomy algorithm
- apply an optional median filter
- filter disparities based on the correlation score and exploration bounds
- translate disparities in sensor geometry
convert disparity to 3D Map.
Then fuse all 3D maps to produce DSM.

Parameters

This section describes in details the parameters available for this application. Table 4.110, page 683 presents a summary of these parameters and the parameters keys to be used in command-line and programming languages. Application key is StereoFramework.





Parameter key

Parameter type

Parameter description




input

Group

Input parameters

input.il

Input image list

Input images list

input.co

String

Couples list

input.channel

Int

Image channel used for the block matching

elev

Group

Elevation management

elev.dem

Directory

DEM directory

elev.geoid

Input File name

Geoid File

elev.default

Float

Default elevation

output

Group

Output parameters

output.res

Float

Output resolution

output.nodata

Float

NoData value

output.fusionmethod

Choices

Method to fuse measures in each DSM cell

output.fusionmethod max

Choice

The cell is filled with the maximum measured elevation values

output.fusionmethod min

Choice

The cell is filled with the minimum measured elevation values

output.fusionmethod mean

Choice

The cell is filled with the mean of measured elevation values

output.fusionmethod acc

Choice

accumulator mode. The cell is filled with the the number of values (for debugging purposes).

output.out

Output image

Output DSM

output.mode

Choices

Parameters estimation modes

output.mode fit

Choice

Fit to sensor image

output.mode user

Choice

User Defined

output.mode.user.ulx

Float

Upper Left X

output.mode.user.uly

Float

Upper Left Y

output.mode.user.sizex

Int

Size X

output.mode.user.sizey

Int

Size Y

output.mode.user.spacingx

Float

Pixel Size X

output.mode.user.spacingy

Float

Pixel Size Y

map

Choices

Output Cartographic Map Projection

map utm

Choice

Universal Trans-Mercator (UTM)

map lambert2

Choice

Lambert II Etendu

map lambert93

Choice

Lambert93

map wgs

Choice

WGS 84

map epsg

Choice

EPSG Code

map.utm.zone

Int

Zone number

map.utm.northhem

Boolean

Northern Hemisphere

map.epsg.code

Int

EPSG Code

stereorect

Group

Stereorectification Grid parameters

stereorect.fwdgridstep

Int

Step of the displacement grid (in pixels)

stereorect.invgridssrate

Int

Sub-sampling rate for epipolar grid inversion

bm

Group

Block matching parameters

bm.metric

Choices

Block-matching metric

bm.metric ssdmean

Choice

Sum of Squared Distances divided by mean of block

bm.metric ssd

Choice

Sum of Squared Distances

bm.metric ncc

Choice

Normalized Cross-Correlation

bm.metric lp

Choice

Lp pseudo-norm

bm.metric.lp.p

Float

p value

bm.radius

Int

Radius of blocks for matching filter (in pixels)

bm.minhoffset

Float

Minimum altitude offset (in meters)

bm.maxhoffset

Float

Maximum altitude offset (in meters)

postproc

Group

Postprocessing parameters

postproc.bij

Boolean

Use bijection consistency in block matching strategy

postproc.med

Boolean

Use median disparities filtering

postproc.metrict

Float

Correlation metric threshold

mask

Group

Masks

mask.left

Input image

Input left mask

mask.right

Input image

Input right mask

mask.variancet

Float

Discard pixels with low local variance

ram

Int

Available RAM (Mb)

inxml

XML input parameters file

Load otb application from xml file

outxml

XML output parameters file

Save otb application to xml file











Table 4.110: Parameters table for Stereo Framework.

Input parameters This group of parameters allows one to parametrize input data.

Elevation management This group of parameters allows managing elevation values. Supported formats are SRTM, DTED or any geotiff. DownloadSRTMTiles application could be a useful tool to list/download tiles related to a product.

Output parameters This group of parameters allows one to choose the DSM resolution, nodata value, and projection parameters.

Output Cartographic Map Projection Parameters of the output map projection to be used. Available choices are:

Stereorectification Grid parameters This group of parameters allows one to choose direct and inverse grid subsampling. These parameters are very useful to tune time and memory consumption.

Block matching parameters This group of parameters allow tuning the block-matching behavior

Postprocessing parameters This group of parameters allow use optional filters.

Masks

Available RAM (Mb) Available memory for processing (in MB)

Load otb application from xml file Load otb application from xml file

Save otb application to xml file Save otb application to xml file

Example

To run this example in command-line, use the following:

otbcli_StereoFramework -input.il sensor_stereo_left.tif sensor_stereo_right.tif -elev.default 200 -stereorect.fwdgridstep 8 -stereorect.invgridssrate 4 -postproc.med 1 -output.res 2.5 -output.out dem.tif

To run this example from Python, use the following code snippet:

#!/usr/bin/python 
 
# Import the otb applications package 
import otbApplication 
 
# The following line creates an instance of the StereoFramework application 
StereoFramework = otbApplication.Registry.CreateApplication("StereoFramework") 
 
# The following lines set all the application parameters: 
StereoFramework.SetParameterStringList("input.il", ['sensor_stereo_left.tif', 'sensor_stereo_right.tif']) 
 
StereoFramework.SetParameterFloat("elev.default", 200) 
 
StereoFramework.SetParameterInt("stereorect.fwdgridstep", 8) 
 
StereoFramework.SetParameterInt("stereorect.invgridssrate", 4) 
 
StereoFramework.SetParameterString("postproc.med","1") 
 
StereoFramework.SetParameterFloat("output.res", 2.5) 
 
StereoFramework.SetParameterString("output.out", "dem.tif") 
 
# The following line execute the application 
StereoFramework.ExecuteAndWriteOutput()

Authors

This application has been written by OTB-Team.