wardrobe-ai / src /scripts /test_embedding.py
elalber2000's picture
first commit
59830d4 verified
from pathlib import Path
import pandas as pd
from PIL import Image
from sentence_transformers import SentenceTransformer
from utils.utils import SRC_PATH
image_paths = sorted((SRC_PATH / "data" / "images").glob("*.jpg"))
if not image_paths:
raise FileNotFoundError(f"No JPG images found in {SRC_PATH / 'data'}")
labels = [
"top (tshirt, shirt, polo...)",
]
model = SentenceTransformer(
"sentence-transformers/clip-ViT-B-32",
device="cpu",
)
images = [Image.open(path).convert("RGB") for path in image_paths]
image_embeddings = model.encode(
images,
batch_size=16,
normalize_embeddings=True,
convert_to_numpy=True,
show_progress_bar=True,
)
text_embeddings = model.encode(
prompts,
normalize_embeddings=True,
convert_to_numpy=True,
)
similarities = image_embeddings @ text_embeddings.T
similarity_df = pd.DataFrame(
similarities,
index=[path.name for path in image_paths],
columns=prompts,
)
print(similarity_df.round(3).to_string())