Agisoft Metashape (версии Standard и Professional)  поддерживает автоматическое маскирование фона. В этой статье описан алгоритм автоматического создания масок из снимков фона. Также в статье приведено сравнение результатов выравнивания для сценариев с использованием масок и без них.
Маскировать фон важно, когда положение камеры зафиксировано, фон статичен и либо объект вращается, либо все симки делаются одновременно с помощью многокамерной установки. Сценарий съемки подразумевает, что фон для каждой позиции камеры не изменяется во время процесса захвата снимков, поэтому на основе снимков фона (без объекта) можно автоматически сгенерировать маски. Важно иметь снимок пустого фона для каждой позиции размещения камеры. На примере ниже для каждого снимка из основного набора данных (с объектом реконструкции), представленного справа, есть соответствующий снимок «пустого» фона, представленный слева:




Добавление снимков

Выберите инструмент Добавить снимки / Добавить папку в меню Обработка, чтобы загрузить снимки в активный блок проекта. Вы можете добавить в блок все снимки (включая «пустой» фон) или снимки только с интересующим объектом.


Добавление самих снимков фона в проект (с помощью команды Добавить снимки) не требуется, если вы не планируете использовать их в процедуре Применить маски > К связующим точкам.


Импорт масок

На панели Снимки выберите снимки и перейдите в контекстное меню нажатием правой кнопки мыши. Выберите команду Маски > Импорт масок и в соответствующем диалоговом окне выберите "Из фотографии фона" и установите необходимые параметры, как показано в окне ниже. Нажмите кнопку ОК, и маска будет применена автоматически. 


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


Поддерживаются следующие вставки шаблона:

{filename} - имя исходного снимка без расширения;

{fileext} - расширение исходного снимка;

{camera} - метка модели камеры;

{frame} - номер кадра;

{filenum} - порядковый номер исходного снимка.

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

 

 

Пример 1. Все снимки делаются одновременно несколькими камерами (как в проекте, который используется в этой статье для примера). Для каждой камеры существует только один снимок в каждой съемке, и имя каждого снимка соответствует имени / номеру камеры в установке. Это означает, что есть два набора данных, имена файлов которых идентичны, при этом один набор данных содержит снимки с пустым фоном, а второй набор снимков содержит изображение интересующего объекта. В таком сценарии должен использоваться такой шаблон имени файла - {filename}.JPG.


Пример 2.  В сценарии с поворотным столом обычно используется один снимок фона, поскольку снимки сделаны с одной и той же позиции камеры. В таком сценарии в шаблоне имени файла должно быть указано конкретное имя файла снимка фона (например, IMG_0001.JPG) - он будет использоваться в качестве снимка фона для автоматического создания масок для всех снимков в выбранном подмножестве.


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


Если в разделе "Применить к" диалогового окна Импорт масок выбран пункт "Все камеры", появится диалоговое окно Выбор папки (после нажатия кнопки ОК). В этом окне необходимо указать путь к папке, в которой сохранятся снимки фона


Чтобы сгенерировать маски из фона для Выбранных камер (это может быть даже один снимок), путь к самим снимкам фона должен быть установлен после команды ОК в диалоговом окне Импорт масок:


После того, как маски сгенерированы из снимков фона и импортированы в проект, результат можно будет наблюдать на панели Снимки (открыть панель через  меню Вид > Снимки), где должна быть включена опция Показать маски:


Выравнивание снимков (с масками)

Выберите команду Выровнять снимки в меню ОбработкаВ диалоговом окне установите параметр Применить маски, выбрав один из вариантов в раскрывающемся меню:


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

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


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


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


Выравнивание снимков (без масок)

Выберите команду Выровнять снимки в меню ОбработкаВ диалоговом окне установите параметр Применить маски - Отключено в раскрывающемся меню:


В этом случае маска не будет учитываться на этапе выравнивания, поэтому некоторые части фона, видимые на снимках, будут реконструированы вместе с целевым объектом (см. иллюстрацию ниже):


Сравнение результатов выравнивания с масками и без них

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