Подробно опиши процесс вейвлет разложения изображения. Несколько уровней
Thought
Understanding image wavelets
I'm organizing a detailed wavelet decomposition of images, explaining 2D wavelet transforms, filter banks, subbands, and recursive decomposition. Invoking Haar and Daubechies wavelets helps illustrate these points.
Рассуждения о вейвлет-разложении изображения for a few seconds
Answer
Процесс вейвлет-разложения (wavelet decomposition) изображения обычно сводится к многократному применению двумерного вейвлет-преобразования к исходному изображению, разделяя его на «приближение» (грубую компоненту) и «детали» (высокочастотные компоненты). Ниже даётся поэтапное объяснение, как это происходит на нескольких уровнях:
1. Основная идея одномерного вейвлет-преобразования
Для понимания двумерного вейвлет-разложения сначала рассмотрим принцип работы на одном измерении — для одномерного сигнала (например, последовательности чисел).
Фильтрация
Сигнал пропускается через два фильтра:
Низкочастотный фильтр (Low-Pass Filter, L)
Высокочастотный фильтр (High-Pass Filter, H)
Результат применения низкочастотного фильтра даёт грубое приближение сигнала (Approximation),
а результат высокочастотного фильтра даёт детали (Detail).
Децимация (downsampling)
После фильтрации каждый из полученных сигналов, как правило, прореживается в 2 раза (берут, к примеру, каждый второй отсчёт).
В итоге после одного шага мы получаем два набора коэффициентов: «Приближение» и «Детали».
Рекурсивный процесс
К «приближению» (низкочастотной части) можно снова применить аналогичную операцию фильтрации и децимации, чтобы выделять более грубую компоненту и её детали.
Таким образом, мы переходим к следующему уровню разложения.
2. Переход к двумерному случаю
Для изображения (двумерного массива) DWT (дискретное вейвлет-преобразование) чаще всего реализуется через построчную и постолбцовую фильтрацию:
Применение фильтров по строкам
Каждую строку изображения пропускают через пару фильтров (L и H).
В результате каждая строка даёт два набора коэффициентов: низкочастотный (L) и высокочастотный (H).
Затем выполняется децимация: из каждого набора оставляют лишь половину отсчётов.
В итоге для каждой строки мы получаем два «подизображения»: одно состоит из L-коэффициентов (условно можно назвать его IL), другое из H-коэффициентов ( IH).
Применение фильтров по столбцам
Далее аналогичные действия выполняются со столбцами уже полученных подизображений IL и IH.
Для каждого такого подизображения результат даст ещё два набора: L- и H-компоненты по столбцам.
Формирование четырёх поддиапазонов
После обработки столбцов подизображения IL (низкочастотного по строкам) мы получаем:
LL – низкочастотный по строкам и низкочастотный по столбцам (приближение изображения).
LH – низкочастотный по строкам, высокочастотный по столбцам (горизонтальные детали).
Аналогично подизображение IH (высокочастотное по строкам) даёт:
3. HL – высокочастотный по строкам, низкочастотный по столбцам (вертикальные детали).
4. HH – высокочастотный по строкам и столбцам (диагональные детали).
Таким образом, после одного уровня вейвлет-разложения мы имеем четыре поддиапазона (четыре суб-изображения): LL, LH, HL и HH.
3. Многократное разложение (несколько уровней)
Чтобы выполнить разложение на несколько уровней, к очередному уровню применяют тот же алгоритм, но только к поддиапазону LL (так как именно он содержит более «грубую» часть изображения). Процесс выглядит так:
Первый уровень:
Получаем LL1,LH1,HL1,HH1.
Второй уровень:
К LL1 снова применяем 2D-вейвлет-преобразование.
Результат даёт: LL2,LH2,HL2,HH2.
Детали первого уровня (LH1,HL1,HH1) при этом остаются как есть.
Третий уровень:
Аналогично, к LL2 снова применяют операцию и получают LL3,LH3,HL3,HH3 и т. д.
Чем больше уровней, тем грубее становится новый LL-компонент, и тем больше “масштабов” (деталей) мы восстанавливаем из набора (LH, HL, HH) на каждом предыдущем уровне.
В итоге после n-го уровня разложения мы будем иметь иерархию из множества суб-изображений: самое низкочастотное LLn и множества детализационных компонентов (LHk,HLk,HHk) для каждого уровня k=1,…,n.
4. Практический смысл и применение
Сжатие (compression):
Вейвлет-разложение лежит в основе многих алгоритмов сжатия (например, JPEG 2000). Высокочастотные компоненты (детали) часто могут быть закодированы с меньшей точностью, поскольку они менее критичны для восприятия, тогда как низкочастотное подизображение (LL) передаётся с большей точностью.
Шумоподавление (denoising):
Высокочастотные компоненты могут содержать много шумовых составляющих. Обрезая (или усредняя) определённые коэффициенты в LH,HL,HH-поддиапазонах, можно удалять шум, сохраняя значимую информацию.
Восстановление (reconstruction):
Обратное вейвлет-преобразование позволяет из набора поддиапазонов (LL, LH, HL, HH) на всех уровнях восстановить исходное изображение. Это важно для без потерь или контролируемого сжатия.
Анализ текстур и масштабов:
Различные поддиапазоны (LH, HL, HH) содержат информацию о текстуре и деталях на разных масштабах. Это удобно в компьютерном зрении, методах распознавания образов и т. п.
5. Краткая сводка процесса на примере нескольких уровней
Шаг 2 (разложение приближения с предыдущего шага):
Берём LL1.
Применяем к нему 2D-вейвлет:
LL1wavelet{LL2,LH2,HL2,HH2}.
Детали первого уровня (LH1,HL1,HH1) остаются неизменными.
Шаг 3 и так далее, до нужного числа уровней:
Каждый раз разлагается LLk−1, получаем LLk,LHk,HLk,HHk.
Чем больше уровней, тем грубее становится LLn, и тем больше мы получаем наборов «деталей» (LH, HL, HH) разных масштабов.
Важно помнить
Для разных типов вейвлетов (Haar, Daubechies, Symlet, Coiflet и т. д.) меняется способ фильтрации (формы импульсных характеристик фильтров), что влияет на качество сжатия, степень сохранения резких краёв и прочие характеристики.
В случае цифрового изображения обычно применяют дискретное вейвлет-преобразование, где фильтры и операции децимации являются ключевым элементом.
Существует также непрерывное и станционарное вейвлет-преобразование (undecimated wavelet transform) без децимации, но его чаще используют в анализе, а не в сжатии.
Таким образом, многократное (иерархическое) вейвлет-разложение изображения позволяет шаг за шагом выделять компоненты на разных масштабах, сохраняя при этом возможность обратно собрать исходное изображение из полученных поддиапазонов.