Метод нанесения ЦВЗ. Методы нанесения ЦВЗ делятся на пространственные и частотные. К пространственным методам относится метод LSB. К частотным - методом расширения спектра. Помеченный сигнал получается аддитивной модификацией. Такие ЦВЗ отличаются средней надёжностью, но очень маленьким информационной ёмкостью. Метод амплитудной модуляции, схожий с методом расширения спектра, также применяется для внедрения. Метод квантования не очень надёжен, но позволяет внедрить большой объём информации.
1.4.4 Применение
· Защита авторских прав
· Борьба с видеопиратством и ранний доступ к новинкам кино. При сотрудничестве с киностудиями Голливуда операторы телевизионных сетей могут предоставлять своим зрителям платный доступ к премиум-контенту - фильмам, только что появившимся в кинотеатрах и еще не вышедшим на DVD [2]. Обязательным условием студий при этом является встраивание водяного знака, позволяющего обнаружить источник утечки - конкретного зрителя - при попадании фильма в нелегальный оборот [3].
· Получение цифрового отпечатка (различные люди получают копии, помеченные разными водяными знаками).
· Отслеживание трансляций (телевизионные новости часто содержат водяные знаки, оставленные международными информационными агентствами[4]; рекламные агентства используют водяные знаки для контроля выхода своей рекламы в эфир в оговоренном объеме).
· Сокрытие факта обмена информации (Стеганография).
1.5 Постановка задач дипломного проекта
Цель:
Разработка программного обеспечения для маркировки и защиты авторства изображения с использованием цифровых водяных знаков.
Задачи:
· Изучить основные методы построения особых точек
· На примере детектора Харриса найти особые точки изображения
· Определить координаты точек и расстояния между ними
· Изучить построение минимального остовного дерева из найденных особых точек
· Изучить дискретное преобразование Фурье и применить его для введения цифровых водяных знаков с целью защиты авторства изображения
программный защита авторство изображение цифровой водяной
2. Детектор Харриса определения особых точек
2.1 Алгоритм работы
Рассмотрим фрагмент U изображения I(x,y) с центром в точке (u,v), и его копии, сдвинутые на величину (х, у). Для каждой точки фрагмента можно вычислить взвешенный квадрат разности между сдвинутым и исходным фрагментом, и рассмотреть функцию:
(1)
Функция I(u+x,v+y) может быть разложена в ряд Тейлора в окрестности центра (u,v), что позволяет перейти к выражению:
(2)
где: Ix и Iy - частные производные яркости в горизонтальном и вертикальном направлениях.
Это выражение можно записать в матричном виде:
(3)
где: M= - матрица локальной структуры.
В качестве весовой функции w(u,v) обычно используется функция Гаусса [13].
Угол характеризуется большими изменениями функции S(x,y) по всем возможным направлениям (x,y), что эквивалентно большим по модулю собственным значениям матрицы M.
Отсюда следует ряд выводов:
1. Если собственные значения л1 и л2 близки к нулю, то пиксель с центром в (x,y) не является точкой интереса, поскольку он лежит в однородной области.
2. Если л1?0, а л2 принимает большое по модулю значение, то пиксель (x,y) принадлежит краю.
3. Если оба собственных значения велики и принимают положительные значения, то пиксель (x,y) является углом.(см рис. 1)
Рис. 1 Характеристика угла большими изменениями функции
Мера отклика угла по Харриса (см рис. 2) :
R=det M - k(trace M)І (4)
det M = л1л2
trace M = л1 + л2
(k = 0.04 - 0.06)
Где det M - определитель матрицы; trace M - след матрицы; л1, л2 - собственные значения матрицы,
Рис. 2 Мера отклика угла по Харрису
Алгоритм работы
1) Вычислить градиент изображения в каждом пикселе
2) Вычислить матрицу вторых моментов по окну вокруг каждого пикселя
3) Вычислить отклик угла
4) Отрезать по порогу
5) Найти локальные максимумы функции отклика по окрестности заданного радиуса
6) Выбор самых сильных локальных максимумов [14].
Результат работы детектора Харриса (см. рис. 3)
Рис. 3. Результат работы детектора Харриса
2.2 Построение минимального остовного графа
Граф -- это совокупность непустого множества вершин и наборов пар вершин (связей между вершинами).
Объекты представляются как вершины, или узлы графа, а связи - как дуги, или рёбра. Для разных областей применения виды графов могут различаться направленностью, ограничениями на количество связей и дополнительными данными о вершинах или рёбрах.
Граф, или неориентированный граф G -- это упорядоченная пара , для которой выполнены следующие условия:
-- это непустое множество вершин или узлов;
-- это множество пар (в случае неориентированного графа - неупорядоченных) вершин, называемых рёбрами.
(а значит и, , иначе оно было бы мультимножеством) обычно считаются конечными множествами. Многие хорошие результаты, полученные для конечных графов, неверны (или каким-либо образом отличаются) для бесконечных графов. Это происходит потому, что ряд соображений становится ложным в случае бесконечных множеств.
Вершины и рёбра графа называются также элементами графа, число вершин в графе | | - порядком, число рёбер | | - размером графа.
Вершины и называются концевыми вершинами (или просто концами) ребра . Ребро, в свою очередь, соединяет эти вершины.
Две концевые вершины одного и того же ребра называются соседними.
Два ребра называются смежными, если они имеют общую концевую вершину.
Два ребра называются кратными, если множества их концевых вершин совпадают.
Ребро называется петлёй, если его концы совпадают, то есть .
Степенью вершины называют количество инцидентных ей рёбер (при этом петли считают дважды).
Вершина называется изолированной, если она не является концом ни для одного ребра; висячей (или листом), если она является концом ровно одного ребра. (см. рис. 4)
Рис. 4. Неориентированный граф
Ориентированный граф (сокращённо орграф) - это упорядоченная пара , для которой выполнены следующие условия:
-- это непустое множество вершин или узлов,
-- это множество (упорядоченных) пар различных вершин, называемых дугами или ориентированными рёбрами.
Дуга -- это упорядоченная пара вершин , где вершину называют началом, а - концом дуги. Можно сказать, что дуга ведёт от вершины к вершине .
Смешанный граф -- это граф, в котором некоторые рёбра могут быть ориентированными, а некоторые - неориентированными. Записывается упорядоченной тройкой , где, и определены так же, как выше.
Ориентированный и неориентированный графы являются частными случаями смешанного [15].
Минимальное остовное дерево в связанном взвешенном неориентированном графе -- это остовное дерево этого графа, имеющее минимальный возможный вес, где под весом дерева понимается сумма весов входящих в него рёбер (см. рис. 5) [16].
Рис 5. Минимальное остовное дерево
2.3 Дискретное преобразование Фурье
Дискретное преобразование Фурье (в англоязычной литературе DFT, Discrete Fourier Transform) -- это одно из преобразований Фурье, широко применяемых в алгоритмах цифровой обработки сигналов (его модификации применяются в сжатии звука в MP3, сжатии изображений в JPEG и др.), а также в других областях, связанных с анализом частот в дискретном (к примеру, оцифрованном аналоговом) сигнале. Дискретное преобразование Фурье требует в качестве входа дискретную функцию. Такие функции часто создаются путём дискретизации (выборки значений из непрерывных функций). Дискретные преобразования Фурье помогают решать частные дифференциальные уравнения и выполнять такие операции, как свёртки. Дискретные преобразования Фурье также активно используются в статистике, при анализе временных рядов. Существуют многомерные дискретные преобразования Фурье.
Формулы преобразований
Прямое преобразование:
(5)
k = 0,..., N-1
Обратное преобразование:
(6)
n = 0,…,N-1
Обозначения:
N - количество значений сигнала, измеренных за период, а также количество компонент разложения;
, n = 0,…,N-1 - измеренные значения сигнала (в дискретных временных точках с номерами, которые являются входными данными для прямого преобразования и выходными для обратного;
, k = 0,..., N-1 - комплексных амплитуд синусоидальных сигналов, слагающих исходный сигнал; являются выходными данными для прямого преобразования и входными для обратного; поскольку амплитуды комплексные, то по ним можно вычислить одновременно и амплитуду, и фазу;
- обычная (вещественная) амплитуда k-го синусоидального сигнала;
- фаза k-го синусоидального сигнала (аргумент комплексного числа);
- индекс частоты. Частота k-го сигнала равна, где - период времени, в течение которого брались входные данные.
Из последнего видно, что преобразование раскладывает сигнал на синусоидальные составляющие (которые называются гармониками) с частотами от N колебаний за период до одного колебания за период. Поскольку частота дискретизации сама по себе равна N отсчётов за период, то высокочастотные составляющие не могут быть корректно отображены - возникает муаровый эффект. Это приводит к тому, что вторая половина из N комплексных амплитуд, фактически, является зеркальным отображением первой и не несёт дополнительной информации.
3. Реализация метода записи особых точек
3.1 Система Matlab
MATLAB -- это высокоуровневый язык и интерактивная среда для программирования, численных расчетов и визуализации результатов. С помощью MATLAB можно анализировать данные, разрабатывать алгоритмы, создавать модели и приложения.
Язык, инструментарий и встроенные математические функции позволяют вам исследовать различные подходы и получать решение быстрее, чем с использованием электронных таблиц или традиционных языков программирования, таких как C/C++ или Java.
MATLAB широко используется в таких областях, как:
- обработка сигналов и связь,
- обработка изображений и видео,
- системы управления,
- автоматизация тестирования и измерений,
- финансовый инжиниринг,
- вычислительная биология и т.п.
Более миллиона инженеров и ученых по всем миру используют MATLAB в качестве языка технических вычислений.
MATLAB по сравнению с традиционными языками программирования (C/C++, Java, Pascal, FORTRAN) позволяет на порядок сократить время решения типовых задач и значительно упрощает разработку новых алгоритмов.
MATLAB представляет собой основу всего семейства продуктов MathWorks и является главным инструментом для решения широкого спектра научных и прикладных задач, в таких областях как: моделирование объектов и разработка систем управления, проектирование коммуникационных систем, обработка сигналов и изображений, измерение сигналов и тестирование, финансовое моделирование, вычислительная биология и др.
Ядро MATLAB позволяет максимально просто работать с матрицами реальных, комплексных и аналитических типов данных и со структурами данных и таблицами поиска.
MATLAB cодержит встроенные функции линейной алгебры (LAPACK, BLAS), быстрого преобразования Фурье (FFTW), функции для работы с полиномами, функции базовой статистики и численного решения дифференциальных уравнений; расширенные математические библиотеки для Intel MKL.
Численные вычисления
MATLAB предоставляет множество методов для анализа данных, разработки алгоритмов и создания моделей. Язык MATLAB включает в себя математические функции для инженерных и научных операций. Встроенные математические функции используют процессор-оптимизированные библиотеки, предназначенные для ускорения векторных и матричных вычислений. Доступны следующие операции:
- Интерполяция и регрессия
- Дифференцирование и интегрирование
- Системы линейных уравнений
- Фурье анализ
- Собственные значения и сингулярные числа матриц
- Обыкновенные дифференциальные уравнения
- Разреженные матрицы
Расширения MATLAB предоставляют специализированный функционал в таких областях как статистика, оптимизация, обработка сигналов, машинное обучение.
Доступ к данным
MATLAB позволяет вам получать доступ к данным из файлов, других приложений, баз данных, внешних устройств. Вы можете читать данные из файлов таких популярных форматов как Microsoft Excel, текстовых или двоичных файлов, изображений, аудио и видео файлов, научных форматов (netCDF и HDF). Функции ввода-вывода позволяют работать с файлами данных любых форматов.
Используя расширения MATLAB можно получать данные с различных устройств, таких как последовательный порт компьютера или звуковая карта, а также потоковые данные в реальном времени с измерительных устройств непосредственно в MATLAB для анализа и визуализации. Помимо того, вы можете управлять такими приборами, как осциллографы, анализаторы сигналов и генераторы колебаний специальной формы.
Анализ данных
MATLAB позволяет управлять, фильтровать и осуществлять предварительную обработку данных. Вы можете исследовать данные для нахождения трендов, проверки гипотез, построения описательных моделей. В MATLAB включены функции для фильтрации, сглаживания, свёртки и быстрого преобразования Фурье (FFT). Продукты-расширения включают возможности подбора кривых и поверхностей, многомерной статистики, спектрального анализа, анализа изображений, идентификации систем и другие инструменты анализа.