---
updatedAt: 2026-09-28T14:18:59.000Z
agentTools:
  projectIndex: https://documentation.picsellia.com/llms.txt
---

# Evaluation

The purpose of creating a `Project` and performing several `Experiment` in its frame is basically to train the best-performing `ModelVersion`. As detailed on the previous [page](https://documentation.picsellia.com/docs/experiment-experiment-tracking), you can log *Metrics* in the *Experiment Tracking dashboard* to get the insights needed to assess the quality of the training performed. In addition to the *Metrics*, Picsellia also lets you compare, on a dedicated bench of images, the predictions made by the freshly trained model with the ground truth — this is called an `Evaluation`.

By leveraging the *Evaluation interface*, you can get a precise overview of the model's behavior, get performance metrics on each evaluated image, and identify the contexts in which the model performs well or not.

With *Metrics* and `Evaluation`, you'll have all the insights needed to assess the quality of the trained `ModelVersion`, understand why it behaves the way it does, and identify ways to improve its performance in a further `Experiment`.

## 1. Create an Evaluation

`Evaluation` are computed and created by your training script. It needs to get a bunch of images unused during the training phase and already annotated in an existing `DatasetVersion`, in order to use them as ground truth.

This bunch of images can come from the training script splitting the `DatasetVersion` attached to the `Experiment`, or from a `DatasetVersion` dedicated to `Evaluation` and attached to the `Experiment` with an alias indicating its purpose.

The script then makes the just-trained `ModelVersion` infer on the evaluation images and sends the result to the Picsellia `Experiment`.

The outcome is that, for each evaluation image, you can compare the prediction made by the `ModelVersion` with the ground truth pulled from the original `DatasetVersion`. You'll also have access to evaluation metrics computed by Picsellia based on the comparison of predictions and ground truth.

The creation of `Evaluation` is already integrated into almost all the training scripts attached to `ModelVersion` from the *Public Registry*.

However, if you are using your own training script integrated with Picsellia, you can use this dedicated [tutorial](https://documentation.picsellia.com/docs/evaluate-your-model-performances), detailing how to create and log `Evaluation` within your Picsellia `Experiment`.

<Recipe />

<br />

## 2. Evaluation interface

From an `Experiment`, you can access the *Evaluations* tab, as shown below:

<Image src="https://files.readme.io/263eeb2645578e0ff2b769d9bf34fec8d64113ee67dd0bf84b74fa9860d27a10-image.png" align="center" caption="Access Evaluation tab" border={true} />

After `Experiment` creation, the *Evaluation interface* is empty. It is only once the training script has been executed successfully that `Evaluation` are created in the *Evaluation interface*.

The *Evaluation interface* offers a way to visualize and explore `Evaluation` with the same philosophy and features as the `Datalake` to browse among data, or a `DatasetVersion` to browse among `Asset`.

<Image src="https://files.readme.io/7851e7b6c41d0509857481f440bf251881c83bd2efa376304d1992338b531b9a-image.png" align="center" caption="Evaluation interface" border={true} />

### A. Evaluation visualization

#### a. Evaluation views and global navigation

You'll find three different views:

* *Grid view*, letting you visualize many `Evaluation` at a time.
* *Table view*, letting you quickly visualize many `Evaluation` and their associated information (filename, width, height, detection performances).
* *Details view*, letting you visualize one `Evaluation` in detail (full-screen image display and associated information).

<Image src="https://files.readme.io/71d770e587b9df8ba3debc295aa6d46ef9ae57393eb7a82c26fca2b52485178f-image.png" align="center" caption="Switch between views" border={true} />

The *Grid*, *Table*, and *Details* views, along with their navigation and display options, are in substance the same ones already covered for the `Datalake` (detailed [here](https://documentation.picsellia.com/docs/datalake-overview#2data-visualization)) and a `DatasetVersion` (detailed [here](https://documentation.picsellia.com/docs/dataset-overview#2-asset-visualization)).

#### b. Evaluation Shape

For each `Evaluation`, you can visualize the image, as well as the superposition of the prediction made by the trained `ModelVersion` and the ground truth inherited from the `DatasetVersion`.

The ground truth `Shape` are displayed in green, whereas the predicted `Shape` are red. For each `Shape`, the associated `Label` is displayed along with the confidence score in the case of predictions.

<Image src="https://files.readme.io/4347c50435ca3a950a42fbac5c0602d48fec893a8f815e4a9ee8c6089743aee7-image.png" align="center" caption="Evaluation visualization" border={true} />

To ensure the smoothest visualization possible, you can select which elements to display on your image.

You can choose to display, on your `Evaluation` image, only the ground truth, only the predictions, or both. You can also filter the `Shape` to display by `Label` or by confidence score (in the case of predictions).

<Image src="https://files.readme.io/a1cfe23165a3cea6ae772095e91837fc94a9544ee13bca4d8a108e565662f18c-image.png" align="center" caption="Select the annotation to display: Ground Truth, Evaluation or Both" border={true} />

<Image src="https://files.readme.io/9179120a7d87a618e3256fc55c7c91cd3e01b3147736cdadc209ebdeddc7ff51-image.png" align="center" caption="Filter the Evaluation Shapes to display based on the confidence score" border={true} />

#### c. Evaluation metrics

As explained previously, for each `Evaluation`, Picsellia compares ground truth and prediction to compute different metrics, allowing you to assess the quality of the prediction made by the `ModelVersion` on that particular image.

On the *Details* view, besides the usual properties, `Metadata`, and `Custom Metadata`, some metrics computed by the platform are displayed to assess the performance of the model against the ground truth for each `Evaluation`.

The number of ground truth `Shape`, True Positives, False Positives, and False Negatives are displayed as shown below:

<Image src="https://files.readme.io/15ca2bb79f6916fb20fcf8c112f2e1c4d88a76b92b8df24d2a768a1b1b347167-image.png" align="center" caption="TP, FP, FN scores" border={true} />

In addition, more in-depth metrics (AP/AR on several IoUs) can be visualized in the *Table* and *Details* views for each `Evaluation`:

<Image src="https://files.readme.io/0d07a238d61a128789db0aa066e3c9233d5698ce5237c0706cde684926a6d26c-image.png" align="center" caption="AP/AR on several IoUs" border={true} />

<Callout icon="🚧" theme="warn">
  ### Not applicable for Classification

  Those metrics are computed only for `Evaluation` performed in the frame of an `Experiment` with _Inference Type_ _Object Detection_ or _Segmentation_. For _Classification_, please refer to the dedicated section at the end of this page.
</Callout>

### B. Evaluation filtering

To let you investigate the `Evaluation` generated and understand the `ModelVersion`'s behavior in depth, `Evaluation` can be filtered on several criteria.

#### a. Date

The date picker lets you filter `Evaluation` on their creation date by clicking on the *Select Date* button. The date picker will open, letting you select the timeframe to search on.

<Image src="https://files.readme.io/4b95ed700834c38d98d166561a6e5dfc9e41c0a17de1f0709b444e6aabce580e-image.png" align="center" caption="Filter on Evaluation creation date" border={true} />

Once the date range is selected, the associated query is filled in the search bar, letting you complete it directly through the search bar for a more specific query.

#### b. Metrics

The *Evaluation interface* also lets you filter on the computed metrics. To do so, click on *+ Add filter* and define, through the modal, the metric and the values to filter on. For instance, let's create a filter that displays only the `Evaluation` created between 09/19/2023 and 09/22/2023, with an Average Precision (IoU 50-95) between 0.291 and 0.782:

<Image src="https://files.readme.io/f89cedf34fbc25c690899f0016128450145fff7323cfdc041313a8b68fa3a0bd-image.png" align="center" caption="Filter on Evaluation metrics" border={true} />

The images matching the active filters will be displayed.

Any filter can be removed at any time by clicking on it, then on the trash icon.

#### c. Custom Metadata

The *+ Add filter* modal also lets you filter `Evaluation` on the `Custom Metadata` of the underlying `Data` — the same key/value fields you can define on a `Data` in the `Datalake`. Pick the key you want to filter on — the keys declared in the `Custom Metadata` schema of the `Datalake` the underlying `Data` belongs to are suggested, detailed [here](https://documentation.picsellia.com/docs/datalake-metadata#3-the-custom-metadata-schema) — then its value type, and the value or range to match. This is useful to slice your evaluation bench along whatever `Custom Metadata` you already track on your `Data`, for instance filtering `Evaluation` down to the ones acquired by a specific sensor or under a specific condition, without needing an `Asset Attribute` or `Shape Attribute` for it.

<Image src="https://files.readme.io/02ccbb3430735317124550e5f48db234a3b9324ecd687af0b10e56ae07ba15ef-image.png" align="center" caption="Creation of a filter based on a Custom Metadata value" border={true} />

#### d. Filter `Evaluations` by `AssetAttribute` and/or `ShapeAttribute`

The *+ Add filter* modal also lets you filter `Evaluation` on `Attribute` values — those inherited from the ground truth `Asset`, and those carried by its `Shape` — as well as on the `Shape` themselves, by their type or their `Label`. This is a direct way to check the `ModelVersion` behavior on a specific slice of the evaluation bench, for instance only the images whose `Asset Attribute` marks a difficult acquisition condition. `Attribute` filtering is detailed [here](https://documentation.picsellia.com/docs/dataset-attributes#5-filter-on-attribute-values).

<Image src="https://files.readme.io/3789dd59508f14320278e2d99b7be4aef239ab661111e31acee0c389270adf34-image.png" align="center" caption="Creation of a filter based on Shapes Attributes values" border={true} />

<Callout icon="👍" theme="success">
  ### Summary on filters

  In summary, several types of filters can be combined to browse your `Evaluation` based on multiple criteria — creation date, average precision, average recall, `Custom Metadata`, `Asset Attribute`, or `Shape Attribute` — alongside the _Query Language_ (detailed below), to refine your search even further.
</Callout>

### C. Search Bar

As with all the image visualization views available on Picsellia, you have access to the search bar powered by our *Query Language*. This search bar lets you create complex queries leveraging all the properties related to each `Evaluation`.

The *Query Language* lets you browse among properties of the image itself (linked to an `Asset`), of the ground truth `Annotation`, or of the `Evaluation` `Annotation`. You can rely on auto-completion to see all the properties you can search on.

<Image src="https://files.readme.io/eb2ca44b5cfdb8e4c6ec35dfbae097398608c1379b30ef48c262bad59c5b7185-image.png" align="center" caption="Create complex queries with the Query Language" border={true} />

To search on the `Evaluation` `Annotation`, you need to type *polygons.xxx* (or the current shape type), whereas if you want to filter on the ground truth `Annotation`, you need to access the `Asset` first and type *asset.polygons.xxx*.

### D. Evaluation deletion

To delete any computed `Evaluation`, select the `Evaluation` to delete and click on *Delete*.

<Image src="https://files.readme.io/1f9a024decebe1077f07d171cd7066f6a3dbce905789478103658da055d15ed7-image.png" align="center" caption="Evaluation deletion" border={true} />

### E. Embeddings and visual search

Embeddings can also be computed for the `Evaluation` of an `Experiment`, the same way as for the `Data` of a `Datalake` (detailed [here](https://documentation.picsellia.com/docs/datalake-explore-your-data-with-embeddings)). On an evaluation bench of a few thousand images, this is how you find the images that resemble the one the `ModelVersion` failed on, instead of scrolling until you meet them.

The computation is activated from the *Data Embeddings* page of the `Experiment` *Settings*, where you can also follow its progress, *Retry* the `Evaluation` that could not be computed, and *Deactivate* the computation, which deletes the embeddings already computed.

<Image src="https://files.readme.io/430a3c0caf5c2698a20219a891fd8db4f2b5db45a1ded787f115c19c2eb66088-image.png" align="center" caption="Embeddings activation from Evaluation Settings page" border={true} />

Once the computation is over, you can look for the `Evaluation` that look like a selected one, or that match a text prompt.

<Image src="https://files.readme.io/0e83d4dc2251e53169aaa7f71b432c04b6d2ea3b0c7ae3d7efa3ece06315961e-image.png" align="center" caption="Exploring Evaluation using similarity search or text-to-image search" border={true} />

You can also switch to the *Embeddings* exploration mode to visualize a UMAP projection of every `Evaluation` embedding as a scatter plot, automatically grouped into clusters of visually similar images. Selecting a cluster with the lasso, rectangle, or cluster-selection tool highlights the corresponding `Evaluation` in the grid — a fast way to check whether a cluster of visually similar images shares the same kind of ground truth/prediction mismatch, instead of inspecting `Evaluation` one by one.

<Image src="https://files.readme.io/07d5403d7a7fa85838beb25c276a4d16fa0d01ea2ac69b1064891e913a330844-image.png" align="center" caption="Exploring Evaluations with UMAP projection" border={true} />

### F. Charts

Alongside *Query Language* and *Embeddings*, a third exploration mode, *Charts*, lets you build aggregate visualizations over your `Evaluation` — for instance, the average precision of your `Evaluation`, grouped by `DataTag`, to spot which subsets of your data the `ModelVersion` struggles with. Creating and managing a `Chart` is detailed in [Charts](https://documentation.picsellia.com/docs/experiment-evaluation-charts).

<Image src="https://files.readme.io/f6b107fb05110f573b1a29e67e822f60067a89ba8df6c9e988ff7c8db32cc01c-image.png" align="center" caption="Example of a Chart based on AP_50_95, and the Evaluation associated with a given bar" border={true} />

### G. Compare across Experiment

Everything so far looks at the `Evaluation` of a single `Experiment`. If two or more `Experiment` share a common evaluated `DatasetVersion`, Picsellia also lets you overlay their `Evaluation` on the same `Asset`, to see directly, image by image, how their predictions differ. This is detailed in [Comparison](https://documentation.picsellia.com/docs/experiment-comparison#2-compare-evaluations).

## 3. Classification

The case of *Classification* is handled a bit differently than *Object Detection* or *Segmentation* in the *Evaluation interface*. This is mainly because average recall and average precision metrics don't make sense for *Classification* `Experiment`.

The creation of `Evaluation` for *Classification* by a training script is detailed [here](https://documentation.picsellia.com/docs/evaluate-a-classification-model).

Most of the features remain the same as detailed previously.

The visualization of ground truth and prediction on each `Evaluation` follows the same guideline, with the ground truth `Label` on the left and the predicted `Label` on the right.

<Image src="https://files.readme.io/abc6264d463e44ed88863d5ba9edd705e494f4887628079f64755542abce529e-image.png" align="center" caption="Evaluation of Classification" border={true} />

The other major difference lies in the computed metrics. For *Classification* `Evaluation`, it is the confidence score (referred to as *Score* in the *Evaluation interface*) of the prediction that is displayed and usable to create filters.

The ground truth and predicted `Label` are also displayed as fields in the *Table* and *Details* views.

<Image src="https://files.readme.io/3b59bc3ed81a7f9f769c4380fd1fc036f33c40d42d5b4302850b51def2ae96a2-image.png" align="center" caption="Classification labels for Ground Truth vs Evaluation and Confidence score" border={true} />

To quickly access the `Evaluation` where the ground truth `Label` differs from the predicted one, click on the *Show class errors* button, available once the *Filters* bar has been opened.

<Image src="https://files.readme.io/7f974c691dfcc1eb4299dbf4671a68dc83467e9554064e6a028f7b1c51026991-image.png" align="center" caption="Show class errors button" border={true} />

For instance, in the screenshot above, using the *Show class errors* button shows only the `Evaluation` where the ground truth `Label` differs from the predicted one — in this case, 53 `Evaluation` out of 279 performed.