Расположение объектов на изображении — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 4: Строка 4:
 
== Основные технологии ==
 
== Основные технологии ==
 
Для решения задач данной области в основном используются разновидности [[:Generative_Adversarial_Nets_(GAN)|порождающих состязательных сетей]] (англ. Generative adversarial network, GAN), такие как ST-GAN<ref name="stgan">[https://openaccess.thecvf.com/content_cvpr_2018/papers/Lin_ST-GAN_Spatial_Transformer_CVPR_2018_paper.pdf ST-GAN: Spatial Transformer Generative Adversarial Networks for Image Compositing, Chen-Hsuan Lin, Ersin Yumer, Oliver Wang, Eli Shechtman, Simon Lucey]</ref>, LayoutGAN<ref name="layoutgan">[https://arxiv.org/pdf/1901.06767.pdf LayoutGAN: Generating Graphic Layouts With Wireframe Discriminators, Jianan Li,  Jimei Yang, Aaron Hertzmann, Jianming Zhang, Tingfa Xu]</ref>, GCC-GAN<ref name="gccgan">[https://openaccess.thecvf.com/content_CVPR_2019/papers/Chen_Toward_Realistic_Image_Compositing_With_Adversarial_Learning_CVPR_2019_paper.pdf Toward Realistic Image Compositing with Adversarial Learning, Bor-Chun Chen, Andrew Kae]</ref>.
 
Для решения задач данной области в основном используются разновидности [[:Generative_Adversarial_Nets_(GAN)|порождающих состязательных сетей]] (англ. Generative adversarial network, GAN), такие как ST-GAN<ref name="stgan">[https://openaccess.thecvf.com/content_cvpr_2018/papers/Lin_ST-GAN_Spatial_Transformer_CVPR_2018_paper.pdf ST-GAN: Spatial Transformer Generative Adversarial Networks for Image Compositing, Chen-Hsuan Lin, Ersin Yumer, Oliver Wang, Eli Shechtman, Simon Lucey]</ref>, LayoutGAN<ref name="layoutgan">[https://arxiv.org/pdf/1901.06767.pdf LayoutGAN: Generating Graphic Layouts With Wireframe Discriminators, Jianan Li,  Jimei Yang, Aaron Hertzmann, Jianming Zhang, Tingfa Xu]</ref>, GCC-GAN<ref name="gccgan">[https://openaccess.thecvf.com/content_CVPR_2019/papers/Chen_Toward_Realistic_Image_Compositing_With_Adversarial_Learning_CVPR_2019_paper.pdf Toward Realistic Image Compositing with Adversarial Learning, Bor-Chun Chen, Andrew Kae]</ref>.
Также широко используются [[:Сверточные_нейронные_сети|сверточные нейронные сети]] (англ. Convolutional neural network, сокращенно CNN).
+
Также широко используются [[:Сверточные_нейронные_сети|сверточные нейронные сети]] (англ. Convolutional neural network, CNN).
Для обучения моделей в основном используются наборы данных Visual Genome<ref name="visual_genome">[https://arxiv.org/pdf/1602.07332.pdf 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]</ref> и MS COCO<ref name="coco">[https://arxiv.org/pdf/1405.0312.pdf 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]</ref>.
+
Для обучения моделей в основном используются наборы данных [[:Известные_наборы_данных#Visual_Genome|Visual Genome]]<ref name="visual_genome">[https://arxiv.org/pdf/1602.07332.pdf 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]</ref> и [[:Известные_наборы_данных#COCO|MS COCO]]<ref name="coco">[https://arxiv.org/pdf/1405.0312.pdf 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]</ref>.
  
 
== Генерация объектов на изображении по тексту ==
 
== Генерация объектов на изображении по тексту ==
 
+
Рассмотрим модель<ref name="scene_graph_gen">[https://arxiv.org/pdf/1804.01622.pdf Image Generation from Scene Graphs, Justin Johnson, Agrim Gupta, Li Fei-Fei]</ref> генерации объектов по тексту. На вход она получает граф сцены (англ. scene graph), полученный с помощью [[:Графовые_нейронные_сети|графовой сверточной сети]] (англ. Graph convolutional network, сокращенно GCN). Граф сцены определяет объекты и отношения между ними, по нему строятся [[:Векторное_представление_слов|векторные представления]] (англ. embedding vector) для каждого объекта. Векторные представления используются для предсказания баундинг боксов (англ. bounding box) и [[:Сегментация_изображений|масок сегментации]] (англ. segmentation mask), которые объединяются для формирования макета сцены (англ. scene layout). Каскадная сеть уточнения (англ. cascaded refinement network, сокращенно CRN) преобразует макет сцены в изображение. Модель обучается на состязательной основе против пары дискриминаторных сетей.
На вход модель<ref name="scene_graph_gen">[https://arxiv.org/pdf/1804.01622.pdf Image Generation from Scene Graphs, Justin Johnson, Agrim Gupta, Li Fei-Fei]</ref> получает граф сцены (англ. scene graph), полученный с помощью [[:Графовые_нейронные_сети|графовой сверточной сети]] (англ. Graph convolutional network, сокращенно GCN). Граф сцены определяет объекты и отношения между ними, по нему строятся векторные представления (англ. embedding vector) для каждого объекта. Векторные представления используются для предсказания баундинг боксов (англ. bounding box) и масок сегментации (англ. segmentation mask), которые объединяются для формирования макета сцены (англ. scene layout). Каскадная сеть уточнения (англ. cascaded refinement network, сокращенно CRN) преобразует макет сцены в изображение. Модель обучается на состязательной основе против пары дискриминаторных сетей.
 
 
[[Файл:Scene_graph_gen_model.png|600px|thumb|center|Рис. 1 Архитектура модели<ref name="scene_graph_gen"/>]]
 
[[Файл:Scene_graph_gen_model.png|600px|thumb|center|Рис. 1 Архитектура модели<ref name="scene_graph_gen"/>]]
 
Для получения макета объекта векторные представления каждого объекта подаются в сеть макетов объектов (англ. object layout network). Суммируя все макеты объектов, получаем макет сцены. Схема получения макета сцены представлена на рисунке 2.
 
Для получения макета объекта векторные представления каждого объекта подаются в сеть макетов объектов (англ. object layout network). Суммируя все макеты объектов, получаем макет сцены. Схема получения макета сцены представлена на рисунке 2.
 
[[Файл:Scene_layout_gen.png|600px|thumb|center|Рис. 2 Схема работы генератора макета сцены]]
 
[[Файл:Scene_layout_gen.png|600px|thumb|center|Рис. 2 Схема работы генератора макета сцены]]
Примеры работы модели представлены на рисунке 3, первые 4 изображения получены на наборе данных Visual Genome<ref name="visual_genome/>, а последние 4 изображения были получена на наборе данных MS COCO<ref name="coco"/>.
+
Примеры работы модели представлены на рисунке 3, первые 4 изображения получены на наборе данных Visual Genome, а последние 4 изображения были получена на наборе данных MS COCO.
 
[[Файл:Scene_graph_gen_example.png|600px|thumb|center|Рис. 3 Примеры работы модели<ref name="scene_graph_gen"/>]]
 
[[Файл:Scene_graph_gen_example.png|600px|thumb|center|Рис. 3 Примеры работы модели<ref name="scene_graph_gen"/>]]
  
 
== Компоновка изображений ==
 
== Компоновка изображений ==
Компоновка изображений {{---}} это метод, используемый для создания реалистичных, но поддельных изображений, путем замены содержимого одного изображения на другое.
+
 
 +
[[:Блендинг_изображений|Компоновка изображений]] {{---}} это метод, используемый для создания реалистичных, но поддельных изображений, путем замены содержимого одного изображения на другое.
 
На вход модели<ref name="composition">[https://arxiv.org/pdf/1706.01021.pdf Where and Who? Automatic Semantic-Aware Person Composition, Fuwen Tan, Crispin Bernier, Benjamin Cohen, Vicente Ordonez, Connelly Barnes]</ref> подается исходное изображение и его макет, модель предсказывает расположение баундинг бокса для вставки объекта, ищет сегмент, подходящий по контексту, на других изображениях и вставляет его на исходное изображение.
 
На вход модели<ref name="composition">[https://arxiv.org/pdf/1706.01021.pdf Where and Who? Automatic Semantic-Aware Person Composition, Fuwen Tan, Crispin Bernier, Benjamin Cohen, Vicente Ordonez, Connelly Barnes]</ref> подается исходное изображение и его макет, модель предсказывает расположение баундинг бокса для вставки объекта, ищет сегмент, подходящий по контексту, на других изображениях и вставляет его на исходное изображение.
 
[[Файл:Images_compositing_model.png|600px|thumb|center|Рис. 4 Обзор модели<ref name="composition"/>]]
 
[[Файл:Images_compositing_model.png|600px|thumb|center|Рис. 4 Обзор модели<ref name="composition"/>]]
Строка 31: Строка 31:
 
[[Файл:MISC.png|600px|thumb|center|Рис. 8 Модель MISC<ref name="object_gen"/>]]
 
[[Файл:MISC.png|600px|thumb|center|Рис. 8 Модель MISC<ref name="object_gen"/>]]
  
Чтобы при компоновке получить реалистичное изображение, необходимо учитывать не только цветовую, но и геометрическую целостность полученного изображения.Для этого используют такие порождающие состязательные сети, как GCC-GAN<ref name="gccgan"/> и ST-GAN<ref name="stgan"/>.
+
Чтобы при компоновке получить реалистичное изображение, необходимо учитывать не только цветовую, но и геометрическую целостность полученного изображения. Для этого используют такие порождающие состязательные сети, как GCC-GAN<ref name="gccgan"/> и ST-GAN<ref name="stgan"/>.
  
 
=== GCC-GAN ===
 
=== GCC-GAN ===
Строка 37: Строка 37:
 
Дискриминатор в свою очередь пытается определить настоящее или нет изображение, поступившее ему на вход, а сегментационная сеть пытается отделить вставленный объект от фона.
 
Дискриминатор в свою очередь пытается определить настоящее или нет изображение, поступившее ему на вход, а сегментационная сеть пытается отделить вставленный объект от фона.
 
Схема работы модели и примеры представлены на рисунках 9 и 10 соответсвенно.
 
Схема работы модели и примеры представлены на рисунках 9 и 10 соответсвенно.
[[Файл:GCC_GAN.png|600px|thumb|center|Рис. 9 Модель GCC_GAN<ref name="gccgan"/>]]
+
[[Файл:GCC_GAN.png|600px|thumb|center|Рис. 9 Модель GCC-GAN<ref name="gccgan"/>]]
[[Файл:GCCGAN_example.png|600px|thumb|center|Рис. 10 Пример работы GCC_GAN<ref name="gccgan"/>]]
+
[[Файл:GCCGAN_example.png|600px|thumb|center|Рис. 10 Пример работы GCC-GAN<ref name="gccgan"/>]]
 
=== ST-GAN ===
 
=== ST-GAN ===
 
В качестве генератора (рис. 11) в данной архитектуре используются сети с пространственными трансформаторами (англ. Spatial Transformer Networks, сокращенно STN). В данной модели используется стратегия последовательного обучения, которая показывает лучшее результаты по сравнению с наивным обучением одного генератора.
 
В качестве генератора (рис. 11) в данной архитектуре используются сети с пространственными трансформаторами (англ. Spatial Transformer Networks, сокращенно STN). В данной модели используется стратегия последовательного обучения, которая показывает лучшее результаты по сравнению с наивным обучением одного генератора.
 
Схема работы модели и примеры представлены на рисунках 12 и 13 соответсвенно.
 
Схема работы модели и примеры представлены на рисунках 12 и 13 соответсвенно.
[[Файл:STGAN_generator.png|600px|thumb|center|Рис. 11 Генератор модели ST_GAN<ref name="stgan"/>]]
+
[[Файл:STGAN_generator.png|600px|thumb|center|Рис. 11 Генератор модели ST-GAN<ref name="stgan"/>]]
[[Файл:STGAN.png|600px|thumb|center|Рис. 12 Модель ST_GAN<ref name="stgan"/>]]
+
[[Файл:STGAN.png|600px|thumb|center|Рис. 12 Модель ST-GAN<ref name="stgan"/>]]
[[Файл:STGAN_example.png|600px|thumb|center|Рис. 13 Пример работы ST_GAN<ref name="stgan"/>]]
+
[[Файл:STGAN_example.png|600px|thumb|center|Рис. 13 Пример работы ST-GAN<ref name="stgan"/>]]
  
 
== Генерация макета ==
 
== Генерация макета ==
Строка 60: Строка 60:
 
Модель<ref name="layout_trans">[https://arxiv.org/pdf/2006.14615.pdf Layout Generation and Completion with Self-attention, Kamal Gupta, Alessandro Achille, Justin Lazarow, Larry Davis, Vijay Mahadevan, Abhinav Shrivastava]</ref> получает на вход последовательность элементов макета, которые преобразуются в векторные представления и поступают на вход модуля внимания, предсказывающего новую последовательность элементов макета.
 
Модель<ref name="layout_trans">[https://arxiv.org/pdf/2006.14615.pdf Layout Generation and Completion with Self-attention, Kamal Gupta, Alessandro Achille, Justin Lazarow, Larry Davis, Vijay Mahadevan, Abhinav Shrivastava]</ref> получает на вход последовательность элементов макета, которые преобразуются в векторные представления и поступают на вход модуля внимания, предсказывающего новую последовательность элементов макета.
 
Схема работы модели и примеры представлены на рисунках 16 и 17 соответсвенно.
 
Схема работы модели и примеры представлены на рисунках 16 и 17 соответсвенно.
На рисунке 18 представлен график, по которому видно, что макеты, построенные данной моделью, состоят из объектов, которые принадлежат семантически близким категориям.
 
 
[[Файл:Layout_trans.png|600px|thumb|center|Рис. 16 Модель LayoutTransformer<ref name="layout_trans"/>]]
 
[[Файл:Layout_trans.png|600px|thumb|center|Рис. 16 Модель LayoutTransformer<ref name="layout_trans"/>]]
 
[[Файл:Layout_trans_example.png|600px|thumb|center|Рис. 17 Пример работы LayoutTransformer<ref name="layout_trans"/>]]
 
[[Файл:Layout_trans_example.png|600px|thumb|center|Рис. 17 Пример работы LayoutTransformer<ref name="layout_trans"/>]]
[[Файл:Layout_trans_coco.png|600px|thumb|center|Рис. 18 График семантических близких классов набора данных MS COCO, полученный с помощью модели LayoutTransformer<ref name="layout_trans"/>]]
 
  
 
== См. также ==
 
== См. также ==

Версия 20:23, 24 января 2021

Эта статья находится в разработке!

Расположение объектов на изображении — область компьютерного зрения, в которую входят такие задачи, как замена или добавление объекта на изображение, также к этой области относят задачи расположения объектов на изображении по их текстовому описанию.

Основные технологии

Для решения задач данной области в основном используются разновидности порождающих состязательных сетей (англ. 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) преобразует макет сцены в изображение. Модель обучается на состязательной основе против пары дискриминаторных сетей.

Рис. 1 Архитектура модели[6]

Для получения макета объекта векторные представления каждого объекта подаются в сеть макетов объектов (англ. object layout network). Суммируя все макеты объектов, получаем макет сцены. Схема получения макета сцены представлена на рисунке 2.

Рис. 2 Схема работы генератора макета сцены

Примеры работы модели представлены на рисунке 3, первые 4 изображения получены на наборе данных Visual Genome, а последние 4 изображения были получена на наборе данных MS COCO.

Рис. 3 Примеры работы модели[6]

Компоновка изображений

Компоновка изображений — это метод, используемый для создания реалистичных, но поддельных изображений, путем замены содержимого одного изображения на другое. На вход модели[7] подается исходное изображение и его макет, модель предсказывает расположение баундинг бокса для вставки объекта, ищет сегмент, подходящий по контексту, на других изображениях и вставляет его на исходное изображение.

Рис. 4 Обзор модели[7]

Предсказание расположения баундинг бокса состоит из двух ветвей: первая предсказывает местоположение, а вторая — размер. Сначала изображение и его макет проходят через общие слои — это слой свертки, слой пулинга и еще три слоя свертки. Выход общих слоев проходит через две ветви. Первая нужна для предсказания местоположения баундинг бокса, она состоит из двух слоев свертки, а вторая нужна для определения размера, она состоит из слоя пулинга, слоя свертки и двух полносвязных слоев.

Рис. 5 Предсказание баундинг бокса

Пример работы модели представлен на рисунке 6.

Рис. 6 Примеры работы модели[7]

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

Рис. 7 Генерация объекта и вставка на изображение

Для генерации используется модель[8], которая получает на вход три условия: шаблон (вектор шумов), цвет (цвета объектов) и геометрию (маска частей тела) и выдает сгенерированный по этим условиям объект. Схема работы подели представлена на рисунке 8.

Рис. 8 Модель MISC[8]

Чтобы при компоновке получить реалистичное изображение, необходимо учитывать не только цветовую, но и геометрическую целостность полученного изображения. Для этого используют такие порождающие состязательные сети, как GCC-GAN[3] и ST-GAN[1].

GCC-GAN

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

Рис. 9 Модель GCC-GAN[3]
Рис. 10 Пример работы GCC-GAN[3]

ST-GAN

В качестве генератора (рис. 11) в данной архитектуре используются сети с пространственными трансформаторами (англ. Spatial Transformer Networks, сокращенно STN). В данной модели используется стратегия последовательного обучения, которая показывает лучшее результаты по сравнению с наивным обучением одного генератора. Схема работы модели и примеры представлены на рисунках 12 и 13 соответсвенно.

Рис. 11 Генератор модели ST-GAN[1]
Рис. 12 Модель ST-GAN[1]
Рис. 13 Пример работы ST-GAN[1]

Генерация макета

Создание макета – задача, решение которой применимо в таких областях, как изображения, документы, мобильные приложения. Макет — это набор графических элементов, принадлежащих к одной или нескольким категориям, размещенных вместе осмысленным образом. Для этой задачи используют модели на основе порождающих состязательных сетей или трансформеров (англ. transformer).

LayoutGAN

На вход модель[2] получает набор случайно расположенных графических объектов со случайными вероятностями классов, кодировщик передает векторные представления объектов в модуль составных отношений (англ. stacked relation module), который уточняет векторные представления, учитывая пространственные и семантические отношения между всеми элементами. После этого декодер возвращает обратно вероятности классов и геометрические параметры. Получившийся макет визуализируется и подается на вход дискриминатору, представляющему из себя сверточную нейронную сеть. Архитектура модели и примеры работы с различными способами визуализации представлены на рисунках 14 и 15 соответсвенно.

Рис. 14 Модель LayoutGAN[2]
Рис. 15 Пример работы LayoutGAN[2]

LayoutTransformer

Модель[9] получает на вход последовательность элементов макета, которые преобразуются в векторные представления и поступают на вход модуля внимания, предсказывающего новую последовательность элементов макета. Схема работы модели и примеры представлены на рисунках 16 и 17 соответсвенно.

Рис. 16 Модель LayoutTransformer[9]
Рис. 17 Пример работы LayoutTransformer[9]

См. также

Примечания

  1. 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
  2. 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
  3. 3,0 3,1 3,2 3,3 Toward Realistic Image Compositing with Adversarial Learning, Bor-Chun Chen, Andrew Kae
  4. 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
  5. 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
  6. 6,0 6,1 6,2 Image Generation from Scene Graphs, Justin Johnson, Agrim Gupta, Li Fei-Fei
  7. 7,0 7,1 7,2 Where and Who? Automatic Semantic-Aware Person Composition, Fuwen Tan, Crispin Bernier, Benjamin Cohen, Vicente Ordonez, Connelly Barnes
  8. 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
  9. 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

Источники информации