Будущее визуально: революция поиска изображений

Будущее визуально: революция поиска изображений

4 июня 2025 г.

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

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

Как работает Vector Search?

Итак, у нас есть эти отпечатки пальцев. Что дальше? Как мы используем их для поиска? Вот где входит векторный поиск. Когда мы ищем картинку, поисковая система сначала генерирует внедрение для нашего изображения запроса. Далее он соответствует вектору запроса против всех изображений в базе данных и их встроения. Он рассчитывает «расстояние» между векторами, и чем более похожи векторы, тем более похожими изображения визуально.

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

Реальные приложения

Есть много и разнообразных применений встроенных изображений и векторного поиска:

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

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

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

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

Пример того, как мы можем достичь этого в SQL в BigQuery:

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

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

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

У нас есть набор изображений домов для демонстрационных целей. Эти изображения генерируются с использованиемImagen на вершине AIПолем

И чтобы найти дом, который мы хотим, мы будем использоватьИзображение встраивалось в BigQueryиВекторный поискФункциональность BigQuery.

Первым шагом будет создание модели BigQueryML.

CREATE OR REPLACE MODEL `[PROJECT_ID.DATASET_ID.MODEL_NAME]`
REMOTE WITH CONNECTION `[PROJECT_ID.REGION.CONNECTION_ID]`
OPTIONS (ENDPOINT = 'multimodalembedding@001');

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

CREATE OR REPLACE EXTERNAL TABLE `[PROJECT_ID.DATASET_ID].external_images_table`
WITH CONNECTION `[PROJECT_ID.REGION.CONNECTION_ID]`
OPTIONS(
object_metadata = 'SIMPLE',
uris = ['[BUCKET_NAME]'],
max_staleness = INTERVAL 1 DAY,
metadata_cache_mode = 'AUTOMATIC');

Теперь мы будем генерировать вставки изображений, хранящихся в ведре Google Cloud Storage, используя функцию ML.Generate_embedding.

CREATE OR REPLACE TABLE `[PROJECT_ID.DATASET_ID].home_embeddings` AS
SELECT *
FROM ML.GENERATE_EMBEDDING(
 MODEL `[PROJECT_ID.DATASET_ID.MODEL_NAME]`,
 TABLE `[PROJECT_ID.DATASET_ID].external_images_table`,
 STRUCT(TRUE AS flatten_json_output,
 512 AS output_dimensionality)
);


SELECT * FROM `[PROJECT_ID.DATASET_ID].house_embeddings`;

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

Но во -первых, нам придется генерировать встраиваемые изображения, которые мы хотим искать.



-- Create External Table for the test image


CREATE OR REPLACE EXTERNAL TABLE `[PROJECT_ID.DATASET_ID].external_images_test_table`
WITH CONNECTION `[PROJECT_ID.REGION.CONNECTION_ID]`
OPTIONS(
object_metadata = 'SIMPLE',
uris = ['[BUCKET_NAME]'],
max_staleness = INTERVAL 1 DAY,
metadata_cache_mode = 'AUTOMATIC');


-- Generate Embeddings of the test image


CREATE OR REPLACE TABLE `[PROJECT_ID.REGION].test_embeddings` AS
SELECT *
FROM ML.GENERATE_EMBEDDING(
 MODEL `[PROJECT_ID.REGION.MODEL_NAME]`,
 TABLE `[PROJECT_ID.DATASET_ID].external_images_test_table`,
 STRUCT(TRUE AS flatten_json_output,
 512 AS output_dimensionality)
);

SELECT base.uri AS image_link, distance
FROM
VECTOR_SEARCH(
 TABLE  `[PROJECT_ID.DATASET_ID].home_embeddings`,
 'ml_generate_embedding_result',
 (
 SELECT * FROM `[PROJECT_ID.REGION].test_embeddings`
 ),
 top_k => 5,
 distance_type => 'COSINE',
 options => '{"use_brute_force":true}'
);

Результат

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

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

Заключение

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

Узнайте больше о встраивании изображений в BigQueryздесьи Vector Search на BigQueryздесьПолем


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE