RELEASE 3.0.0, July 27, 2021
New functionality:
- Added new stereo algorithms: MGM (original author implementation),
OpenCV SGBM, LIBELAS, MSMW, MSMW2, and OpenCV BM to complement
the existing ASP block matching, SGM, and MGM algorithms. See
https://stereopipeline.readthedocs.io/en/latest/next_steps.html
for usage. These will be further refined in subsequent releases. - Added the ability to perform piecewise local epipolar alignment
for the input images, to be followed by a 1D disparity search (for
non-mapprojected images), as suggested by the Satellite Stereo
Pipeline (S2P) approach. This is still somewhat experimental. - Added the ability for a user to plug into ASP any desired stereo
program working on image clips (cropped images) to which epipolar alignment has
been applied (as is customary in the computer vision community)
without rebuilding ASP. - Added support for shallow-water bathymetry, so creation of terrain
models with correct depth determination for well-resolved areas under
shallow water. To be used with dg, rpc, and nadirpinhole cameras. - Added two supporting tools for this: bathy_plane_calc and
bathy_threshold_calc.py. - Added CCD artifact corrections for a few WV02 band 3 multispectral
images. Apart from the systematic artifacts corrected by this
logic, these images have a high-frequency unique pattern, and also
jitter, which are not corrected for. Also added tools and
documentation to easily tabulate more multispectral bands and TDI.
isis:
- Upgraded to ISIS 5.0.1.
- Ship a full Python 3.6 runtime, as expected by ISIS.
csm:
- Upgraded to USGSCSM 1.5.2 (ASP's own build of it has an additional
bugfix for LRO NAC not present in the conda-forge package). - Validated the CSM model for CTX, HiRISE, and LRO NAC cameras.
- Added documentation for how to create CSM models from .cub
cameras. - Export the state of a CSM camera after bundle adjustment and
pc_align (only for linescan cameras supported by ISIS).
parallel_stereo
- Will now throw an error if --threads is passed in, whose behavior
was not defined. - Bugifx for Python 3.
bundle_adjust:
- Added the option --heights-from-dem-robust-threshold.
- Added the option --save-intermediate-cameras to save the cameras
at each iteration. - Added the option --match-first-to-last to match the first several
images to several last images by extending the logic of
--overlap-limit past the last image to the earliest ones.
point2las
- Remove outliers by using a percentile times a factor, in a way
analogous to point2dem.
convert_pinhole_model:
- Improve the accuracy of the RPC approximation distortion and
undistortion.
sfs:
- Added the option --shadow-threshold to be able to specify
a single shadow threshold for all images. Also added
--custom-shadow-threshold-list. - Added the option --robust-threshold for situations when the
measured image intensity is unreliable. - Added the option --estimate-height-errors to estimate the
uncertainty in height at each computed SfS DEM pixel.
It can be customized via --height-error-params. - Added an auxiliary tool named sfs_blend to replace SfS
pixels with ones from the original LOLA DEM in permanently
shadowed regions.
stereo_gui:
- Added the ability to find the contour of a georeferenced image at
a given threshold. (It can be later edited, saved to disk, etc.) - Bugifxes for polygon drawing logic.
- Much more responsive for overlaying many images.
image_calc:
- Support the sign function (can help in creating masks).
pc_align:
- Bugifx for --initial-transform-from-hillshading with outlier
removal. - Add the --initial-transform-outlier-removal-params to control
outlier removal when finding matches between DEMs to align
using features detected in hillshaded images or selected
manually. - Added --initial-rotation-angle, to initialize the alignment
transform as the rotation with this angle (in degrees) around
the axis going from the planet center to the centroid of the point
cloud.
Misc
- Moved the daily build to the release area on GitHub, at
https://github.com/NeoGeographyToolkit/StereoPipeline/releases - Upgraded to GDAL 2.4 and PROJ4 5.2.0. (ISIS constrains updating to
newer versions of these.) - Added the option --ip-per-image to bundle adjustment and stereo, to
detect roughly how many interest points should be found per image
(only a small fraction of them may eventually match across images). - The --min-triangulation-angle in stereo must be always positive if
set by the user. Can be set to something very small if desired.
This is a bug fix for this rarely used option (before, when set to
0 it would just reset itself to some internal non-small value). - Bugifx for the VisionWorkbench implementation of the
Levenberg-Marquardt algorithm, it was giving up prematurely in
challenging situations. - Bugifx for affine epipolar alignment. Use the OpenCV function
for finding the alignment matrix instead of the ASP one as OpenCV
can filter outliers which cause issues on rare occasions. - Bugfix: Do not allow a full run to take place in a directory
where a clip was run, as that will produce incorrect results.