NVidia представили городскую среду, созданную генеративной нейронной сетью

3 декабря 2018
GAN - Nvidia sreda ai

NVidia представили городскую среду, созданную генеративной нейронной сетью

Команда Nvidia обучила генеративную нейросеть (GAN) рендерингу окружающей среды после обучения на реальных видео, снятых в разных городах. Этот прорыв позволит разработчикам и художникам создавать новые интерактивные 3D-миры в виртуальной…

Команда Nvidia обучила генеративную нейросеть (GAN) рендерингу окружающей среды после обучения на реальных видео, снятых в разных городах. Этот прорыв позволит разработчикам и художникам создавать новые интерактивные 3D-миры в виртуальной реальности, путем обучения нейронной сети на реальных видео. Это снизит затраты и время, необходимое для создания виртуальных миров.

Алгоритм был разработан командой исследователей NVIDIA во главе с Брайаном Катандзаро, Вице-президентом по прикладному глубокому обучению в NVIDIA.

«Одним из главных препятствий, с которыми сталкиваются разработчики при создании виртуальных миров, будь то разработка игр или других приложений — высокая стоимость создания контента. Этот метод позволяет художникам и разработчикам создавать 3D модели с гораздо меньшими затратами, используя ИИ, который обучается сам», — сказал Катандзаро.

Исследование в настоящее время демонстрируется на конференции NeurIPS в Монреале, на которую съехались самые известные исследователи искусственного интеллекта в мире. Исследовательская группа создала простую игру для NeurIPS, которая позволяет интерактивно перемещаться по среде, созданной AI.

Демонстрация стала возможной благодаря NVIDIA Tensor Core GPU и дает людям совершенно новый способ испытать интерактивную графику.

«До появления тензорных ядер такая демонстрация была бы невозможна», — сказал Катандзаро.

Сеть работает на высокоуровневых описаниях сцены, например: карты сегментации или карты границ, которые описывают, где находятся объекты и их общие характеристики, например, содержит ли конкретная часть изображения автомобиль или здание, или где края объекта. Затем сеть заполняет детали, основываясь на том, что она узнала из реальных видеороликов.

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

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

Для обучения команда использовала графические процессоры NVIDIA Tesla V100 на DGX-1 на PyTorch с ускорением cuDNN и тысячами видео из наборов данных Cityscapes и Apolloscapes.

Нейросеть создает МРТ-снимки мозга для тренировки алгоритмов диагностики

25 сентября 2018

Нейросеть создает МРТ-снимки мозга для тренировки алгоритмов диагностики

Разработчикам нейронных сетей для оценки медицинских снимков не хватает точных и надёжных данных для тренировки моделей машинного обучения. Исследователи NVIDIA, клиники Майо и Центра исследования клинических данных представили нейросеть для создания снимков МРТ головного мозга, которые затем…

Разработчикам нейронных сетей для оценки медицинских снимков не хватает точных и надёжных данных для тренировки моделей машинного обучения. Исследователи NVIDIA, клиники Майо и Центра исследования клинических данных представили нейросеть для создания снимков МРТ головного мозга, которые затем можно использовать для обучения алгоритмов диагностики.

«Наборы данных часто несбалансированы, поскольку патологические результаты обычно редки, что создает серьезные проблемы при обучении моделей. Мы предлагаем метод создания синтетических изображений МРТ с опухолями головного мозга с помощью генеративносостязательной нейросети» — написали исследователи в статье.

Команда разработала модель глубокого обучения на основе алгоритма pix2pix. Нейросеть обучили на изображениях из двух общедоступных датасетов, содержащих МРТ головного мозга с изменениями, вызванными опухолями и болезнью Альцгеймера.

Технология позволяет менять размер и место локализации опухоли, делая данные более разнообразными. Более того, изображения генерируются синтетически, нет информации о пациентах и проблем конфиденциальности, поэтому медицинские учреждения могут легко обмениваться данными, создавая миллионы комбинаций для ускорения работы и обучения моделей.

