---
updatedAt: 2026-09-03T09:33:26.000Z
agentTools:
  projectIndex: https://documentation.picsellia.com/llms.txt
---

# Explore your Assets and Shapes with Embeddings

Explore your images and shapes with embeddings in Picsellia's DatasetVersion. Learn about similarity search, text-to-image search, and UMAP projections.

The Picsellia `DatasetVersion` offers several features that rely on the embeddings computed for each `Asset` and, depending on the `Version Type`, for each `Shape`. These embeddings enable a smooth and efficient exploration of a large volume of `Asset` or `Shape`, based on mathematical methods, in addition to the *Query Language* exploration mode detailed [here](https://documentation.picsellia.com/docs/dataset-overview#3-exploration-modes-and-filtering).

This works the same way as `Datalake` embeddings exploration, detailed [here](https://documentation.picsellia.com/docs/datalake-explore-your-data-with-embeddings). In a `DatasetVersion`, you additionally can compute one embedding per `Shape`, which unlocks the exploration of `Shape` embeddings to identify `Shape` clusters and annotation mistakes, for instance.

<Callout icon="🚧" theme="warn">
  ### Not supported for videos

  Embeddings computation and the _Embeddings_ exploration mode are only available for images. Videos are not supported.
</Callout>

<Callout icon="🚧" theme="warn">
  ### `Shape Embeddings` availability depends on the Version Type

  `Shape` embeddings are only available for some `Version Type` (confirmed available for _Segmentation_, confirmed not available for _Mask_) — check the _Shape Embeddings_ page of your `DatasetVersion` _Settings_ to see if it applies to yours.
</Callout>

In detail, based on the embeddings computation, in a given `DatasetVersion`, you'll be able to:

* Perform similarity search on `Asset` and `Shape`.
* Query your `Asset` or `Shape` with the Text-to-image search.
* Explore your `Asset` and `Shape` in depth with the integrated UMAP projections map.

## 1. How to configure it?

First of all, before using the features that rely on the embeddings computed for your `Asset` or `Shape`, you need to activate this computation, knowing that `Asset` and `Shape` embeddings can be activated independently.

To do so, you need to access the `DatasetVersion` *Settings*, in the *Embeddings* category.

<Callout icon="📘" theme="info">
  ### Ensure necessary rights

  You need to have the _Admin_ rights on the current `DatasetVersion` to access its _Settings_ page.
</Callout>

Please note that the embeddings computation is `DatasetVersion`-related, meaning that if you have several `DatasetVersion`, you'll need to perform these activations for every `DatasetVersion`.

### A. Data Embeddings

To activate the Visual Search feature on the `Asset` of the current `DatasetVersion`, access its *Settings*, go to the *Data Embeddings* page, and click on *Activate*.

<Image src="https://files.readme.io/d8dec5a45b68f733912dc7422ee60522f0db45c17353423c76fcc56193d37146-image.png" align="center" caption="Access the Visual Search configuration page for images" border={true} />

### B. Shape Embeddings

If available for your `Version Type`, you can similarly activate the Visual Search feature on the `Shape` of the current `DatasetVersion` (browsable from the [*Shapes view*](https://documentation.picsellia.com/docs/dataset-shapes-view)), from the *Shape Embeddings* page of its *Settings*, by clicking on *Activate*.

<Image src="https://files.readme.io/129184607bdc94d77c4b50a3cfbd7a9a527cc408e64674ff06f0ab3a097bf2a8-image.png" align="center" caption="Access the Visual Search configuration page for shapes" border={true} />

Obviously, to compute `Shape` embeddings, the `Asset` of the current `DatasetVersion` must already be annotated, no matter how ([annotation file import](https://documentation.picsellia.com/docs/dataset-annotation-import), [Annotation tool](https://documentation.picsellia.com/docs/dataset-annotation-tool), Annotation Campaign, pre-annotation `Processing`...).

### C. Embeddings computation status

Once activated, the computation process and configuration work the same way for `Asset` and `Shape` embeddings. The computation starts right away, and can be tracked using the progress bar or directly from the related internal *Job*, accessible from the *Jobs* tab.

<Callout icon="📘" theme="info">
  ### Datalake embeddings are necessary

  A prerequisite to compute `Asset` (image) embeddings in a `DatasetVersion` is to have activated them on the `Datalake` the underlying `Data` comes from. As a consequence, those image embeddings have already been computed by the `Datalake`'s Visual Search feature, so the computation for `Asset` only is almost instant.
</Callout>

<Image src="https://files.readme.io/a28bc8818c78fc1d3b0ca245f183addb73eb1806f924eed75330246d456cc257-image.png" align="center" caption="Activation of the Visual Search for shapes" />

<Image src="https://files.readme.io/0ccc7ce1db95a665c3d206f74d031f0c18f30faef3fc5e4208f48e6b7dcb87aa-image.png" align="center" caption="Embeddings computation job for images and shapes" border={true} />

Once the computation is over, you'll have access to an embeddings status overview that details the number of `Asset` or `Shape` treated successfully, as well as the ones that were not computed, for any reason:

<Image src="https://files.readme.io/99b93cc5d1c1b0a8003e10fcf1ff612401135c720eedaf55c743d56cbe20a729-image.png" align="center" caption="Embeddings computation overview" border={true} />

Sometimes `Asset` or `Shape` may not be computed due to an isolated issue during the computation process, or because they are not in a supported format. In both cases, you can relaunch the embeddings computation for all the `Asset` or `Shape` in a given status using the *Retry* button.

<Image src="https://files.readme.io/eca606117e281db2a1359ac0982298f3058b13f3b291bae6ac4e19fd305f4032-image.png" align="center" caption="Retry embeddings computation" border={true} />

Once the computation is over, the *Active* flag appears. This means that from now on, each new `Asset` or `Shape` added to the current `DatasetVersion` will, if possible, be computed to generate an embedding from it.

<Image src="https://files.readme.io/2dfd3b37bab1c63eee32442d5c93a760464b2fa6eedc32339c09687d5f4b4947-image.png" align="center" caption="Visual Search feature status" border={true} />

Please also note that you can deactivate the embeddings computation at any moment by clicking on *Deactivate*. This will delete all the embeddings already computed for the current `DatasetVersion`, so please be very cautious while using this button.

<Image src="https://files.readme.io/a3de94e22cb7247c59eb3dbcdc8e6b7d0daf9877af198bd37834b3ad72b37aa4-image.png" align="center" caption="Visual Search deactivation" border={true} />

Let's talk quickly about the technology behind this embeddings computation.

The library `open_clip` is used to generate one embedding vector per `Asset` or `Shape`. In particular, it is the model `ViT-B-16` with the weights `datacomp_xl_s13b_b90k` that are used by default. Once generated, each embedding vector is stored in a *QDrant Vector Database* and its *Vector Search Engine*, used to implement the exploration features detailed below.

<Callout icon="👍" theme="okay">
  **Use your own embeddings model?**

  The Picsellia embeddings system is built by design to handle any type of embeddings model, so if you want to use your own model to compute the embeddings of your `DatasetVersion`, please reach out to the Picsellia team so they can set up this specific configuration.

  In case you need more than a generic _OpenClip_ model to compute and explore your embeddings, you can also leverage the _Experiment Tracking_ feature of Picsellia to fine-tune the generic _OpenClip_ model on your own images and captions. This lets you quickly train and integrate an embedding model that generates more insightful vectors in your particular context. For that need too, please reach out to the Picsellia team.
</Callout>

Now that the Visual Search feature is fully activated and the embeddings computation is over, let's detail the different features that leverage it to explore your `Asset` or `Shape`.

## 2. Similarity Search

The first and most common way to leverage the embeddings is through *Similarity Search*: it identifies the `Asset` or `Shape` that look the most like the selected one.

To find the *x* most similar `Asset` to a selected one, select it directly in your `DatasetVersion`, click on *Find Similar*, type the number of most similar `Asset` to search for, and click on *Search*.

<Image src="https://files.readme.io/b4488ce2c4622469d6e6131db2f26765004287a182e77e7c15431a498bea7fe7-image.png" align="center" caption="Using Similarity Search" border={true} />

<Callout icon="🚧" theme="warn">
  The _Similarity Search_ button is only accessible when one `Asset` is selected.
</Callout>

Once found, the most similar `Asset` are displayed in the `DatasetVersion` *Assets overview* with a badge indicating the similarity score with the initial image. The cross icon next to the eye icon allows you to close the similarity search feature.

<Image src="https://files.readme.io/7005b321a64bca01f95990c018bcd0cdaecb0199cd7c7250f926f6ce6a6155a0-image.png" align="center" caption="Similar images visualization" border={true} />

Performing this similarity search on `Shape` works almost the same way: switch to the *Shapes* view, select the `Shape` to search similarities for, and click on the eye icon to display the most similar `Shape`.

<Image src="https://files.readme.io/4e47cc5e91925411e39e6606fa6ad6c6217ca25c271566dd25034fd52439b1ca-image.png" align="center" caption="Perform a similarity search on shapes" border={true} />

## 3. Text-to-Image search

You can also explore your `Asset` or `Shape`, not based on the similarity with a given image, but based on a text prompt. This is made possible by the captioning embedded in the OpenCLIP model, and identifies the `Asset` or `Shape` that correspond the most to a given text prompt.

To find the *x* `Asset` that fit a text prompt best, click on the *Text-to-Image* icon, type your prompt, set the number of most relevant `Asset` to search for, and click on *Search*.

<Image src="https://files.readme.io/0e0a7ff1bb0571eb93ac968ce4ad51697813f0b2a631362dcc38684f539cb011-image.png" align="center" caption="Text-to-Image search" border={true} />

Once found, the most relevant `Asset` are displayed in the `DatasetVersion` *Assets overview* with a badge indicating the matching score with the initial text. The cross icon next to the eye icon allows you to close the text-to-image search feature.

<Image src="https://files.readme.io/6255cae4830b1f3875d43586178f1a8961671f55770ae07cfb895956558c7e4f-image.png" align="center" caption="Text-to-Image search results" border={true} />

Performing this *Text-to-Image* search on `Shape` works almost the same way: switch to the *Shapes* view, click on the *Text-to-Image* icon, and type your prompt to display the `Shape` that correspond the most to it.

<Image src="https://files.readme.io/1db393715b9a1808390ff3875bd670fed0d71dd27660057c583b03ac53278db5-image.png" align="center" caption="Perform a Text-to-Image search on Shapes" border={true} />

## 4. UMAP Projections

The last, and likely most powerful and flexible, way to leverage embeddings in a `DatasetVersion` is the UMAP projection and visualization of every embedding vector computed for it. This is accessed by clicking the *UMAP Projection* button, which opens a scatter plot displaying the point cloud of all your embedding vectors, projected using the UMAP method.

If you are in the *Assets* view, the `Asset` embeddings projections are displayed; switching to the *Shapes* view instead displays the embedding projections for every `Shape`.

<Image src="https://files.readme.io/c26a5f3720147a1d4b81ffe4f7c1b4796ad1dea10f1cb6ff9d4f26338bd2b7ea-image.png" align="center" caption="Image embeddings projections view" border={true} />

<Image src="https://files.readme.io/df13c9bc848678e382ab29eec6414c3ffd63f4a1e5c8a0000ac98bb7c4bf2109-image.png" align="center" caption="Shapes embeddings projection view" border={true} />

In both cases, each point represents one or several `Asset` or `Shape` (depending on how many are considered).

`Asset` or `Shape` that are visually close to each other are grouped using the DBSCAN clustering method and identified with the same color.

You can explore the embedding point cloud by selecting a group of points using the *Select with lasso*, *Select with rectangle*, or *Select by cluster* tools:

<Image src="https://files.readme.io/927cdb8dc1ab550b3ffbc0c8f5d88f9ebefe18412180f1c45cd53a0c10f40690-image.png" align="center" border={true} />

The `Asset` or `Shape` corresponding to the selected points are highlighted in red and displayed on the left panel.

<Image src="https://files.readme.io/16a27e8ff5020011dcef147cc598c3f2fc9339e88e8e45a2e8b4819dacaea536-image.png" align="center" caption="Selection of a shape cluster" border={true} />

Please note that it is not possible to explore a `DatasetVersion` using the embeddings scatter plot alongside the *Search Bar* at the same time. You can switch between the two exploration modes as long as the embedding selection or the search query is reset.

<Image src="https://files.readme.io/770d1665054ad4079fcef954499edeea1577e718975448d2d7a9975aa29b15c1-image.png" align="center" caption="Embeddings vs Query Language explorations" border={true} />

Nevertheless, once `Asset` or `Shape` have been filtered with the embedding exploration tools, they can be selected and, switching back to the *Query Language* exploration mode, attached/detached an [`AssetTag`](https://documentation.picsellia.com/docs/dataset-tagging-system), sent to a [`Processing`](https://documentation.picsellia.com/docs/dataset-data-processings), or used to [create a new `DatasetVersion`](https://documentation.picsellia.com/docs/dataset-fork-a-dataset).

<Callout icon="📘" theme="info">
  A very illustrative use case for `Asset` is to identify isolated points that are likely outliers or corrupted images, visualize them to validate it, and tag them to retrieve them easily in the future.

  For `Shape`, a common use case is to identify isolated points, as they might indicate annotation mistakes.
</Callout>

To reset the embeddings selection, click on *Reset Selection*.

The UMAP projection is not recomputed automatically, so you can manually recompute the point cloud with all the latest `Asset` or `Shape` by clicking on *Recompute UMAP Projection*.

Please note that recomputing the UMAP also lets you set some UMAP and DBSCAN parameters, as shown below.

<Image src="https://files.readme.io/4480f7747183d506acfd79be01446514159994db086448a283ba57afc64fb48c-image.png" align="center" border={true} />

More details about the UMAP parameters are available [here](https://umap-learn.readthedocs.io/en/latest/parameters.html#n-components).

The DBSCAN parameters are the following:

* ε (epsilon): The maximum distance between two points for them to be considered neighbors.
* Min samples: The minimum number of points required to form a dense region.