Как автоматически генерировать текстовые описания для фотографий с помощью глубокого обучения?

машинное обучение

от машинного обучениямастерство

Сборник "Сердце машины"

Участие: Панда

Наличие изображений с текстовыми описаниями имеет неоценимое значение для таких приложений, как поиск изображений и помогает слабовидящим людям «видеть» мир. Очевидно, что использовать человеческие аннотации нереально, а с развитием технологий глубокого обучения стало возможным использовать машины для автоматического создания точных текстовых описаний для изображений. Эта статья доктора Джейсона Браунли представляет собой введение в создание подписей к изображениям с использованием глубокого обучения, составленное Heart of the Machine.

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

 

В последнее время методы глубокого обучения заменили классические методы и достигли самых современных результатов в проблеме автоматического создания описаний (называемых «заголовками») для изображений. В этом посте вы узнаете, как можно использовать модели глубоких нейронных сетей для автоматического создания описаний для изображений, например фотографий.

 

Прочитав эту статью, вы будете знать:

 

  • Сложность генерации текстовых описаний для изображений и необходимость совмещать прорывы в компьютерном зрении и обработке естественного языка.

  • Составные элементы моделей описания нейронных признаков (например, экстракторы признаков и языковые модели).

  • Как эти элементы модели могут быть объединены в кодировщик-декодер и, возможно, механизм внимания.

Обзор

 

Эта статья разделена на три части, а именно:

 

1. Используйте текст для описания изображений

2. Модель нейронного описания

3. Архитектура кодировщик-декодер

Используйте текст для описания изображений

 

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

Эту проблему иногда называют «автоматической аннотацией изображения» или «аннотацией изображения».

Эта задача проста для людей, но очень сложна для машин.

 

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

- «Глубокое видение-семантическое выравнивание для создания подписей к изображениям», 2015 г.

 

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

 

Автоматическое описание содержимого изображения — фундаментальная проблема в области искусственного интеллекта, которая связывает компьютерное зрение и обработку естественного языка.

- «Покажи и расскажи: генератор описаний нейронных изображений», 2015 г.

 

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

1. Классифицировать изображения

Назначьте метку класса изображению из сотен или тысяч известных классов.

Пример отнесения изображения к известному классу: от обнаружения авокадо до цуккини: чего мы добились и чего добьемся? ", 2013

 

2. Опишите изображение

Создайте текстовое описание содержимого изображения.

Пример создания описаний для фотографий из Long-Term Recurrent Convolutional Networks for Visual Recognition and Description, 2015.

3. Аннотируйте изображение

 

Создавайте текстовые описания для определенных областей изображения.

Пример аннотирования областей изображения описаниями из Deep Vision — Semantic Alignment for Generating Image Descriptions, 2015.

 

Эта проблема также может быть расширена для описания изображений в видео с течением времени.

 

В этом посте мы сосредоточимся на описании изображений, которое мы называем подписями к изображениям.

модель нейронного описания

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

 

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

 

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

- «Покажи и расскажи: генератор описаний нейронных изображений», 2015 г.

 

Модель нейронной сети, используемая для описания, включает два основных элемента:

1. Извлечение признаков

2. Языковая модель

Модель извлечения признаков

Модель извлечения признаков — это тип нейронной сети. Имея изображение, он может извлекать характерные черты, обычно представленные векторами фиксированной длины.

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

Глубокая сверточная нейронная сеть (CNN) обычно используется в качестве подмодели извлечения признаков. Такую сеть можно напрямую обучить изображениям в наборах данных подписей к изображениям.

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

Общепринятой практикой является использование наиболее эффективной модели, разработанной на основе набора данных ImageNet для задачи ILSVRC, такой как модель Oxford Vision Geometry Group или сокращенно VGG.

...мы изучили множество методов борьбы с переоснащением. Самый очевидный способ избежать переобучения — инициализировать веса компонентов CNN в нашей системе для предварительно обученной модели.

