Releases: HumanSignal/label-studio
Release 1.5.0
Label Studio 1.5.0 Release Notes
The latest release of Label Studio is dedicated to more dynamic and custom ways to define, change, and display label sets. Big new features include the ability to show labels dynamically (as opposed to statically), for example for classification or computer vision tasks use images rather than text for the label name and allow annotators to create new labels and evolve the taxonomy as they work through the dataset.
The Label Studio 1.5.0 release includes the new features and enhancements, breaking changes, and bug fixes.
Important notes about installation
This release has long migrations and they can take up to 1-2 hours depending on your task number (relevant for instances with more than 100k tasks). If you want to avoid them, you should run label-studio --skip-long-migrations
and then call label-studio calculate_stats_all_orgs
. These migrations affect task counters like total annotation number, canceled number, and prediction number.
New Features and Enhancements
Label Studio 1.5.0 includes the following new features and enhancements.
- Introduce dynamic labels as a task input through prediction from the model, or from a database lookup instead of having annotators scroll through an extensive list of choices. Dynamic labeling saves time and increases the consistency of labeling the objects.
- Enhance the labeling methods by creating label sets with images and hyperlinks. This results in a better visual signal for annotators. You can also customize the view of choices to be displayed by using HTML markup.
- Allow annotators to add new classes in taxonomy as they work through the dataset, without the need to predefine classes.
- Add support for default settings functionality to the Label Studio Editor.
- Include the
Last updated by
column in Data Manager with information about who made the last modifications for any of the annotations in this task atupdated_at
time. - Easily handle the imported tasks by sorting the task IDs in ascending order of filenames.
- Add the
no more tasks
screen at the end of the queue. Now, you can go back to the previous task from the end of the labeling stream. - Set default
y-scale
parameter at label config level for audio UI. - Overlay timeline on top of the waveform for full height timestamp tooltip.
- Add a group of APIs to manage labels in the Label Studio.
- Create a lead time column in Data Manager with averaged lead time per task.
- Improve the
HyperTextLabels
regions to no longer shift on annotation submit/ update/ change annotation/ draft to original toggle/ open close task/ undo redo toggle. - Improve the performance for API querying the next task in Label Stream.
- Augment the performance of loading the project lists.
- In the Quick View mode, the left-side list of tasks is focused on the current annotating task.
- Add
Undo/Redo
functionality for audio. - Display the column (settings) icon when Quick View is opened.
- Add support of OCR <TextArea> for
editable=false
. - Enable auto-resize of images to screen option.
Breaking Changes
Label Studio 1.5.0 includes the following breaking changes.
- All drafts (including drafts without initial annotation and drafts that are attached to annotation) from the current user’s session pass the ML backend for interactive prediction.
- Set the
page_size
limit to < 100 values inapi/projects/ID/tasks
API.
Bug Fixes
Label Studio 1.5.0 includes the following bug fixes.
- Fixed an issue where selecting the
Pan
tool wiped out unfinished polygon drawings. - Fixed an issue in audio data type, where the
View all Annotations
mode did not work for some time after the annotation was created. - Fixed performance for annotation results filters.
- Fixed Static Application Security Testing (SAST) security issues in Label Studio Open Source.
- Fixed an issue where signup permissions were denied for users without an invite link.
- Fixed security issues reported by the Open Web Application Security Project (OWASP) Zed Attack Proxy (ZAP) scanner.
- Fixed an issue where
required=true
was set along withvisibleWhen
forTextArea
andChoices
. - Fixed an issue where the click action on
Create annotations from predictions
in Data Manager generated theANNOTATIONS_CREATED
webhook event. - Fixed an issue where the usage of relations between
<BrushLabels>
regions crashed the Label Studio App. - Fixed an issue where the
TextArea
withdisplayMode="region-list"
text lost focus in an OCR project. - Fixed image cropping issue.
- Fixed an issue where
Text
andHeader
tags failed to work with integers. - Fixed an issue where the label config preview failed when a user applied one custom label config and later replaced it with another custom config.
- Fixed an issue where the named entity recognition granularity failed to reflect correctly in exported data.
- Fixed
HyperText
security breach / JavaScript injection attack. Removed in-use script elements and replaced them with a stub which was replaced later during execution. Only in-use scripts were executed and placed in the appropriate location.
Thank you to all the contributors for making Label Studio 1.5.0 a success!
Release 1.4.1
Notable changes
Starting in this version, when you add an ML backend, a webhook is created to send an event to your ML backend each time an annotation is updated or created. Alongside this change, the following has also changed:
- The
completions
parameter of thefit()
method is deprecated and will be removed in the next release. - "Start model training after any annotations are submitted or updated" is now unchecked by default.
- Requests to the
/train
API endpoint now include a timeout.
See train a model with your ML backend for more details about this change.
Changes from contributors
- Add a GitHub action to warn about stale issues and PRs to improve team responses. Thanks @twsl for your contribution in #1754.
- Fix an issue where the
Relation
tag was ignored by theparse_config
function in the ML backend SDK. Thanks to @tomfat for your first contribution in #1811! - @YuMS corrected the example syntax for the task import API in #1831. Thanks for your first contribution!
- @AaronDeRybelHowest added a Flair ML backend example in HumanSignal/label-studio-ml-backend#68. Thanks so much for your contribution!!
- @Fireblossom fixed an issue with the PyTorch ML backend in this PR: HumanSignal/label-studio-ml-backend#80. Thanks for contributing!
- Improved performance of the
encode_rle
function used to export brush masks thanks to contributions from @csaroff in HumanSignal/label-studio-converter#52. - @changrq fixed an issue with YOLO coordinates deviating when a rectangle is rotated in HumanSignal/label-studio-converter#73. We appreciate your contribution!
- @raulbocanegra added a required project key to the payload of storage exports and imports in the SDK in HumanSignal/label-studio-sdk#14. Thanks for contributing!
- @denck007 fixed an issue where the
get_users()
function in the SDK didn't work for open source users because of a dependency on organization membership, which is an Enterprise-only functionality. Thanks for your contribution in HumanSignal/label-studio-sdk#23! - @fabiolab extended the SDK to allow extra headers for HTTP requests. Thanks for your contributions in HumanSignal/label-studio-sdk#30.
- @laynr added the ability to sync storage to the SDK in HumanSignal/label-studio-sdk#20. Thanks for your consistent contributions!
- @Fkawala added the ability to use email and password credentials to log into the SDK, rather than using a token. Thanks for your contribution in HumanSignal/label-studio-sdk#29.
- @kaustuk added the ability to set a cursor color and width for the Audio tag. Thanks for your contributions in HumanSignal/label-studio-frontend#347 and requesting this feature in #1682.
Features
- Add auto-created webhooks when you add an ML backend to Label Studio. See more in the documentation.
- Add the option to reveal pre-annotations interactively
- Add the ability to enable experimental functionality with the
EXPERIMENTAL_FEATURES
environment variable. - Add the ability to specify a
lead_time
to imported annotations. - Add the ability to view
created_at
time for annotations andupdated_at
time for tasks on the data manager. - Added an ELECTRA model example for the ML backend in HumanSignal/label-studio-ml-backend#76.
- Added a brush predictions example for the SDK.
- When performing active learning with Label Studio, the model version selected to display predictions on tasks defaults to the most recent model version.
Labeling and tag updates
- Add the ability to uncheck a selected checkbox when using the Choices tag.
- Add the
overviewWidth
parameter to the TimeSeries tag to set a default overview width in percents, requested by @TueLindhart in issue #1330. - More fully support the Repeater tag.
- Add a vertical zoom control.
- Add a resolver parameter to the Text tag to retrieve data from a remote URL in PR #396.
- Add tooltips to zoom controls in audio labeling.
Notable bug fixes
- Fixed a bug where relations break the labeling interface when added as predictions, or when viewing annotations with relations.
- Fixed issues with permissions when setting up local file storage connections.
- Fixed issues with building and installing Label Studio taking a long time due to resolving various google dependencies.
- Fixed an issue where the
selected=true
option for the Choices tag wasn't being used. Thanks to @DougTrajano for reporting in issue #1848. - Fixed issue #1757 reported by @uriel-tannen that prevented saving a labeling configuration without existing labels.
- Improved the functionality of the CONLL converter to be more robust as suggested by @tomasohara in issue #61, and also updated to handle empty labels and complicated configurations.
- Fixed an issue with Docker builds on MacOS reported by @simonlsk in issue #1859.
- Fixed an issue where the
--version
flag doesn't print the version reported by @magicaltoast in issue #1880. - Fix an issue where shortcuts did not work when editing TextArea results.
Other bug fixes
- Fixed a bug with undo where it deselected a region instead of removing it for brush masks.
- Fixed bugs where unclosed tags and other errors when defining labeling configurations could cause Label Studio to break.
- Fixed an issue where bounding boxes failed to rotate.
- Fixed an issue where VOC export failed when trying to export using the snapshot functionality.
- Removed a dependency on the ground truth field for determining when labeling is complete.
- Fix performance issues when retrieving project storage.
- Fix crosshair functionality when zooming and rotating images.
- Improve appearance of tabs on the data manager when there are a large number.
- Fixed the ability to go back to a previously-skipped task and submit an annotation.
- Fix the ability to use custom service account credentials for GCE.
- Fixed timeouts occurring with the ML API and added environment variables to configure the timeout limits in #1978.
- Fixed an issue with the mmdetection ML backend example.
- Improved YOLO export to have sorted classes.
- Improved handling of empty labels in YOLO, COCO, and VOC export formats.
- Fix an issue rendering certain data types in the "view all" annotations page.
Changes to requirements and dependencies
- Bump Pillow from 8.3.2 to 9.0.0 in the ML backend.
- Bump nltk from 3.5 to 3.6.6 in the ML backend.
- Bump django from 3.1.13 to 3.1.14 in Label Studio.
Docs changes
- Added the ability to search Label Studio website by typing on any page, and to quickly copy code samples using a copy button.
- Updated all Templates documentation to match the product templates and include more details about use cases and functionality.
- Updated API documentation:
- To be more clear about IDs
- To remove deprecated information from pre-1.0.0 versions of Label Studio.
- To improve export API specs
- Fixed issues with Docker Compose documentation.
- Add details about importing URLs and links using the valueType parameter in tags, and also improved details and troubleshooting when handling HTML labeling. See import data.
- Add spaCy export information, improved export format JSON details, and to the export docs.
- Add dedicated data management documentation.
- Add details to troubleshoot pre-annotations
- Updated the tags documentation to be the latest version.
- Removed support for Python 3.6 as a result of supporting Pillow 9.0.0.
Label Studio 1.4.0
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.
- Thanks codeychen for your request to export tasks in a specific date range in issue #1451.
- Thanks also to Andrés Mauricio Repetto Ferrero, Nathan Raw, Koen Dercksen, and codeychen for your request to export selected tasks in issue #1114
- 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://
orgs://
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.
- 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, thexpath
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...
HTML labeling improvements
Label Studio 1.3.0
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
- A new logging handler for Google Cloud Storage thanks to contributor @mpomarole.
- Added a manual target storage sync option to allow for more control over annotation syncing. See more details in the external storage documentation.
- Improved handling of cloud storage target sync errors, thanks to @scott2b for reporting.
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!
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
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://...
orgs://...
, 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 thecompleted_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 andlead_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
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
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
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
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.