# 15. Experimental features¶

## 15.1. The CASP-GO stereo processing system¶

CASP-GO (Co-registered ASP using Gotcha Optimisation, https://github.com/mssl-imaging/CASP-GO) is a set of algorithms that are meant to augment certain parts of ASP [OC89, SM12, TMS+18, TMS+16]. Thse algorithms were developed at the Imaging Group, Mullard Space Science Laboratory, University College London, by Yu Tao, under the direction of Jan-Peter Muller, with funding from the EU-FP7 project titled “iMars: Analysis of Mars Multi-Resolution Images using Auto-Coregistration, Data Mining and Crowd Sourcing Techniques”, under contract #607379.

Under NASA proposal 19-PDART19_2-0094 we researched incorporating these algorithms into ASP.

CASP-GO consists of three algorithms:

Gotcha disparity refinement. Its purpose is to fix artifacts in ASP’s older

`asp_bm`

block-matching algorithm (Section 18) at the disparity filtering stage. It takes as input and overwrites the`F.tif`

disparity (which is described in Section 19). This algorithm definitely provides some in-filling functionality over the older`asp_bm`

performance, but users may want to experiment with other ASP stereo algorithms (like MGM) which may also result in high quality disparities. This logic can be turned on with the`--gotcha-disparity-refinement`

option of`parallel_stereo`

. See below for the parameters which control it.Image alignment. This component uses feature detection to find interest point matches among orthoimages associated with given DEMs, which is then used to compute an alignment transform among the DEMs [SMW+18]. It was incorporated into ASP and further extended as the

`image_align`

tool (Section 16.32).Kriging. This logic is meant to produce DEMs with fewer holes than ASP’s older method in

`point2dem`

(Section 16.55) which used a Delaunay triangulation. It is based on a technique called`kriging`

, which is a family of generalized linear least square regression algorithms ([RSLC02]), implemented in the`Geostatistics Template Library`

(http://gstl.sourceforge.net/).The CASP-GO DEM-creation algorithm functions along the same lines as ASP’s recent and default implementation in

`point2dem`

. The input is a point cloud, the output is a gridded DEM, and weighted averaging is used to combine the 3D points to produce the DEM.The only difference is that the recent

`point2dem`

implementation (circa 3.1.0) computes the weights based on a Gaussian with given sigma and neighborhood size, while CASP-GO uses weights produced by the kriging procedure with a user-specified covariance.CASP-GO’s covariance function assigns the same covariance value to all points, which results in the kriging procedure returning constant weights. In effect, the resulting algorithm is a particular case of the modern approach in

`point2dem`

, when the sigma value is very large.Thus, no separate implementation for kriging was implemented at this time.

### 15.1.1. The CASP-GO parameter file¶

CASP-GO’s behavior is controlled by a parameter file, which ASP ships
as `share/CASP-GO_params.xml`

, and which can be overridden
with the `parallel_stereo`

option `--casp-go-param-file`

.

Only the parameters relevant for Gotcha disparity refinement are read
from this file, as we did not implement the kriging algorithm,
and the `image_align`

tool we added has its own interface.

Here are two sets of values for these parameters, optimized for CTX and HiRISE cameras, respectively.

CTX:

```
ALSC iterations: 8
Max. eigenvalue: 150
ALSC kernel: 21
Grow neighbor: 8
```

HiRISE:

```
ALSC iterations: 8
Max. eigenvalue: 80
ALSC kernel: 11
Grow neighbor: 8
```