Диссертация 1 (1189900), страница 7
Текст из файла (страница 7)
Исследования, проведенные авторами методами, показали неустойчивость ЦВЗ, встроенного с использованием алгоритма к JPEG-сжатию контейнера.
2.5 Алгоритмы, основанные на встраивании ЦВЗ в коэффициенты дискретного вейвлет-преобразования (DWT) изображения
Под вейвлет-преобразованием (wavelet transform) понимают разложение сигнала по системе вейвлетов ‒ функций, каждая из которых является сдвинутой и масштабированной (сжатой или растянутой) копией одной функции ‒ порождающего вейвлета [27]. Термин «вейвлет-преобразование» является обозначением целого класса разложений.
Можно выделить два основных класса вейвлет-преобразований ‒это непрерывные и дискретные вейвлет-преобразования. В стеганографии используются дискретные (в основном, целочисленные) вейвлет-преобразования.
Существует функция , такая, что множество ее сдвигов образует ортонормированную систему, и сигнал
можно точно представить в виде разложения по этой системе, т.е.
(2.5)
где и
Кроме того, эта система ортогональна системе вейвлетов, соответствующих уровню разрешения от 0 и выше и образует с ней ортонормированный базис в . Если функции
удовлетворяют всем этим условиям, то они называются скейлинг-функциями или масштабными функциями, а
‒ порождающей вейвлет-функцией [27].
Дискретное вейвлетное преобразование имеет меньшую относительно других преобразований (в том числе ДКП) вычислительную сложность. Благодаря своей хорошей частотной локализации, DWT очень удобно для нахождения областей внутри изображения, в которые можно незаметно встроить биты ЦВЗ.
К сожалению, в большинстве работ, посвященных встраиванию ЦВЗ в коэффициенты вейвлетного преобразования, не указан вид вейвлет-функции. Это создает проблемы при анализе статей, так как существующие вейвлетные преобразования часто достаточно сильно отличаются друг от друга и определениями, и имеющимися свойствами, и кругом приложений. При реализации алгоритмов этой группы в рамках магистерской диссертации использовалось вейвлетное преобразование Хаара (Добеши-2). Оно является самым быстрым вейвлетным преобразованием и требует меньше всего вычислительных ресурсов, что важно при использовании алгоритмов в беспроводных мультимедийных сенсорных сетях с устройствами малой вычислительной мощности.
Это ДВП было предложено венгерским математиком Альфредом Хааром. Для входного сигнала, представленного массивом чисел размерностью 2n, вейвлет-преобразование Хаара группирует элементы по 2 и образует от них суммы и разности. В итоге получается n разностей и n сумм. Группировка сумм проводится рекурсивно для образования следующего уровня разложения.
Скейлинг-функция и вейвлет системы Хаара задаются следующими формулами [28]:
(2.6)
(2.7)
На рисунке 2.2 представлена элементарная одномерная волна Хаара.
Рисунок 2.2 Вейвлет Хаара
В состав математического пакета Matlab входит пакет расширения Wavelet Toolbox [29,30]. Он позволяет осуществлять преобразования изображений посредством множества различных вейвлетов. В состав пакета входят средства графического интерфейса. На рисунке 2.3 приведена визуализация вейвлет-разложения изображения Lena по базису Хаара. В левом верхнем углу приведено исходное изображение, в правом нижнем визуализация двухмерного разложения посредством вейвлета Хаара (деление на 4 квадрата LL, HL, LH, HH-коэффициенты), в верхнем правом углу изображена низкоуровневая аппроксимация изображения (LL-аппроксимация), в нижнем левом углу показан результат вейвлет-восстановления (обратного ДВП).
Рисунок 2.3 Графический интерфейс Wavemenu
2.5.1 Алгоритм Сангхави (Sanghavi)
Этот алгоритм основан на встраивании ЦВЗ в изображение путём изменения местоположения коэффициентов ДВП и может применяться как для статичных изображений, так и для видеопоследовательностей (с добавлением метода выбора кадров для встраивания) [31].
Изображение подвергаются 4-уровневому вейвлет-преобразованию Хаара.
Цифровой водяной знак представляет из себя черно-белое изображение. Встраивание битов ЦВЗ в коэффициенты происходит путем изменения их позиций следующим образом:
(2.8)
где ‒ бит ЦВЗ,
‒ коэффициент DWT,
‒ индекс коэффициента.
При этом в процессе встраивания участвуют только среднечастотные (HL и LH) коэффициенты всех уровней разложения.
Для извлечения цифрового водяного знака не требуется исходный контейнер. Перед извлечением изображение подвергается 4-уровневому вейвлет-преобразованию. Значение бита ЦВЗ определяется следующим образом:
(2.9)
где ‒ бит восстанавливаемого ЦВЗ,
‒ коэффициент DWT стего.
Авторы заявляют устойчивость предложенной схемы к добавлению шумов и потере части контейнера. В то же время метод неустойчив к применению аффинных преобразований и медианных фильтров. Ещё одной серьёзной проблемой является необходимость проводить 4-уровневое прямое и обратное DWT, как при встраивании ЦВЗ, так и при его извлечении. Также в некоторых случаях наблюдается ухудшение качества изображения при встраивании.
2.5.2 Алгоритм Синха (Sinha)
В [32] предложена робастная схема, основанная на применении дискретного вейвлет-преобразования и метода главных компонент (PCA), применяемая для статичных изображений и видеопоследовательностей.
Известно, что после декомпозиции наблюдается корреляция между соседними коэффициентами ДВП, что упрощает анализ контейнера и поиск ЦВЗ.
Ортогональное преобразование PCA ‒ это математическая процедура, которая на входе принимает набор коррелированных значений, а на выходе выдает равный по длине набор некоррелированных значений. Таким образом, задача выделения ЦВЗ злоумышленником усложняется практически без потери информации в процессе преобразования.
Ниже описан процесс встраивания ЦВЗ по алгоритму Sinha [32]:
‒ цифровой водяной знак, представляющий из себя черно-белое изображение, преобразуется в вектор битов;
‒ изображение конвертируется в цветовую схему YUV (яркость, синяя компонента, красная компонента);
‒ к яркостной компоненте каждого кадра применяется 1-уровневое вейвлет-преобразование;
‒ блок низкочастотных (LL) коэффициентов разбивается на количество подблоков, равному размеру ЦВЗ;
‒ над всеми полученными подблоками производится ортогональное преобразование PCA, в результате получается набор некоррелированных значений (каждое значение соответствует одному подблоку);
‒ встраивание происходит путем изменения значений, полученных на предыдущем шаге по формуле:
(2.10)
где ‒ значение до встраивания,
‒ значение после встраивания,
‒ значение бита ЦВЗ,
‒ усиливающий коэффициент;
‒ применяется обратное преобразование PCA к низкочастотным коэффициентам DWT;
‒ производится обратное DWT и происходит переход к цветовой схеме RGB.
После встраивания и отправки по каналу связи, получатель осуществляет извлечение ЦВЗ. Далее будет описана процедура извлечения ЦВЗ по алгоритму Sinha [32]:
‒ производится переход изображения к цветовой схеме YUV;
‒ производится 1-уровневое вейвлет-преобразование яркостной компоненты каждого кадра;
‒ блок низкочастотных коэффициентов разбивается на подблоки;
‒ к каждому подблоку применяется PCA;
‒ значение бита ЦВЗ определяется по формуле:
(2.11)
где ‒ восстановленное значение бита ЦВЗ.
В результате проведенных авторами испытаний алгоритм показал удовлетворительную устойчивость к добавлению шумов и геометрическим преобразованиям. Метод использует 1-уровневое вейвлет-преобразование, что значительно увеличивает скорость его работы по сравнению с алгоритмом Sanghavi.
К недостаткам схемы можно отнести слабую робастность к применению фильтров, визуальную заметность встраивания в низкочастотную компоненту, необходимость наличия исходного изображения в декодере.
2.5.3 Алгоритм Хонга (Hong)
Алгоритм [33] осуществляет генерирование ЦВЗ на основе значений вейвлет-коэффициентов исходного изображения и встраивание путем изменения значений среднечастотных коэффициентов второго уровня вейвлет-разложения. Метод имеет один параметр α весовой коэффициент водяного знака. ЦВЗ представлен в виде генерируемого в ходе выполнения битового множества.
Процедура встраивания состоит из 4 этапов [33]:
-
двухуровневое вейвлет-разложение изображения-контейнера;
-
для определения коэффициентов, в которые будет производиться встраивание, генерируется псевдослучайная последовательность неповторяющихся индексов;
-
для некоторой окрестности каждого выбранного коэффициента вычисляется среднее значение:
; (2.12)
-
генерирование и встраивание ЦВЗ происходит исходя из средних значений, полученных на предыдущем этапе:
(2.13)
-
производится обратное DWT.
Процесс извлечения ЦВЗ практически совпадает со встраиванием: также производится 2-уровневое DWT, вычисляются средние значения и на основе их определяется значения битов ЦВЗ.
В алгоритме [33] значения битов ЦВЗ зависят от статистики исходного контейнера, что делает его схожим с алгоритмами цифровой подписи изображений на основе вычисления хеш-функций. В то же время, в отличие от цифровой подписи, встраивание ЦВЗ приводит к небольшому изменению контейнера, что делает данную схему робастной. Заявлена устойчивость метода к JPEG – сжатию и добавлению шумов.
2.5.4 Алгоритм Сохейли (Soheili)
Метод Soheili основан на встраивании ЦВЗ в изображение путем квантования коэффициентов дискретного вейвлетного преобразования [34]. Пускай C контейнер для встраивания (черно-белое изображение или компонента цветного изображения) размером , а
цифровой водяной знак (небольшое бинарное изображение) размером
. Цифровой водяной знак внедряется в изображение следующим образом:
-
исходное изображение подвергается n-уровневому ДВП, для встраивания выбираются коэффициенты LL- поддиапазона уровня разложения n;
-
выбранный низкочастотный поддиапазон разбивается на
блоков, где
;
-
биты цифрового водяного знака встраиваются во все блоки путем квантования коэффициентов по следующему правилу:
(2.14)
где коэффициент с координатами
блока
до квантования,
тот же коэффициент после квантования по формуле 2.14,
k-й бит ЦВЗ,
целое число,
шаг квантования;
-
производится обратное n-уровневое ДВП.
Грамотный выбор параметра обеспечивает баланс между незаметностью встраивания и робастностью алгоритма. Авторы рекомендуют встраивать ЦВЗ в коэффициенты 2 уровня вейвлет-разложения (n=2).
Для извлечения ЦВЗ получателю необходимо знать шаг квантования , количество блоков
, уровень встраивания n. Цифровой водяной знак извлекается благодаря следующей процедуре:
-
стегоконтейнер подвергается n-уровневому вейвлет-преобразованию, низкочастотный поддиапазон разбивается на
блоков;
-
биты ЦВЗ извлекаются из каждого блока по следующей формуле:
(2.15)
где коэффициент с координатами
блока
изображения в декодере, ,
k-й бит ЦВЗ, m целое число;
-
по полученным
вычисляются биты ЦВЗ
: