Quality Control Consensus

45 views
Skip to first unread message

Vidit Agarwal

unread,
Jun 7, 2024, 4:07:11 AMJun 7
to cvat-gsoc-2024
Hello CVAT Community,
Myself Vidit Agarwal, I am among the contributors selected for the Google Summer of Code 2024 program for CVAT. I am writing this to share about my project, Quality Control Consensus

The project aims to add functionality to annotate the same job multiple times and then aggregate these multiple annotations. This reduces the bias and mislabelling in the final annotated data. Here's the high level design of how we plan to implement this functionality, and also my proposal for this project.

The community bonding period is over, and the coding period began a week ago. As of now,
  1. we have finalised the HLD and proposal 
  2. are about to windup the feature implementation of creating consensus jobs based on the Consensus Configuration parameters passed while creating the task and updating the editable parameters among them after the task has been created. You can find the pull request for this feature here: https://github.com/cvat-ai/cvat/pull/7974
If you're interested in following the progress of this project, subscribing to this issue will keep you updated: https://github.com/cvat-ai/cvat/issues/7973.

This wouldn't have been possible without Nikita (CVAT admin), Maxim and Roman (project mentors), the CVAT team and the CVAT community.

Thanks,
Vidit Agarwal

Vidit Agarwal

unread,
Jun 18, 2024, 2:01:32 AMJun 18
to cvat-gsoc-2024
Hello again, CVAT Community,

It has been a week since my since my last update.
  1. We completed implementing features related to configuring consensus properties and creating consensus jobs. A detailed list of these functionalities can be found here.
  2. Additionally, with this, we implemented the feature to merge consensus jobs into their parent job. The pull request can be found here. Please refer to the commits made on and after June 18th for changes specific to this feature.
Now, one can configure and create consensus jobs and merge their annotations in CVAT to improve the quality of annotations.

Currently, we are running on track with the planned project timeline mentioned in the proposal.

Every feature added to the existing code requires an understanding of the surrounding code, which can become very daunting when dealing with such a large codebase. Thanks to Maxim for making this less daunting.

Thanks,
Vidit Agarwal

Vidit Agarwal

unread,
Jul 3, 2024, 3:31:52 AMJul 3
to cvat-gsoc-2024
Hello CVAT Community,

Phew, a lot has happened in the past two weeks,
  1. While creating the task, you can only set the value of `consensus jobs per segment`; thus, the consensus configuration collapse component has been removed  
    1. Screenshot 2024-07-03 at 11.56.17 AM.png 
  2. A separate tag was added along the task name when viewing tasks with consensus jobs.
    1. 345289448-08d1071d-b7a3-4ea5-a4d4-76907f669596.png
  3. There's a separate option to configure the rest of consensus configuration like `agreement score threshold`, `quorum`, `min overlap threshold` and the Merge Button
    1. Screenshot 2024-07-03 at 11.54.42 AM.png           Screenshot 2024-07-03 at 11.54.32 AM.png
  4. The tab to view the analytics of the consensus process is also there, though non-functional, until merge reports are implemented.
  5. Worked on improving the code added by incorporating various reviews received on the two PRs (Creating Consensus Jobs [PR] and Merge Consensus Jobs [PR])

Summarising, the user can now configure the consensus settings to control how the merging occurs for their task. Along with this, there are a few improvements in the code quality and UI cosmetics.

Thanks,
Vidit Agarwal

Vidit Agarwal

unread,
Jul 15, 2024, 1:31:55 AM (4 days ago) Jul 15
to cvat-gsoc-2024

Hello CVAT Community,

The past two weeks included the GSoC mid-term evaluation period. I am glad to mention that I have passed the mid-term evaluation and look forward to continuing with the project and collaborating with the CVAT community.

In the past two weeks, I worked on:

  1. The initial version of the consensus report is now available via an API request. These consensus reports are created when merging occurs. They consist of a summary of frame-wise consensus conflicts and a summary of consensus conflicts.
  2. Improved various UI components:
    1. Colours and hover actions under the Consensus Configuration section of tasks.
    2. The consensus jobs per normal job parameter have been shifted under the Advanced Configuration block in task creation.
    3. Notifications have been replaced with a loading action when saving consensus settings.
  3. Structured the code, handling the consensus part better by making it coherent with the rest of the components.
  4. By default, quorum is set to half of the consensus jobs.
  5. Did you know that a job with no annotations can also be an annotated job? This happens when the job contains frames with no objects with the given labels. Thus, I ignored consensus jobs that haven't been opened, i.e., with the state as NEW.
  6. Additionally, I worked on resolving feedback provided in GitHub PR(s) other than the tasks mentioned above.

In summary, the user can now view the consensus report to analyze the consensus quality. Along with this, there are improvements in code quality and UI cosmetics.

Thanks,
Vidit Agarwal
Reply all
Reply to author
Forward
0 new messages