Примеры сгенерированных МРТ-снимков

Архитектура Turing от Nvidia: что она дает и как получить максимум производительности

24 сентября 2018
Turing SDK

Архитектура Turing от Nvidia: что она дает и как получить максимум производительности

Архитектура Turing – одно из главных достижений в компьютерной графике за 20 лет, по заявлению самой Nvidia. Turing SDK теперь доступен для разработчиков. Дизайнеры и художники могут создавать контент с улучшенной…

Архитектура Turing – одно из главных достижений в компьютерной графике за 20 лет, по заявлению самой Nvidia. Turing SDK теперь доступен для разработчиков. Дизайнеры и художники могут создавать контент с улучшенной графикой, фотореалистичным рендерингом, использовать AI для обработки изображений и видео в режиме реального времени с помощью NVIDIA RTX. Рассказываем о разработках Nvidia, которые помогут исследователям раскрыть все возможности новой архитектуры.

CUDA 10

CUDA 10 включает поддержку Turing GPUs, оптимизированных по производительности библиотек, новую асинхронную модель программирования графов, улучшенную интеграцию CUDA и графического API и новые инструменты разработки. CUDA 10 также предоставляет все составляющие, необходимые для создания серверных платформ NVIDIA для AI и нагрузок высокопроизводительных вычислений (HPC), как локально (DGX-2), так и в облаке (HGX-2).

TensorRT 5 (доступен с 20 сентября)

TensorRT 5 показывает до 40 раз производительность вывода по сравнению с CPUs благодаря новым оптимизациям, APIs и поддержке Turing GPUs. Он оптимизирует точность в рекомендательные системах, машинном переводе, обработке естественного языка. Основными особенностями TensorRT 5 являются INT8 APIs, предлагающие новые гибкие схемы работы, оптимизация для глубокой свертки, поддержка платформ NVIDIA Drive на основе Xavier и акселератор NVIDIA DLA. Кроме того, TensorRT 5 поддерживает операционные системы Windows и CentOS. Смотрите туториал.

cuDNN 7.3

Главные особенности фреймворка cuDNN 7.3 — улучшенная сгруппированная свертка для формата данных NHWC и расширенная производительность сверток для ResNet50, DeepSpeech2 и Wavenet.

NCCL 2.3

Фреймворки, использующие NCCL 2.3 и более поздние версии, заточены на работу с архитектурами Volta и Turing для обеспечения высокой производительности многоузловых и многопроцессорных вычислений глубокого обучения. Новые функции включают улучшенные алгоритмы с низкой задержкой для сообщений небольших размеров и удобная регулировка при использовании графических процессоров Direct P2P и RDMA.

CUTLASS 1.1

CUTLASS 1.1 позволяет использовать Tensor Cores Turing для высокопроизводительного умножения матриц в CUDA C ++. Новые особенности включают поддержку CUDA 10 и новых матричных функций для доступа к Turing.

NVIDIA RTX — NGX SDK

Архитектура Turing заточена под новейшее GPU — Nvidia RTX. Стоимость новых видеокарт — от $599 до $1199. NGX — новый технологический стек, в котором реализованы алгоритмы, которые ускоряют и улучшают графику, обработку изображений и видео непосредственно в приложениях. NGX SDK использует предварительно подготовленные сети, что позволяет разработчикам легко интегрировать алгоритмы.

SDK будет доступен в ближайшее время.

VRWorks Graphics 3.0

Функциональные особенности VRWorks Graphics предлагают новый уровень визуальной точности, производительности и скорости реагирования в виртуальной реальности. Эта версия, объединенная с Turing на базе GPU, включает в себя переменную скорость раскраски (Variable Rate Shading) и визуализация в нескольких проекциях (Multi-View Rendering). Variable Rate Shading — новая технология визуализации, которая выделяет больше мощности GPU для обработки полутонов детализированных областей сцены и меньшую для менее подробных участков.

