Множественные данные

Арифметика

Обработка данныхМножественные данныеАрифметические операции

Модуль арифметики над данными позволяет проводить произвольные операции над точками отдельного поля данных или соответствующими точками нескольких полей данных (на текущий момент до восьми). И, хотя это не является его главным предназначением, он может использоваться как калькулятор с непосредственным расчётом выражений. Синтаксис выражений описан в разделе Выражения.

Выражение может содержать следующие переменные, соответствующие значениям отдельных полей данных:

ПеременнаяОписание
d1, …, d8Значение данных в точке. Значение записывается в основных физических единицах, например, для высоты в 233 нм, значение d1 равно 2.33e-7.
m1, …, m8Значение маски в точке. Значение маски равно либо 0 (для немаскированных точек) либо 1 (для точек под маской). Переменные маски могут использоваться и если маска не задана, значение равно 0 во всех точках в этом случае.
bx1, …, bx8Производная по горизонтали в точке. Снова значение в физических единицах. Производная считается как стандартная симметричная производная, кроме точек на границе, где берётся производная только с одной стороны.
by1, …, by8Производная по вертикали в точке, определяется так же, как и производная по горизонтали.
xГоризонтальная координата точки (в физических единицах). Одинакова во всех полях из-за требования совместимости (см. ниже).
yВертикальная координата точки (в физических единицах). Одинакова во всех полях из-за требования совместимости (см. ниже).

В дополнение определяется константа π, которую можно набирать либо как π, либо как pi.

Поля данных, которые реально используются в выражении должны быть совместимы. Это означает, что их размеры (как физические, так и в пикселях) должны быть идентичны. Другие поля данных (те, что не входят в выражения) ни на что не влияют. Результат всегда помещается в созданное заново поле данных в текущем открытом файле (который может отличаться от файлов, содержащих все операнды).

Поскольку модуль расчёта не может автоматически вывести правильные физические единицы измерения результата, единицы должны быть явно указаны. Это можно сделать двумя путями: или выбрав поле данных с теми же единицами значений, что должны быть у результата, или выбрав опцию Задать единицы и введя единицы вручную.

Следующая таблица содержит несколько простых примеров выражений:

ВыражениеЗначение
-d1Инвертирует значение. Результат очень похож на Инвертировать значение, за исключением того, что последнее инвертирует значения относительно среднего в то время, как здесь мы просто меняем знак у значений,
(d1 - d2)^2Квадрат разницы между двумя полями данных.
d1 + m1*1e-8Модификация значений под маской. Конкретно в этом случае значение 10-8 добавилось ко всем точкам под маской.
d1*m3 + d2*(1-m3)Комбинация двух полей данных. Точки берутся либо из поля 1, либо из 2, в соответствии с маской, заданной на поле 3.

В режиме калькулятора выражение вычисляется сразу по мере его ввода и результат показывается под полем ввода выражения. Не требуется совершать специальных действий чтобы переключаться между выражениями над полями данных и калькулятором: выражения, содержащие только численные величины рассчитываются сразу, выражения, содержащие поля данных используются чтобы рассчитать новое поле данных. Изображение предпросмотра, показывающее результат операции с полями не обновляется сразу следом за набором выражения; его можно обновить или нажатием на кнопку Обновить или нажатием Enter в поле ввода выражения.

Встроить фрагмент

Обработка данныхМножественные данныеВстроить

Встраивание вставляет фрагмент, изображение с более высоким разрешением, внутрь более крупного изображения. Изображение, на котором была запущена функция формирует большое, базовое изображение.

Положение фрагмента может быть задано вручную на большом изображении с помощью мыши. Кнопка Уточнить может быть затем использована для получения точных координат в окрестности текущей позиции, которые дают максимум корреляции между фрагментом и большим изображением. Или наиболее подходящее положение может быть найдено на всём изображении с помощью кнопки Найти.

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

Разрешение результата контролирует размер и разрешение результирующего изображения:

Увеличить разрешение большого изображения
Разрешение результата определяется разрешением встраиваемого фрагмента. Следовательно, масштаб большого изображения увеличивается.
Снизить разрешение фрагмента
Разрешение результата определяется разрешением большого изображения. Масштаб фрагмента уменьшается.

Выравнивание фрагмента выбирает преобразование значений z фрагмента:

Нет
Подстройка значений z не производится.
Среднее значение
Все значения изображения фрагмента сдвигаются на постоянную величину так, чтобы его среднее значение соответствовало среднему значению соответствующей области большого изображения.

Объединение

Обработка данныхМножественные данныеОбъединить

