Added ASLFeat extractor; frontend config edits
This PR implements the ASLFeat feature detector and descriptor. This architecture was found to be particularly effective for small body imagery, as shown in the AstroVision paper (I will add the AstroVision-trained models in a future PR).
Using the ASLFeat features, along with some tuning of the outlier rejection parameters, greatly improved the reconstruction quality for AstroVision sequences. In particular, I put together a relatively easy sequence for the Hayabusa mission to Asteroid 25143 Itokawa. I was not able to get coherent results using SuperPoint + SuperGlue or SIFT + TwoWayMatcher, but ASLFeat + TwoWayMatcher was able to reconstruct 11/16 images with 1446 landmarks for the pretrained model, and 12/16 images with 1973 landmarks for the AstroVision-trained ASLFeat model (see below).
I also made some modifications to the frontend configs:
- Exposed the
ba_reproj_error_threshparameter, which dictates the filtering threshold for the post-BA landmarks. This parameters had a default value ofba_reproj_error_thresh=0.5, much smaller than the Verifier threshold (4 pixels). - Exposed the
robust_estimation_typeparameter for the RANSAC Verifier. I found thatUSAC_MAGSACwas more accurate, at least for the AstroVision sequences, than the defaultUSAC_ACCURATE.

Pretrained ASLFeat model:

AstroVision-trained ASLFeat model:

Have you presented about this descriptor before? How useful is it?
We found it to be the most effective feature for the AstroVision data: https://www.sciencedirect.com/science/article/pii/S0094576523000103
Is there a config that runs ASLFeat on the CI? Have you run it on other datasets? are there any others that benefit from it?