Dear Sir
when I try to test with New College dataset I get this error iteration(1156) high(762) hyp(0.07) time=4.063767s/4.067205s OpenCV Error: Assertion failed (trainDescCollection[iIdx].rows < IMGIDX_ONE) in knnMatchImpl, file /tmp/buildd/ros-hydro-opencv2-2.4.9-2precise-20140819-1745/modules/features2d/src/matchers.cpp, line 365 terminate called after throwing an instance of 'cv::Exception' what(): /tmp/buildd/ros-hydro-opencv2-2.4.9-2precise-20140819-1745/modules/features2d/src/matchers.cpp:365: error: (-215) trainDescCollection[iIdx].rows < IMGIDX_ONE in function knnMatchImpl Signal 6 caught... Aborted (core dumped) ----------------------------------------------------------------------------------------------------- my command line is the same as in wiki/Benchmark I just add -Kp/DetectorStrategy 0 -Kp/NNStrategy 3 |
Administrator
|
Hello,
I've fixed yesterday a bug where the "Time Threshold" was not set on the console application, so the memory management was never triggered and real-time constraints are not satisfied. This explains the 4 seconds processing, normally it should be around 1.4-1.6 second at the end. You should update to latest revision: $ cd rtabmap $ git pull origin master I tested the NewCollege dataset: Download and merge left right images: $ cd rtabmap/bin $ wget http://www.robots.ox.ac.uk/~mobile/IJRR_2008_Dataset/Data/NewCollege/Images.zip $ unzip Images.zip $ ./rtabmap-imagesJoiner -inv Images From Benchmark page: $ ./rtabmap-console -Rtabmap/StatisticLogged true -Rtabmap/StatisticLoggedHeaders false -Rtabmap/PublishStats false -Mem/RehearsalIdUpdatedToNewOne true -Mem/BadSignaturesIgnored true -Rtabmap/LoopRatio 0.0 -Bayes/FullPredictionUpdate true -Kp/TfIdfLikelihoodUsed false -Mem/STMSize 30 -Mem/RehearsalSimilarity 0.2 -Mem/RecentWmRatio 0.2 -SURF/Extended false -Kp/WordsPerImage 400 -Kp/BadSignRatio 0.25 -SURF/HessianThreshold 1000 -Rtabmap/TimeThr 1400 Images_joined or as in the post above: $$ ./rtabmap-console -Rtabmap/StatisticLogged true -Rtabmap/StatisticLoggedHeaders false -Rtabmap/PublishStats false -Mem/RehearsalIdUpdatedToNewOne true -Mem/BadSignaturesIgnored true -Rtabmap/LoopRatio 0.0 -Bayes/FullPredictionUpdate true -Kp/TfIdfLikelihoodUsed false -Mem/STMSize 30 -Mem/RehearsalSimilarity 0.2 -Mem/RecentWmRatio 0.2 -SURF/Extended false -Kp/WordsPerImage 400 -Kp/BadSignRatio 0.25 -SURF/HessianThreshold 1000 -Rtabmap/TimeThr 1400 -Kp/DetectorStrategy 0 -Kp/NNStrategy 3 Images_joined and I didn't have any errors. Iterations are at 1156? The New College dataset has 1073 images. Do you talk about the Panoramas New College dataset (1628 images)? Also, "-Kp/NNStrategy 3" means Brute Force matching, which takes a lot of time when locations in the LTM are retrieved to the WM (if the visual vocabulary is big). Default is kd-trees: "-Kp/NNStrategy 1". |
Thanks for your fast support
I did not used imagesJoiner. What I try to do is the get the Recall for the 8 descriptor implemented in Rtabmap, -Kp/NNStrategy 1 will work with binary descriptor, that is why I used -Kp/NNStrategy 3 Thanks for your support |
Administrator
|
While they are available, I didn't have tested binary descriptors for the visual dictionary. Yes binaries only work with LSH (-Kp/NNStrategy 2), brute force (-Kp/NNStrategy 3) or brute force GPU (-Kp/NNStrategy 4). The BSD version of RTAB-Map uses ORB by default, but I didn't tested it on large scale.
A comparison of Recall would be interesting indeed. Though for binary descriptors, it would be interesting to implement a nearest neighbor approach like KD-tree to speed-up the look-up in the dictionary ("binary visual word vocabulary"). If anyone has ideas or libraries doing that, I could integrate it in RTAB-Map. |
Free forum by Nabble | Edit this page |