Подробно опиши процесс вейвлет разложения изображе...

Created on: April 15, 2025

Answered using O1 by Chat01

Question

Подробно опиши процесс вейвлет разложения изображения. Несколько уровней

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. Основная идея одномерного вейвлет-преобразования

Для понимания двумерного вейвлет-разложения сначала рассмотрим принцип работы на одном измерении — для одномерного сигнала (например, последовательности чисел).

  1. Фильтрация

    • Сигнал пропускается через два фильтра:
      • Низкочастотный фильтр (Low-Pass Filter, L)
      • Высокочастотный фильтр (High-Pass Filter, H)
    • Результат применения низкочастотного фильтра даёт грубое приближение сигнала (Approximation),
      а результат высокочастотного фильтра даёт детали (Detail).
  2. Децимация (downsampling)

    • После фильтрации каждый из полученных сигналов, как правило, прореживается в 2 раза (берут, к примеру, каждый второй отсчёт).
    • В итоге после одного шага мы получаем два набора коэффициентов: «Приближение» и «Детали».
  3. Рекурсивный процесс

    • К «приближению» (низкочастотной части) можно снова применить аналогичную операцию фильтрации и децимации, чтобы выделять более грубую компоненту и её детали.
    • Таким образом, мы переходим к следующему уровню разложения.

2. Переход к двумерному случаю

Для изображения (двумерного массива) DWT (дискретное вейвлет-преобразование) чаще всего реализуется через построчную и постолбцовую фильтрацию:

  1. Применение фильтров по строкам

    • Каждую строку изображения пропускают через пару фильтров (L и H).
    • В результате каждая строка даёт два набора коэффициентов: низкочастотный (L) и высокочастотный (H).
    • Затем выполняется децимация: из каждого набора оставляют лишь половину отсчётов.
    • В итоге для каждой строки мы получаем два «подизображения»: одно состоит из L-коэффициентов (условно можно назвать его ILI_L), другое из H-коэффициентов ( IHI_H).
  2. Применение фильтров по столбцам

    • Далее аналогичные действия выполняются со столбцами уже полученных подизображений ILI_L и IHI_H.
    • Для каждого такого подизображения результат даст ещё два набора: L- и H-компоненты по столбцам.
  3. Формирование четырёх поддиапазонов

    • После обработки столбцов подизображения ILI_L (низкочастотного по строкам) мы получаем:
      1. LL – низкочастотный по строкам и низкочастотный по столбцам (приближение изображения).
      2. LH – низкочастотный по строкам, высокочастотный по столбцам (горизонтальные детали).
    • Аналогично подизображение IHI_H (высокочастотное по строкам) даёт: 3. HL – высокочастотный по строкам, низкочастотный по столбцам (вертикальные детали).
      4. HH – высокочастотный по строкам и столбцам (диагональные детали).

Таким образом, после одного уровня вейвлет-разложения мы имеем четыре поддиапазона (четыре суб-изображения): LLLL, LHLH, HLHL и HHHH.


3. Многократное разложение (несколько уровней)

Чтобы выполнить разложение на несколько уровней, к очередному уровню применяют тот же алгоритм, но только к поддиапазону LLLL (так как именно он содержит более «грубую» часть изображения). Процесс выглядит так:

  1. Первый уровень:

    • Получаем LL1,LH1,HL1,HH1LL_1, LH_1, HL_1, HH_1.
  2. Второй уровень:

    • К LL1LL_1 снова применяем 2D-вейвлет-преобразование.
    • Результат даёт: LL2,LH2,HL2,HH2LL_2, LH_2, HL_2, HH_2.
    • Детали первого уровня (LH1,HL1,HH1LH_1, HL_1, HH_1) при этом остаются как есть.
  3. Третий уровень:

    • Аналогично, к LL2LL_2 снова применяют операцию и получают LL3,LH3,HL3,HH3LL_3, LH_3, HL_3, HH_3 и т. д.
    • Чем больше уровней, тем грубее становится новый LLLL-компонент, и тем больше “масштабов” (деталей) мы восстанавливаем из набора (LH, HL, HH) на каждом предыдущем уровне.

В итоге после nn-го уровня разложения мы будем иметь иерархию из множества суб-изображений: самое низкочастотное LLnLL_n и множества детализационных компонентов (LHk,HLk,HHk)(LH_k, HL_k, HH_k) для каждого уровня k=1,,nk=1,\dots,n.


4. Практический смысл и применение

  • Сжатие (compression):
    Вейвлет-разложение лежит в основе многих алгоритмов сжатия (например, JPEG 2000). Высокочастотные компоненты (детали) часто могут быть закодированы с меньшей точностью, поскольку они менее критичны для восприятия, тогда как низкочастотное подизображение (LL) передаётся с большей точностью.

  • Шумоподавление (denoising):
    Высокочастотные компоненты могут содержать много шумовых составляющих. Обрезая (или усредняя) определённые коэффициенты в LH,HL,HHLH, HL, HH-поддиапазонах, можно удалять шум, сохраняя значимую информацию.

  • Восстановление (reconstruction):
    Обратное вейвлет-преобразование позволяет из набора поддиапазонов (LL, LH, HL, HH) на всех уровнях восстановить исходное изображение. Это важно для без потерь или контролируемого сжатия.

  • Анализ текстур и масштабов:
    Различные поддиапазоны (LH, HL, HH) содержат информацию о текстуре и деталях на разных масштабах. Это удобно в компьютерном зрении, методах распознавания образов и т. п.


5. Краткая сводка процесса на примере нескольких уровней

  1. Шаг 1 (первое разложение):
    • Исходное изображение II.
    • Применить 2D-вейвлет: Iwavelet{LL1,LH1,HL1,HH1}.I \xrightarrow{\text{wavelet}} \{LL_1, LH_1, HL_1, HH_1\}.
  2. Шаг 2 (разложение приближения с предыдущего шага):
    • Берём LL1LL_1.
    • Применяем к нему 2D-вейвлет: LL1wavelet{LL2,LH2,HL2,HH2}.LL_1 \xrightarrow{\text{wavelet}} \{LL_2, LH_2, HL_2, HH_2\}.
    • Детали первого уровня (LH1,HL1,HH1LH_1, HL_1, HH_1) остаются неизменными.
  3. Шаг 3 и так далее, до нужного числа уровней:
    • Каждый раз разлагается LLk1LL_{k-1}, получаем LLk,LHk,HLk,HHkLL_k, LH_k, HL_k, HH_k.

Чем больше уровней, тем грубее становится LLnLL_n, и тем больше мы получаем наборов «деталей» (LH, HL, HH) разных масштабов.


Важно помнить

  • Для разных типов вейвлетов (Haar, Daubechies, Symlet, Coiflet и т. д.) меняется способ фильтрации (формы импульсных характеристик фильтров), что влияет на качество сжатия, степень сохранения резких краёв и прочие характеристики.
  • В случае цифрового изображения обычно применяют дискретное вейвлет-преобразование, где фильтры и операции децимации являются ключевым элементом.
  • Существует также непрерывное и станционарное вейвлет-преобразование (undecimated wavelet transform) без децимации, но его чаще используют в анализе, а не в сжатии.

Таким образом, многократное (иерархическое) вейвлет-разложение изображения позволяет шаг за шагом выделять компоненты на разных масштабах, сохраняя при этом возможность обратно собрать исходное изображение из полученных поддиапазонов.

Share this Q&A