-
-
Notifications
You must be signed in to change notification settings - Fork 56.5k
Faster initialization of BRISK descriptor #13390
Description
Initializing the brisk descriptor takes quite some time (approx. a second on this laptop and almost a minute on a low power platform). This is usually only done once so it's not a very big issue, however, by reordering loops and pre-calculating trigonometric functions in generateKernel(), the initialization time can be reduced to approx 100ms (10x speedup).
This comes with the cost of slight quantization of the angular positions of sampling points for the descriptor (rotations of the full pattern can be syncronized with the trigonometric lookup table such that no precision is lost there). Further, entries in the sampling point table are written in strange order to keep the final sampling point table equal to the one generated by previous code.
Probably the current code should be kept somehow, at least for comparison, but the best way of arranging new and current code, and possible ways of selecting which initialization to use, is a bit unclear at the moment.