Изображения, которые формируют части большего изображения, могут быть объединены вместе с помощью команды "Объединить." Изображение, на котором была запущена эта функция формирует базовое изображение, изображение, выбранное с помощью Объединить с, представляет второй операнд. Сторона базового изображения к которой будет присоединено второе управляется с помощью выпадающего меню Поместить второй операнд.

Если изображения идеально соответствуют друг другу, они могут просто совмещены сторонами без подстройки. Этот вариант выбирается опцией Нет в управляющем выравниванием элементе Выровнять второй операнд.

Однако, обычно необходимы подстройки. Если изображения имеют одинаковый размер и выровнены в направлении, перпендикулярном к направлению слияния, единственной степенью свободы будет возможное перекрытие. В данном случае может использоваться метод выравнивания объединение. В отличие от поиска корреляции, описанного ниже, сопоставляются абсолютные значения данных. Это делает данную опцию подходящей даже для слабо меняющихся изображений если их абсолютные значения высоты измерены точно.

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

Опция Режим границы полезна только в последнем случае неточно выровненных изображений. Она управляет тем, что будет с пересекающейся частью обоих изображений:

Первый операнд
Значения в пересекающихся областях берутся из первого, базового изображения.
Второй операнд
Значения в пересекающихся областях берутся из второго изображения.
Сгладить
Гладкий переход между первым и вторым изображением производится на пересекающейся области используя взвешенное среднее с подходящей функцией веса.

Сшивание

Обработка данныхМножественные данныеСшивание

Сшивание является альтернативой модулю объединения изображений, описанному выше. Оно в основном полезно если точно известны относительные положения частей изображения поскольку позиции вводятся численною Они инициализируются с использованием смещений изображения, таким образом, если они правильны, сшитое изображение формируется автоматически. Кнопки Восстановить для каждой части возвращают вручную измененные смещения к первоначальным.

Взаимно кадрировать

Обработка данныхМножественные данныеВзаимное кадрирование

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

Общая область определяется корреляцией большего изображения с центральной частью меньшего. Разрешения обоих изображений (количество точек на единицу длины) должны быть одинаковы.

На текущий момент единственным параметром сейчас является Второй операнд - будет посчитана корреляция между ним и текущим активным изображением и оба поля данных будут обрезаны чтобы удалить непересекающиеся области возле границы.

Взаимная корреляция

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

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

Для каждого пикселя первого операнда (текущего окна) модуль берёт его окрестность и ищет наилучшую корреляцию с вторым операндом внутри заданной области. Положение максимума корреляции используется для задания значения сдвига для вышеупомянутого пикселя первого операнда.

Второй операнд
Изображение, которое будет использоваться для сравнения с первым операндом - базовое изображение.
Размер поиска
Используется для задания области, где алгоритм будет искать локальную окрестность (на втором операнде). Должно быть больше, чем размер окна. Необходимо увеличить размер, если между сравниваемыми изображениями есть большие различия.
Размер окна
Используется для задания размера области локальной окрестности (на первом операнде). Должно быть меньше, чем размер поиска. Увеличение этого значения может улучшить работу модуля, но, разумеется, замедлит расчёт.
Тип вывода
Определяет выходной формат (пиксельного сдвига).
Добавить маску порога низкой степени корреляции.
Для некоторых пикселей (с не очень ярко выраженной окрестностью) степень корреляции будет низкой везде, но алгоритм всё равно будет выбирать некоторые максимальные значения этой степени. Чтобы увидеть эти точки и возможно убрать их из дальнейшего рассмотрения можно дать модулю установить маску сдвигов пикселей с низкой степенью корреляции, для которых вероятность того, что она определена правильно, невелика.

Маска по корреляции

Обработка данныхМножественные данныеПометить корреляцией

Модуль ищет заданный шаблон корреляции внутри текущего изображения. Результирующее положение шаблона помечается маской в окне данных.

Ядро корреляции
Изображение, которое нужно найти в базовом.
Тип вывода
Есть несколько вариантов того. что выводить: локальные максимумы корреляции (отдельные точки), маски с размером ядра для каждого максимума корреляции (хорошо подходят для презентаций) или просто степень корреляции.
Метод корреляции
Здесь можно выбрать алгоритм расчёта корреляции.
Порог
Порог для определения, будет ли локальный максимум считаться «ядром корреляции, найденным в этом месте».

Обработка нейросетью

