Пирамида изображений

Материал из Поле цифровой дидактики
Версия от 10:30, 19 октября 2022; Patarakin (обсуждение | вклад) (1 версия импортирована)
Файл:Pyramide Image exemple.png
Пирамида изображений

Пирамида изображений — класс кратномасштабных иерархических структур данных, разработанных для применения в прикладных задачах машинного зрения, сжатия информации, анализа текстур растровых изображений и т. п. Такие структуры содержат на каждом своём уровне иерархии уменьшенную версию предыдущего изображения, каждая из которых рекурсивно вычисляется на базе предыдущих слоёв посредством применения однотипной операции (например — сглаживания){{#if: | }}<ref name="{{#if: | | _017625c718c00490 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. При этом всякому уровню иерархии ставится в соответствие актуальный для решаемой задачи параметр масштаба, который описывает интересующие свойства изображения{{#if: | }}<ref name="{{#if: | | _d0a9360910fbc456 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.

Краткая история

Возникновение интереса специалистов по математической обработке изображений к иерархическим пирамидам связано с необходимостью решать некоторые прикладные задачи в условиях априори неизвестного масштаба искомых свойств или признаков. Так как этот характерный размер не определён, то возможным путём к решению является декомпозиция исходного изображения на иерархическую систему в которой каждый слой представлен своим собственным масштабом, артикулирующим отдельный диапазон признаков. Аналогичным образом устроена система обработки видеоинформации у биологических объектов{{#if: | }}<ref name="{{#if: | | _d0a9360910fbc456 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.

Появление первых иерархических пирамид датируется концом 1970-х годов{{#if: | }}<ref name="{{#if: | | _08b4041dc0aa89b7 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}, выбор их названия был продиктован чисто внешней зрительной ассоциацией{{#if: | }}<ref name="{{#if: | | _3229d9525dbaa881 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. В 1980-х началось активное использование иерархических пирамид в задачах смешивания изображений и поиска на них соответствия между разномасштабными элементами и структурами. В это же самое время завершилось создание непрерывных версий пирамидальных структур для пространственно-масштабной обработки. Однако в конце 1980-х годов традиционным пирамидам пришлось потесниться из-за активного внедрения вейвлет-преобразований{{#if: | }}<ref name="{{#if: | | _0766ca093ae14b71 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.

Описание

По своей сути пирамида изображений может рассматриваться как набор представлений, упорядоченный в форме вертикальной иерархии по мере уменьшения некоего масштаба. Обычно в основании пирамиды располагается оригинальное изображение высокого разрешения, а по мере движения вверх масштаб и разрешение уменьшаются. В результате, на вершине оказывается самое грубое приближение с низким качеством и информативностью{{#if: | }}<ref name="{{#if: | | _0efa67d4892d1d4a }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}{{#if: | }}<ref name="{{#if: | | _46e8a977a912f0a4 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.

Как правило, в целях генерирования пирамиды для удобства её представления изначальное изображение пересчитывается в размерности, кратные степени числа 2{{#if: | }}<ref name="{{#if: | | _017625c718c00490 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. Если исходные данные имели вид массива пикселов [math]\displaystyle{ N \times N }[/math], то эта запись эквивалентна [math]\displaystyle{ 2^n \times 2^n }[/math], где [math]\displaystyle{ n = log_2 N }[/math]{{#if: | }}<ref name="{{#if: | | _0efa67d4892d1d4a }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. В таком виде параметр [math]\displaystyle{ n }[/math] играет роль высоты пирамиды, выраженной в количестве представлений исходного изображения (слоёв){{#if: | }}<ref name="{{#if: | | _2449e99700782ba0 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.

Первый слой (приближение) пирамиды можно получить последовательным усреднением соседних пикселей, результатом которого станет массив [math]\displaystyle{ \frac{N}{2} \times \frac{N}{2} }[/math]. Применяя эту процедуру рекурсивно получается набор изображений с экспоненциально уменьшающимися размерами. При этом, пикселы промежуточных изображений содержат в себе информацию о квадратных блоках пикселов нижележащих слоёв с более высоким разрешением{{#if: | }}<ref name="{{#if: | | _0bbb90c523b75ee8 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. Тогда произвольно выбранный промежуточный слой будет содержать в себе [math]\displaystyle{ 2^j \times 2^j }[/math] пикселов, где 0 ≤ j < n, а полное количество пикселов в пирамиде, содержащей [math]\displaystyle{ k }[/math] слоёв{{#if: | }}<ref name="{{#if: | | _0efa67d4892d1d4a }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}:

[math]\displaystyle{ N^2 \left ( 1 + \frac{1}{4^1} + \frac{1}{4^2} + \frac{1}{4^3} + ... + \frac{1}{4^k} \right ) \leq \frac{4}{3} N^2 }[/math]

Стоит отметить, что промежуточные узлы пирамиды не обязательно должны представлять из себя взвешенное среднее по интенсивности из нижних слоёв. Вместо интенсивности в них могут храниться другие виды информации, например — дескрипторы текстур или параметры геометрических элементов (линий, кривых и т. п.){{#if: | }}<ref name="{{#if: | | _6bd12ab2a322a2dc }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}

Применение пирамид

Наиболее очевидным полезным свойством кратномасштабных пирамид является возможность снижения вычислительных затрат различных алгоритмов за счёт применения принципа «разделяй и властвуй». Также к преимуществам представления двумерного изображения в виде пирамиды считается соотнесение его локальных элементов и свойств с глобальными. Это позволяет конструировать древовидные структуры данных для многофакторного анализа, включающего в себя локальную и глобальную информацию. Например, связывая значения отдельных пикселов со свойствами окружающих их регионов{{#if: | }}<ref name="{{#if: | | _f77fa1ae9ca8a600 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.

Разновидности

Классическими видами пирамидальных иерархий считаются гауссовы пирамиды и пирамиды лапласианов. Благодаря своим хорошо изученным свойствам они получили широкое распространение в целом ряде практических приложений{{#if: | }}<ref name="{{#if: | | _037455623558c8c4 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.

Гауссова пирамида состоит из слоёв, каждый из которой получается из предыдущего с помощью сглаживания симметричной гауссоидой (низкочастотная фильтрация) и последующей за этим дискретизацией. Совокупность этих слоёв называется грубой шкалой изображения. Областью применения гауссовых пирамид обычно являются задачи поиска изображений по масштабу и пространственного сопоставления различных изображений{{#if: | }}<ref name="{{#if: | | _c724ac68cc7d818e }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}{{#if: | }}<ref name="{{#if: | | _b072213deb43f076 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.

Пирамиды лапласианов вычисляются последовательным сглаживанием и децимацией начальных данных. При этом, каждый уровень пирамиды является уточнением предыдущих и соответствует отдельной полосе частот (полосовая фильтрация). В отличие от гауссовых пирамид, этот тип данных допускает более высокую степень сжатия информации{{#if: | }}<ref name="{{#if: | | _19f000e3ccd866fc }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}{{#if: | }}<ref name="{{#if: | | _0efa67d4892d1d49 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}. В дополнение к этому исходное изображение может быть легко восстановлено на основе суперпозиции промежуточных слоёв, что позволяет не хранить его в памяти{{#if: | }}<ref name="{{#if: | | _83b87a4c33f888d5 }}" group="{{#if: | }}">Шаблон:Sfn-текст.</ref>{{#if: | }}.

Примечания

1 }}
       | {{#switch: {{{1}}}
         | узкие = columns reflist-narrow
         | широкие = columns reflist-wide
         | #default = columns
         }}
       | {{#switch: {{{1}}}
         | 1 = 
         | 2 | 3 = columns
         | #default = columns reflist-narrow
         }}
       }}
     | columns
     }}
   }}" style="{{#if: 
   | column-width:{{{colwidth}}};
   | {{#if: 
     | {{#iferror: {{#ifexpr: {{{1}}} > 1 }}
       | {{#switch: {{{1}}}
         | узкие | широкие = 
         | #default = column-width:{{{1}}};
         }}
       }}
     }}
   }} list-style-type: {{#switch: 
   | upper-alpha
   | upper-roman
   | lower-alpha
   | lower-greek
   | lower-roman = {{{group}}}
   | #default = decimal
   }};">

<references group="" responsive="{{#if:

 | 0
 | {{#if: 
   | {{#iferror: {{#expr: {{{1}}} > 1 }}
     | {{#switch: {{{1}}}
       | узкие | широкие = 1
       | #default = 0
       }}
     | {{#switch: {{{1}}}
       | 1 = 0
       | #default = 1
       }}
     }}
   | 1
   }}
}}"></references>

Ошибка скрипта: Модуля «Check for unknown parameters» не существует.

Источники

Шаблон:Добротная статья