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

rpelapur at archlinux.info rpelapur at archlinux.info
Wed Jan 20 20:47:31 EST 2016


Thanks. That was it. Just disabled the asserts. Seems like I was encountering the fringe cases on only the larger datasets so I figured it was related. Seems to have worked after turning off the asserts. Just documenting it here for future reference.


Solution : Very low number of inliers caused some NaNs which can be turned off by turning off the asserts or just building vxl in release. Error wasn't because of the datasets being large. 

Sent from my iPhone

> On Jan 20, 2016, at 2:51 PM, Matthew Leotta <matt.leotta at kitware.com> wrote:
> 
> 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