Обработку с помощью нейросети можно использовать для расчёта одного типа данных из другого даже если формула или соотношение, описывающие связь между ними, не описаны в явном виде. Соотношение непосредственно встраивается в нейросеть на этапе, называемом обучением, который задействует пары известных входных и выходных данных, обычно называемых модель и сигнал. В этом процессе сеть оптимизируется таким образом, чтобы воспроизводить настолько точно, насколько это возможно сигнал из модели. Обученная нейросеть затем может быть использована для обработки данных модели, для которых выходной сигнал не известен и получать, обычно несколько приближенно, как сигнал должен выглядеть. Другим возможным применением может быть аппроксимация методов обработки данных, которые являются точными, но требующими значительного времени. В этом случае сигналом будут выходные данные точного метода, и нейросеть обучается воспроизводить их.

Поскольку обучение нейросети и её применение это два совершенно различных шага, они реализованы в Gwyddion как две разные функции.

Обучение нейросети

Обработка данныхМножественные данныеОбучение Нейросети

Основные функции, которые контролируют процесс обучения, содержатся во вкладке Обучение:

Модель
Данные модели, т.е. входные данные для обучения. Для обучения можно выбрать несколько моделей последовательно (с соответствующими сигналами).
Сигнал
Данные сигнала для обучения, т.е. выходные данные, которые должна выдавать обученная нейросеть. Поле данных сигнала должно быть совместимо с полем модели, т.е. иметь одинаковые размеры в пикселях и физические.
Шагов тренировки
Число шагов обучения, которое будет выполнено при нажатии Обучение. Каждый шаг состоит из одного прохода по всем данным сигнала. Можно установить число шагов обучения равным нулю, при этом обучения не будет производиться, но модель будет рассчитана нейросетью, и можно будет наблюдать результат расчёта.
Обучение
Начинает обучение. Это сравнительно медленный процесс, особенно при больших размерах поля данных и окна.
Переинициализация
Заново инициализирует нейросеть в необученном состоянии. Точнее, это означает, что веса нейронов устанавливаются в случайные значения.
Режим использования маски
Можно обучать нейросеть только на подмножестве сигнала, заданным маской на данных сигнала (использование маски на модели будет бессмысленным из-за размеров окна).

Параметры нейросети можно изменить на вкладке Параметры. Изменение как размеров окна, так и числа скрытых узлов означает переинициализацию неросети (как при нажатии кнопки Переинициализировать).

Ширина окна
Горизонтальный размер окна. Входные данные для сети состоят из области вокруг пикселя модели, называемой окном. Окно центрируется на пикселе, поэтому предпочтительными являются нечётные размеры.
Высота окна
Вертикальный размер окна.
Скрытые узлы
Число узлов в «скрытые» слое нейросети. Большее число узлов приводит к более универсальной сети, с другой стороны стороны, оно приводит к замедлению обучения и применения нейросети. Обычно это число является малым по сравнению с числом пикселей окна.
Степень XY источника
Степень, с которой единицы измерения пространственных размеров модели должны появляться в сигнале. Используется только при применении нейросети к данным.
Степень Z источника
Степень, с которой единицы измерения «высоты» модели должны появляться в сигнале. Используется только при применении нейросети к данным.
Заданные единицы
Фиксированные единицы измерения результата. Они комбинируются с другими параметрами единиц измерения, поэтому если вы хотите получить единицы измерения результата независимыми от входных, необходимо установить обе степени в ноль. Используются только при применении нейросети к данным.

Обученную нейросеть можно сохранить. загрузить для переобучения на других данных и т.п. Управление списком сетей похоже на предустановки загрузки сырых данных.

В дополнение к сетям в списке, существует ещё одна неназванная сеть, и это та сеть, которая обучается в текущий момент. Когда вы загружаете сеть, обучаемая сеть становится копией загруженной. Обучение затем не меняет именованные сети; чтобы сохранить сеть после обучения (под уже имеющимся или новым именем) необходимо явно использовать кнопку Сохранить.

Применение нейросети

Обработка данныхМножественные данныеПрименить нейросеть

Применить обученную нейросеть просто: нужно выбрать одну из списка и нажать OK. Неименнованная сеть, которая обучается в настоящии момент также присутствует в списке под названием «Обучается».

Поскольку нейросети обрабатывают и производят нормализованные данные, они не сохраняют хорошо соотношения сторон, особенно если масштаб модели, использованной при обучении, сильно отличается от масштаба реальных входных данных. Если выходные данные должны масштабироваться вместе со входными, необходимо включить опцию Масштабировать пропорционально входным данным, которая масштабирует выходные данные пропорционально обратному отношению диапазонов текущих данных и данных, использованных при обучении.