HumanSignal / HumanSignal/label-studio

Dynamic Label Configuration

Open
#5,560 0 comments 1 reaction 0 assignees View on GitHub
Dominant language
TypeScript
Stars
28.3k
Forks
3.7k
Avg merge
14h
Merged PRs (30d)
15

Description

**Is your feature request related to a problem? Please describe.**
A whole new class of problems in ML is emerging: [Extreme Classification(XC)](https://www.microsoft.com/en-us/research/project/extreme-classification). For example, Logo Detection - given a logo, a model predicts which company it belongs to. There are millions of companies in the world. In this, the number of labels can range from hundreds to even a million. It is not feasible to show all the labels in the UI.

**My particular case**: I have 100 labels in my object detection task.

**Describe the solution you'd like**
In many cases, we can use heuristics/pre-existing models to narrow down possible labels to a few labels.
**Solution**: Dynamically change which labels are shown based on the data provided in task, or other criteria.

**Describe alternatives you've considered**
I have gone through the whole documentation, but didn't find any functionality like this.

My current approach:
- Modified the object detection model to only tell whether there is any class in the image.
- Used its results to create predictions.
- Generated a narrowed-down list of candidate labels and passed it as data.
- Added the functionality to filter labels in the labeling interface.
- Copy-pasted the correct label from the candidate list into the search box and selected the correct label.
- At last, with the correct label selected, I performed the annotation.
- Needless to say, it is a very cumbersome and tedious process

**Additional context**
- Conditional Showing of Labels: While Label Studio primarily configures labels at the project level, implementing logic to conditionally show labels requires custom work. This might involve preprocessing your data to include metadata indicating which labels should be shown for each task and then using JavaScript in your Label Studio frontend to hide or show labels based on this metadata.
- Using Label Studio Frontend: For a fully dynamic approach, you could modify the Label Studio frontend to add JavaScript that decides which labels to show based on criteria you set. This could include fetching additional data on task load and updating the UI accordingly.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.