Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
0460fa9
Extract rq job manager into separate file
zhiltsov-max Dec 29, 2025
59366e2
Extract annotation matching and report contents into separate files
zhiltsov-max Dec 29, 2025
6c27ad9
Refactor quality control app layout
zhiltsov-max Dec 29, 2025
1760204
Merge branch 'zm/refactor-quality' into zm/generalized-quality
zhiltsov-max Dec 29, 2025
4bd25ee
Rename rq job manager class
zhiltsov-max Dec 29, 2025
e85f647
t
zhiltsov-max Dec 29, 2025
26718cd
fix for working cvat without report computing
Grigorii777 Mar 9, 2026
5dc266a
quality
Grigorii777 Mar 13, 2026
8144209
small fix
Grigorii777 Mar 19, 2026
1d85782
Filters and Handler big refactoring
Grigorii777 Mar 20, 2026
00848d0
ReqLogic + API + Permission
Grigorii777 Mar 27, 2026
a778492
Confusion matrix
Grigorii777 Mar 30, 2026
03e0336
default_requirements
Grigorii777 Apr 1, 2026
acdb89a
iou_threshold default
Grigorii777 Apr 2, 2026
68ba9cb
Removed GT COMPLETED,ACCEPTANCE req
Grigorii777 Apr 3, 2026
5571277
Removed old default req
Grigorii777 Apr 6, 2026
ab933c4
Filters improvement
Grigorii777 Apr 8, 2026
6df9eb4
tests for filters
Grigorii777 Apr 8, 2026
c5ec4ec
Merge with develop
Grigorii777 Apr 8, 2026
d131c28
linters
Grigorii777 Apr 8, 2026
d9f0a20
pylint
Grigorii777 Apr 8, 2026
8c12b8c
isort
Grigorii777 Apr 8, 2026
6a35527
organization_params
Grigorii777 Apr 9, 2026
8780170
schema
Grigorii777 Apr 9, 2026
42ea2b2
schema version
Grigorii777 Apr 9, 2026
4fc7eb8
schema version
Grigorii777 Apr 9, 2026
d3d9fca
consensus migration
Grigorii777 Apr 9, 2026
3d4c96a
Req tests
Grigorii777 Apr 9, 2026
e3da3a9
Rollback and export
Grigorii777 Apr 9, 2026
d8fa100
Req limit
Grigorii777 Apr 10, 2026
06f85c2
black
Grigorii777 Apr 10, 2026
052828d
conflicts
Grigorii777 Apr 16, 2026
829066e
linters
Grigorii777 Apr 16, 2026
f856c5a
Rename fieds
Grigorii777 Apr 17, 2026
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
7 changes: 2 additions & 5 deletions cvat/apps/consensus/intersect_merge.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,8 @@
from datumaro.util.annotation_util import mean_bbox
from datumaro.util.attrs_util import ensure_cls

from cvat.apps.quality_control.quality_reports import (
ComparisonParameters,
DistanceComparator,
segment_iou,
)
from cvat.apps.quality_control.annotation_matching import DistanceComparator, segment_iou
from cvat.apps.quality_control.comparison_report import ComparisonParameters


@attrs.define(kw_only=True, slots=False)
Expand Down
3 changes: 2 additions & 1 deletion cvat/apps/consensus/merging_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@
clear_annotations_in_jobs,
)
from cvat.apps.profiler import silk_profile
from cvat.apps.quality_control.quality_reports import ComparisonParameters, JobDataProvider
from cvat.apps.quality_control.comparison_report import ComparisonParameters
from cvat.apps.quality_control.quality_reports import JobDataProvider
from cvat.apps.redis_handler.background import AbstractRequestManager


Expand Down
18 changes: 18 additions & 0 deletions cvat/apps/consensus/migrations/0003_consensussettings_quorum.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 4.2.26 on 2026-04-09 09:03

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("consensus", "0002_remove_consensussettings_quorum"),
]

operations = [
migrations.AddField(
model_name="consensussettings",
name="quorum",
field=models.FloatField(default=0.5),
),
]
8 changes: 6 additions & 2 deletions cvat/apps/consensus/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,19 @@

from __future__ import annotations

from attrs import fields_dict
from django.db import models

import cvat.apps.quality_control.quality_reports as qc
from cvat.apps.engine.models import Task
from cvat.apps.quality_control.comparison_report import ComparisonParameters

DEFAULT_CONSENSUS_IOU_THRESHOLD = fields_dict(ComparisonParameters)["iou_threshold"].default


class ConsensusSettings(models.Model):
task = models.ForeignKey(Task, on_delete=models.CASCADE, related_name="consensus_settings")
iou_threshold = models.FloatField(default=qc.DatasetComparator.DEFAULT_SETTINGS.iou_threshold)
quorum = models.FloatField(default=0.5)
iou_threshold = models.FloatField(default=DEFAULT_CONSENSUS_IOU_THRESHOLD)

@property
def organization_id(self):
Expand Down
5 changes: 2 additions & 3 deletions cvat/apps/engine/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -514,9 +514,8 @@ class NonModelJsonLogicFilter(JsonLogicFilter, _NestedAttributeHandler):
def _apply_filter(self, rules, lookup_fields, obj):
op, args = next(iter(rules.items()))
if op in ["or", "and"]:
return reduce(
{"or": any, "and": all}[op],
[self._apply_filter(arg, lookup_fields, obj) for arg in args],
return {"or": any, "and": all}[op](
self._apply_filter(arg, lookup_fields, obj) for arg in args
)
elif op == "!":
return not self._apply_filter(args, lookup_fields, obj)
Expand Down
Loading
Loading