I’m trying to ortho a Pleiades bundle against a reference image. However, regardless of my inputs my results are poor - the best accuracy I have obtained is roughly 10 meters.
Big picture my question is how can I perform residual registration with better accuracy?
My use case
To help illustrate my scenario please see orfeo-fine-registration.zip (105.1 KB) for details on a specific use case.
I pan-sharpen the Pleiades bundle with otbcli_BundleToPerfectSensor then proceed with the the residual registration recipe. I’m using default parameters unless noted.
OTB version: 6.6.1
Input imagery: Pleiades bundled imagery, processing level is Sensor
Reference imagery: ~1m RGB 8-bit data
- I prepare the data by reprojecting it from Web Mercator (3785) to WGS84 (4326). I have also tried tests using the appropriate WGS84 UTM zone.
- I have tried up-sampling to have an equivalent resolution with the fused Pleiades data (~.54m).
- I default to resampling with cubic but have also tried bilinear and nearest neighbor.
- The extent of my reference imagery is typically larger than the Pleiades bundle (I’m not clipping just ensuring coverage.)
Input dem: Most of my tests use SRTM and geoid (as provided in the OTB-Data repo.) I have also tried using 10m NED.
- The number of homologous points produced is generally in the thousands (2-3K.)
- The reported estimated accuracy when refining the sensor model appears large (200m or greater).
I’ve ran through a chunk of trial and error by adjusting the input arguments for HomologousPointsExtraction. I’ve been unable to find any real improvement despite adjusting threshold, backmatching, geobin size, precision,…
I’d like to understand input requirements and constraints.
- How much parody must exist in the resolution of reference and slave imagery?
- What projections are supported/required for reference and dem imagery? WGS84 and appropriate UTM zones seem to produce roughly similar results.
I’d like to understand command parameters, specifically for HomologousPointsExtraction.
- What are the units for arguments such as threshold (is this pixels, meters,…?)
- Is there a rule of thumb or process I can use to refine the values and options to use for a given use case? I assume the defaults may not be the best for this use (and others.)
- Broadly, just more information… having a hard time finding documentation.