Я работал над проектом электронной коммерции и сейчас пытаюсь реализовать поиск по изображениям. Я искал в Интернете возможное решение. Я узнал о Google, и Yahoo прекратила свою поддержку API поиска изображений. Я хотел бы знать, Что нужно извлечь из изображения и на основе того, что мне нужно искать в моей БД. Любые предложения будут полезны. Спасибо
Если вы хотите использовать метод грубой силы, вы можете вычислить хеш каждого изображения, сохранить его в базе данных и вычислить хеш файла для поиска, сопоставить его с базой данных и… теперь вы нашли точное совпадение изображение.
Это может быть полезно в некоторых ситуациях, но в большинстве вы захотите найти «похожие» изображения. Вы можете извлечь метаданные из изображения, такие как дата съемки, имя файла и т. Д. Если вы хотите выполнить поиск в своем собственном фотоальбоме, вполне вероятно, что изображения, сделанные примерно в одно и то же время, находятся в одном месте и, таким образом, содержат одинаковое содержимое.
Google использует (насколько мне известно) неизвестный метод для получения части изображения и поиска с использованием этой информации. Например: если вы разделите изображение в сетке X по Y и вычислите среднее значение цвета, вы можете найти совпадение в базе данных (очевидно, вам придется делать это для каждого изображения и сохранять результат в базе данных). , Если вы допустите определенную разницу в значении между поисковым изображением и значениями базы данных, вы, скорее всего, найдете другое изображение, похожее. Поиск только части изображения в базе данных позволяет найти изображения, которые выглядят одинаково, но перемещаются.
Microsoft создала photoDNA, метод, который находит «края» объектов на картинке, превращая ее в черно-белое изображение. Затем они изменяют размер до небольшого разрешения и вычисляют значение has. Используя этот метод, вы можете найти фотографии, которые близки к тому же, но немного отличаются. Идеально, если вы хотите найти отредактированные изображения и изображения с измененным размером.
Другой метод состоит в том, чтобы вычислить цветовой спектр изображения, нормализовать его и найти его (с небольшими вариациями) в базе данных. Чем вы получите изображения, которые имеют почти одинаковые цвета, но содержание может быть совершенно другим!
Глубокое обучение также может быть вариантом, если у вас есть много изображений одного и того же объекта. Обучая компьютер (например, с помощью nVidea cuda), вы можете заставить модель распознавать объекты. Если вы ищете фотографию с собакой на ней, результатом могут быть другие изображения с собакой.
Подводя итог: существует множество различных методов, каждый из которых имеет свои сильные и слабые стороны, но у них есть общее: это нелегко сделать!
Других решений пока нет …