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

Чтобы создать код, который находит изображение, наиболее похожее на ваше, мы сначала возьмем экстрактор признаков из предварительно обученной CNN в Imagenet. Многие экстракторы признаков моделей возвращают очень большие векторные вложения (например, VGG-16 вернет 22 000 длинных вложений на изображение и много весит), поэтому мы решили использовать regnet_y_400mf в качестве основы, у него хороший компромисс между качество и вес модели достаточно хорошие, но при этом не очень тяжелые.

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

Это Набор данных, который мы использовали, и вот Демо нашей работы.

Мы использовали «облегченный» набор данных с Unsplash, веб-сайта, где вы можете получить изображения и использовать их для коммерческого использования, если вы упомянули, что они получены из Unsplash. Есть «облегченная» версия и «полная» версия, однако «облегченная» версия весит 1,5 ГБ, а «полная» версия весит 40 ГБ, нам достаточно набора данных 1,5 ГБ.

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