Multi-view рендеринг
Multi-view рендеринг

Multi-View Rendering расширяет возможности Single Pass Stereo, увеличивая количество проекционных центров или представлений для одного прохода с двух до четырех. Все четыре вида, доступные за один проход, теперь не зависят от положения и перемещаются вдоль любой оси в проекционном пространстве, что позволяет поддерживать новые конфигурации дисплея.

Инструменты разработчика

Nsight Compute 1.0

NVIDIA Nsight Compute — это инструмент нового поколения, который обеспечивает интерактивную отладку CUDA API и профилирование ядра. Эта версия Nsight Compute предлагает быстрый сбор данных о показателях производительности и отладке API с помощью пользовательского интерфейса и командной строки.

Nsight Systems 2018.2

NVIDIA Nsight Systems — это инструмент для анализа производственных характеристик, позволяющий разработчики оптимизировать программное обеспечение, например, выявлять узкие места в процессорах и графических процессорах. Обновления в Nsight Systems 2018.2 включают поддержку CUDA 10, обновление интерфейса командной строки для реализации новых сценариев использования, улучшенную совместимость и удобство использования.

Nsight Graphics 2018.5

Nsight Graphics — автономный инструмент разработки, позволяющий отлаживать, профилировать и экспортировать фреймы, созданные с помощью популярных графических API. Версия 2018.5 обеспечивает публичную доступность GPU Trace, поддерживает расширения Direct3D 12 DXR и Vulkan Ray Tracing, расширяет функционал для DirectX 12 и поддерживает Windows RS3 DirectX 12 SDK.

Nsight VSE 6.0

NVIDIA Nsight Visual Studio Edition — это среда разработки приложений для GPUs, которая позволяет создавать, отлаживать, профилировать и отслеживать набор приложений. Обновления в Nsight VSE 6.0 включают графическую отладку с поддержкой трассировки лучей, расширенную отладку и анализ с поддержкой CUDA 10.


Интересные статьи:

Nvidia запустит платформу для разработчиков медицинских приложений

14 сентября 2018

Nvidia запустит платформу для разработчиков медицинских приложений

NVIDIA Clara — комбинация аппаратного и программного обеспечения для разработчиков медицинских приложений с искусственным интеллектом.  Clara SDK основана на вычислительном модуле NVIDIA Xavier AI и графических процессорах NVIDIA Turing и содержит набор…

NVIDIA Clara — комбинация аппаратного и программного обеспечения для разработчиков медицинских приложений с искусственным интеллектом. 

Clara SDK основана на вычислительном модуле NVIDIA Xavier AI и графических процессорах NVIDIA Turing и содержит набор библиотек для вычислений и создания моделей машинного обучения в сфере медицины. Платформу можно использовать для обработки больших массивов данных, реконструкции и рендеринга изображений, работы с результатами KT, МРТ, УЗИ.

Clara позволит автоматизировать рабочий процесс, улучшить работу приборов и качество изображений, ускорить выявление и диагностику заболеваний. Компании-партнёры NVIDIA уже используют Clara для улучшения МРТ и ПЭТ-диагностики, снижения уровня излучения, преобразования 2D-снимков в 3D, визуализации результатов ультразвуковой диагностики.

Выпуск бета-версии NVIDIA Clara запланирован на второй квартал 2019 года. 

Сейчас платформа доступна по партнёрской подписке.

Vid2Vid — GAN для подмены деталей и свойств видеопотока

3 сентября 2018
vid2vid-video-to-video-synthesis-e1535641547242

Vid2Vid — GAN для подмены деталей и свойств видеопотока

Исследователи из NVIDIA и лаборатории Computer Science & AI из MIT представили новый метод синтеза video-to-video, который показывает впечатляющие результаты. Предложенный метод — Vid2Vid — позволяет синтезировать высококачественные, фотореалистичные, плавные…

