Расположение объектов на изображении — различия между версиями
Стукалов (обсуждение | вклад) |
м (rollbackEdits.php mass rollback) |
(не показана 1 промежуточная версия 1 участника) | |
(нет различий)
|
Текущая версия на 19:16, 4 сентября 2022
Расположение объектов на изображении — область компьютерного зрения, в которую входят такие задачи, как замена или добавление объекта на изображение, также к этой области относят задачи расположения объектов на изображении по их текстовому описанию и генерации изображений по тексту.
Основные технологии
Для решения задач данной области в основном используются разновидности порождающих состязательных сетей (англ. Generative adversarial network, GAN), такие как ST-GAN[1], LayoutGAN[2], GCC-GAN[3]. Также широко используются сверточные нейронные сети (англ. Convolutional neural network, CNN). Для обучения моделей в основном используются наборы данных Visual Genome[4] и MS COCO[5].
Генерация объектов на изображении по тексту
Рассмотрим модель[6] генерации объектов по тексту. На вход она получает граф сцены (англ. scene graph), полученный с помощью графовой сверточной сети (англ. Graph convolutional network, сокращенно GCN). Граф сцены определяет объекты и отношения между ними, по нему строятся векторные представления (англ. embedding vector) для каждого объекта. Векторные представления используются для предсказания баундинг боксов (англ. bounding box) и масок сегментации (англ. segmentation mask), которые объединяются для формирования макета сцены (англ. scene layout). Каскадная сеть уточнения (англ. cascaded refinement network, сокращенно CRN) преобразует макет сцены в изображение. Модель обучается на состязательной основе против пары дискриминаторных сетей.
![](/wiki/images/thumb/6/6b/Scene_graph_gen_model.png/600px-Scene_graph_gen_model.png)
Для получения макета объекта векторные представления каждого объекта подаются в сеть макетов объектов (англ. object layout network). Сеть макетов объектов состоит из двух сетей: первая (mask regression network) предсказывает маску объекта и состоит из нескольких транспонированных сверточных слоев с сигмоидой, вторая (box regression network) предсказывает баундинг бокс и представляет из себя многослойный нейрон. Векторное представление объекта умножается на маску, в результате чего получается маскированное представление объекта (англ. masked embedding), которое затем вписывается в предсказанный баундинг бокс с помощью билинейной интерполяции. Суммируя все макеты объектов, получаем макет сцены. Схема получения макета сцены представлена на рисунке 2. Также для получения макета сцены можно использовать модель LayoutVAE.
Примеры работы модели представлены на рисунке 3, первые 4 изображения получены на наборе данных Visual Genome, а последние 4 изображения были получена на наборе данных MS COCO.
![](/wiki/images/thumb/1/18/Scene_graph_gen_example.png/600px-Scene_graph_gen_example.png)
Компоновка изображений
Компоновка изображений — это метод, используемый для создания реалистичных, но поддельных изображений, путем замены содержимого одного изображения на другое. Рассмотрим модель[7] компоновки изображений. На вход подается исходное изображение и его макет, модель предсказывает расположение баундинг бокса для вставки объекта, ищет сегмент, подходящий по контексту, на других изображениях и вставляет его на исходное изображение.
![](/wiki/images/thumb/8/86/Images_compositing_model.png/600px-Images_compositing_model.png)
Предсказание расположения баундинг бокса (Рис. 5) состоит из двух ветвей: первая предсказывает местоположение, а вторая — размер. Сначала изображение и его макет проходят через общие слои (англ. shared layers) — это слой свертки, слой пулинга и еще три слоя свертки. Выход общих слоев (англ. shared feature map) проходит через две ветви. Первая (location branch) нужна для предсказания местоположения баундинг бокса, она состоит из двух слоев свертки, а вторая (size branch) нужна для определения размера, она состоит из слоя пулинга, слоя свертки и двух полносвязных слоев.
Пример работы модели представлен на рисунке 6.
![](/wiki/images/thumb/1/1f/Image_composting_example.png/600px-Image_composting_example.png)
Изображение для вставки можно генерировать, а не вырезать с других изображений.
Для генерации используется модель[8], которая получает на вход три условия: шаблон (вектор шумов), цвет (цвета объектов) и геометрию (маска частей тела) и выдает сгенерированный по этим условиям объект. Схема работы подели представлена на рисунке 8.
![](/wiki/images/thumb/8/88/MISC.png/600px-MISC.png)
Чтобы при компоновке получить реалистичное изображение, необходимо учитывать не только цветовую, но и геометрическую целостность полученного изображения. Для этого используют такие порождающие состязательные сети, как GCC-GAN[3] и ST-GAN[1].
GCC-GAN
Модель получает на вход фон, на который надо вставить объект, сам объект и его маску. Генератор, состоящий из сетей преобразования и уточнения, учится создавать композиционные изображения, чтобы обмануть дискриминатор и сегментационную сеть. Дискриминатор в свою очередь пытается определить настоящее или нет изображение, поступившее ему на вход, а сегментационная сеть пытается отделить вставленный объект от фона. Схема работы модели и примеры представлены на рисунках 9 и 10 соответсвенно.
![](/wiki/images/thumb/6/6b/GCC_GAN.png/600px-GCC_GAN.png)
![](/wiki/images/thumb/b/b8/GCCGAN_example.png/600px-GCCGAN_example.png)
ST-GAN
В качестве генератора (рис. 11) в данной архитектуре используются сети с пространственными трансформаторами (англ. Spatial Transformer Networks, сокращенно STN). В данной модели используется стратегия последовательного обучения, которая показывает лучшее результаты по сравнению с наивным обучением одного генератора. Схема работы модели и примеры представлены на рисунках 12 и 13 соответсвенно.
![](/wiki/images/thumb/1/1d/STGAN_generator.png/600px-STGAN_generator.png)
![](/wiki/images/thumb/4/4d/STGAN.png/600px-STGAN.png)
![](/wiki/images/thumb/b/bb/STGAN_example.png/600px-STGAN_example.png)
Генерация макета
Создание макета – задача, решение которой применимо в таких областях, как изображения, документы, мобильные приложения. Макет — это набор графических элементов, принадлежащих к одной или нескольким категориям, размещенных вместе осмысленным образом. Для этой задачи используют модели на основе порождающих состязательных сетей или трансформеров (англ. transformer).
LayoutGAN
Рассмотрим модель[2], которая получает набор случайно расположенных графических объектов со случайными вероятностями классов, кодировщик передает векторные представления объектов в модуль составных отношений (англ. stacked relation module), который уточняет векторные представления, учитывая пространственные и семантические отношения между всеми элементами. После этого декодер возвращает обратно вероятности классов и геометрические параметры. Получившийся макет визуализируется и подается на вход дискриминатору, представляющему из себя сверточную нейронную сеть. Архитектура модели и примеры работы с различными способами визуализации представлены на рисунках 14 и 15 соответсвенно.
![](/wiki/images/thumb/9/93/LayoutGAN.png/600px-LayoutGAN.png)
![](/wiki/images/thumb/8/8b/LayoutGAN_example.png/600px-LayoutGAN_example.png)
LayoutTransformer
Рассмотрим модель[9], которая получает на вход последовательность элементов макета, которые преобразуются в векторные представления и поступают на вход модуля внимания, предсказывающего новую последовательность элементов макета. Схема работы модели и примеры представлены на рисунках 16 и 17 соответсвенно.
![](/wiki/images/thumb/d/d6/Layout_trans.png/600px-Layout_trans.png)
![](/wiki/images/thumb/1/1a/Layout_trans_example.png/600px-Layout_trans_example.png)
См. также
Примечания
- ↑ 1,0 1,1 1,2 1,3 1,4 ST-GAN: Spatial Transformer Generative Adversarial Networks for Image Compositing, Chen-Hsuan Lin, Ersin Yumer, Oliver Wang, Eli Shechtman, Simon Lucey 2018
- ↑ 2,0 2,1 2,2 2,3 LayoutGAN: Generating Graphic Layouts With Wireframe Discriminators, Jianan Li, Jimei Yang, Aaron Hertzmann, Jianming Zhang, Tingfa Xu 2019
- ↑ 3,0 3,1 3,2 3,3 Toward Realistic Image Compositing with Adversarial Learning, Bor-Chun Chen, Andrew Kae 2019
- ↑ Visual Genome Connecting Language and Vision Using Crowdsourced Dense Image Annotations, Ranjay Krishna, Yuke Zhu, Oliver Groth, Justin Johnson, Kenji Hata, Joshua Kravitz, Stephanie Chen, Yannis Kalantidis, Li-Jia Li, David A. Shamma, Michael S. Bernstein, Li Fei-Fei 2016
- ↑ Microsoft COCO: Common Objects in Context, Tsung-Yi Lin, Michael Maire, Serge Belongie, Lubomir Bourdev, Ross Girshick, James Hays, Pietro Perona, Deva Ramanan, C. Lawrence Zitnick, Piotr Dollar 2015
- ↑ 6,0 6,1 6,2 Image Generation from Scene Graphs, Justin Johnson, Agrim Gupta, Li Fei-Fei 2018
- ↑ 7,0 7,1 7,2 Where and Who? Automatic Semantic-Aware Person Composition, Fuwen Tan, Crispin Bernier, Benjamin Cohen, Vicente Ordonez, Connelly Barnes 2017
- ↑ 8,0 8,1 MISC: Multi-condition Injection and Spatially-adaptive Compositing for Conditional Person Image Synthesis, Shuchen Weng, Wenbo Li, Dawei Li, Hongxia Jin, Boxin Shi 2020
- ↑ 9,0 9,1 9,2 Layout Generation and Completion with Self-attention, Kamal Gupta, Alessandro Achille, Justin Lazarow, Larry Davis, Vijay Mahadevan, Abhinav Shrivastava 2020