Раскрываем бизнес-возможности с моделями Vision Foundation: практическая реализация
В статье представлены практические реализации четырёх ключевых моделей Vision Foundation с примерами и бизнес-применениями от классификации продуктов до маркетингового анализа.
Настройка среды для моделей Vision Foundation
Для начала работы с моделями Vision Foundation в бизнес-приложениях необходимо подготовить среду и установить необходимые библиотеки, такие как PyTorch, Transformers, OpenCV и другие. Также важно проверить доступность GPU и CUDA для ускорения вычислений.
1. CLIP: Связь изображений и естественного языка
Модель CLIP от OpenAI связывает изображения с естественным языком, что позволяет выполнять классификацию и поиск изображений без дополнительного обучения. Бизнес может использовать CLIP для поиска товаров по изображениям, модерации контента, мониторинга брендов и кросс-модальных систем поиска.
Пример: Категоризация продуктов с помощью CLIP
В статье показано, как загрузить модель и процессор CLIP, получить эмбеддинги изображения и выполнить классификацию по категориям, например, кроссовки, формальная обувь, люксовые товары. Результаты классификации визуализируются вместе с исходным изображением.
import torch
from PIL import Image
import requests
from transformers import CLIPProcessor, CLIPModel
import matplotlib.pyplot as plt
import numpy as np
# Загрузка модели и процессора
model_id = "openai/clip-vit-base-patch32"
model = CLIPModel.from_pretrained(model_id)
processor = CLIPProcessor.from_pretrained(model_id)
# Функция для получения эмбеддингов изображения
def get_clip_image_embedding(image_path):
image = Image.open(image_path) if isinstance(image_path, str) else image_path
inputs = processor(images=image, return_tensors="pt")
with torch.no_grad():
image_features = model.get_image_features(**inputs)
return image_features
# Функция для zero-shot классификации
def classify_image_with_clip(image_path, categories):
image = Image.open(image_path) if isinstance(image_path, str) else image_path
inputs = processor(
text=categories,
images=image,
return_tensors="pt",
padding=True
)
with torch.no_grad():
outputs = model(**inputs)
logits_per_image = outputs.logits_per_image
probs = logits_per_image.softmax(dim=1)
# Возвращает словарь категорий и вероятностей
return {categories[i]: probs[0][i].item() for i in range(len(categories))}
# Пример: Категоризация продукта
url = "https://images.unsplash.com/photo-1542291026-7eec264c27ff?q=80&w=1470&auto=format&fit=crop"
image = Image.open(requests.get(url, stream=True).raw)
product_categories = [
"кроссовки", "формальная обувь", "сандалии", "ботинки",
"спортивное оборудование", "повседневная одежда", "люксовый товар"
]
results = classify_image_with_clip(image, product_categories)
# Сортировка результатов по вероятности
sorted_results = dict(sorted(results.items(), key=lambda x: x[1], reverse=True))
# Визуализация изображения и результатов классификации
plt.figure(figsize=(12, 6))
# Изображение слева
plt.subplot(1, 2, 1)
plt.imshow(np.array(image))
plt.title("Входное изображение")
plt.axis("off")
# Результаты классификации справа
plt.subplot(1, 2, 2)
categories = list(sorted_results.keys())
scores = list(sorted_results.values())
y_pos = np.arange(len(categories))
plt.barh(y_pos, scores, align="center")
plt.yticks(y_pos, categories)
plt.xlabel("Вероятность")
plt.title("Результаты классификации CLIP")
plt.tight_layout()
plt.show()
# Вывод результатов в консоль
print("Результаты классификации:")
for category, score in sorted_results.items():
print(f"{category}: {score:.4f}")2. DINO v2: Самостоятельное обучение для визуальных признаков
Модель DINO v2 от Meta AI предоставляет мощные визуальные признаки без необходимости разметки данных. Она подходит для поиска визуального сходства, обнаружения аномалий и кластеризации продуктов.
Пример: Вычисление сходства изображений
Показано, как загрузить модель DINO v2, подготовить изображения, извлечь признаки и вычислить косинусное сходство между изображениями, например, кроссовок, с визуализацией пар и оценок сходства.
3. Segment Anything Model (SAM): Продвинутая сегментация изображений
SAM обеспечивает возможности сегментации без обучения для автоматического каталогирования, точных измерений продуктов, медицинского анализа и мониторинга сельского хозяйства.
Пример: Сегментация продукта
Показано, как загрузить модель SAM, выполнить сегментацию продукта, визуализировать маски и вычислить размеры объекта в пикселях, включая ширину, высоту, соотношение сторон и площадь.
4. BLIP-2: Модель для понимания изображения и языка в бизнесе
BLIP-2 позволяет решать мультимодальные задачи, например, автоматическую генерацию описаний продуктов, обслуживание клиентов, анализ маркетингового контента и понимание соцсетей.
Пример: Анализ продукта и маркетинговых данных
Функции демонстрируют генерацию подписей к изображениям, ответы на визуальные вопросы, создание автоматизированных описаний товаров, анализ маркетингового контента и оценку вовлеченности в соцсетях.
Данный материал сочетает практические примеры кода и бизнес-кейсы для внедрения моделей компьютерного зрения в реальные задачи, помогая организациям использовать возможности AI для визуального интеллекта.
Switch Language
Read this article in English