Skip to content

cvfind may terminate via OOM killer when --detector akaze is delected #3

@Bob-O-Rama

Description

@Bob-O-Rama

cvfind performs pair-wise image processing tasks in parallel, by default starting one thread per core. The instantaneous memory requirements are higher for this detector. This can cause several GB of RAM to be allocated instantly which triggers an OOM condition. In addition, when AKAZE ( or another highly productive detector ) is selected, the memory requirements of cvfind are increased owing to that detector returning many more features and matches which are stored for later analysis.

Adding additional swap space to offload fallow data structures eliminates the latter issue. Using the --ncores ootion to reduce the number of parallel jobs also eliminates the former.

The AKAZE detector does not seem to abide by the limits on the number of features requested, but this is not a root cause in most cases as AKAZE is used as a "rescue" detector for images that produce too few features with other methods. Also some detectors are already take advantage of multiple cores, as AKAZE does, so the benefit of parallelism is reduced. It may be possible to reduce the number of threads when these detectors are used.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions