Извлечение встроенной информации

Извлечение встроенной информации из контейнера требует наличия сведений о размерности блоков, на которые разбивается изображение, а Также о конфигурации масок, которые использовались при встраивании. Процесс извлечения состоит из -следующих этапов:

1. Разбиение изображения на блоки размерностью NxN.

2. Классификация пикселей отдельного блока на зоны.

3. Деление каждой зоны на категории.

4. Сопоставление средних значений яркости для определения значения встроенного бита данных.

Первые три этапа идентичны соответствующим этапам алгоритма встраивания. Четвёртый этап заслуживает более подробного рассмотрения.

Пусть Извлечение встроенной информации - student2.ru и Извлечение встроенной информации - student2.ru — значения, полученные путем сравнения средних значений яркости:

Извлечение встроенной информации - student2.ru (5.13 a)

Извлечение встроенной информации - student2.ru (5.13 б)

Знак вычисленных Извлечение встроенной информации - student2.ru и Извлечение встроенной информации - student2.ru позволяет сделать предположение относительно истинного значения скрытого бита. Кроме того, абсолютные значения Извлечение встроенной информации - student2.ru и Извлечение встроенной информации - student2.ru несут информацию об уровне достоверности такого предположения.

Возможны три случая: -

Извлечение встроенной информации - student2.ru . При этом b*= 1, если Извлечение встроенной информации - student2.ru , и b*=0,если Извлечение встроенной информации - student2.ru .

Уровень достоверности: ]

- очень высокий, если Извлечение встроенной информации - student2.ru , и Извлечение встроенной информации - student2.ru ;

- очень высокий, если Извлечение встроенной информации - student2.ru , или Извлечение встроенной информации - student2.ru ;

- низкий, если Извлечение встроенной информации - student2.ru и Извлечение встроенной информации - student2.ru ;

- высокий во всех остальных случаях.

Извлечение встроенной информации - student2.ru Дополнительно вычисляется следующий параметр:

Извлечение встроенной информации - student2.ru

При этом b*=1, если Извлечение встроенной информации - student2.ru , и b*=0, если Извлечение встроенной информации - student2.ru . Уровень достоверности при этом низкий.

Извлечение встроенной информации - student2.ru . Вычисляется параметр Извлечение встроенной информации - student2.ru . При этом b*=1, если Извлечение встроенной информации - student2.ru , и b*= 0, если Извлечение встроенной информации - student2.ru . Уровень достоверности при этом низкий. Если Извлечение встроенной информации - student2.ru , то значение бита неопределенное.

Для повышения помехоустойчивости авторы предлагают использовать циклический код коррекции ошибок БЧХ.

Рассмотрим реализацию описанного выше метода в программной среде MathCAD.

Шаг1

Выделим массивы цветовых компонентов изображения:

R:=READ_RED("C.bmp"); G:=READ_GREEN("C.bmp"); В:=READ_BLUE("C.bmp").

Аналогично предыдущим методам, встраивание будем выполнять в массив синей цветовой составляющей (В).

Шаг 2

Определяем размерность массива контейнерах X и Y, а также задаем размерность сегментов (блоков), на которые он будет разбиваться: X:=rows(B), X=128; Y:=cols(B), Y=128; N=8. При этом общее количество сегментов Извлечение встроенной информации - student2.ru , Ns = 256 сегментов.

ШагЗ

С помощью программного модуля (М.34) разбиваем общий массив В на отдельные блоки. При этом последние выделяются из массива с помощью функции submatrix( Извлечение встроенной информации - student2.ru )и сохраняются как элементы вектора S.

Извлечение встроенной информации - student2.ru

На начальном этапе, столбцы, которые ограничивают выделенный из массива сегмент, имеют индексы Извлечение встроенной информации - student2.ru . Участок, ограниченный столбцами с1 и с2, полностью проходится путем постепенного наращивания значения индексов строк r1 и r2. В случае, когда индекс r2 совпадает с индексом последней строки, индексы столбцов увеличиваются на ширину выделяемых сегментов Nи т.д.

Отметим, что данный модуль не рассчитан на разбиение изображения на сегменты, размерность которых не кратна размерности изображения (данную возможность можно учесть путем введения в тело программного модуля соответствующих ограничивающих условий). В данном же случае, в результате вычисления программного модуля возвращается вектор S из 266 элементов, каждый из которых представляет собой матрицу размерностью 8x8.

Каждый сегмент S предназначен для скрытия одного бита секретного сообщения М, поэтому желательно предварительно проверить достаточность количества сегментов для этой операции. В нашем случае сообщение идентично используемому при рассмотрении предыдущих методов; его длина LM = 200 бит. Таким образом, количество сегментов вполне достаточно, поскольку Ns=256.

Шаг 4

Выполним классификацию пикселей каждого из блоков на зоны 1 и 2 (М.35). Во внимание принимается только количество сегментов, достаточное для встраивания данного сообщения М.

В начале цикла изменения s переменной Бприсваивается значение s-го сегмента S. Полученный массив Б разворачивается в вектор f, который в отсортированном виде присваивается переменной F. Таким образом, вектор Fимеет N2 элементов, расположенных по возрастанию.

Для существования возможности принятия одинаковых решений как на передающей стороне при встраивании, так и на принимающей стороне при извлечении относительно точки, при которой функция F имеет наибольшую крутизну (см. рис. 5.17), последнюю желательно сгладить, используя в качестве узловых точек лишь некоторую часть (г)от общего их количества (N2). Очевидно, что абсцисса первой узловой точки должна равняться единице Извлечение встроенной информации - student2.ru , а последней — Извлечение встроенной информации - student2.ru . Абсциссы промежуточных узловых точек формируются по выражению, смысл которого очевиден. В массив Извлечение встроенной информации - student2.ru заносятся соответствующие ординаты узловых точек.

Извлечение встроенной информации - student2.ru

Пользуясь встроенной функцией ispline( Извлечение встроенной информации - student2.ru ), формируем вектор кубических сплайн-коэффициентов вторых производных при приближении к опорным точкам (при этом предельные точки линейные). Для проведения сплайн-аппроксимации используем функцию interp(spline, Извлечение встроенной информации - student2.ru ), которая для каждой искомой абсциссы Извлечение встроенной информации - student2.ru вычисляет значение аппроксимированной функции.

Из основ дифференциального исчисления известно [101], что угол наклона касательной в заданной точке к графику функции равен арктангенсу от производной этой функции при данном значении аргумента. Следовательно, абсциссу точки Извлечение встроенной информации - student2.ru максимальной крутизны сплайн-аппроксимированной функции Извлечение встроенной информации - student2.ru можно найти по максимуму первой производной (d/d Извлечение встроенной информации - student2.ru ) данной функции среди всех возможных значений Извлечение встроенной информации - student2.ru .

В случае нахождения максимального значения крутизны, переменной Извлечение встроенной информации - student2.ru присваивается соответствующее значение Извлечение встроенной информации - student2.ru . Если для любого Извлечение встроенной информации - student2.ru не найдено производной больше Smax (все пиксели сегмента имеют одинаковую интенсивность), то переменной Извлечение встроенной информации - student2.ru присваивается значение N2/2. Если точка максимальной крутизны является предельной (то есть, равна 1 или N2), то она сдвигается на один шаг вправо или влево соответственно (при отсутствии такой поправки будут отсутствовать пиксели, которые принадлежат соответственно к первой или второй зоне).

В том случае, если полученное значение крутизны будет меньше порога (T1), пиксели делятся между двумя зонами 1 и 2 поровну в шахматном порядке. Если Извлечение встроенной информации - student2.ru выполняется поиск абсцисс Извлечение встроенной информации - student2.ru и Извлечение встроенной информации - student2.ru . При значении интенсивности пикселя Извлечение встроенной информации - student2.ru последний относится к зоне 1; при Извлечение встроенной информации - student2.ru .— к зоне 2; при Извлечение встроенной информации - student2.ru Извлечение встроенной информации - student2.ru — к переходной зоне ("- -").

В результате вычисления модуля возвращается вектор Zone, каждый элемент которого представляет собой матрицу идентичной размерности с соответствующим сегментом изображения (NxN). В свою очередь, каждый элемент такой матрицы может принимать три значения: 1, 2 или ("- -")., что определяет, к какой из возможных зон принадлежит пиксель сегмента S с соответствующими координатами.

