Розуміння вбудовувань в аналізі зображень

Вбудовування — це математичні представлення об'єктів (слів, зображень або документів) у просторі з високою кількістю вимірів. Ці представлення захоплюють суть об'єкта, кодування його найбільш значущих характеристик у вигляді щільного векторного формату. Вбудовування створюються за допомогою моделей машинного навчання, навчання яких дозволяє розпізнавати шаблони в даних. Наприклад, у обробці природної мови (NLP).

Варіанти використання вбудовувань

  1. Схожість текстів і пошук: Представлення документів або речень для вимірювання семантичної схожості при пошуковому запиті, ранжуванні результатів пошуку і виявленні плагіату.
  2. Системи рекомендацій: Рекомендація подібних продуктів, фільмів або музики шляхом порівняння вбудовувань уподобань користувача з вбудовуваннями товарів.
  3. Пошук зображень: Пошук зображень, візуально схожих на запитуване зображення, шляхом порівняння їхніх вбудовувань.
  4. Виявлення аномалій: Ідентифікація викидів у наборах даних за допомогою перевірки відстаней між вбудовуваннями.
  5. Кластеризація: Групування схожих точок даних (наприклад, клієнтів, товарів або зображень) на основі схожості вбудовувань.

Порівняння зображень за допомогою вбудовувань

У аналізі зображень вбудовування допомагають порівнювати та категоризувати зображення. Наприклад, модель вбудовувань, натренована на зображеннях, може кодувати візуальні характеристики фотографій порід собак. Кожне зображення собаки представлено як вектор, що містить деталі, такі як візерунки на шерсті, розмір і форма вух. Порівнюючи ці вбудовування, можна виявити схожості між породами або групувати їх у кластери. Цей підхід особливо корисний для автоматизованих систем, які займаються тегуванням зображень, сортуванням фотографій або виявленням дублюючого контенту.

import os  
from google.cloud import aiplatform as vertexai  
from google.auth.transport.requests import Request  
from vertexai.vision_models import Image, MultiModalEmbeddingModel  

# Ініціалізація з'єднання  
svc_json = "....json" # Ваш доступ до сервісу  
vertexai.init(project='.. ваш проект..')  
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = svc_json  

# Ініціалізація AI  
model = MultiModalEmbeddingModel.from_pretrained("multimodalembedding@001")  
images = ["...","..."] # Зображення  
embeddings_list = []   
keys = [] # для побудови графіків  

for image_path in images:  
 print(image_path, os.path.exists(image_path))  

 image = Image.load_from_file(image_path)  
 embeddings = model.get_embeddings(  
 image=image,  
 contextual_text="",  
 )  
 embeddings_list.append(embeddings.image_embedding)  
 keys.append(os.path.basename(image_path))

При застосуванні до вбудовувань зображень, метод PCA проєктує ці високовимірні вектори в 2D або 3D простір, зберігаючи більшу частину варіативності даних. Наприклад, якщо ми вбудуємо фотографії різних порід собак і візуалізуємо їх за допомогою PCA, породи з подібними візуальними характеристиками будуть знаходитися ближче одна до одної на графіку, формуючи окремі кластери. Це кластеризування відображає здатність моделі вбудовувань захоплювати спільні характеристики між зображеннями і підкреслює її ефективність у категоризації схожих об'єктів.

pic

Вбудовування — це потужні інструменти для представлення та порівняння даних, від слів до зображень. Вони дають змогу реалізувати широкий спектр застосувань, таких як пошук, кластеризація та системи рекомендацій. Вбудовування зображень, поєднані з техніками візуалізації, такими як PCA, дають розуміння взаємозв'язків між об'єктами, показуючи, як схожі елементи групуються разом у просторі вбудовувань. Для завдань, таких як аналіз порід собак, вбудовування забезпечують групування візуально та контекстуально схожих зображень, пропонуючи практичний та інтерпретований метод обробки великих наборів зображень.

Перекладено з: Understanding Embeddings in Image Analysis

Leave a Reply

Your email address will not be published. Required fields are marked *