Перейти к содержимому
PulsarKit

Как удалить фон без Photoshop и что при этом происходит

Удаление фона с помощью ИИ стало работать хорошо, но это все еще не магия. Разберем, как оно устроено и где ему по-прежнему сложно.

Автор: PulsarKit · ·

Один и тот же портрет дважды: слева, в JPG, человек на фоне комнаты с окном, полкой и растением; справа, в PNG, тот же человек, вырезанный и перенесенный на прозрачный фон в клетку

Модель определяет не цвет, а главный объект на фото

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

Самое сложное место — не середина объекта, а его граница

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

Светлая кайма вокруг объекта — известный и понятный артефакт

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

Точность по краям стоит времени, и этот компромисс нужно понимать

Вычислить, сколько объекта и сколько фона смешано в каждом граничном пикселе, а затем правильно поправить цвет каждого из них — это заметно дольше, чем одинаково размыть маску вдоль всей границы и считать работу сделанной. Быстрый режим пропускает такое точное вычисление для каждого пикселя на краю и ограничивается общим размытием. Это разумный выбор, когда нужен результат «на глаз» и пара неидеальных пикселей по краю для задачи не важна. Медленный, более аккуратный режим оправдывает лишние секунды там, где края будут внимательно рассматривать: на портрете или фотографии товара.

Объект того же цвета, что фон, до сих пор остается сложным случаем

Темные волосы на фоне темной стены или человек в одежде почти тех же цветов, что и стена за ним, дают любой сегментационной модели очень мало разницы в цвете по границе. Измерять почти нечего. Методы доработки края, которые хорошо работают в обычных ситуациях, опираются на то, что объект и фон отличаются по цвету. Этот случай остается трудным для всех инструментов в этой категории, включая известные платные сервисы, и одной заменой модели он не решается. Надеяться на заметно лучший результат от смены сервиса почти всегда бесполезно: кадрирование поближе к объекту в «Обрезать», другой фон при съемке или лучший контраст на исходном снимке помогают гораздо больше, чем другая модель.

Куда уходит фото и что получает наш сервер

«Удалить фон» работает одинаково на любом устройстве — на ноутбуке и настольном компьютере так же, как на телефоне и планшете, — и в браузер ничего не скачивается. Сеть, которая находит объект, работает на нашем сервере. Страница уменьшает кадр до копии 1024 на 1024, отправляет только эту копию по зашифрованному соединению и получает обратно маску, а вырез, доработку краев, цвет фона и PNG потом делает в браузере из самого снимка, поэтому исходный файл не покидает ваше устройство. Уменьшенная копия удаляется, как только готова маска, а сама маска — в течение примерно двух часов; каждое фото, отправленное так, входит в общий часовой лимит серверных инструментов. Причина такого разделения простая. Чтобы запустить сеть во вкладке, нужно сначала скачать большой файл модели, а потом держать во время работы больше 2 ГБ памяти: мобильный браузер закрывает вкладку задолго до этого, а многие компьютеры тратят на одно фото полминуты или сбоят на некоторых видеокартах. На сервере маска возвращается за несколько секунд на любом устройстве. Копии 1024 на 1024 для этой работы хватает, потому что с таким размером сеть все равно работает; тонкие детали волос и краев дает этап доработки, который читает сам снимок в вашем браузере. Готовый файл пишется из сырых пикселей, поэтому модель камеры, время и координаты из оригинала в PNG не попадают.

Настройки, которые важнее смены модели

Прежде чем пробовать другой сервис, подберите под конкретный снимок настройки, которые уже есть здесь. Для фото товара в объявлении обычно лучше «Белый фон», а не прозрачность: маркетплейсы чаще всего требуют белый, а ровная белая область дает куда более легкий PNG, чем вырез с альфа-каналом. Для портрета на слайд или плакат подходит «Прозрачный PNG»: «Детализация краев» — в положении «Точные края», «Мягкость края» — на стандартных двух пикселях. Кошка, собака или кудрявая голова выглядят естественнее с мягкостью от шести и выше: контур растворяется в шерсти или локонах, а не обрывается линией; иконке или графике с четкими углами нужен ноль. «Быстро» годится для черновика, но пропускает вычитание цвета фона, и светлая кайма, о которой шла речь выше, может вернуться на темном фоне. «Длинная сторона» ограничивает размер результата: стандартных 2048 пикселей хватает для экрана и сайта, 4096 — для печати на машине с запасом памяти, а 1024 — запасной вариант, когда вкладка не справляется. Что бы вы ни выбрали, файл вернется в PNG, а до двадцати фото с одинаковыми настройками уйдут в один ZIP. Если фон уже однотонный, «Прозрачный фон» справится еще быстрее и вообще ничего не отправит на сервер.

Инструменты из этой статьи

Читать дальше