Представим результаты разбиения изображения на сегменты и классификации пикселей по зонам для некоторых из этих сегментов (рис. 5.19).

Нумерация сегментов следующая: в первом столбце — с 1-га по 16-й, во втором — с 17-го по 32-й и т.д. Предварительно были установлены! следующие значения порогов: T1:=6, T2:=3.

Шаг 5

Разбиваем каждую зону на категории "А"и "Z" в соответствии с индивидуальной маской. Простой программный модуль генерирования псевдослучайных масок изображен ниже (М.36).

Извлечение встроенной информации - student2.ru

Рис. 5.19. Схема разбиения изображения на сегменты (а) и примеры классификации пикселей 3-го (б), 7-го (в) и 40-го (г) сегментов по зонам

Извлечение встроенной информации - student2.ru

Для каждого из Ns сегментов изображения генерируется массив Извлечение встроенной информации - student2.ru размерностью NxN. В начале такого генерирования создается вектор Извлечение встроенной информации - student2.ru нулевых элементов размерностью N2. Половине этих элементов присваивается символьное значение "А", причем это происходит с псевдослучайным шагом, который определяется заданным значением параметра Ко и текущими значениями переменных цикла i и Извлечение встроенной информации - student2.ru j (для того чтобы не выйти за рамки размерности вектора, используется функция возвращения остатка от деления). Всем остальным элементам присваивается значение "Z". После заполнения, вектор Извлечение встроенной информации - student2.ru ' сворачивается в матрицу Извлечение встроенной информации - student2.ru .

Примеры некоторых масок, полученных для Ко:= 123, изображены на рис. 5.20.

Извлечение встроенной информации - student2.ru

Рис. 5.20. Примеры масок разбиения по категориям для сегментов 1-3

Шаг 6

Модуль встраивания бит сообщения (М.37) построен на основе выражений (5.10)—(5.12). В начале модуля создается вектор двоичных данных на основе скрываемого сообщения М. Циклом изменения s выполняется встраивание отдельного бита Извлечение встроенной информации - student2.ru , в блок Извлечение встроенной информации - student2.ru с учетом соответствующего массива зон Извлечение встроенной информации - student2.ru и маски Извлечение встроенной информации - student2.ru .

Рассмотрим процедуру встраивания подробнее. На основе данных о принадлежности пикселей s-го блока к зоне 1 или 2, а также к категории "А"или "Z", подсчитывается количество, пикселей, удовлетворяющих одной из возможных комбинаций зон и категорий (1А, 12, 2А, 2Z). Результаты заносятся в соответствующий элемент массива n (рис. 5.21), который в начале подсчета имел нулевое значение.

Аналогично подсчитывается общая яркость Извлечение встроенной информации - student2.ru пикселей, принадлежащих той или иной паре зон и категорий (конфигурация заполненного при этом массива соответствует предыдущему случаю — рис. 5.21).

Извлечение встроенной информации - student2.ru

По полученным результатам вычисляется массив Извлечение встроенной информации - student2.ru средних значений яркости каждой из четырех групп пикселей. Для сокращения программных строк данное вычисление происходит с использованием операции векторизации — одновременного выполнения некоторой скалярной математической операции (в нашем случае — деления) над всеми элементами массива(-ов), помеченными знаком векторизации " Извлечение встроенной информации - student2.ru ". Конечно, такая параллельность вычисления относится не к самим вычислениям, а только к их алгоритмической записи. Поэтому кардинального изменения времени выполнения операции ждать при этом не приходится.

Извлечение встроенной информации - student2.ru

Рис. 6.21. Конфигурация массивов n и Извлечение встроенной информации - student2.ru

Далее для каждой зоны рассчитываются средние значения яркости Извлечение встроенной информации - student2.ru (формулы (5.11)), которые необходимо сохранить и после встраивания бита в сегмент изображения. Для решения системы уравнений (5.10), (5.I I) с двумя неизвестными Извлечение встроенной информации - student2.ru или Извлечение встроенной информации - student2.ru используется встроенная функция MathCAD решения линейной системы из n уравнений при n неизвестных — isolve(H,V), где H — квадратная несингулярная матрица; V— вектор, который имеет то же количество строк, что и матрица Н.

