Распараллеливание с iANPR SDK и OpenMP

В библиотеке iANPR SDK нет встроенного распараллеливания, т.е. функция распознавания выполняется в одном потоке. Однако, когда производится работа с большими изображениями, например, 1920x1080, время распознавания на обычном ПК может быть недостаточно для работы в реальном времени. Для решения данной проблемы можно разбить изображение на части и анализировать их параллельно. Здесь, однако, следует помнить, что в случае попадания номера на пересечение частей, то он не будет распознан. Поэтому нужно внести некоторую избыточность, используя пересекающиеся части. Причем уровень пересечения определяется максимально возможными размерами объекта распознавания.
Предположим, что объект распознавания в форме круга, и его максимальный диаметр на изображении составляет Dmax. Тогда ширина области пересечения сегментов должна быть больше Dmax. В этом случае площадь несколько раз анализируемой области (в разных сегментах) будет рассчитываться по следующей формуле:
S = L * Dmax,
где L – длина границ между всеми сегментами. Понятно, что в этом случае S будет зависеть не только от количества сегментов, но и от их формы. На рисунках ниже показано два примера расположения сегментов. Один сегмент серого цвета, а другой белого. Область пересечения показана штрихами.


( Читать дальше )