Расположение объектов на изображении — различия между версиями
Стукалов (обсуждение | вклад) |
Стукалов (обсуждение | вклад) |
||
Строка 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, | + | Также широко используются [[:Сверточные_нейронные_сети|сверточные нейронные сети]] (англ. 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) преобразует макет сцены в изображение. Модель обучается на состязательной основе против пары дискриминаторных сетей. | |
− | |||
[[Файл: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 | + | Примеры работы модели представлены на рисунке 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.png|600px|thumb|center|Рис. 9 Модель GCC-GAN<ref name="gccgan"/>]] |
− | [[Файл:GCCGAN_example.png|600px|thumb|center|Рис. 10 Пример работы | + | [[Файл: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 Генератор модели | + | [[Файл:STGAN_generator.png|600px|thumb|center|Рис. 11 Генератор модели ST-GAN<ref name="stgan"/>]] |
− | [[Файл:STGAN.png|600px|thumb|center|Рис. 12 Модель | + | [[Файл:STGAN.png|600px|thumb|center|Рис. 12 Модель ST-GAN<ref name="stgan"/>]] |
− | [[Файл:STGAN_example.png|600px|thumb|center|Рис. 13 Пример работы | + | [[Файл: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 соответсвенно. | ||
− | |||
[[Файл: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"/>]] | ||
− | |||
== См. также == | == См. также == |
Версия 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) преобразует макет сцены в изображение. Модель обучается на состязательной основе против пары дискриминаторных сетей.
![](/wiki/images/thumb/6/6b/Scene_graph_gen_model.png/600px-Scene_graph_gen_model.png)
Для получения макета объекта векторные представления каждого объекта подаются в сеть макетов объектов (англ. object layout network). Суммируя все макеты объектов, получаем макет сцены. Схема получения макета сцены представлена на рисунке 2.
Примеры работы модели представлены на рисунке 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)
Предсказание расположения баундинг бокса состоит из двух ветвей: первая предсказывает местоположение, а вторая — размер. Сначала изображение и его макет проходят через общие слои — это слой свертки, слой пулинга и еще три слоя свертки. Выход общих слоев проходит через две ветви. Первая нужна для предсказания местоположения баундинг бокса, она состоит из двух слоев свертки, а вторая нужна для определения размера, она состоит из слоя пулинга, слоя свертки и двух полносвязных слоев.
Пример работы модели представлен на рисунке 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)
См. также
- Задача нахождения объектов на изображении
- Сверточные нейронные сети
- Глубокое обучение
- Generative Adversarial Nets (GAN)
- Компьютерное зрение
- Графовые нейронные сети
Примечания
- ↑ 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,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,0 3,1 3,2 3,3 Toward Realistic Image Compositing with Adversarial Learning, Bor-Chun Chen, Andrew Kae
- ↑ 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
- ↑ 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,0 6,1 6,2 Image Generation from Scene Graphs, Justin Johnson, Agrim Gupta, Li Fei-Fei
- ↑ 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,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,0 9,1 9,2 Layout Generation and Completion with Self-attention, Kamal Gupta, Alessandro Achille, Justin Lazarow, Larry Davis, Vijay Mahadevan, Abhinav Shrivastava