Skip to content

Faster initialization of BRISK descriptor #13390

@okriof

Description

@okriof

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions