Skip to content

Releases: HumanSignal/label-studio

Label Studio 1.4.0

19 Nov 16:36
3e28c16
Compare
Choose a tag to compare

This release of Label Studio includes a Python SDK, as well as other enhancements including: customizable hotkeys, labeling improvements, the ability to create annotations from predictions, and various infrastructure improvements that make deploying and managing Label Studio easier and faster.

Thanks to all of our contributors and people that reported issues!

Customize labeling hotkeys

You can now customize the hotkeys used for labeling, included the much-requested ability to customize the hotkey combination for submitting an annotation. See all the details in the labeling with hotkeys documentation. Thanks to Grigoriy Livshits and Schulzjo in issue #941, Flavien Berwick in issue #796, and Nathan Derave, Tram-Anh Nguyen, and Filippo Broggini in issue #208 for requesting this functionality.
Additionally, as requested by Mykola Sharhan in issue #812, this release also includes new hotkeys for Time Series labeling, plus Video, Image, and Audio labeling. Check out the hotkey documentation for more.

Prediction and annotation improvements

  • You can now use the API or the new SDK to create annotations directly from predictions. Several people in Slack have asked about this functionality, and we're happy to say that it's finally here!
  • Annotations created from pre-annotations include links to the predictions that were used when annotating the task as parent_prediction when you export or retrieve annotations using the API.
  • Similarly, annotations copied from other annotations include links to the annotation used to create the new annotation as parent_annotation when you export or retrieve annotations using the API.
  • You can now delete annotations from target cloud storage when they are deleted from Label Studio.
  • Fixed an issue displaying predictions to annotators in quickview when the option to "Show predictions to annotators" was selected.

Export improvements

  • Exported tasks now contain more details about the annotation process, such as draft annotations and predicted annotations. These additional details appear in all places that you can export tasks, including files exported using the API or Label Studio UI, tasks saved to target storage connections, and annotations sent to machine learning backends.
  • Improved the new export API that allows you to generate a file for export and control on a granular level what is included. This includes filtering by completed_by or updated_at time, as well as specifying a data manager view ID and exporting only the tasks visible with those filters. See the API docs for create new export.
  • When exporting annotations, the completed_by field can return either the user ID or a full dictionary of user data. It returns the user ID only by default. If you want to see more details about users, set "annotations__completed_by": { "only_id": false }. See the docs for creating a new export.
  • Fixed an issue with UTF-8 characters in export filenames reported by Théo HENAFF in issue #1266.

Deployment and server management improvements

  • Faster Docker build process
  • Label Studio subpath is automatically configured
  • Updated the nginx configuration to have a client_max_body_size of 200MB that can be configured.
  • Added support for MinIO
  • Added OrganizationMember to the Django admin dashboard
  • Now you can use Visual Studio Code Remote - Containers with Label Studio to set up the developer environment and make changes. Thanks to twsl for your code contribution!
  • Docker setup now includes friendlier defaults that avoid CSRF errors for localhost deployments. Thanks to David Sanders for contributing the fix!
  • Fixed an issue where a server hang with Label Studio could lead to an infinite loop and cause the browser to freeze.

Data management improvements

  • Improved the performance of the Data Manager page.
  • Added ordering chaining so that you can, for example order by "Annotators" first, and by "Completed" second.
  • Filter and sort tasks according to the model version used to create specific predictions.
  • Improved and fixed some data manager filtering bugs.

ML backend improvements

  • Added webhook support to the ML backend. You can now set up a webhook that notifies you when an ML backend is connected to Label Studio.
  • Fix issues associated with saving and retrieving model versions in ML backends.
  • Fixed a bug with an error message (ironically) when Label Studio failed to connect to an ML backend. Thanks to David Sanders for contributing the fix!
  • Fix double call of ML backend predict() method for one task [https://github.com//pull/1763] Thanks to Nithishkumar K R

Storage improvements

  • If you have a cloud data connection set up, you can import task data that references cloud storage URLs such as s3:// or gs:// and the URLs are automatically presigned.
  • Fixed an issue where local storage was listed twice in the storage list API results. Thanks to Eric Hansen for your report in issue #1564.
  • Fixed the content-type for local file storage.
  • Improved streaming access for local file storage.
  • Fixed an issue where GCS credentials were not able to be added in the Label Studio UI for target storage connections.
  • Improve the form filling experience when adding storage details.

Other improvements

  • It's now even easier to extend the available webhook endpoints to add webhooks to any API endpoint. See how to Create custom events for webhooks in Label Studio and Contribute your own!.
  • The user account page now includes details about your active organization.
  • Project and organization members APIs now include pagination, and you can specify ordering for the organization member API.
  • Made various security improvements to Label Studio.

Other bug fixes

  • Fixed an issue where the labeling configuration might overflow the text box in code view. Thanks to David Sanders for contributing the fix!
  • Fixed an issue where S3 links to task data did not resolve when referenced in HTML links.
  • The port flag was incorrect when calling MySQL status. Thanks to amansohi for contributing the fix!
  • Fixed issue #1259 reported by LUO Lingxiao and Yogesh Kumar where labeling configurations containing a single choice option failed.
  • Fixed an issue with validating imported paragraphs data when using the Paragraphs tag with valueType=url

Labeling and tag improvements

  • Emoji and special characters are now handled properly when performing Named Entity Recognition (NER) tasks on text with those.
  • When using the whenLabelValue= parameter to do conditional labeling, you can now specify multiple comma-separated label values.
  • Updated the Video templates to use the new Video tag instead of the HyperText tag.
  • Added the visual tag to collapse data when labeling.
  • Update the tag so that it can be used with control tags and added a new Tabular Data template.
  • Perform validation with the HyperText tag when used with nested items.
  • Improve the top navigation bar to make the task ID selectable and update the layout.
  • For selected regions, display the text.
  • Added the ability to view task history with previous and next buttons when labeling. Thanks schafsam for your request in issue #1098.
  • Added an indicator to predicted regions, making it easier to identify which region is a pre-annotation and which is a manual annotation on the task.
  • Add a link on the region panel between predictions and annotations so that you can see which annotation was created from which prediction.
  • Returned the option to "delete all regions", which went missing. Thanks to David Sanders for your report in issue #1645.
  • HTML labeling improvements

    • Updated the way that HTML annotations are stored. Prior to this change, paragraph text highlighted for labeling would have an xpath with /main/div[1] and the exported annotation would include the <p> tag and text. Now, the xpath for regions like this is /main/div/p/text()[1].
    • Fixed an issue with HyperText where excess labels were applied to multiple spans inside of one text region. Thanks to Piotr Podbielski for your [contribution](https://github.com/heartexl...
Read more

Label Studio 1.3.0

17 Sep 18:19
90aa4ec
Compare
Choose a tag to compare

Interactive ML-assisted labeling

The biggest update in this release is introducing... Interactive ML-assisted labeling with pre-annotations! You need to set up a machine learning backend to use this feature. Read all the details in the release blog or in the machine learning documentation.

Thanks to @juan57 for the suggestion and also to @xuankhanhdo, @amant555, and @prathameshk for requesting similar functionality.

Improved semantic segmentation

Thanks to diligently-reported issues from @royschwartz2 and the hard work of our frontend team, there are many improvements to performing semantic segmentation.

  • You can adjust the eraser size.
  • Improved the performance of semantic segmentation after several regions have been annotated.

There are also some bug fixes:

  • Highlighted regions and labels now display in the correct location after zooming.
  • Submitting the task after hiding annotations does not delete the annotations.

Delayed export options for improved performance

To improve performance when exporting results from large labeling projects, you can now choose to export a file with the results. It's a two step process, starting with creating an export file and then downloading the export file with the results.

Thanks to @MiguelFreire, @shubhangi27397, @R-Peleg, and @twsl for reporting and discussing export performance.

Cloud storage improvements

Data manager improvements

  • Choose to label all tasks, or filter the data manager and label only the tasks as displayed.
  • Improvements to the filtering behavior as requested and pointed out by @karelserruys-foodpairing and @AlexRoss-WHS.
  • You can now display and filter by annotation ID in the data manager.
  • Moved the import and export buttons out of the main header. Export or import data while viewing the project data manager instead of on any page in Label Studio.

Labeling improvements

  • When labeling, in the regions sidebar you can see the type of region that was created with an icon.
  • Select multiple regions at once using ctrl+click, as requested by @mbuet2ner.
  • Use the alt + . keyboard shortcut to cycle through entities, instead of alt+tab as requested by @danielcrane.
  • A new hint parameter for the Label tag lets you add a tooltip for specific labels.
  • Improved performance of the label stream, reported by @anshul-dt, @tristanratz, and @iakremnev.

Other improvements

  • You can now use MySQL as a database backend with Label Studio thanks to contributor @dehydr8. See the details in #1385.
  • Contributor @jeroenboeye fixed a bug in the export API documentation example.
  • Improvements to the wait for postgres shell script from contributor @piraka9011.

Documentation improvements

  • Revised Tag documentation now includes more details, examples, and sample results JSON to make crafting predictions for different types of labeling easier.
  • Ability to copy code examples and sample JSON with one click.
  • Improved readability of code examples by updating the colors used for highlighting.

Bug fixes

  • Fixed an issue where polygon points and keypoints were large after zooming an image.
  • Fixed issues with the Taxonomy tag reported by @ynouri and @irogers
  • Fix some errors using the ctrl+enter hotkey to submit tasks.
  • Fixed issues with hypertext labeling, such as allowing variables anywhere in the tags. For example: <Text>Title: $title</Text>.
  • Fixed an issue where offsets were occurring incorrectly in NER annotation, reported by @Lolologist.
  • Fixed an issue where boolean types weren't working for values in a labeling configuration.
  • Fixed a bug where relations didn't appear in the UI after returning to an annotation with relations. Thanks to @joeydb94, @kaitco, and @3nuc for reporting bugs with relations.
  • Fixed a bug with resizing images affecting bounding boxes. Thanks @VladYushchenko for the report!

This release closes the following issues:
#1236, #1174, #1134, #655, #771, #1091, #1371, #970, #671, #1008, #476, #1262, #1244, #1243, #1205, #1072, #1026, #1014, #1141

Release 1.2.0: Webhooks!

18 Aug 16:53
a0817cb
Compare
Choose a tag to compare

Label Studio now supports webhooks!

Subscribe to event actions such as TASKS_CREATED, ANNOTATION_CREATED, PROJECT_UPDATED and more to easily integrate Label Studio with your machine learning pipeline.

Check out the introductory blog post: https://labelstud.io/blog/release-120.html
Check out the documentation: https://labelstud.io/guide/webhooks.html

Release 1.1.1

13 Aug 09:20
a06d5d9
Compare
Choose a tag to compare

Label Studio 1.1.1 Release Notes

New Functionality

This version of Label Studio includes the following improvements and new functionality.

Cloud storage improvements

  • Recursively scan S3 buckets connected as source storage.
  • URLs in tasks that reference objects in connected cloud storage buckets or blobs automatically resolve. If you create a cloud storage connection and import data with URLs such as s3://... or gs://..., the objects at those URLs automatically resolve in your labeling tasks.
  • Specify Google Cloud Storage (GCS) credentials in a JSON file when setting up GCS source storage, instead of using the environment variable GOOGLE_STORAGE_CREDENTIALS. See Sync data from external storage.
  • For form fields that expect JSON, such as when setting up external storage, the JSON is now validated.

Tag and Template improvements

  • Add support for a Video tag to be used for classification.
  • Improve the Taxonomy tag.
  • Added a Repeater tag for dynamic labeling. Thanks to @gfauchart for your contribution!
  • Optimize bbox and ellipse creation for image segmentation.
  • Updated the Video Timeline Segmentation template.

Other improvements

  • If you're using an ML backend, you can now select the specific version of the model to use when showing predictions to annotators. See Set up machine learning.
  • When importing data that includes annotator email addresses in the completed_by field, Label Studio now matches the annotator email addresses to existing annotators and assigns those annotators to the tasks. If the completed_by field is undefined, a validation error is shown.
  • When importing tasks, you can now specify the was_cancelled attribute for a task to indicate that it was skipped.
  • Filter predictions by specific tasks or project IDs when using the API.
  • Improvements to exporting audio transcription data, and CSV export is expanded to include created/updated_at fields and lead_time data.
  • Improved performance when exporting tasks and annotations, as reported by @R-Peleg .

Bug Fixes

This version of Label Studio includes the following bug fixes.

Label Studio UI

  • Fixed an issue where the Create button stopped opening the modal after it was closed. Thanks @yoku2010 for your contribution!
  • Fixed bugs with the filters on the data manager, including integer filters and filtering with the is_empty argument. Thanks @alex-eurec for your report.
  • Fixed the TTL settings for S3 and cloud storage.
  • Fixed a bug where the presigned URL toggle was not being respected. Thanks @nader-bitstrapped-com for reporting this issue!
  • Fixed an issue with S3 links with prefixes and white space.
  • Fixed an issue deleting annotations.
  • Fixed a bug with the size of the canvas when viewing all annotations for a task.

Label Stream

  • Fixed a bug where skipped annotations appear in the label stream for other annotators to label and annotators working from a manually-assigned queue continued to be assigned skipped tasks.
  • Fixed an issue where regions were missing from draft annotations.
  • Fixed an issue where the zoom button moved while an image was loading.
  • Fixed an issue when labeling with brushes.
  • Fixed an issue where the brush area did not display correctly after zooming an image.
  • Fixed an issue with minimum size of shapes.
  • Fixed polygons being distorted when switching between original and draft annotations.
  • Prevent a polygon from being created with fewer than 3 points.
  • Fixed several issues with the RichText tag, including issues scrolling to region, text region offsets, selection range size in different browsers, incorrect selection in word, sentence, and paragraph granularity mode, overlapping ranges, and trimming spaces. Thanks to @uklft, @sharkzeeh, @1ytic, @lluissalord, @inzomiac, @stantonius, @jimsandwick99, @function2-llx, @somejonus, and @prohor33 for your reports!
  • Fixed an issue when using hotkeys on choices with the Taxonomy tag.
  • Fixed an issue when using relations with rotating, zooming, and erasing regions on images.

Other bug fixes

  • Fixed an issue where a task might be duplicated in export results when there is more than 1 annotation per task. Thanks @HarshSharma12 for your report.
  • Fixed issues with the ./serve_local_files.sh script.
  • Fixed an issue where ML backend error responses were improperly handled.
  • Fixed an issue running SQLite database on Windows.
  • Fixed an issue handling API proxy errors.

Release 1.1.0

30 Jun 22:57
536f604
Compare
Choose a tag to compare

Version 1.1 Release Notes

Multi-tool image labeling

Add different types of regions to your images, for example, rectangles, ellipses, polygons, brush masks, and keypoints. Combine the different types of Control tags in the labeling configuration that you create for the labeling interface. See the labeling documentation for more.

Add regions without labels

When adding predicted annotations or when doing labeling in Label Studio, you can add regions without assigning labels. See the pre-annotation documentation for details.

Quickly create and remove regions

Add a rectangle or an ellipse to your image with just two clicks, or double click to create a polygon, rectangle, or ellipse.

If you accidentally select a point on an image while creating a polygon, just double click to remove the erroneous point and continue creating the region. You need to have at least three polygon points to be able to remove one.

Switch visibility for all regions at once

While you could previously show or hide regions one by one, now you can toggle the visibility of all regions at once, and also hide all regions for a specific label at once.

YOLO export support

Export image annotations in a text format compatible with YOLO v3 models. Thanks to @johnson7788 for his PR!

OCR improvements

Write the text for a selected region in the sidebar, rather than at the bottom of the labeling interface screen.

Filter the data manager by annotators

You can now filter the data manager by annotator, letting you create different views and tabs for the tasks completed by different annotators, and more easily review the annotation progress by annotator on the data manager.

Performance improvements

Various performance optimizations to make loading hundreds of bounding boxes on images faster.

Create tokens for users when you start Label Studio

You can now create tokens for users from the command line when you start Label Studio. This makes it easier to integrate Label Studio with your automated pipelines because you can specify a token to use with the API rather than locating the token in the Label Studio UI.

label-studio --username [email protected] --password opossum --user-token token12345

See more in Set up user accounts in the Label Studio documentation.

Bug fixes and updates

This release also includes various bug fixes and smaller updates:

  • Added multi-select capabilities for bounding box and other object detection regions. Thanks to @mbeut2ner for requesting this feature in #655.
  • Updated examples for serving Label Studio behind a proxy with a subpath.
  • Fixed issue when exporting completed tasks.
  • From contributor @xhuaustc, improved the wait-for-postgres.sh script to provide a better experience by using environment variables.
  • Added an environment variable, ENABLE_LOCAL_FILES_STORAGE (true by default), for cases when you might want to disable local file storage as an option entirely.
  • Fixed URL building when using a custom hostname or subpath that was breaking some user experience in the Label Studio UI.
  • Contributor @SAdnen fixed an issue with the Docker compose file that caused the server to get stuck at startup, an issue also reported by @suvojit-0x55aa.
  • Fixed an issue where the storage modals to add storage using Label Studio UI did not appear.
  • Fixed console warnings for MobX (out of bounds).
  • Fixed an issue with relations for remotely loaded data.
  • Fixed an issue with adding two sets of Rectangle Labels to the same labeling interface configuration.
  • Fixed issue #1072 and #1026 with relations appearing for the Text tag with valueType=url, reported by @joeydb94 and @3nuc.
  • Fixed issues with erasing brushes reported in #492 and #867 by @tristanratz and @royschwartz2.
  • Fixed issues with NER labeling causing text highlighting to be incorrectly offset from the selected region reported in #539 and #1008 by @blanchefort and @Lolologist.

Release 1.0.2

19 May 17:11
84de007
Compare
Choose a tag to compare

1.0.2 release notes

Label Studio makes the master branch available as a stable beta at all times. This release includes bug fixes and improvements since 1.0.1 was released, but that were available to anyone using the Docker container or building from the Git repo directly.

New functionality

  • Use environment variables for specifying usernames and passwords when you restrict signup to be invite-only. See Restrict signup for cloud deployments in the Label Studio documentation.
  • Additional features after adding a machine learning backend, such as options for manual and automated retrieval of predictions, and the option to send a training signal to a connected ML backend when new annotations are submitted. See Set up machine learning with Label Studio.
  • CSV and other export formats from Label Studio now allow exporting an entire task with annotations and predictions. Thanks to @uriel-tannen for your issue requesting this.
  • Added draft annotation functionality, allowing you to switch between an in-progress annotation and a past annotation.
  • Added the ability to copy and edit an annotation in the Label Studio UI by clicking Create Copy when labeling.
  • Support Google Cloud Services credentials from the environment. Thanks to @lordzuko for a pull request with this bug fix and improvement!

Bug fixes

  • Fixed the PORT variable index in the example shell script for serving local files. Thanks @JustasB for the pull request!
  • Static files in the Label Studio container are now shared with the nginx container. Thanks to @nlml for the pull request!
  • Fixed an issue where a validation error prevents label deletion. Thanks @JustinGovender for your bug report!
  • Fixed distinct collaborators getting the same task in a project. Thanks to @rodrigocaus for the pull request!
  • Fixed an issue where S3 imported tasks were created with nested JSON files. Thanks to @yashwantkeswani for the pull request!
  • Fixed the path to the template assets. Thanks to @even-wei for the pull request!
  • Fixed an issue where seeking in audio files did not work as expected.
  • Improved the experience for adding local files as a source.
  • Fixed an issue where data files used an absolute path instead of a relative path. Thanks @jackklpan for the pull request!
  • Fixed an issue with Redis storage validation. Thanks to @jvdavim for your bug report.
  • Fixed an issue where filtering by numeric data types didn't work. Thanks to @dkalaitzidis for reporting this issue!
  • Fixed an issue where changing the filter field didn't affect the operator.

Other improvements

  • Updated the look and feel of the Label Studio UI.
  • Made it easier to see the task ID in the Label Studio UI.
  • Improved error messaging.
  • Improved API documentation.

Release 1.0.1

05 Apr 19:16
71278b0
Compare
Choose a tag to compare

Improved functionality:

  • You can invite users to Label Studio instead of having them sign up. See Invite collaborators to a project.
  • Connect local directories to access files and labeling tasks stored locally or on remote servers. See Local storage.
  • Exported and stored annotations now include data about who completed the labeling task and created the annotation. Thanks to Uriel Tannen and others who requested this in Slack.

Fixed the following issues:

  • Hotkeys that weren't working
  • Issues preventing the data manager and the UI from loading
  • Cases where some data was not UTF-8-encoded, causing problems on some Windows machines. Thanks to @secslim for your PR!
  • Ordering by prediction score was not working.
  • Only the latest annotation would be exported, instead of all annotations for a task. Thanks to Uriel Tannen and others who reported this in Slack.
  • Deleting selected tasks deleted annotations from annotated tasks instead of deleting tasks and annotations. Thanks to @gamblard and @antonyscerri for reporting.

Release 1.0.0

16 Mar 16:37
Compare
Choose a tag to compare

Label Studio has been rewritten to provide a streamlined UI, scalability, and support for multiple projects.

  • Multi-user labeling. Sign up and log in to Label Studio so that any annotations you create are tied to your account.
  • Multiple projects to allow you to annotate multiple datasets in parallel.
  • Project setup wizard to make it easier to start a new project and import your data.
  • Customize the labeling interface without editing the label config XML directly. Add labels and select the relevant fields in your data for the type of labeling you want to perform.
  • Database storage to allow you to scale your data labeling. Start with a SQLite database or set up PostgreSQL for large volume data labeling projects.
  • Django backend replaces the Flask backend.

Release 0.9.1.post1

18 Feb 16:42
Compare
Choose a tag to compare

Fix LSF with TextArea editing mechanics
Fix labeling configs for NeMo
Fix predict drag&drop redirect on the model page

Release 0.9.1

16 Feb 23:32
Compare
Choose a tag to compare

Cloud storage improvements

  • Set up Microsoft Azure as source or target storage for tasks and completions (@keesschollaart81).
  • Set up Redis as source or target storage for tasks and completions. (@kasuteru)
  • Added an option to set the Amazon AWS S3 endpoint with an environment variable when setting up cloud storage (@herber523).

See Cloud Storages.

Automated Speech Recognition with Nvidia NeMo ML backend

  • Added an example for Automatic Speech Recognition (ASR) machine learning backend using NVIDIA NeMo toolkit, including an ASR_MANIFEST export format.
  • Updated the Label Studio Frontend for textarea labeling to make it easier to update transcription labels.
  • Renamed the template "Whole Audio Transcription" to "Speech Transcription".

Other improvements

  • POST a label config as XML using the API (@laynr).
  • Add a while loop to check for more busy ports (@UtrechtUniversity).
  • Use pre-labeling to make predictions for specific tasks by ID.
  • No longer require tasks and completions to be ASCII-formatted, supporting non-ASCII languages like Persian (#578)
  • Improved the workflow for importing data to make it easier to fix label configuration errors.
  • Improved the timeseries data import flow to make it clearer how to import from text files.
  • Improved the multi-session mode experience.

Notable bug fixes

  • Fixed an issue where exported data would have duplicate completions.
  • Fixed a bug when uploading files in multi-session mode.
  • Improved handling of timeseries and polygon labels.
  • Fixed a bug where the .conll export format misses labels or assigns them to the subsequent token.