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

Этот метод работает с небольшой обучающей базой данных из 5 общих классов: том, джерри, здание, человеческие лица и некоторые продукты питания. Системы поиска изображений на основе содержимого (CBIR) позволяют находить изображения, похожие на изображение запроса, среди набора данных изображений. В этой статье используется платформа глубокого обучения для извлечения изображений из немаркированного набора данных. Эта система CBIR будет основана на сверточном автокодировщике. Это класс неконтролируемых алгоритмов глубокого обучения. Мы использовали три метода, такие как convAE, simpleAE и vgg16. Обычно мы сначала извлекаем функции из базы данных изображений и сохраняем их. Затем вычислите функции, связанные с изображением запроса. Наконец, получите изображения с наиболее близкими характеристиками.

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

СБОР ДАННЫХ

Набор данных состоит из 5 общих классов элементов: Том, Джерри, здание, человеческие лица и некоторые продукты питания. Вот ссылка Набор данных для набора данных поиска изображений, который состоит из 57 изображений для обучения (рис. 1) и 7 изображений для тестирования.

РАЗВЕРТЫВАНИЕ МОДЕЛЬНОЙ АРХИТЕКТУРЫ

Обычно мы используем 3 скрытых слоя для кодирования, вы можете экспериментировать с большим или меньшим количеством слоев на ваше усмотрение. Я собираюсь следовать традиционному подходу к увеличению числа нейронов по мере того, как мы углубляемся внутрь слоя; так как это помогает изучить больше функций из изображения, которое дает нам большую уверенность. У нас будет (100,100,3) входных нейронов, которые мы изменяем размер наших данных до 100 * 100 с 3 каналами, так как он считается идеальным размером, и поэтому наша модель может улавливать даже мелкие детали и необходимые особенности изображения. Следующие три скрытых слоя для декодирования с использованием закодированных изображений (рис. 2). )

МОДЕЛЬ К-БЛИЖАЙШЕГО-СОСЕДА

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

ВОССТАНОВЛЕНИЕ ПОДОБНЫХ ИЗОБРАЖЕНИЙ ДЛЯ ТЕСТИРОВАНИЯ

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

Исходный код

Весь исходный код можно найти в моем репозитории Github: - Получение изображений с использованием исходного кода автоэнкодеров

Как всегда, большое спасибо за чтение и, пожалуйста, поделитесь этой статьей, если вы нашли ее полезной!