From 4050947460817437844386cc249d39b956d2f08f Mon Sep 17 00:00:00 2001 From: Maxim Zhiltsov Date: Wed, 6 Nov 2024 18:38:33 +0200 Subject: [PATCH] Update parameter --- cvat-core/src/quality-settings.ts | 19 ++-- cvat-core/src/server-response-types.ts | 2 +- .../quality-control/quality-control-page.tsx | 2 +- .../task-quality/quality-settings-form.tsx | 31 ++++-- .../0004_qualitysettings_point_size_base.py | 24 +++++ ...ualitysettings_use_bbox_size_for_points.py | 19 ---- cvat/apps/quality_control/models.py | 16 +++- cvat/apps/quality_control/quality_reports.py | 18 ++-- cvat/apps/quality_control/serializers.py | 26 +++-- cvat/schema.yml | 68 +++++++++---- cvat/settings/base.py | 3 + tests/python/rest_api/test_quality_control.py | 8 +- tests/python/shared/assets/cvat_db/data.json | 48 +++++----- .../shared/assets/quality_settings.json | 96 +++++++++---------- 14 files changed, 235 insertions(+), 145 deletions(-) create mode 100644 cvat/apps/quality_control/migrations/0004_qualitysettings_point_size_base.py delete mode 100644 cvat/apps/quality_control/migrations/0004_qualitysettings_use_bbox_size_for_points.py diff --git a/cvat-core/src/quality-settings.ts b/cvat-core/src/quality-settings.ts index 76b06c63f26c..8a3b5d28888c 100644 --- a/cvat-core/src/quality-settings.ts +++ b/cvat-core/src/quality-settings.ts @@ -14,6 +14,11 @@ export enum TargetMetric { RECALL = 'recall', } +export enum PointSizeBase { + IMAGE_SIZE = 'image_size', + GROUP_BBOX_SIZE = 'group_bbox_size', +} + export default class QualitySettings { #id: number; #targetMetric: TargetMetric; @@ -22,7 +27,7 @@ export default class QualitySettings { #task: number; #iouThreshold: number; #oksSigma: number; - #useBboxSizeForPoints: boolean; + #pointSizeBase: PointSizeBase; #lineThickness: number; #lowOverlapThreshold: number; #orientedLines: boolean; @@ -43,7 +48,7 @@ export default class QualitySettings { this.#maxValidationsPerJob = initialData.max_validations_per_job; this.#iouThreshold = initialData.iou_threshold; this.#oksSigma = initialData.oks_sigma; - this.#useBboxSizeForPoints = initialData.use_bbox_size_for_points; + this.#pointSizeBase = initialData.point_size_base as PointSizeBase; this.#lineThickness = initialData.line_thickness; this.#lowOverlapThreshold = initialData.low_overlap_threshold; this.#orientedLines = initialData.compare_line_orientation; @@ -81,12 +86,12 @@ export default class QualitySettings { this.#oksSigma = newVal; } - get useBboxSizeForPoints(): boolean { - return this.#useBboxSizeForPoints; + get pointSizeBase(): PointSizeBase { + return this.#pointSizeBase; } - set useBboxSizeForPoints(newVal: boolean) { - this.#useBboxSizeForPoints = newVal; + set pointSizeBase(newVal: PointSizeBase) { + this.#pointSizeBase = newVal; } get lineThickness(): number { @@ -207,7 +212,7 @@ export default class QualitySettings { const result: SerializedQualitySettingsData = { iou_threshold: this.#iouThreshold, oks_sigma: this.#oksSigma, - use_bbox_size_for_points: this.#useBboxSizeForPoints, + point_size_base: this.#pointSizeBase, line_thickness: this.#lineThickness, low_overlap_threshold: this.#lowOverlapThreshold, compare_line_orientation: this.#orientedLines, diff --git a/cvat-core/src/server-response-types.ts b/cvat-core/src/server-response-types.ts index 8b334819705b..649b2c509a23 100644 --- a/cvat-core/src/server-response-types.ts +++ b/cvat-core/src/server-response-types.ts @@ -247,7 +247,7 @@ export interface SerializedQualitySettingsData { max_validations_per_job?: number; iou_threshold?: number; oks_sigma?: number; - use_bbox_size_for_points?: boolean; + point_size_base?: string; line_thickness?: number; low_overlap_threshold?: number; compare_line_orientation?: boolean; diff --git a/cvat-ui/src/components/quality-control/quality-control-page.tsx b/cvat-ui/src/components/quality-control/quality-control-page.tsx index 5d27f58ac0f0..0a3914712f87 100644 --- a/cvat-ui/src/components/quality-control/quality-control-page.tsx +++ b/cvat-ui/src/components/quality-control/quality-control-page.tsx @@ -225,7 +225,7 @@ function QualityControlPage(): JSX.Element { settings.compareAttributes = values.compareAttributes; settings.oksSigma = values.oksSigma / 100; - settings.useBboxSizeForPoints = values.useBboxSizeForPoints; + settings.pointSizeBase = values.pointSizeBase; settings.lineThickness = values.lineThickness / 100; settings.lineOrientationThreshold = values.lineOrientationThreshold / 100; diff --git a/cvat-ui/src/components/quality-control/task-quality/quality-settings-form.tsx b/cvat-ui/src/components/quality-control/task-quality/quality-settings-form.tsx index 151f70afca49..2633fae6bfbe 100644 --- a/cvat-ui/src/components/quality-control/task-quality/quality-settings-form.tsx +++ b/cvat-ui/src/components/quality-control/task-quality/quality-settings-form.tsx @@ -14,6 +14,7 @@ import Button from 'antd/lib/button'; import Select from 'antd/lib/select'; import CVATTooltip from 'components/common/cvat-tooltip'; import { QualitySettings, TargetMetric } from 'cvat-core-wrapper'; +import { PointSizeBase } from 'cvat-core/src/quality-settings'; interface Props { form: FormInstance; @@ -35,7 +36,7 @@ export default function QualitySettingsForm(props: Readonly): JSX.Element compareAttributes: settings.compareAttributes, oksSigma: settings.oksSigma * 100, - useBboxSizeForPoints: settings.useBboxSizeForPoints, + pointSizeBase: settings.pointSizeBase, lineThickness: settings.lineThickness * 100, lineOrientationThreshold: settings.lineOrientationThreshold * 100, @@ -51,7 +52,13 @@ export default function QualitySettingsForm(props: Readonly): JSX.Element const targetMetricDescription = `${settings.descriptions.targetMetric .replaceAll(/\* [a-z` -]+[A-Z]+/g, '') - .replaceAll(/\n/g, '')}.`; + .replaceAll(/\n/g, '') + }`; + + const pointSizeBaseDescription = `${settings.descriptions.pointSizeBase + .substring(0, settings.descriptions.pointSizeBase.indexOf('\n\n\n')) + .replaceAll(/\n/g, ' ') + }`; const makeTooltipFragment = (metric: string, description: string): JSX.Element => (
@@ -91,7 +98,7 @@ export default function QualitySettingsForm(props: Readonly): JSX.Element ); const pointTooltip = makeTooltip( - makeTooltipFragment('Use image space', settings.descriptions.useBboxSizeForPoints), + makeTooltipFragment('Point size base', pointSizeBaseDescription), ); const linesTooltip = makeTooltip( @@ -267,13 +274,21 @@ export default function QualitySettingsForm(props: Readonly): JSX.Element - - Use bbox size - + diff --git a/cvat/apps/quality_control/migrations/0004_qualitysettings_point_size_base.py b/cvat/apps/quality_control/migrations/0004_qualitysettings_point_size_base.py new file mode 100644 index 000000000000..024d263356ac --- /dev/null +++ b/cvat/apps/quality_control/migrations/0004_qualitysettings_point_size_base.py @@ -0,0 +1,24 @@ +# Generated by Django 4.2.15 on 2024-11-06 15:39 + +from django.db import migrations, models + +import cvat.apps.quality_control.models + + +class Migration(migrations.Migration): + + dependencies = [ + ("quality_control", "0003_qualityreport_assignee_last_updated_and_more"), + ] + + operations = [ + migrations.AddField( + model_name="qualitysettings", + name="point_size_base", + field=models.CharField( + choices=[("image_size", "IMAGE_SIZE"), ("group_bbox_size", "GROUP_BBOX_SIZE")], + default=cvat.apps.quality_control.models.PointSizeBase["GROUP_BBOX_SIZE"], + max_length=32, + ), + ), + ] diff --git a/cvat/apps/quality_control/migrations/0004_qualitysettings_use_bbox_size_for_points.py b/cvat/apps/quality_control/migrations/0004_qualitysettings_use_bbox_size_for_points.py deleted file mode 100644 index 9325a21a3f2a..000000000000 --- a/cvat/apps/quality_control/migrations/0004_qualitysettings_use_bbox_size_for_points.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 4.2.15 on 2024-11-01 15:40 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("quality_control", "0003_qualityreport_assignee_last_updated_and_more"), - ] - - operations = [ - migrations.AddField( - model_name="qualitysettings", - name="use_bbox_size_for_points", - field=models.BooleanField(default=True), - preserve_default=False, - ), - ] diff --git a/cvat/apps/quality_control/models.py b/cvat/apps/quality_control/models.py index 5280cd03cd3a..cfa2522541df 100644 --- a/cvat/apps/quality_control/models.py +++ b/cvat/apps/quality_control/models.py @@ -196,6 +196,18 @@ def clean(self) -> None: raise ValidationError(f"Unexpected type value '{self.type}'") +class PointSizeBase(str, Enum): + IMAGE_SIZE = "image_size" + GROUP_BBOX_SIZE = "group_bbox_size" + + def __str__(self) -> str: + return self.value + + @classmethod + def choices(cls): + return tuple((x.value, x.name) for x in cls) + + class QualitySettings(models.Model): task = models.OneToOneField(Task, on_delete=models.CASCADE, related_name="quality_settings") @@ -205,7 +217,9 @@ class QualitySettings(models.Model): low_overlap_threshold = models.FloatField() - use_bbox_size_for_points = models.BooleanField() + point_size_base = models.CharField( + max_length=32, choices=PointSizeBase.choices(), default=PointSizeBase.GROUP_BBOX_SIZE + ) compare_line_orientation = models.BooleanField() line_orientation_threshold = models.FloatField() diff --git a/cvat/apps/quality_control/quality_reports.py b/cvat/apps/quality_control/quality_reports.py index 03308e624558..72a54bf10a77 100644 --- a/cvat/apps/quality_control/quality_reports.py +++ b/cvat/apps/quality_control/quality_reports.py @@ -187,8 +187,8 @@ class ComparisonParameters(_Serializable): oks_sigma: float = 0.09 "Like IoU threshold, but for points, % of the bbox area to match a pair of points" - use_bbox_size_for_points: bool = True - "Compare point groups using the group bbox size instead of the image size" + point_size_base: models.PointSizeBase = models.PointSizeBase.GROUP_BBOX_SIZE + "Determines how to obtain the object size for point comparisons" line_thickness: float = 0.01 "Thickness of polylines, relatively to the (image area) ^ 0.5" @@ -958,7 +958,7 @@ def __init__( # https://cocodataset.org/#keypoints-eval # https://github.com/cocodataset/cocoapi/blob/8c9bcc3cf640524c4c20a9c40e89cb6a2f2fa0e9/PythonAPI/pycocotools/cocoeval.py#L523 oks_sigma: float = 0.09, - use_bbox_size_for_points: bool = True, + point_size_base: models.PointSizeBase = models.PointSizeBase.GROUP_BBOX_SIZE, compare_line_orientation: bool = False, line_torso_radius: float = 0.01, panoptic_comparison: bool = False, @@ -972,8 +972,8 @@ def __init__( self.oks_sigma = oks_sigma "% of the shape area" - self.use_bbox_size_for_points = use_bbox_size_for_points - "Compare point groups using the group bbox size instead of the image size" + self.point_size_base = point_size_base + "Compare point groups using the group bbox size or the image size" self.compare_line_orientation = compare_line_orientation "Whether lines are oriented or not" @@ -1301,9 +1301,9 @@ def _distance(a: dm.Points, b: dm.Points) -> float: # Complex case: multiple points, grouped points, points with a bbox # Try to align points and then return the metric - if not self.use_bbox_size_for_points: + if self.point_size_base == models.PointSizeBase.IMAGE_SIZE: scale = img_h * img_w - else: + elif self.point_size_base == models.PointSizeBase.GROUP_BBOX_SIZE: # match points in their bbox space if dm.ops.bbox_iou(a_bbox, b_bbox) <= 0: @@ -1312,6 +1312,8 @@ def _distance(a: dm.Points, b: dm.Points) -> float: bbox = dm.ops.mean_bbox([a_bbox, b_bbox]) scale = bbox[2] * bbox[3] + else: + assert False, f"Unknown point size base {self.point_size_base}" a_points = np.reshape(a.points, (-1, 2)) b_points = np.reshape(b.points, (-1, 2)) @@ -1537,7 +1539,7 @@ def __init__(self, categories: dm.CategoriesInfo, *, settings: ComparisonParamet panoptic_comparison=settings.panoptic_comparison, iou_threshold=settings.iou_threshold, oks_sigma=settings.oks_sigma, - use_bbox_size_for_points=settings.use_bbox_size_for_points, + point_size_base=settings.point_size_base, line_torso_radius=settings.line_thickness, compare_line_orientation=False, # should not be taken from outside, handled differently ) diff --git a/cvat/apps/quality_control/serializers.py b/cvat/apps/quality_control/serializers.py index b4425f777993..5b23de399cf8 100644 --- a/cvat/apps/quality_control/serializers.py +++ b/cvat/apps/quality_control/serializers.py @@ -81,7 +81,7 @@ class Meta: "max_validations_per_job", "iou_threshold", "oks_sigma", - "use_bbox_size_for_points", + "point_size_base", "line_thickness", "low_overlap_threshold", "compare_line_orientation", @@ -116,17 +116,25 @@ class Meta: """, "oks_sigma": """ Like IoU threshold, but for points. - The percent of the bbox area, used as the radius of the circle around the GT point, + The percent of the bbox side, used as the radius of the circle around the GT point, where the checked point is expected to be. Read more: https://cocodataset.org/#keypoints-eval """, - "use_bbox_size_for_points": """ - When comparing point groups, OKS sigma defines the matching area for a GT point. - If enabled, the area size is based on the point group bbox size. - If disabled, the image size is used. - Useful if point groups do not represent a single object or boxes attached to points - do not represent object boundaries. - """, + "point_size_base": """ + When comparing point annotations (including both separate points and point groups), + the OKS sigma parameter defines matching area for each GT point based to the + object size. The point size base parameter allows to configure how to determine + the object size. + If {image_size}, the image size is used. Useful if each point + annotation represents a separate object or boxes grouped with points do not + represent object boundaries. + If {group_bbox_size}, the object size is based on + the point group bbox size. Useful if each point group represents an object + or there is a bbox grouped with points, representing the object size. + """.format( + image_size=models.PointSizeBase.IMAGE_SIZE, + group_bbox_size=models.PointSizeBase.GROUP_BBOX_SIZE, + ), "line_thickness": """ Thickness of polylines, relatively to the (image area) ^ 0.5. The distance to the boundary around the GT line, diff --git a/cvat/schema.yml b/cvat/schema.yml index 2ee22d2d7c54..8a81b1d0ff63 100644 --- a/cvat/schema.yml +++ b/cvat/schema.yml @@ -9658,17 +9658,29 @@ components: format: double description: | Like IoU threshold, but for points. - The percent of the bbox area, used as the radius of the circle around the GT point, + The percent of the bbox side, used as the radius of the circle around the GT point, where the checked point is expected to be. Read more: https://cocodataset.org/#keypoints-eval - use_bbox_size_for_points: - type: boolean - description: | - When comparing point groups, OKS sigma defines the matching area for a GT point. - If enabled, the area size is based on the point group bbox size. - If disabled, the image size is used. - Useful if point groups do not represent a single object or boxes attached to points - do not represent object boundaries. + point_size_base: + allOf: + - $ref: '#/components/schemas/PointSizeBaseEnum' + description: |- + When comparing point annotations (including both separate points and point groups), + the OKS sigma parameter defines matching area for each GT point based to the + object size. The point size base parameter allows to configure how to determine + the object size. + + If image_size, the image size is used. Useful if each point + annotation represents a separate object or boxes grouped with points do not + represent object boundaries. + + If group_bbox_size, the object size is based on + the point group bbox size. Useful if each point group represents an object + or there is a bbox grouped with points, representing the object size. + + + * `image_size` - IMAGE_SIZE + * `group_bbox_size` - GROUP_BBOX_SIZE line_thickness: type: number format: double @@ -9862,6 +9874,14 @@ components: - GIT_INTEGRATION - MODELS - PREDICT + PointSizeBaseEnum: + enum: + - image_size + - group_bbox_size + type: string + description: |- + * `image_size` - IMAGE_SIZE + * `group_bbox_size` - GROUP_BBOX_SIZE ProjectFileRequest: type: object properties: @@ -10146,17 +10166,29 @@ components: format: double description: | Like IoU threshold, but for points. - The percent of the bbox area, used as the radius of the circle around the GT point, + The percent of the bbox side, used as the radius of the circle around the GT point, where the checked point is expected to be. Read more: https://cocodataset.org/#keypoints-eval - use_bbox_size_for_points: - type: boolean - description: | - When comparing point groups, OKS sigma defines the matching area for a GT point. - If enabled, the area size is based on the point group bbox size. - If disabled, the image size is used. - Useful if point groups do not represent a single object or boxes attached to points - do not represent object boundaries. + point_size_base: + allOf: + - $ref: '#/components/schemas/PointSizeBaseEnum' + description: |- + When comparing point annotations (including both separate points and point groups), + the OKS sigma parameter defines matching area for each GT point based to the + object size. The point size base parameter allows to configure how to determine + the object size. + + If image_size, the image size is used. Useful if each point + annotation represents a separate object or boxes grouped with points do not + represent object boundaries. + + If group_bbox_size, the object size is based on + the point group bbox size. Useful if each point group represents an object + or there is a bbox grouped with points, representing the object size. + + + * `image_size` - IMAGE_SIZE + * `group_bbox_size` - GROUP_BBOX_SIZE line_thickness: type: number format: double diff --git a/cvat/settings/base.py b/cvat/settings/base.py index 404628fa555e..141a1bab11eb 100644 --- a/cvat/settings/base.py +++ b/cvat/settings/base.py @@ -731,3 +731,6 @@ class CVAT_QUEUES(Enum): CLOUD_DATA_DOWNLOADING_MAX_THREADS_NUMBER = 4 CLOUD_DATA_DOWNLOADING_NUMBER_OF_FILES_PER_THREAD = 1000 +HEALTH_CHECK = { + 'DISK_USAGE_MAX': 100, # percent +} diff --git a/tests/python/rest_api/test_quality_control.py b/tests/python/rest_api/test_quality_control.py index c74d7f678ea1..d3b2799b4cd9 100644 --- a/tests/python/rest_api/test_quality_control.py +++ b/tests/python/rest_api/test_quality_control.py @@ -1211,7 +1211,7 @@ def test_modified_task_produces_different_metrics( "oks_sigma", "compare_line_orientation", "panoptic_comparison", - "use_bbox_size_for_points", + "point_size_base", ], ) def test_settings_affect_metrics( @@ -1229,6 +1229,12 @@ def test_settings_affect_metrics( settings[parameter] = 1 - settings[parameter] if parameter == "group_match_threshold": settings[parameter] = 0.9 + elif parameter == "point_size_base": + settings[parameter] = next( + v + for v in models.PointSizeBaseEnum.allowed_values[("value",)].values() + if v != settings[parameter] + ) else: assert False diff --git a/tests/python/shared/assets/cvat_db/data.json b/tests/python/shared/assets/cvat_db/data.json index dce23272347e..e4e912b95863 100644 --- a/tests/python/shared/assets/cvat_db/data.json +++ b/tests/python/shared/assets/cvat_db/data.json @@ -18164,7 +18164,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18187,7 +18187,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18210,7 +18210,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18233,7 +18233,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18256,7 +18256,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18279,7 +18279,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18302,7 +18302,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18325,7 +18325,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18348,7 +18348,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18371,7 +18371,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18394,7 +18394,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18417,7 +18417,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18440,7 +18440,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18463,7 +18463,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18486,7 +18486,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18509,7 +18509,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18532,7 +18532,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18555,7 +18555,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18578,7 +18578,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18601,7 +18601,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18624,7 +18624,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18647,7 +18647,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18670,7 +18670,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, @@ -18693,7 +18693,7 @@ "oks_sigma": 0.09, "line_thickness": 0.01, "low_overlap_threshold": 0.8, - "use_bbox_size_for_points": true, + "point_size_base": "group_bbox_size", "compare_line_orientation": true, "line_orientation_threshold": 0.1, "compare_groups": true, diff --git a/tests/python/shared/assets/quality_settings.json b/tests/python/shared/assets/quality_settings.json index 6c005a035fac..e6e4cba929b1 100644 --- a/tests/python/shared/assets/quality_settings.json +++ b/tests/python/shared/assets/quality_settings.json @@ -18,10 +18,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 2, - "use_bbox_size_for_points": true + "task_id": 2 }, { "check_covered_annotations": true, @@ -38,10 +38,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 5, - "use_bbox_size_for_points": true + "task_id": 5 }, { "check_covered_annotations": true, @@ -58,10 +58,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 6, - "use_bbox_size_for_points": true + "task_id": 6 }, { "check_covered_annotations": true, @@ -78,10 +78,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 7, - "use_bbox_size_for_points": true + "task_id": 7 }, { "check_covered_annotations": true, @@ -98,10 +98,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 8, - "use_bbox_size_for_points": true + "task_id": 8 }, { "check_covered_annotations": true, @@ -118,10 +118,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 9, - "use_bbox_size_for_points": true + "task_id": 9 }, { "check_covered_annotations": true, @@ -138,10 +138,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 11, - "use_bbox_size_for_points": true + "task_id": 11 }, { "check_covered_annotations": true, @@ -158,10 +158,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 12, - "use_bbox_size_for_points": true + "task_id": 12 }, { "check_covered_annotations": true, @@ -178,10 +178,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 13, - "use_bbox_size_for_points": true + "task_id": 13 }, { "check_covered_annotations": true, @@ -198,10 +198,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 14, - "use_bbox_size_for_points": true + "task_id": 14 }, { "check_covered_annotations": true, @@ -218,10 +218,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 15, - "use_bbox_size_for_points": true + "task_id": 15 }, { "check_covered_annotations": true, @@ -238,10 +238,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 17, - "use_bbox_size_for_points": true + "task_id": 17 }, { "check_covered_annotations": true, @@ -258,10 +258,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 18, - "use_bbox_size_for_points": true + "task_id": 18 }, { "check_covered_annotations": true, @@ -278,10 +278,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 19, - "use_bbox_size_for_points": true + "task_id": 19 }, { "check_covered_annotations": true, @@ -298,10 +298,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 20, - "use_bbox_size_for_points": true + "task_id": 20 }, { "check_covered_annotations": true, @@ -318,10 +318,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 21, - "use_bbox_size_for_points": true + "task_id": 21 }, { "check_covered_annotations": true, @@ -338,10 +338,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 22, - "use_bbox_size_for_points": true + "task_id": 22 }, { "check_covered_annotations": true, @@ -358,10 +358,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 23, - "use_bbox_size_for_points": true + "task_id": 23 }, { "check_covered_annotations": true, @@ -378,10 +378,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 24, - "use_bbox_size_for_points": true + "task_id": 24 }, { "check_covered_annotations": true, @@ -398,10 +398,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 25, - "use_bbox_size_for_points": true + "task_id": 25 }, { "check_covered_annotations": true, @@ -418,10 +418,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 26, - "use_bbox_size_for_points": true + "task_id": 26 }, { "check_covered_annotations": true, @@ -438,10 +438,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 27, - "use_bbox_size_for_points": true + "task_id": 27 }, { "check_covered_annotations": true, @@ -458,10 +458,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 28, - "use_bbox_size_for_points": true + "task_id": 28 }, { "check_covered_annotations": true, @@ -478,10 +478,10 @@ "object_visibility_threshold": 0.05, "oks_sigma": 0.09, "panoptic_comparison": true, + "point_size_base": "group_bbox_size", "target_metric": "accuracy", "target_metric_threshold": 0.7, - "task_id": 29, - "use_bbox_size_for_points": true + "task_id": 29 } ] } \ No newline at end of file