- «Покажи и расскажи: генератор описаний нейронных изображений», 2015 г.

экстрактор признаков

языковая модель

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

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

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

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

Улучшение этой модели состоит в том, чтобы собирать распределение вероятностей слов в словаре для выходной последовательности и искать его для создания нескольких возможных описаний. Эти описания могут быть оценены и ранжированы в соответствии с вероятностью. Распространенным способом является использование поиска луча (Beam Search) для этого поиска.

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

языковая модель

Архитектура кодировщик-декодер

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

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

- «Покажи и расскажи: генератор описаний нейронных изображений», 2015 г.

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

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

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

В машинном переводе «кодер» RNN считывает исходное предложение и преобразует его в информативное векторное представление фиксированной длины, которое, в свою очередь, используется в качестве начального скрытого состояния «декодера» RNN для генерации целевого предложения. Здесь мы предлагаем следовать этой элегантной схеме и заменить кодировщик RNN глубокой сверточной нейронной сетью (CNN).

- «Покажи и расскажи: генератор описаний нейронных изображений», 2015 г.

Примеры архитектур CNN и LSTM из Show and Tell: A Neural Image Description Generator, 2015 г.

Описательная модель с использованием механизма внимания

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

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

Этот подход также использовался для повышения производительности архитектур кодера-декодера для описаний изображений, позволяя декодеру узнать, на каких частях изображения следует сосредоточиться при создании каждого слова в описании.

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

- «Покажи и расскажи: генератор описаний нейронных изображений», 2015 г.

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

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

- «Покажи и расскажи: генератор описаний нейронных изображений», 2015 г.

Легче всего понять это на следующем примере:

Пример описания изображения с использованием внимания из «Покажи и расскажи: генератор описания нейронного изображения», 2015 г.

продвинутое чтение

Если вы хотите узнать больше об описании изображения более подробно, вы можете обратиться к ресурсам, приведенным здесь.

бумага

  • Покажи и расскажи: нейронный генератор подписей к изображениям, 2015 г.: https://arxiv.org/abs/1411.4555.

  • Покажи, посети и расскажи: генерация подписей к изображениям на основе нейронных сетей с визуальным вниманием, 2015 г.: https://arxiv.org/abs/1502.03044.

  • «Долговременные рекуррентные сверточные сети для визуального распознавания и описания», 2015 г.: https://arxiv.org/abs/1411.4389.

  • Глубокие визуально-семантические выравнивания для создания описаний изображений, 2015 г.: https://arxiv.org/abs/1412.2306.

статья

  • Википедия: Автоматическая аннотация изображения: https://en.wikipedia.org/wiki/Automatic_image_annotation

  • Покажите и расскажите: открытый исходный код подписей к изображениям в TensorFlow: https://research.googleblog.com/2016/09/show-and-tell-image-captioning-open.html

  • Андрей Карпати и Фейфей Ли: Автоматическое описание изображения с использованием сверточных и рекуррентных сетей, видео: https://www.youtube.com/watch?v=xKt21ucdBY0, слайды: https://cs.stanford.edu/people/karpathy/sfmltalk .pdf

проект

  • Выравнивание Deep Vision и семантики для создания подписей к изображениям, 2015 г.: http://cs.stanford.edu/people/karpathy/deepimagesent/

  • NeuralTalk2: код Torch для эффективного описания изображения, работающего на графическом процессоре, от Андрея Карпати: https://github.com/karpathy/neuraltalk2

Исходная ссылка: https://machinelearningmastery.com/how-to-caption-photos-with-deep-learning/

Эта статья составлена ​​для сердца машины,Для перепечатки, пожалуйста, свяжитесь с этим официальным аккаунтом для авторизации .

✄------------------------------------------------

Присоединяйтесь к сердцу машины (штатный репортер/стажер): hr@jiqizhixin.com

Внесите свой вклад или запросите освещение: content@jiqizhixin.com

Реклама и деловое сотрудничество: bd@jiqizhixin.com