action #2692

speed up needle matching

Added by lnussel over 5 years ago. Updated over 1 year ago.

Status:ResolvedStart date:10/07/2014
Priority:NormalDue date:
Assignee:aplanas% Done:

100%

Category:-Estimated time:3.00 hours
Target version:QA - future
Difficulty:
Duration:

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.


Subtasks

action #2856: Makes the margin related with the needleResolvedaplanas

History

#1 Updated by coolo over 5 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

#2 Updated by aplanas over 5 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)

#3 Updated by aplanas over 5 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.

#4 Updated by aplanas over 5 years ago

Use a linear model to extend the search area. https://github.com/os-autoinst/os-autoinst/pull/86

#5 Updated by aplanas over 5 years ago

  • Status changed from In Progress to Resolved

#6 Updated by okurz over 1 year ago

  • Target version changed from future to future

Also available in: Atom PDF