Как автоматически смешивать изображения для создания реалистичных композитов (Java) - PullRequest
0 голосов
/ 27 апреля 2019

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

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

1.OpenCV Бесшовный клон - работает довольно хорошо для плоских и похожих контрастных изображений. Проблемы: - тяжелые, нечеткие, не могут быть обобщены для всехтипы изображений.

2.Фотореалистичный стиль передачи - отлично работает;но он тяжелый, требует специальной подготовки и работает только с несколькими классами изображений.Все еще могут присутствовать артефакты.

3. Fast Color Transfer (pyimagesearch) - Работает для плоского фона.Усреднение цвета фона приводит к тому, что цвета перетекают в изображение и, таким образом, теряют свой естественный вид.

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

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

Мы пытаемся достичьчто-то похожее на следующие методы: -

  1. https://people.csail.mit.edu/yichangshih/portrait_web/

  2. https://arxiv.org/abs/1709.09828

  3. https://www.cs.cornell.edu/~kb/publications/egsr18_harmonization.pdf

1 Ответ

0 голосов
/ 09 мая 2019

Наконец-то нашёл ответ .. Вот реализация кафе Deep Color Harmoniation: https://github.com/wasidennis/DeepHarmonization. Кажется, что это легковесная сеть и работает довольно быстро.Все еще пытаюсь выяснить, как преобразовать его в дружественный для мобильных устройств формат, такой как tenorflow lite ...

Deep Color harmonization

Надеюсь, это кому-нибудь поможет ...

...