Исследователи из NVIDIA и лаборатории Computer Science & AI из MIT представили новый метод синтеза video-to-video, который показывает впечатляющие результаты. Предложенный метод — Vid2Vid — позволяет синтезировать высококачественные, фотореалистичные, плавные видео из различных входных данных, включая маски сегментации, скетчи и образы.

Предыдущие работы

Утверждая, что универсальное решение для video-to-video генерации еще не изучено (в отличие от соответствующей задачи в image-to-image генерации), исследователи установили сильный baseline для данного алгоритма, который комбинирует новейшие алгоритмы передачи видеопотока image-to-image преобразования.

Идея

Главная идея состоит в том, чтобы обучить функцию переноса, которая смогла бы конвертировать входящий видеопоток в реалистичный выходной. Они переформулировали задачу, как задачу сопоставления распределений. Они используют GAN, чтобы получить метод, который сможет создавать фотореалистичные видео на основе входного видео.

vid2vid

Метод Vid2Vid

Авторы смогли решить сложную проблему video-to-video преобразования (или video-to-video генерации) путем аккуратной настройки генеративно-состязательной сети.

Их целью было получить такую функцию преобразования, которая будет преобразовывать входящий поток изображений в серию фотореалистичных изображений. Условное распределение сгенерированной последовательности при данной исходной последовательности совпадает с условным распределением исходной последовательности при данной исходной последовательности:

vid2vid

Совпадение распределений заставляет сеть выдавать реалистичные и согласованные во времени выходные видеокадры. В контексте GAN, фреймворк Генератор-Дискриминатор спроектирован для обучения функции преобразования. Генератор обучается решению оптимизационной задачей — минимизация расстояния Дженсона-Шеннона. Минимакс оптимизация применяется к заданной целевой функции:

vid2vid

Как было сказано в работе, оптимизация такой целевой функции весьма нетривиальная задача. Часто обучение моделей генератора и дискриминатора получалось очень нестабильным или даже невозможным, в зависимости от решаемой задачи оптимизации. Поэтому в своих исследованиях они предлагают упрощенный генератор. Они делают предположения о марковском свойстве, чтобы факторизовать условное распределение и отделяют зависимости между кадрами в последовательностях.

Проще говоря, они упрощают задачу , предполагая, что видеокадры могут быть сгенерированы последовательно и генерация t кадра зависит только от 3-х вещей:

  1. Текущее исходное изображение;
  2. Предыдущие L исходных изображений;
  3. Последние L сгенерированных изображений.

Основываясь на этом, они спроектировали сеть прямого распространения F для обучения функции преобразования, которая из предыдущих L исходных и L-1 сгенерированных кадров создает новый кадр.

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

Оценочная сеть проектируется таким образом, чтобы учитывать маску окклюзии, оцененный оптический поток между предыдущим и текущим изображением (который задается функцией оценки оптического потока) и галлюцинированное изображение (генерируемое с нуля). Галлюцинированное изображение необходимо для заполнения областей с окклюзией.

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

Кроме того, чтобы сделать метод еще лучше, исследователи расширяют свой подход к мультимодальному синтезу. Они предлагают генеративный метод, основанный на схеме внедрения объектов и использующий Gaussian Mixture Models для получения нескольких видеороликов с различными визуальными проявлениями в зависимости от выборки различных векторов признаков.

Результаты

Предлагаемый метод дает впечатляющие результаты. Он был протестирован на нескольких наборах данных, таких как Cityscapes, Apolloscape, Face video dataset, Dance video dataset. Кроме того, для сравнения использовались два сильных baseline: метод pix2pix и модифицированный способ передачи стиля видео (CONVST), где они изменили сеть стилизации на pix2pix.

Face vid2vid

pose-to-body vid2vi2

vid2vid

edge-to-face

Сравнение с другими state-of-art

Авторы использовали как субъективные, так и объективные оценочные показатели для оценки метода: Human preference score, Fréchet Inception Distance (FID). Сравнение данных и других методов приведено в таблицах.

Будущие результаты видео-прогноза. Вверху слева: истина. Вверху справа: PredNet. Внизу слева: MCNet. Внизу справа: Vid2Vid.
Будущие результаты видео-прогноза. Вверху слева: истина. Вверху справа: PredNet. Внизу слева: MCNet. Внизу справа: Vid2Vid.

Пример вывода из мультимодального видеосинтеза
Пример вывода из мультимодального видеосинтеза

Вывод

Условный подход на основе GAN показывает впечатляющие результаты в нескольких различных задачах в рамках переноса свойств из видео в видео. Существует множество применений такого рода методов в компьютерном зрении, робототехнике и компьютерной графике. Используя изученную модель синтеза видео, можно создавать реалистичные видеоролики для самых разных целей и приложений.

Туториал Nvidia для разработчиков: оптимизация RNN с помощью TensorRT

22 августа 2018
tensorrt tutorial

Туториал Nvidia для разработчиков: оптимизация RNN с помощью TensorRT

Видео демонстрирует, как настроить простую рекуррентную нейронную сеть (RNN) на основе языковой модели на уровне символов. Хотя этот образец построен с использованием C ++, вы можете реализовать его на Python…

Видео демонстрирует, как настроить простую рекуррентную нейронную сеть (RNN) на основе языковой модели на уровне символов. Хотя этот образец построен с использованием C ++, вы можете реализовать его на Python с помощью TensorRT Python API.

При помощи NVIDIA TensorRT вы можете быстро оптимизировать и развертывать натренированные нейронные сети для проведения инференса. TensorRT обеспечивает повышение производительности инференса до 40 раз при задержках менее 7 миллисекунд по сравнению с системами на базе CPU.

Нейросеть от Nvidia научилась удалять шум с фотографий

10 июля 2018
нейросеть nvidia удаляет шум с фото

Нейросеть от Nvidia научилась удалять шум с фотографий

Nvidia представили новый алгоритм Noise2Noise, который за несколько секунд очищает фотографию от артефактов, шумов, текста, и автоматически улучшает её. Метод подходит для реконструкции МРТ-снимков и фотографий, сделанных при плохом освещении,…

Nvidia представили новый алгоритм Noise2Noise, который за несколько секунд очищает фотографию от артефактов, шумов, текста, и автоматически улучшает её. Метод подходит для реконструкции МРТ-снимков и фотографий, сделанных при плохом освещении, т.е. в случаях когда не существует «чистого» исходного изображения.

Нейросеть обучили на базе 50 000 изображений из датасета ImageNet, используя графические процессоры NVIDIA Tesla P100 и расширенную версию cuDNN от TensorFlow. Примеры работы алгоритма на видео.

PGGAN — прогрессивная генеративная нейросеть от Nvidia

22 мая 2018

PGGAN — прогрессивная генеративная нейросеть от Nvidia

Генеративно-состязательные нейросети — одна из наиболее перспективных разработок в области глубокого обучения. GANs — это генеративные сети, которые не так давно приобрели популярность в сфере машинного обучения. Комбинируя характерные особенности входных данных, они создают…

Генеративно-состязательные нейросети — одна из наиболее перспективных разработок в области глубокого обучения. GANs — это генеративные сети, которые не так давно приобрели популярность в сфере машинного обучения. Комбинируя характерные особенности входных данных, они создают принципиально новые объекты, неотличимые от реальных. За последние несколько лет генеративные нейросети привлекли внимание и нашли практическое применение.

Реалистичные изображения несуществующих знаменитостей, созданные с помощью GAN.
Реалистичные изображения несуществующих знаменитостей, созданные с помощью GAN.

GANы способны работать с многомерными данными. К примеру, они могут создавать реалистичные изображения, используя характерные особенности тренировочных датасетов. Столь мощное семейство нейронных сетей в машинном обучении возникло благодаря комбинации глубоких нейросетей и теории игр (GANs, Ian Goodfellow, 2014).

