Применение параллельных вычислений при расчете признаков в системах автоматического аннотирования изображений
, д-р техн. Наук, , канд. Техн. Наук, , канд. Техн. Наук,
СТА №2, 2015г.
Аннотация
В статье представлены структуры параллельных вычислений цветовых, текстурных и фрактальных признаков ландшафтных изображений для систем автоматического аннотирования в сети Интернет. Полученные экспериментальные оценки демонстрируют повышение быстродействия на 26—32%, что является существенным улучшением производительности систем автоматического аннотирования.
Основная часть
В настоящее время поиск и просмотр изображений является обычной функцией Интернета. Однако объем визуальной информации
стремительно нарастает, добавляются видеопоследовательности, аннотирование которых является сложной задачей обработки, сегментации и распознавания сцен. Поэтому для поисковых систем требуются более развитые программные средства аннотирования.
Начало развития поисковых систем относится к 1970 г., а именно к их первому поколению — текстовым поисковым системам (TBIR, Text-Based Retrieval System), в которых текстовый комментарий к изображениям заносился вручную. Контекстно-зависимые поисковые системы (CBIR, Context-Based Retrieval System) относятся ко второму поколению, начиная с 1980 г. Они имели более разнообразные функции, например, поиск по цветовым примитивам, форме и пространственному положению, поиск абстрактных или конкретных объектов. Третье поколение — системы автоматического аннотирования изображений (AIAS, Automatic Image Annotation System) разрабатываются с 2000 г. В них автоматический поиск изображений осуществляется по аналогии с поиском в текстовых документах. Основной идеей систем автоматического аннотирования является автоматическое формирование семантических концептуальных моделей из обучающей выборки изображений большого объема. Поиск изображений выполняется по ключевым словам или так называемым визуальным словам (VW, Visual Word).
Преимущества текстовых и контекстнозависимых поисковых систем реализованы в системах автоматического аннотирования. Именно эти системы являются предметом продолжающихся исследований с целью повышения точности систем аннотирования и их быстродействия. Данная статья посвящена вопросам быстродействия систем автоматического аннотирования ландшафтных изображений для среды Интернет.
Базовый дескриптор описания изображений
Базовый дескриптор строится для извлечения низкоуровневых признаков на этапе сегментации изображения. Впоследствии значения дескрипторов используются как входные данные на этапе кластеризации. В разрабатываемой системе автоматического аннотирования ландшафтных изображений используются цветовые, текстурные и фрактальные признаки.
Цветовые признаки
Известны различные цветовые признаки, построенные на основе цветовой гистограммы, цветовых моментов, цветового когерентного вектора и других. Отметим, что стандарт MPEG-7 устанавливает такие цветовые признаки, как доминантный цветовой дескриптор, дескриптор цветового слоя, дескриптор цветовой структуры и масштабируемый цветовой дескрипто.
Наиболее простыми и популярными признаками являются цветовые моменты, такие как среднее значение, отклонение и асимметрия. Причем они могут вычисляться в различных цветовых пространствах — RGB (Red, Green, Blue), LAB (Lightness, А и В — цветовые компоненты, основанные на нелинейном сжатии), LUV (Lightness, Uniform chromaticity scale, Valence), HSV (Hue, Saturation, Value), HSL (Hue, Saturation, Lightness), HMMD (Hue, троHSV как одно из наиболее удобных для сегментации.
Согласно теории моментов, нормализованное среднее |ДС, нормализованное стандартное отклонение ас и нормализованная асимметрия 0С (значения указанных параметров нормализуются по количеству пикселов в регионе) вычисляются для каждой HSV - компоненты по следующим выражениям:
где Pj — значение пиксела соответствующей цветовой компоненты; NP — количество пикселов в регионе.
Отметим, что предварительная сегментация изображения выполняется с помощью алгоритма JSEG [8]. В результате для каждого региона будут получены девять цветовых признаков FC0, ..., FC8, вычисленные по формулам (1)—(3).
Текстурные признаки
Для вычисления текстурных признаков используются признаки Харалика [9], локальные статистические оценки [10], методы, основанные на моментах, спектральные характеристики и многие другие. Для распознавания текстур изучались моменты первого и второго порядков, а также их производные [11].
Пусть z — случайное значение интенсивности, a h(z,), i = 0, 1, 2, (Q - 1) — ее гистограмма, где Q — количество уровней интенсивности. Тогда статистические признаки нормализованного среднего значения А V, нормализованной дисперсии DS, нормализованной однородности НМ, нормализованной гладкости SM, нормализованной энтропии EN, нормализованной асимметрии SK и нормализованного эксцесса KR можно найти по следующим формулам: где SR — площадь региона, ц3 и ц4 — моменты третьего и четвертого порядков, а3 и а4 — стандартные отклонения в третьей и четвертой степенях. Все значения, полученные по формулам (4)—(10), нормализованы по площади региона SR.
Семь текстурных признаков (AV, DS, НМ, SM, EN, SK и KR) определены как компоненты РТ9, FTi5 в базовом дескрипторе региона.
Фрактальные признаки
В качестве фрактальных признаков используется фрактальная размерность FD, в общем случае вычисляемая по формуле
где N — непересекающиеся и самоподобные копии; г — коэффициент масштабирования копий по координатным осям.
Выражение трудно, а в некоторых случаях невозможно использовать. В работах показаны способы вычисления фрактальной размерности, пригодные для изображений, а также анализируется лакунарность FL — термин, введенный впервые Мандельбротом. Два фрактальных признака FD и FL являются компонентами FFl6 и FF{1 базового дескриптора региона. Далее на основе полученных значений строится вектор RF = {/Го,..., FCS, FT9,..., FTl5, FFl6, FFX1), который впоследствии преобразуется в регион дескриптора RD,-,, где / — это счетчик регионов в изображении j, a j — счетчик изображений в тестовом наборе.
Вычисление базовых дескрипторов, включающих 18 признаков, является довольно трудоемкой задачей, требующей распараллеливание вычислений.
Виды и среды распараллеливания программного кода
Существуют следующие виды распараллеливания программного кода, а именно:
- параллелизм данных. Ему соответствуют задачи, которые включают неоднократное выполнение одного и того же алгоритма с различными исходными данными. Такие вычисления могут производиться параллельно в случае разделения данных на фрагменты и обработки каждого фрагмента выделенным ядром; функциональный параллелизм. Это параллелизм групп операций, объединенных по функциональному признаку. Распараллеливание выполняется путем функциональной декомпозиции. Простейшим примером такой декомпозиции является декомпозиция задачи на подзадачи: ввод исходных данных, обработка, вывод результатов, визуализация результатов. Параллелизм при этом достигается параллельным выполнением указанных подзадач и созданием «конвейера» (последовательного или последовательнопараллельного) между ними. При этом каждая подзадача может обладать параллелизмом данных; алгоритмический параллелизм. К этому типу относится параллелизм, выявляющий в алгоритме фрагменты, которые могут выполняться параллельно. Синтез параллельных алгоритмов (распараллеливание) на основе алгоритмического параллелизма называется алгоритмической декомпозицией. При использовании алгоритмической декомпозиции следует стремиться к разбиению задачи на крупные и редко взаимодействующие ветви. По возможности должно быть обеспеченооднородное распределение обработки данных по ветвям параллельного алгоритма. Отличие алгоритмического параллелизма от функционального состоит в том, что функциональный параллелизм предполагает объединение только функционально близких операторов алгоритма, в то время как алгоритмический параллелизм не учитывает функциональную близость операторов.
Для реализации параллельных алгоритмов широкое распространение получил стандарт ОрепМР для распараллеливания программ на языках Си, Си++ и Фортран. Помимо него в последнее время развивается расширение языка Си++, названное как Intel Cilk Plus.
Распараллеливание в стандарте ОрепМР выполняется явно при помощи вставки в текст программы специальных директив, а также вызова вспомогательных функций. Стандарт ОрепМР реализует параллельные вычисления с помощью многопоточности, когда «главный» поток создает набор подчиненных потоков, между которыми распределяется задача. При этом программа выполняется в последовательной области — сначала работает один процесс (поток), при входе в параллельную область порождаются несколько потоков, между которыми в дальнейшем распределяются части кода. По завершении параллельной области все потоки, за исключением «главного», завершаются и начинается последовательная область. Стандарт ОрепМР поддерживает вложение параллельных областей.
Среда Intel Cilk Plus представляет собой динамический планировщик исполнения потоков и набор ключевых слов. Ключевые слова сообщают компилятору о возможности применения той или иной схемы планирования. При выполнении параллельной Cilk-программы формируется очередь задач. Выполнением задач занимаются «исполнители», при этом распределение задач между потоками выполняется методом «захвата работы», когда освободившийся поток выполняет очередную задачу. В среде Intel Cilk Plus сохраняется семантика последовательной программы. При этом программа может выполняться как в последовательном, так и в параллельном режимах в зависимости от доступных ресурсов. Существенным отличием от стандарта ОрепМР является возможность использования расширенной индексной нотации, которая обеспечивает распараллеливание с учетом векторных инструкций процессора.
Псевдокод базового дескриптора описания изображений
Базовый дескриптор вычисляет цветовые, текстурные и фрактальные признаки в некоторой окрестности рассматриваемого пиксела. При этом расчет цветовых и текстурных признаков по статистическим формулам (1)—(10) можно проводить параллельно, в то время как фрактальные признаки требуют отдельного расчета. Вычисление цветовых и фрактальных признаков сводится к выполнению двух основных этапов. На первом этапе происходит сбор статистических данных в окрестности пиксела, когда для цветовых признаков рассчитываются нормализованные средние для цветовых каналов по формуле (1), а для текстурных признаков формируется локальная гистограмма. На втором этапе происходит непосредственный расчет признаков по формулам (2)—(10). Таким образом, алгоритм формирования дескриптора с учетом расчета цветовых и текстурных признаков включает два базовых типа циклов — внешний цикл по изображению размером (w/kw)x(h/kh) и вложенные циклы по окрестности сегмента, в котором рассматриваются все пиксели, где wwh — ширина и высота изображения; kw и kh — ширина и высота сегмента. Алгоритм включает следующие шаги.
Начало алгоритма 1.
Шаг 1. В цикле от 0 до h/kh+ lno Yimg выполняем шаг 2.
Шаг 2. В цикле от 0 до w/kw+1 по Ximg выполняем шаг 3.
Шаг 3. Инициализация нулевыми значениями массива рядов, строк или блоков (в зависимости от метода распараллеливания).
Шаг 4. Инициализация нулевыми значениями массива для хранения значений рс.
Шаг 5. В цикле от Yimgx. kh до Yimgxkh+kh по ку выполняем шаг 6.
Шаг 6. В цикле от Ximgx, kw до Ximgxkw+kw по кх выполняем шаг 7.
Шаг 7. Проверка корректности координат кх, ку, в случае успешной проверки выполнение шагов 8 и 9.
Шаг8. h[z[kx-,ky]] + +.
Шаг 9. Выполнение итерации расчета нормализованного среднего цс для цветовых каналов по формуле (1).
Конец цикла шага 6.
Конец цикла шага 5.
Шаг 10. Вычисление итоговых значений цс.
Шаг 11. Вычисление множества цветовых и текстурных признаков RF = {FC0, ..., FCS, FT9, ..., FTIS) в окрестности пиксела (Ximg; Yimg).
Шаг 12. FeatureMap[Ximg\ Yimg] = RF.
Конец цикла шага 2.
Конец цикла шага 1.
Конец алгоритма 1.
Непосредственное вычисление множества цветовых и текстурных признаков (шаг 11) реализовано в виде следующего алгоритма.
Начало алгоритма 2.
Шаг 1. В цикле от Yimgxk,, до Yimgxkh+kh по ку выполняем шаг 2.
Шаг 2. В цикле от Ximgx. kw до Ximgx. kw+kw по кх выполняем шаг 3.
Шаг 3. Выполнение итерации расчета нормализованного стандартного отклонения ас по формуле (2).
Шаг 4. Выполнение итерации расчета нормализованной асимметрии 0С по формуле (3).
Конец цикла шага 2.
Конец цикла шага 1.
Шаг 5. Вычисление итоговых значений ас и 0С.
Шаг 6. В цикле от 0 до Q — 1 по / выполняем шаг 7.
Шаг 7. Выполнение итерации расчета нормализованного среднего значения ^(формула (4)), нормализованной однородности НМ (формула (6)), нормализованной энтропии EN(формула (8)).
Шаг 8. Вычисление итоговых значений Л V, НМ и EN.
Шаг 9. В цикле от 0 до Q — 1 по / выполняем шаг 10.
Шаг 10. Выполнение итерации расчета нормализованной дисперсии DS (формула (5)).
Шаг 11. Вычисление итогового значения DS.
Шаг 12. Расчет нормализованной гладкости SM (формула (7)).
Шаг 13. В цикле от 0 до Q — 1 по / выполняем шаг 14.
Шаг 14. Выполнение итерации расчета нормализованной асимметрии SK (формула (9)) и нормализованного эксцесса KR (формула (10)).
Шаг 15. Вычисление итоговых значений SKhKR.
Шаг 16. Заполнение структуры RF.
Конец алгоритма 2.
Отметим, что для распараллеливания операций вычисления текстурных признаков достаточно разделить область обрабатываемого изображения между ядрами процессора вычислительной системы. Выбор способа разделения массива на полосы (по вертикали или горизонтали) или на прямоугольные фрагменты (блоки) определяет метод параллельных вычислений.
Для повышения быстродействия алгоритмов расчета текстурных признаков целесообразно проводить распараллеливание для внешних циклов прохода по изображению. Для этого в случае ОрепМР необходимо использовать директиву препроцессора #pragma omp parallel for, а для Intel Cilk Plus — ключевое слово cilk for. Расчеты цветовых и текстурных признаков не взаимосвязаны, поэтому можно дополнительно определить параллельные области вычисления отдельно для цветовых и текстурных признаков — шаги 1—5 и шаги 6—15 в алгоритме 2 — вычисление множества цветовых и текстурных признаков.
Заключение
Методы распараллеливания алгоритма вычисления цветовых, текстурных и фрактальных признаков на основе разделения изображения на фрагменты позволяют значительно ускорить обработку изображения, обеспечивая псевдореальное время обработки изображения HD-качества. Было выяснено, что при применении алгоритмов распараллеливания быстродействие повышается на 26—32%. Также эксперименты показали, что ускорение обработки с применением среды Intel Cilk Plus в среднем выше на 9—14%. Это связано с тем, что в среде Intel Cilk Plus реализована более эффективная балансировка нагрузки.


