Voxel51

Pesquisa de similaridade para controle de qualidade

Depois de encontrar uma anotação problemática, a pesquisa por similaridade se torna uma ferramenta poderosa para encontrar todos os erros relacionados. Clique em uma amostra rotulada incorretamente e recupere instantaneamente as imagens mais semelhantes para verificar se elas apresentam o mesmo problema sistemático de rotulagem.

A busca por similaridade do FiftyOne transforma “encontre mais coisas como esta” do tédio manual em descoberta instantânea. Indexe seu conjunto de dados uma vez e, em seguida, recupere instantaneamente amostras visualmente semelhantes por meio de consultas programáticas ou de apontar e clicar.

import fiftyone as fo
import fiftyone.brain as fob
import fiftyone.zoo as foz

# Load dataset
dataset = foz.load_zoo_dataset("quickstart")

# Index images by similarity
fob.compute_similarity(
    dataset,
    model="clip-vit-base32-torch",
    brain_key="img_sim"
)

# Sort by most likely to contain annotation mistakes
mistake_view = dataset.sort_by("mistakenness", reverse=True)

# Query the first sample and find 10 most similar images
query_id = mistake_view.take(1).first().id
similar_view = dataset.sort_by_similarity(query_id, k=10, brain_key="img_sim")

# Launch App to view similar samples and for point-and-click similarity search
session = fo.launch_app(dataset)

Os principais recursos incluem pesquisa visual instantânea por meio da interface do aplicativo, indexação de similaridade em nível de objeto para patches de detecção e back-ends escalonáveis ​​que mudam de sklearn para Qdrant, Pinecone ou outros bancos de dados vetoriais para produção.