Рассмотрим структуру GANs. Они состоят из двух взаимодействующих нейросетей:

  • Генератор — генерирует образцы, используя набор переменных скрытого пространства.
  • Дискриминатор — оценивает отличие сгенерированных образцов от образцов тренировочного набора.

Конечная цель этих двух нейросетей — сгенерировать образец, в котором не будут угадываться черты тренировочных образцов, но при этом он будет выглядеть как один из них.

Основные характеристики GANs — это качество созданного образца (насколько он похож на тренировочные) и вариативность (отличие его особенностей от образцов тренировочного датасета). Цель заключается в максимизации обоих этих параметров. Но на пути к этой цели возникают несколько проблем, требующих детального рассмотрения. Следует сказать, что возможно добиться только компромисса между качеством и вариативностью, так как повышение качества ведёт к понижению вариативности.

С увеличением размерности данных возрастает сложность такой генерации. Создание изображения (GAN используются преимущественно для них) с высоким разрешением становится трудной задачей по двум причинам. Во-первых, на изображении не воспроизводятся мелкие детали, что легко заметить при большом разрешении. И во-вторых, процесс обучения занимает много времени, что ведёт к его нестабильности.

Новый подход к генерации изображений от Nvidia

Исследователи NVIDIA и Университета Аалто разработали инновационный подход к решению этих проблем, описанный в работе “Progressive Growing of GANs”. Идея проста: во время обучения обе нейросети (Генератор и Дискриминатор) развиваются посредством добавления новых слоёв. Помимо этого, исследователи ввели и другие улучшения в процесс обучения для генерации более реалистичных изображений в высоком разрешении.

Предлагаемый метод последовательного развития GANs
Предлагаемый метод последовательного развития GANs

Развитие в процессе обучения

Идея заключается в том, чтобы позволить нейросети изучить сначала крупные структуры на изображении, а затем более мелкие. Это делает процесс обучения более стабильным, а также улучшает качество конечных изображений за счёт природы генеративных сетей, которые осуществляют сложное проецирование пространства скрытых переменных на реалистичное изображение. Поэтапное выполнение этого процесса легче, чем выполнение за один подход. В предлагаемой работе авторы используют зеркальные нейросети Генератора и Дискриминатора, начиная с очень малого разрешения (4х4 пикселя) и последовательно развивая нейросеть для работы с высоким разрешением (1024х1024).

Нормировка в генераторе и дискриминаторе

Для дальнейшего улучшения параметров генерируемого изображения авторы применяют нормировку данных в Генераторе и Дискриминаторе. Они выяснили, что деструктивная конкуренция между двумя нейросетями (Генератором и Дискриминатором) приводит к проблемам в обучении, и поэтому они предлагают ограничивать конкуренцию и амплитуду весов для более стабильного и быстрого обучения. Для достижения этой цели были использованы два метода: особая инициализация весов и попиксельная нормировка вектора особенностей изображения. Таким образом, в процессе обучения развивается не только нейросеть, но также и набор весов. Интересно, что такой подход улучшает результат, добавляя динамики в систему.

Инициализация весов заключается в следующем: веса инициализируются с помощью нормального распределения с нулевой средней и единичной дисперсией, и далее во время работы происходит их масштабирование. Это и есть ограничение амплитуды, о котором говорилось ранее. Такой подход улучшает процесс обучения в случае, если оптимизатор инвариантен относительно изменения масштаба весов (как RMSProp, ADAM и т.д.).

Идея попиксельной нормализации вектора особенностей заключается в приведении длины характеристического вектора к единице. Нормировка производится в Генераторе после каждого свёрточного слоя.

Предлагаемый метод прошёл испытания на датасете CELEBA, который содержит 30000 изображений лиц знаменитостей высокого разрешения (1024х1024) и поэтому хорошо подходит для проверки метода. Рассматриваемый метод показал более высокую реалистичность и гораздо большую вариативность изображений, чем существующие методы. Версия CELEBA с изображениями более высокого качества будет опубликована авторами в ближайшее время.

Постепенное улучшение результатов при внесении различных улучшений. MS-SSIM — Multi-Scale Structural Similarity score — Мультимасштабная оценка структурного сходства. Тестирование проводилось с использованием датасетов CELEBA и LSUN
Постепенное улучшение результатов при внесении различных улучшений. MS-SSIM — Multi-Scale Structural Similarity score — Мультимасштабная оценка структурного сходства. Тестирование проводилось с использованием датасетов CELEBA и LSUN
Сравнение качества генерируемых изображений на примере датасета LSUN
Сравнение качества генерируемых изображений на примере датасета LSUN

Концепт прогрессивной генеративной нейросети показал многообещающие результаты, и в ближайшее время мы можем ожидать появления новых приложений и улучшений данного подхода. Несмотря на это, нам предстоит ещё долгий путь к генерации изображений, которые будут неотличимы от реальных фотографий.

Оригинал — Dane Mitriev

Реконструкция фотографий методом частичной свертки от Nvidia

8 мая 2018
Image Inpainting for Irregular Holes Using Partial Convolutions

Реконструкция фотографий методом частичной свертки от Nvidia

“Image inpainting” — задача заполнения пробелов в изображении (реконструкция, дорисовка). Цель работы, проделанной авторами — предложить модель для реконструкции изображений, которая надежно работает на нерегулярных пробелах и создает семантически значимые прогнозы, которые сочетаются с…

“Image inpainting” — задача заполнения пробелов в изображении (реконструкция, дорисовка). Цель работы, проделанной авторами — предложить модель для реконструкции изображений, которая надежно работает на нерегулярных пробелах и создает семантически значимые прогнозы, которые сочетаются с остальной частью изображения без необходимости дополнительных операций пост-обработки или смешивания. Модель используется со многими приложениями, например, при редактировании изображений для удаления нежелательных деталей в изображении, заполняя приемлемым контентом.

Для image inpainting используются разные подходы, но ни один из них не использует метод глубокого обучения, и у них есть недостатки. Один из методов называется patchmatch, который итеративно ищет подходящие исправления для заполнения пробелов. Хотя этот подход в результаты дает плавный переход, он ограничен доступной статистикой изображений и не использует понятие визуальной семантики. Другое ограничение подобных подходов — фокусировка на прямоугольных пробелах, которые часто считаются центральными в изображении. Ограничения приводят к перенасыщению прямоугольных пробелов и, в конечном счете, ограничивают применение этих моделей.

Метод частичной свертки

Чтобы снять ограничения предыдущего подхода, исследователи компании Nvidia использовали частичную свертку для решения проблемы зарисовки изображения. Частичный сверточный слой содержащий операцию маскировки и повторную нормализацию свертки, следуют за обновлением маски. Основным расширением является этап автоматического обновления маски, который удаляет маскировку, где частичная свертка работала по незамаскированному значению.

Новшества:

  • Использование частичных сверток с автоматическим шагом обновления маски для достижения современных результатов в дорисовывании изображений (image-inpainting).
  • При помощи замены сверточных слоев частичными свертками и обновления масок удалось достичь самых высоких результатов в реконструкции изображений.
  • Продемонстрирована эффективность обучения image-inpainting моделей на пробелах неправильной формы.

Частичный сверточный слой

Модель использует операции стекирования частичной свертки и операции обновления маски для выполнения image inpainting. Операция частичной свертки и функция обновления маски работают совместно как частичный Сверточный слой.

Пусть W — вес фильтра свертки, а b — соответствующее смещение. X — значения пикселей для текущего окна свертки, а M — соответствующая бинарная маска. Частичная свертка в каждом месте выражается следующим образом:

Partial Convolutional Layer

