action #2692
closedspeed up needle matching
100%
Description
right now we walk through all areas in all needles and match each area one by one against the screenshot. We have to convert both the match area as well as the screenshot to opencv's internal format for every match. To speed this up all match areas could be collected and passed to the C++ opencv adapter at once so it only need to do the conversion once and one bulk result is returned.
Updated by coolo over 10 years ago
the tinycv images are already read into the needle->{'img'} and even already extracted as area->{'img'} and this tinycv is an opencv structure. So there is nothing to gain here - we could cache some preprocessing, but it's really fast operations that do the thing
Updated by aplanas over 10 years ago
- Assignee set to aplanas
Will check if there is room for improvement:
- caching some operations (blur and color conversion)
- matching smaller areas (crop the large image around the original area of the needle)
Updated by aplanas over 10 years ago
- Status changed from New to In Progress
Initial optimization here: https://github.com/os-autoinst/os-autoinst/pull/77
This goes from ~0.15 +-0.02. per match to ~0.03 +-0.01
A better one is to put the full search() perl code in C++. I will address it now.
Updated by aplanas over 10 years ago
Use a linear model to extend the search area. https://github.com/os-autoinst/os-autoinst/pull/86
Updated by aplanas over 10 years ago
- Status changed from In Progress to Resolved