πŸŽ‰ 75% of content is free forever β€” Unlock Premium from $10/mo β†’
CW
Search courses…
πŸ’Ό Servicesℹ️ Aboutβœ‰οΈ ContactView Pricing Plansfrom $10

Content-Based Image Retrieval

Computer VisionContent-Based Image Retrieval🟒 Free Lesson

Advertisement

Content-Based Image Retrieval

Module: Computer Vision | Difficulty: Intermediate

Similarity Metrics

Cosine Similarity

Euclidean Distance

Triplet Loss

Approximate Nearest Neighbor (ANN)

  • LSH: Locality-sensitive hashing
  • IVF: Inverted file index
  • HNSW: Hierarchical navigable small world

Mean Average Precision (mAP)

import torch
import torch.nn as nn
import numpy as np

class ImageRetrieval:
    def __init__(self, model, device='cuda'):
        self.model = model.eval()
        self.device = device
        self.database = []
        self.labels = []
    
    def build_index(self, dataloader):
        for images, labels in dataloader:
            with torch.no_grad():
                feats = self.model(images.to(self.device))
                feats = nn.functional.normalize(feats, dim=1)
                self.database.append(feats.cpu())
                self.labels.extend(labels)
        self.database = torch.cat(self.database)
    
    def query(self, q_img, top_k=10):
        with torch.no_grad():
            q_feat = self.model(q_img.to(self.device))
            q_feat = nn.functional.normalize(q_feat, dim=1)
        dists = torch.cdist(q_feat.cpu(), self.database)
        indices = dists.topk(top_k, dim=1, largest=False).indices
        return [(self.labels[i.item()], dists[0, i].item()) for i in indices[0]]

Key Takeaways

  • Metric learning optimizes embedding space for similarity search
  • ANN indexes enable billion-scale retrieval in milliseconds
  • Evaluation uses mAP across query sets

Need Expert Computer Vision Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement