[Kwiver-users] [MapTk] : maptk_track_features : vnl_matrix crashes : large datasets

Matthew Leotta matt.leotta at kitware.com
Wed Jan 20 15:51:34 EST 2016


I don’t expect that this particular failure is a results of the dataset size.  This is a failure within VXL.  If recall correctly there are certain degenerate cases that will cause NaN or Inf values during homography estimation.  This can happen during a RANSAC loop if the selected minimal correspondence subset hits one of these degeneracies.  Given that this is RANSAC it shouldn’t be a big issue.  The algorithm should just ignore that sample and move on to the next one.  The problem is that there are checks deep within the vnl_matrix class that find this behavior very problematic and abort.  Really VXL should be throwing an exception and the RANSAC algorithm should catch the exception.  However, VXL does not make heavy use of exceptions.

In short, this is a VXL bug.  I can think of two short term fixes:

1) Build VXL in release mode, this should disable the asserts.  I believe the VXL code will actually work in this case.

2) Use a different homography estimation algorithm.  You could use the OpenCV plugin for homography estimation instead of VXL.

Good luck,
Matt


> On Jan 20, 2016, at 3:11 PM, R. Pelapur <rpelapur at archlinux.info> wrote:
> 
> While MapTk works well on smaller datasets (on the order of 200-300 frames with each frame around 6K x 4K) the homography estimation (i presume) is failing for larger datasets. One particular example is a crash on Frame # 423 (6K x 4K) :
> 
> inlier ratio: 765/819
> [INFO][maptk::compute_ref_homography_core] Inliers after estimation: 375
> 
> 
> /vxl/core/vnl/vnl_matrix.txx: 1274: matrix has non-finite elements
> /vxl/core/vnl/vnl_matrix.txx: it is quite big (464x9)
> /vxl/core/vnl/vnl_matrix.txx: in the following picture '-' means finite and '*' means non-finite:
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> **----***
> ---**-***
> /vxl/core/vnl/vnl_matrix.txx: calling abort()
> 
> I am currently debugging it to find how many inliers remained and to see if the frame has some kind of problem but any help in this regard would be helpful.
> 
> Thanks,
> 
> 
> _______________________________________________
> Kwiver-users mailing list
> Kwiver-users at public.kitware.com
> http://public.kitware.com/mailman/listinfo/kwiver-users



More information about the Kwiver-users mailing list