Для удобства изложения, перепишем данные системы в соответствии с принятыми в программном модуле (М.37) обозначениями:

• при b=1:

Извлечение встроенной информации - student2.ru

• при b=0:

Извлечение встроенной информации - student2.ru

где x — номер зоны.

При любом значении бита b, функция isolve( Извлечение встроенной информации - student2.ru ) вычисляется дважды (для каждой из зон). Результатом ее вычисления является вектор из двух элементов, значения которых соответствуют искомым неизвестным. Полученные два вектора объединяем столбец к столбцу, а результат объединения транспонируем (чтобы перейти к конфигурации, изображенной на рис. 5.21).

На заключительном этапе вычисляется разница (5.12). Результат вычисления (который, разумеется, также имеет конфигурацию, соответствующую рис.5.21) присваивается s-му элементу вектора Извлечение встроенной информации - student2.ru .

Шаг 7

Модифицируем блоки изображения, используя программный модуль (М.38). При этом, если номер блока превышает общее количество бит в сообщении (LM), то модификация блока не проводится

Извлечение встроенной информации - student2.ru

Шаг 8

Возвращаем блоки на соответствующие им места в изображении, используя модуль (М.39). На первом этапе первые X/N блоков (в нашем случае —16) объединяются в один общий массив путем объединения последней строки предыдущего блока с первой строкой последующего (функция stack( Извлечение встроенной информации - student2.ru )). В дальнейшем с помощью цикла подобная операция повторяется над каждой следующей группой из X/N блоков. Сгруппированные таким образом блоки параллельно объединяются между собой столбец к столбцу (функция augment(Извлечение встроенной информации - student2.ru)).

Извлечение встроенной информации - student2.ru

Воссозданное на основе массива ВМ изображение в большинстве случаев будет слишком искаженным (рис. 5.22) из-за уже упомянутого выше выхода значений интенсивностей пикселей за пределы диапазона [0; 255]. Поэтому данный массив необходимо дополнительно пронормировать, для чего, например, можно восползоваться программным модулем (М 40).

Извлечение встроенной информации - student2.ru

Извлечение встроенной информации - student2.ru

Рис. 6.22. Сравнение первичного (В), модифицированного (ВМ) (при значении Е=35) и дополнительного нормированного (ВМnorm) изображений

Шаг 9

Перейдем к извлечению скрытого сообщения. Принятые обозначения:

• ВМ* — заполненный контейнер;

• X* и Y" — соответственно, размеры контейнера по вертикали (количество строк пикселей) и горизонтали (количество столбцов);

• N* — размерность выделяемого блока контейнера;

• N*s — общее количество блоков;

• T*1 ,T*2 — значения первого и второго порогов сравнения;

Извлечение встроенной информации - student2.ru * — массив секретных масок.

Программные модули разбиения изображения на блоки (SM*) и классификации пикселей блока на зоны (Zone*) аналогичны, соответственно, модулям (М.34) и (М.35).

В отличие от операции встраивания, когда вычисление количества пикселей п, удовлетворяющих одной из возможных комбинаций зон и категорий, а также средних значений яркости Извлечение встроенной информации - student2.ru каждой из четырех групп пикселей выполнялось непосредственно в программном модуле (см. (М.37)), при извлечении указанные массивы необходимо сформировать отдельно — (М,41), (М.42).

Сравнение средних значений яркости для каждой из зон (формула (5.13)) выполняем, используя модуль (М.43).

Извлечение встроенной информации - student2.ru

Непосредственно модуль извлечения — (М.44), в котором реализована проверка условий, изложенных в теоретическом описании данного метода. Параметр Извлечение встроенной информации - student2.ru выбирается достаточно близким к нулю (~ 0,05).

Извлечение встроенной информации - student2.ru

Вектор двоичных данных, возвращаемый модулем (М.44), преобразуется в строку символов аналогично тому, как это было при моделировании предыдущих методов.

Результаты, полученные при вычислении параметров визуального искажения занесены в табл. 5.1 (стр. 125).

Наши рекомендации