forked from HumanSignal/label-studio
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* package, cmdtool, prompter * io package util, move package to label_studio dir, sync versions * add colon mark on prompt * Initial work on fixing initialization flow (HumanSignal#158) * Feature/image segmentation (HumanSignal#129) * RLE * Brush init * Example brush init * Brush interface * RLE * RLE decode * Example update * Image segmentation big update * Remove excess package * modifications, creating tools concept * updates * forgot to add the tool Co-authored-by: Nik Shevchenko <[email protected]> * bugfix & speedup json import (HumanSignal#155) * add created by only if there is a user instance * moving regions into its own folder simplifying things bringing the zoom back * get image deserialization back * style fixes * fixing incorrect load order * removing unused log statements * building the release * add from prediction fix image updates * new Pairwise, Style tag and bugfixes * small fixes for prediction name * remove floodfill for now * skip task shall pass studio instance * fixing polygons * if there is a polygon in process of creation and label is selected again * put in class names with ls- prefixes * keypoints fix * keypoints * keypoints * fixing small bugs * remove zoom tool for now * don't display empty toolbar * use udpated serialized version * use initial json instead of serialized one. Serialization might not be valid because some objects are not yet loaded (images / audios) * renaming the folders and some files * Task import (HumanSignal#162) * add run on google cloud button * add heroku & azure buttons * Import tasks. * add azure config * Add heroku deploy manifest * try run script on heroku deploy * fix dockerignore * add missed run demo script * add port variable * fix port envvar * add heroku app.json manifest file * Working. * fix service log, revert config.json * adapted to release-0.4.0 * Label Config UI added. * rebuild ls, serve static, remove useless folders * Something working. * Some. * delete old build * Config in progress. * Render preview. * render LS * Working config. * Fix. * fix dependencies,defaults,add export * Fix with Pairwise. * fix pairwise config * copy fixes for the menu, pairwise fix, using json instead of ujson when ujson is not available * no prompt * copy changes * Try fix. * More fix try. * Image brush (segmentation) removed as under construction. Co-authored-by: Michael Malyuk <[email protected]> * Restructure label studio package dir (HumanSignal#164) * get rid of frontend sources/pull out label_studio dir * remove scripts * Release fixes 1. (HumanSignal#165) * fixing the "no completions" bug * add init/start subcommands (HumanSignal#166) * don't show side column, show start command * small style changes * Config validation on data (HumanSignal#167) * add config validation on derived data schemas * fixed and tested * fixed empty project error * fix empty completions * again * Refactor labelstud.io docs (HumanSignal#160) * refactor labelstud.io docs * config & docker pages * update MANIFEST & setup * packaging templates & config option in init (HumanSignal#168) * packaging templates & config option in init * rename config to template * add --init option on start * update manifest * Release fixes 2 (HumanSignal#169) * Some. * Pretty and fixes. * config updates * parse input args only on start * border * upgrade version * fix flat starts * upgrade version * runs for dummies * Update README.md * update find_node for windows compatibility * upgrade version * handling 5xx on validating config * upd version Co-authored-by: Nik Shevchenko <[email protected]> Co-authored-by: niklub <[email protected]> Co-authored-by: Max <[email protected]>
- Loading branch information
1 parent
912325f
commit 85bbd29
Showing
375 changed files
with
185,577 additions
and
42,984 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,6 +2,6 @@ node_modules | |
npm-debug.log | ||
Dockerfile | ||
.dockerignore | ||
build | ||
# build | ||
.github | ||
.vscode |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
include label_studio/examples/*/*.xml | ||
recursive-include label_studio/static * | ||
include label_studio/templates/*.html | ||
include label_studio/utils/schema/*.json | ||
include label_studio/logger.json | ||
include label_studio/config.json |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,125 +1,141 @@ | ||
<div align="center"> | ||
<a href="https://labelstud.io/" title="Label Studio by Heartex Labs"><img src="https://github.com/heartexlabs/label-studio/blob/master/images/[email protected]?raw=true" title="Label Studio by Heartex Labs" height="140" width="140"></a> | ||
<br/> | ||
<h1><a href="https://labelstud.io">Label Studio</a></h1> | ||
<p>Label Studio is an open-source, configurable data annotation tool.</p> | ||
<p>Its purpose is to help you label different types of data using a simple interface with a standardized output format. It's mobile-friendly and fast.</p> | ||
</div> | ||
# Label Studio · ![GitHub](https://img.shields.io/github/license/heartexlabs/label-studio?logo=heartex) [![Build Status](https://travis-ci.com/heartexlabs/label-studio.svg?branch=master)](https://travis-ci.com/heartexlabs/label-studio) [![codecov](https://codecov.io/gh/heartexlabs/label-studio/branch/master/graph/badge.svg)](https://codecov.io/gh/heartexlabs/label-studio) ![GitHub release](https://img.shields.io/github/v/release/heartexlabs/label-studio?include_prereleases) · :sunny: | ||
|
||
[Website](https://labelstud.io/) • [Docs](https://labelstud.io/docs) • [Twitter](https://twitter.com/heartexlabs) • [Join Slack Community <img src="https://go.heartex.net/docs/images/slack-mini.png" width="18px"/>](https://docs.google.com/forms/d/e/1FAIpQLSdLHZx5EeT1J350JPwnY2xLanfmvplJi6VZk65C2R4XSsRBHg/viewform?usp=sf_link) | ||
[Website](https://labelstud.io/) • [Docs](https://labelstud.io/guide) • [Twitter](https://twitter.com/heartexlabs) • [Join Slack Community <img src="https://go.heartex.net/docs/images/slack-mini.png" width="18px"/>](https://docs.google.com/forms/d/e/1FAIpQLSdLHZx5EeT1J350JPwnY2xLanfmvplJi6VZk65C2R4XSsRBHg/viewform?usp=sf_link) | ||
|
||
![GitHub](https://img.shields.io/github/license/heartexlabs/label-studio?logo=heartex) [![Build Status](https://travis-ci.com/heartexlabs/label-studio.svg?branch=master)](https://travis-ci.com/heartexlabs/label-studio) [![codecov](https://codecov.io/gh/heartexlabs/label-studio/branch/master/graph/badge.svg)](https://codecov.io/gh/heartexlabs/label-studio) ![GitHub release](https://img.shields.io/github/v/release/heartexlabs/label-studio?include_prereleases) [![Gitter](https://badges.gitter.im/label-studio/community.svg)](https://gitter.im/label-studio/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) | ||
<br/> | ||
|
||
![Label Studio](https://raw.githubusercontent.com/heartexlabs/label-studio/master/images/label-studio-examples.gif) | ||
|
||
## Features ✨ | ||
|
||
**Simple**: Crafted with minimal UI design. A simple design is the best design. | ||
|
||
**Configurable**: Using high-level jsx tags config, you can fully customize the interface for your data. | ||
|
||
**Embeddable**: It's an NPM package too. You can include it into your projects. | ||
**Label Studio is a swiss army knife of data labeling and annotation tools :v:** | ||
|
||
Its purpose is to help you label different types of data using a simple interface with a standardized output format. You're dealing with the custom dataset and thinking about creating your tool? Don't - using Label Studio, you can save time and create a custom tool and interface in minutes. | ||
|
||
## Quick Labeling Guides | ||
|
||
- [Classify text for sentiment](https://labelstud.io/templates/sentiment_analysis.html) | ||
- [Named entities recognition](https://labelstud.io/templates/named_entity.html) | ||
- [Transcribe audio](https://labelstud.io/templates/transcribe_audio.html) | ||
- [Classify audio](https://labelstud.io/templates/audio_classification.html) | ||
- [Conversational modeling & chatbots](https://labelstud.io/templates/dialogue_analysis.html) | ||
- [Image object detection](https://labelstud.io/templates/image_bbox.html) | ||
- [Audio regions](https://labelstud.io/templates/audio_regions.html) | ||
- [Image KeyPoints](https://labelstud.io/templates/image_keypoints.html) | ||
- [Image Polygons](https://labelstud.io/templates/image_polygons.html) | ||
- [HTML Documents](https://labelstud.io/templates/html_document.html)<sup>New</sup> | ||
|
||
Coming Soon: | ||
![Label Studio](https://raw.githubusercontent.com/heartexlabs/label-studio/master/images/label-studio-examples.gif) | ||
|
||
- Time series | ||
- Video | ||
<br/> | ||
|
||
## Usage | ||
## Summary | ||
|
||
### Frontend package | ||
<img align="right" height="180" src="https://github.com/heartexlabs/label-studio/blob/master/images/[email protected]?raw=true" /> | ||
|
||
```sh | ||
npm install label-studio | ||
``` | ||
- [Quick Start](#quick-start) | ||
- [One Click Deploy](#one-click-deploy) | ||
- [Features :star2:](#features-star2) | ||
- [Use Cases](#use-cases) | ||
- [Machine Learning Integration](#machine-learning-integration) | ||
- [For Teams and Enterprises :office:](#label-studio-for-teams-startups-and-enterprises-office) | ||
- [Ecosystem](#ecosystem) | ||
- [License](#license) | ||
|
||
Check [documentation](https://labelstud.io/guide/frontend.html) about frontend integration. | ||
## Quick Start | ||
|
||
### Backend and frontend | ||
```bash | ||
# Requires >=Python3.6 | ||
pip install label-studio | ||
|
||
Check [documentation](https://labelstud.io/guide/backend.html) about backend + frontend integration. | ||
# Initialize the project in labeling_project path | ||
label-studio init labeling_project | ||
|
||
### Docker | ||
```sh | ||
docker run -p 8200:8200 -t -i heartexlabs/label-studio -c config.json -l ../examples/chatbot_analysis/config.xml -i ../examples/chatbot_analysis/tasks.json -o output | ||
# Start the server | ||
label-studio start labeling_project | ||
``` | ||
|
||
### Machine learning integration | ||
## One Click Deploy | ||
|
||
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy) | ||
[![Deploy to Azure](https://azurecomcdn.azureedge.net/mediahandler/acomblog/media/Default/blog/deploybutton.png)](https://azuredeploy.net/) | ||
[![Run on Google Cloud](https://deploy.cloud.run/button.svg)](https://deploy.cloud.run) | ||
|
||
## Features :star2: | ||
|
||
- **Simple**: Crafted with minimal UI design. A simple design is the best design. | ||
- **Configurable**: Using high-level jsx tags config, you can fully customize the visual interface for your data. It feels like building a custom labeling tool for your specific needs. And it's fast to do. | ||
- **Collaborative Annotations**: Label the same task by two or more people and compare the results. | ||
- **Multiple Data Types**: Label _Images_, _Audios_, _Texts_, _HTMLs_, _Pairwise_ types with different labeling scenarios that you define yourself. | ||
- **Import Formats**: JSON, CSV, TSV, RAR and ZIP archives | ||
- **Mobile-Friendly**: Works on devices of different sizes. | ||
- **Embeddable**: It's an [NPM package](https://github.com/heartexlabs/label-studio-frontend) too. You can include it in your projects. | ||
- **Machine Learning**: Integration support for machine learning. Visualize and compare predictions from different models. Use the best ones for pre-labeling. | ||
- **Stylable**: Configure the visual appearance to match your company brand, distribute the labeling tasks as a part of your product. | ||
|
||
## Use Cases | ||
|
||
The list of supported use cases for data annotation. Please contribute your own configs and feel free to extend the base types to support more scenarios. Note that it's not an extensive list and has only major scenarios. | ||
|
||
| Task | Description | | ||
|-|-| | ||
| **Image** | | | ||
| Classification | Put images into categories | | ||
| Object Detection | Detect objects in an image using a bounding box or polygons | | ||
| Semantic Segmentation | Detect for each pixel the object category it belongs to | | ||
| Pose Estimation | Mark positions of a person’s joints | | ||
| **Text** | | | ||
| Classification | Put texts into categories | | ||
| Summarization | Create a summary that represents the most relevant information within the original content | | ||
| HTML Tagging | Annotate things like resumes, research, legal papers and excel sheet converted to HTML | | ||
| **Audio** | | | ||
| Classification | Put audios into categories | | ||
| Speaker Diarisation | partitioning an input audio stream into homogeneous segments according to the speaker identity | | ||
| Emotion Recognition | Tag and identifying emotion from the audio | | ||
| Transcription | Write down verbal communication in text | | ||
| **Comparison** | | | ||
| Pairwise | Comparing entities in pairs to judge which of each entity is preferred | | ||
| Ranking | Sort items in the list according to some property | | ||
|
||
## Machine Learning Integration | ||
|
||
You can easily connect your favorite machine learning framework with Label Studio by using [Heartex SDK](https://github.com/heartexlabs/pyheartex). | ||
|
||
That gives you the opportunities to: | ||
- use model predictions as prelabeling | ||
- simultaneously update (retrain) your model while new annotations are coming | ||
- perform labeling in active learning mode | ||
- instantly create running production-ready prediction service | ||
That gives you the opportunities to use: | ||
- **Pre-labeling**: Use model predictions for pre-labeling | ||
- **Online Learning**: Simultaneously update (retrain) your model while new annotations are coming | ||
- **Active Learning**: Perform labeling in active learning mode | ||
- **Prediction Service**: Instantly create running production-ready prediction service | ||
|
||
There is a quick example tutorial how to do that with simple image classification: | ||
There is a quick example tutorial on how to do that with simple image classification: | ||
|
||
0. Create a new project | ||
```bash | ||
label-studio init --template=image_classification imgcls | ||
``` | ||
1. Clone pyheartex, and start serving: | ||
```bash | ||
git clone https://github.com/heartexlabs/pyheartex.git | ||
cd pyheartex/examples/docker | ||
docker-compose up -d | ||
``` | ||
2. Specify running server in your label config: | ||
2. Specify running server url in `imgcls/config.json`: | ||
```json | ||
"ml_backend": { | ||
"url": "http://localhost:9090", | ||
"model_name": "my_super_model" | ||
} | ||
``` | ||
3. Launch Label Studio with [image classification config](examples/image_classification/config.xml): | ||
3. Launch Label Studio server: | ||
```bash | ||
python server.py -l ../examples/image_classification/config.xml | ||
label-studio start imgcls | ||
``` | ||
|
||
Once you're satisfied with prelabeling results, you can imediately send prediction requests via REST API: | ||
Once you're satisfied with pre-labeling results, you can immediately send prediction requests via REST API: | ||
```bash | ||
curl -X POST -H 'Content-Type: application/json' -d '{"image_url": "https://go.heartex.net/static/samples/kittens.jpg"}' http://localhost:8200/predict | ||
``` | ||
Feel free to play around any other models & frameworks apart from image classifiers! (see instructions [here](https://github.com/heartexlabs/pyheartex#advanced-usage)) | ||
## Changelog | ||
Detailed changes for each release are documented in the [release notes](https://github.com/heartexlabs/label-studio/releases). | ||
## Stay In Touch | ||
- [Slack](https://docs.google.com/forms/d/e/1FAIpQLSdLHZx5EeT1J350JPwnY2xLanfmvplJi6VZk65C2R4XSsRBHg/viewform?usp=sf_link) | ||
- [Twitter](https://twitter.com/heartexlabs) | ||
- [Email](mailto:[email protected]) | ||
## Label Studio for Teams, Startups, and Enterprises :office: | ||
## Contributing | ||
Please make sure to read the | ||
- [Contributing Guideline](/CONTRIBUTING.md) | ||
- [Code Of Conduct](/CODE_OF_CONDUCT.md) | ||
Label Studio for Teams is our enterprise edition (cloud & on-prem), that includes a data manager, high-quality baseline models, active learning, collaborators support, and more. Please visit the [website](https://www.heartex.ai/) to learn more. | ||
## Label Studio for Teams, Startups, and Enterprises | ||
## Ecosystem | ||
Label Studio for Teams is our enterprise edition (cloud & on-prem), that includes a data manager, high-quality baseline models, active learning, collaborators support, and more. Please visit the [website](https://www.heartex.ai/) to learn more. | ||
| Project | Description | | ||
|-|-| | ||
| label-studio | Server part, distributed as a pip package | | ||
| [label-studio-frontend](https://github.com/heartexlabs/label-studio-frontend) | Frontend part, written in JavaScript and React, can be embedded into your application | | ||
| [converter](https://github.com/heartexlabs/converter) | Encode labels into the format of your favorite machine learning library | | ||
| [label-studio-transformers](https://github.com/heartexlabs/label-studio-transformers) | Transformers library connected and configured for use with label studio | | ||
## License | ||
This software is licensed under the [Apache 2.0 LICENSE](/LICENSE) © [Heartex](https://www.heartex.net/). | ||
This software is licensed under the [Apache 2.0 LICENSE](/LICENSE) © [Heartex](https://www.heartex.ai/). 2020 | ||
<div align="center"> | ||
<a href="https://labelstud.io/"><img src="https://github.com/heartexlabs/label-studio/blob/master/images/opossum_looking.png?raw=true" title="Hey everyone!" height="140" width="140"></a> | ||
<h3>Happy Labeling!</h3> | ||
</div> | ||
<img src="https://github.com/heartexlabs/label-studio/blob/master/images/opossum_looking.png?raw=true" title="Hey everyone!" height="140" width="140" /> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{ | ||
"name": "Label Studio", | ||
"description": "Multi-type data labeling, annotation and exploration tool", | ||
"keywords": ["data annotation", "data labeling"], | ||
"website": "https://labelstud.io", | ||
"repository": "https://github.com/heartexlabs/label-studio", | ||
"logo": "https://labelstud.io/images/opossum/heartex_icon_opossum_green.svg", | ||
"success_url": "/", | ||
"stack": "container" | ||
} |
Oops, something went wrong.