Где ⊙ обозначает умножение по элементам. Как видно, выходные значения зависят только от немаскируемых входных значений. С помощью масштабного коэффициента 1/sum(M) подбирается подходящее масштабирование, чтобы скорректировать изменяющиеся действительные (незамаскированные) входные данные. После каждой операции частичной свертки маска обновляется. Правило unmasking простое: если с помощью свертки получилось вывести результат, по крайней мере, для одного допустимого входного значения, тогда маска для этого местоположения удаляется. Это выражается следующим образом:

Partial Convolutional Layer

и легко реализуется в любой системе глубокого обучения как часть forward pass.

Архитектура нейросети

Частичный слой свертки реализуется путем расширения существующего стандартного PyTorch. Прямая реализация заключается в определении двоичных масок размера C × H × W, того же размера с их связанными изображениями или элементами, а затем, чтобы обновить маску, требуется использование фиксированного слоя свертки с тем же размером ядра, что и операция частичной свертки , но с весами, равными 1, и нулевым смещением. Весь вывод сетью изображения 512 × 512 занимает 0,23 с на одном графическом процессоре NVIDIA V100, независимо от размера пробела.

Используется Unet-like архитектура, заменяющая сверточные слои частичными сверточными слоями, а также на этапе декодирования используется nearest neighbour up-sampling .

Network Architecture

ReLU используется на этапе кодирования, и LeakyReLU с альфа = 0,2 используется между декодирующимися слоями. Кодер состоит из восьми частичных сверточных слоев с шагом 2. Размеры ядра — 7, 5, 5, 3, 3, 3, 3 и 3. Размеры канала — 64, 128, 256, 512, 512, 512, 512 и 512. Входные данные последнего частичного сверточного слоя будут содержать конкатенацию исходного входного изображения с пробелами и оригинальной маской.

Функция потери

Функция потери направлена как на точность пиксельной реконструкции, так и на композицию, т. е. как плавно перетекают предсказанные значения пробелов в окружающее изображение. Учитывая входное изображение с пробелом Iin и маской M, предсказание сети Iout и ground truth изображение Igt, то потеря пикселя определяется как:

Loss Function

Функция perceptual loss измеряет перцептуальные и семантические различия между изображениями. Функция использует сеть потерь, которая предварительно обучена для классификации изображений, perceptual loss функция является глубокой сверточной нейронной сетью. Perceptual loss определяются как:

Функция perceptual loss вычисляет расстояния L1 одновременно между Iout и Icomp и ground truth. Для выполнения автокорреляции, на каждой карте характеристик вводится термин style loss.

Perceptual loss

Loss Function

Общая потеря — комбинация всех вышеперечисленных потерь:

Total Loss

Результаты

Частичная свертка превосходит другие методы. Чтобы доказать, что частичная свертка работает лучше, чем другие методы, используются I1-ошибка, пиковое отношение сигнала к шуму (peak signal-to-noise ratio — PSNR), индекс структурного сходства (Structural SIMilarity — SSIM) и начальная оценка (Inception score — IScore). Ниже в таблице показаны результаты сравнения. Видно, что метод PConv превосходит другие методы в этих измерениях на нерегулярных масках.

measurements on irregular masks

Использование частичного сверточного слоя с автоматическим механизмом обновления маски и достижения современных результатов в зарисосывании изображений. Модель может надежно обрабатывать дырки любой формы, размера или расстояния от границ изображения. Кроме того, производительность не ухудшается, если размеры пробелов увеличиваются, как видно на рисунке 2.

Сorresponding inpainted results
Рисунок 2: Верхняя строка: ввод; нижняя строка: соответствующие результаты
Comparison convolution layer and partial convolution results
Рисунок 3: Сравнение между типичными результатами на основе сверточного слоя (Conv) и результатами на основе частичного сверточного слоя (PConv)

Больше результатов метода частичной свертки (PConv):

PConv PConv

Руслан Хабибуллин