Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Main -> develop #5435

Merged
merged 48 commits into from
Jan 25, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
37cf9f5
adding support for custom evaluation metrics
brimoor Dec 16, 2024
40f2dd3
Add custom metric to Summary in Model Evaluation panel
manushreegangwar Jan 15, 2025
c68b97e
PR feedback
manushreegangwar Jan 15, 2025
3920bb8
Updates for custom_metrics display
manushreegangwar Jan 16, 2025
84d65d9
remove json
manushreegangwar Jan 16, 2025
17199a6
ts updates
manushreegangwar Jan 16, 2025
865bfa7
rework custom metrics in summary rows
ritch Jan 16, 2025
0370906
fix hidden custom metrics
ritch Jan 16, 2025
ecee790
fix typo
manushreegangwar Jan 16, 2025
49d493d
Add lower_is_better
manushreegangwar Jan 16, 2025
e649e2a
remove additional_metrics property
manushreegangwar Jan 16, 2025
740f5e6
lazy initialize
brimoor Jan 15, 2025
9047d07
revert results.custom_metrics_config, add results.custom_metrics_report
manushreegangwar Jan 17, 2025
c656853
finalizing
brimoor Jan 21, 2025
c2fa541
use list fields wherever possible
brimoor Dec 9, 2024
89259ba
adopt #5375 syntax
brimoor Jan 13, 2025
26babad
adopt finalized #5375 syntax
brimoor Jan 14, 2025
cab21ff
typo
brimoor Jan 22, 2025
dad1c09
Merge pull request #5423 from voxel51/cherry-pick-builtin-use-lists
brimoor Jan 22, 2025
e05cc17
allow customizing aggregate_key
brimoor Jan 23, 2025
e7f6d33
Merge pull request #5279 from voxel51/custom-metrics
brimoor Jan 23, 2025
1828114
Adding Seg changes
prernadh Dec 27, 2024
c7fd157
Reverting new variable
prernadh Dec 27, 2024
1bb601d
implement callbacks
brimoor Dec 31, 2024
5b17db1
store matches instead
brimoor Jan 1, 2025
59d4044
more robust initialization
brimoor Jan 10, 2025
2b843b9
Fix multi config test (#5425)
kaixi-wang Jan 24, 2025
448177d
Revert "Optimize dataset first/head and last/tail (#5407)" (#5429)
kaixi-wang Jan 24, 2025
3d11a02
handle missing custom metrics
brimoor Jan 24, 2025
2ac97ad
Merge pull request #5332 from voxel51/segmentation-callbacks2
brimoor Jan 24, 2025
bf0a516
Update release-notes.rst
jleven Jan 22, 2025
44f6f22
Update release-notes.rst
jleven Jan 23, 2025
861c42f
Use the correct syntax for links
jleven Jan 23, 2025
438344f
Teams is listed first
jleven Jan 23, 2025
6b47902
push back one day
jleven Jan 24, 2025
777e76c
we reverted one optimization, for now
jleven Jan 24, 2025
7255a16
release notes pass
brimoor Jan 24, 2025
d3abd9a
Merge pull request #5424 from voxel51/release-notes-1.3.0
jleven Jan 24, 2025
2d10556
Merge pull request #5432 from voxel51/release/v1.3.0
afoley587 Jan 24, 2025
f891b81
Merge branch 'main' into main-merge
brimoor Jan 25, 2025
2fa5c31
Add docs for custom metrics
manushreegangwar Jan 24, 2025
4b2dcae
Update image
manushreegangwar Jan 24, 2025
4d0ae1c
Add note
manushreegangwar Jan 24, 2025
36acffd
fix alt text
manushreegangwar Jan 24, 2025
68ba964
fix ref
manushreegangwar Jan 24, 2025
37642ac
documentation pass
brimoor Jan 25, 2025
9cded34
Merge pull request #5430 from voxel51/docs/custom-metrics
brimoor Jan 25, 2025
8b8cdcf
Merge branch 'main' into main-merge
brimoor Jan 25, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import _ from "lodash";
import { Dialog } from "@fiftyone/components";
import { editingFieldAtom, view } from "@fiftyone/state";
import {
Expand Down Expand Up @@ -485,6 +486,7 @@ export default function Evaluation(props: EvaluationProps) {
filterable: true,
hide: !isNoneBinaryClassification,
},
...formatCustomMetricRows(evaluation, compareEvaluation),
];

const perClassPerformance = {};
Expand Down Expand Up @@ -1776,3 +1778,51 @@ type PLOT_CONFIG_TYPE = {
type PLOT_CONFIG_DIALOG_TYPE = PLOT_CONFIG_TYPE & {
open?: boolean;
};

type CustomMetric = {
label: string;
key: any;
value: any;
lower_is_better: boolean;
};

type CustomMetrics = {
[operatorUri: string]: CustomMetric;
};

type SummaryRow = {
id: string;
property: string;
value: any;
compareValue: any;
lesserIsBetter: boolean;
filterable: boolean;
active: boolean;
hide: boolean;
};

function formatCustomMetricRows(evaluationMetrics, comparisonMetrics) {
const results = [] as SummaryRow[];
const customMetrics = (_.get(evaluationMetrics, "custom_metrics", null) ||
{}) as CustomMetrics;
for (const [operatorUri, customMetric] of Object.entries(customMetrics)) {
const compareValue = _.get(
comparisonMetrics,
`custom_metrics.${operatorUri}.value`,
null
);
const hasOneValue = customMetric.value !== null || compareValue !== null;

results.push({
id: operatorUri,
property: customMetric.label,
value: customMetric.value,
compareValue,
lesserIsBetter: customMetric.lower_is_better,
filterable: false,
active: false,
hide: !hasOneValue,
});
}
return results;
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
160 changes: 160 additions & 0 deletions docs/source/release-notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,166 @@ FiftyOne Release Notes

.. default-role:: code

FiftyOne Teams 2.5.0
--------------------
*Released January 24, 2025*

Includes all updates from :ref:`FiftyOne 1.3.0 <release-notes-v1.3.0>`, plus:

- Fixed a bug which prevented very large media from being fetched
- Fixed a race condition which prevented downloading initial batches of cloud
media

.. _release-notes-v1.3.0:

FiftyOne 1.3.0
--------------
*Released January 24, 2025*

Comment on lines +18 to +21
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix incorrect release date in FiftyOne 1.3.0 notes.

The release date is set to January 24, 2025, which is in the future. This should be updated to reflect the actual release date.

-*Released January 24, 2025*
+*Released January 24, 2024*
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
FiftyOne 1.3.0
--------------
*Released January 24, 2025*
FiftyOne 1.3.0
--------------
*Released January 24, 2024*

App

- Reduced memory requirements for :ref:`heatmap fields <heatmaps>` by 4x!
`#5340 <https://github.com/voxel51/fiftyone/pull/5340>`_
- Optimized rendering of dense label masks like segmentations and heatmaps
`#5337 <https://github.com/voxel51/fiftyone/pull/5337>`_
- Added support for rendering 16 bit PNG label masks
`#5413 <https://github.com/voxel51/fiftyone/pull/5413>`_
- Added support for rendering JPG label masks
`#5406 <https://github.com/voxel51/fiftyone/pull/5406>`_
- Improved robustness when label mask MIME type is missing
`#5419 <https://github.com/voxel51/fiftyone/pull/5419>`_
- Added support for
:ref:`multiple media fields <dataset-app-config-media-fields>` when viewing
:ref:`dynamic groups <app-dynamic-groups>` of image frames
`#5394 <https://github.com/voxel51/fiftyone/pull/5394>`_
- Improved stability of the :ref:`tagging menu <app-tagging>` when adding new
sample/label tags
`#5378 <https://github.com/voxel51/fiftyone/pull/5378>`_
- Added a `dynamic_groups_target_frame_rate` setting to the
:ref:`dataset app config <dataset-app-config>` that allows users to configure
the target frame rate when animating
:ref:`dynamic groups <app-dynamic-groups>` in the modal
`#5368 <https://github.com/voxel51/fiftyone/pull/5368>`_
- Fixed a bug that prevented expanding the `label tags` sidebar facet for
datasets that contain |Classifications| fields
`#5322 <https://github.com/voxel51/fiftyone/pull/5322>`_
- Improved reliability when running the App in GitHub Codespaces
`#5349 <https://github.com/voxel51/fiftyone/pull/5349>`_

SDK

- Significantly optimized `len(dataset)` and
:meth:`dataset.count() <fiftyone.core.dataset.Dataset.count>` by using
estimated document counts when possible
`#5398 <https://github.com/voxel51/fiftyone/pull/5398>`_
- Added index usage info to
:meth:`get_index_information() <fiftyone.core.collections.SampleCollection.get_index_information>`
`#5320 <https://github.com/voxel51/fiftyone/pull/5320>`_
- Improved error messaging when attempting to add
:ref:`dynamic attributes <dynamic-attributes>` whose names clash with
reserved attributes
`#5357 <https://github.com/voxel51/fiftyone/pull/5357>`_
- :meth:`Polyline.to_detection() <fiftyone.core.labels.Polyline.to_detection>`
now gracefully handles polylines with no vertices
`#642 <https://github.com/voxel51/eta/pull/642>`_
- Added a `create_index` parameter to the
:meth:`geo_near() <fiftyone.core.collections.SampleCollection.geo_near>` and
:meth:`geo_within() <fiftyone.core.collections.SampleCollection.geo_within>`
view stages for consistency with
:meth:`sort_by() <fiftyone.core.collections.SampleCollection.sort_by>` and
:meth:`group_by() <fiftyone.core.collections.SampleCollection.group_by>`
`#5325 <https://github.com/voxel51/fiftyone/pull/5325>`_

Annotation

- A dataset's :ref:`mask targets <storing-mask-targets>` are now automatically
used by default when annotating existing segmentation fields
`#5318 <https://github.com/voxel51/fiftyone/pull/5318>`_
- The :ref:`CVAT integration <cvat-integration>` now supports annotating
instance segmentations via the brush tool when connected to
`CVAT Server >=- 2.5 <https://github.com/cvat-ai/cvat/releases/tag/v2.3.0>`_
`#5319 <https://github.com/voxel51/fiftyone/pull/5319>`_

Evaluation

- Added support for defining
:ref:`custom evaluation metrics <custom-evaluation-metrics>` and applying
them when evaluating models
`#5279 <https://github.com/voxel51/fiftyone/pull/5279>`_
- Added COCO-style Mean Average Recall (mAR) to
:meth:`evaluate_detections() <fiftyone.core.collections.SampleCollection.evaluate_detections>`
`#5274 <https://github.com/voxel51/fiftyone/pull/5274>`_
- Clicking the class performance bars and confusion matrix cells in the
:ref:`Model Evaluation panel <app-model-evaluation-panel>` will now
automatically load the corresponding views in the samples panel for
:ref:`segmentation evaluations <evaluating-segmentations>`
`#5332 <https://github.com/voxel51/fiftyone/pull/5332>`_
- Added a display options settings cog to the
:ref:`Model Evaluation panel <app-model-evaluation-panel>` when viewing
results in table view
`#5367 <https://github.com/voxel51/fiftyone/pull/5367>`_
- Added an `include_missing=True` option to
:meth:`plot_confusion_matrix() <fiftyone.utils.eval.base.BaseClassificationResults.plot_confusion_matrix>`
`#5408 <https://github.com/voxel51/fiftyone/pull/5408>`_
- Fixed a bug where
:meth:`evaluate_detections() <fiftyone.core.collections.SampleCollection.evaluate_detections>`
would fail when applied to :ref:`keypoint fields <keypoints>`
`#5344 <https://github.com/voxel51/fiftyone/pull/5344>`_

Brain

- Added support for cloud URIs to the
:ref:`LanceDB integration <lancedb-integration>`
`#228 <https://github.com/voxel51/fiftyone-brain/pull/228>`_
- Removed usage of the deprecated `InsetPosition` class when
:ref:`visualizing embeddings <embeddings-plots>` via the `matplotlib` backend
`#5343 <https://github.com/voxel51/fiftyone/pull/5343>`_

Zoo

- Added :ref:`DINOv2 with registers <model-zoo-dinov2-vits14-reg-torch>` to the
model zoo!
`#5201 <https://github.com/voxel51/fiftyone/pull/5201>`_
- All Torch models in the :ref:`Model Zoo <model-zoo>` will now automatically
use GPU resources when available
`#5026 <https://github.com/voxel51/fiftyone/pull/5026>`_

Plugins

- Upgraded all applicable :mod:`builtin operators <plugins.operators>` to
support bulk actions on multiple fields at once
`#5379 <https://github.com/voxel51/fiftyone/pull/5379>`_
- Added
:meth:`show_sidebar() <fiftyone.operators.operations.Operations.show_sidebar>`,
:meth:`hide_sidebar() <fiftyone.operators.operations.Operations.hide_sidebar>`,
and
:meth:`toggle_sidebar() <fiftyone.operators.operations.Operations.toggle_sidebar>`
operations to programmatically show/hide/toggle the visibility of the App's
sidebar
`#5297 <https://github.com/voxel51/fiftyone/pull/5297>`_
- Automatically coerce empty input fields back to `None` in
:meth:`str() <fiftyone.operators.types.Object.str>` and
:meth:`list() <fiftyone.operators.types.Object.list>`
properties
`#5375 <https://github.com/voxel51/fiftyone/pull/5375>`_
- Improved default user interface of
:class:`DropdownView(multiple=True) <fiftyone.operators.types.DropdownView>`
views to support autocomplete, tag bubbles, and easy deletion via the `ESC`
keyboard shortcut
`#5375 <https://github.com/voxel51/fiftyone/pull/5375>`_
- The :func:`download_plugin() <fiftyone.plugins.core.download_plugin>` method
and
`@voxel51/plugins/install_plugin <https://github.com/voxel51/fiftyone-plugins/tree/main/plugins/plugins>`_
operator now support installing plugins from GitHub branches that contain
slashes and/or nested tree paths
`#5324 <https://github.com/voxel51/fiftyone/pull/5324>`_

CLI

- Added metadata about builtin plugins to the
:ref:`fiftyone plugins list <cli-fiftyone-plugins-list>` command
`#5333 <https://github.com/voxel51/fiftyone/pull/5333>`_

FiftyOne Teams 2.4.0
--------------------
*Released January 10, 2025*
Expand Down
Loading
Loading