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

Случай 1) Простые полностью сверточные автокодеры
Случай 2) Автокодеры с множественными потерями
Случай 3) Полностью повторяющиеся полностью сверточные автокодеры
Случай 4) Полностью сверточные вариационные автокодеры

Случай 1) Простые полностью сверточные автокодеры

Синяя рамка → слой свертки
Красная рамка → транспонировать слой свертки

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

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

Левый Gif → Сгенерированная маска для обучающих изображений с течением времени
Правый Gif → Сгенерированная маска для тестовых изображений с течением времени
Правое изображение → Стоимость с течением времени во время тренировки

Случай 2) Автокодеры с несколькими потерями

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

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

Левый Gif → Сгенерированная маска для обучающих изображений с течением времени
Правый Gif → Сгенерированная маска для тестовых изображений с течением времени
Правое изображение → Стоимость с течением времени во время тренировки

Случай 3) Повторяющиеся полностью сверточные автокодеры

Синяя рамка → Слой свертки
Красная рамка → Слой с простым повторением и сверткой

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

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

Левый Gif → Сгенерированная маска для обучающих изображений с течением времени
Правый Gif → Сгенерированная маска для тестовых изображений с течением времени
Правое изображение → Стоимость с течением времени во время тренировки

Случай 4) Полностью сверточные вариационные автокодеры

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

Левый Gif → Сгенерированная маска для обучающих изображений с течением времени
Правый Gif → Сгенерированная маска для тестовых изображений с течением времени
Правое изображение → Стоимость с течением времени во время тренировки

Интерактивный код

Для Google Colab вам потребуется учетная запись Google для просмотра кодов, а также вы не можете запускать сценарии только для чтения в Google Colab, поэтому сделайте копию на своем игровом поле. Наконец, я никогда не буду спрашивать разрешения на доступ к вашим файлам на Google Диске, просто к сведению. Удачного кодирования!

Чтобы получить доступ к коду Case a, щелкните здесь. »
Чтобы получить доступ к коду для Ситуации b, нажмите здесь .
Чтобы получить доступ к коду для Ситуации c, нажмите здесь.
Чтобы получить доступ к коду для Ситуации d, нажмите здесь. .

Заключительные слова

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

Если будут обнаружены какие-либо ошибки, напишите мне по адресу [email protected], если вы хотите увидеть список всех моих писем, пожалуйста, просмотрите мой сайт здесь.

Тем временем подпишитесь на меня в моем твиттере здесь и посетите мой веб-сайт или мой канал Youtube для получения дополнительной информации. Я также реализовал Широкие остаточные сети, пожалуйста, нажмите здесь, чтобы просмотреть пост блога t.

Ссылка

  1. Настройка изображения: преобразование содержимого изображения - skimage v0.15.dev0 docs. (2018). Scikit-image.org. Получено 9 июля 2018 г. с сайта http://scikit-image.org/docs/dev/user_guide/transforming_image_data.html.
  2. Ислам, М., Рочан, М., Наха, С., Брюс, Н., и Ван, Ю. (2018). Сеть уточнения стробированной обратной связи для грубой и точной плотной семантической маркировки изображений. Arxiv.org. Получено 9 июля 2018 г. с сайта https://arxiv.org/abs/1806.11266.
  3. Интуитивное понимание вариационных автоэнкодеров - к науке о данных. (2018). К науке о данных. Получено 9 июля 2018 г. с сайта https://towardsdatascience.com/intuitively-understanding-variational-autoencoders-1bfe67eb5daf.
  4. Изображения | TensorFlow. (2018). TensorFlow. Получено 9 июля 2018 г. с сайта https://www.tensorflow.org/api_guides/python/image.
  5. tf.random_normal | TensorFlow. (2018). TensorFlow. Получено 9 июля 2018 г. с сайта https://www.tensorflow.org/api_docs/python/tf/random_normal.