このリポジトリはアーカイブされ、Label Studio SDK にマージされています: https://github.com/HumanSignal/label-studio-sdk/tree/master/src/label_studio_sdk/converter
ウェブサイト • ドキュメント • Twitter • Slack コミュニティに参加する
導入
例
JSON
CSV
2003年CoNLL
ココ
パスカル VOC XML
YOLOからラベルスタジオへのコンバーター
使用法
チュートリアル: ローカル ストレージを使用した YOLO 事前アノテーション付き画像の Label Studio へのインポート
貢献する
ライセンス
Label Studio Format Converter を使用すると、ラベルをお気に入りの機械学習ライブラリの形式にエンコードできます。
コマンドラインから実行する場合:
pip install -U ラベルスタジオコンバーター python label-studio-converter import -i exported_tasks.json -c Examples/sentiment_analysis/config.xml -o Output_dir -f CSV
Pythonから実行:
from label_studio_converter import Converterc = Converter('examples/sentiment_analysis/config.xml')c.convert_to_json('examples/sentiment_analysis/completions/', 'tmp/output.json')
出力ファイルの取得: tmp/output.json
[ {"reviewText": "良いケース、優れた価値。","sentiment": "肯定的" }、 {"reviewText": "お金と時間の無駄だ!","sentiment": "否定的" }、 {"reviewText": "ガチョウの首には少しなだめる必要があります","センチメント": "中立" } 】
ユースケース: あらゆるタスク
コマンドラインから実行する場合:
python label_studio_converter/cli.py --input example/sentiment_analysis/completions/ --config example/sentiment_analysis/config.xml --output Output_dir --format CSV --csv-separator $'t'
Pythonから実行:
from label_studio_converter import Converterc = Converter('examples/sentiment_analysis/config.xml')c.convert_to_csv('examples/sentiment_analysis/completions/', 'output_dir', sep='t', header=True)
出力ファイルtmp/output.tsv
を取得します。
レビューテキストの感情良いケース、優れた価値。肯定的お金と時間の無駄だ!否定的グースネックには少しなだめる必要がある中立
ユースケース: あらゆるタスク
コマンドラインから実行する場合:
python label_studio_converter/cli.py --input example/named_entity/completions/ --config example/named_entity/config.xml --output tmp/output.conll --format CONLL2003
Pythonから実行:
from label_studio_converter import Converterc = Converter('examples/named_entity/config.xml')c.convert_to_conll2003('examples/named_entity/completions/', 'tmp/output.conll')
出力ファイルtmp/output.conll
の取得
-DOCSTART- -X- O
Showers -X- _ O
continued -X- _ O
throughout -X- _ O
the -X- _ O
week -X- _ O
in -X- _ O
the -X- _ O
Bahia -X- _ B-Location
cocoa -X- _ O
zone, -X- _ O
...
使用例: テキストのタグ付け
コマンドラインから実行する場合:
python label_studio_converter/cli.py --input example/image_bbox/completions/ --config example/image_bbox/config.xml --output tmp/output.json --format COCO --image-dir tmp/images
Pythonから実行:
from label_studio_converter import Converterc = Converter('examples/image_bbox/config.xml')c.convert_to_coco('examples/image_bbox/completions/', 'tmp/output.conll',output_image_dir='tmp/images')
出力イメージはtmp/images
にあります
出力ファイルtmp/output.json
の取得
{ "画像": [ { "幅": 800、"高さ": 501、"id": 0、"ファイル名": "tmp/images/62a623a0d3cef27a51d3689865e7b08a"} ]、「カテゴリ」: [ { "id": 0, "name": "惑星"}, { "id": 1, "name": "ムーンウォーカー"} ]、「注釈」: [ { "id": 0, "image_id": 0, "category_id": 0, "segmentation": [], "bbox": [299,6,377,260 ], "ignore": 0, "iscrowd": 0, "area ": 98020}, { "id": 1, "image_id": 0, "category_id": 1, "segmentation": [], "bbox": [288,300,132,90 ], "ignore": 0, "iscrowd": 0, "area ":11880} ]、"情報": {"年": 2019、"バージョン": "1.0"、"投稿者": "Label Studio" } }
使用例: 画像オブジェクトの検出
コマンドラインから実行する場合:
python label_studio_converter/cli.py --input example/image_bbox/completions/ --config example/image_bbox/config.xml --output tmp/voc-annotations --format VOC --image-dir tmp/images
Pythonから実行:
from label_studio_converter import Converterc = Converter('examples/image_bbox/config.xml')c.convert_to_voc('examples/image_bbox/completions/', 'tmp/output.conll', Output_image_dir='tmp/images')
出力イメージはtmp/images
にあります。
対応するアノテーションはtmp/voc-annotations/*.xml
にあります。
<注釈> <フォルダ>tmp/imagesフォルダ> <ファイル名>62a623a0d3cef27a51d3689865e7b08aファイル名> <ソース> <データベース>MyDatabaseデータベース>COCO2017 フリッカー NULL ソース> <所有者>NULL ラベル スタジオ 所有者> <サイズ> <幅>800幅> <高さ>501高さ> <深さ>3深さ> サイズ> <セグメント化>0セグメント化> <オブジェクト> <名前>惑星名前>未指定 <切り捨てられた>0切り捨てられた> <難しい>0難しい>オブジェクト> <オブジェクト> <名前>ムーンウォーカー 299 6 676 266 未指定 <切り捨てられた>0切り捨てられた> <難しい>0難しい>オブジェクト> 注釈> 288 300 420 390
使用例: 画像オブジェクトの検出
まず YOLO フォルダーの構造を確認します。ルートが/yolo/datasets/one
であることに注意してください。
/yolo/datasets/one images - 1.jpg - 2.jpg - ... labels - 1.txt - 2.txt classes.txt
クラス.txtの例
Airplane Car
label-studio-converter import yolo -i /yolo/datasets/one -o ls-tasks.json --image-root-url "/data/local-files/?d=one/images"
?d=
からの URL パスは、 LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT
で設定したパスに対する相対パスです。
ローカルストレージに関する注意事項
Label Studio を実行するには、 LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=/yolo/datasets
( /yolo/datasets/one
ではなく、 /yolo/datasets
) を設定することが非常に重要です。
プロジェクト設定で新しいローカル ストレージを追加し、絶対ローカル パスを/yolo/datasets/one/images
(Windows の場合はc:yolodatasetsoneimages
) に設定します。
クラウドストレージに関する注意事項
--image-root-url
使用して、タスク URL に正しいプレフィックスを作成します (例: --image-root-url s3://my-bucket/yolo/datasets/one
。
対応するバケットとプレフィックスを使用して、プロジェクト設定に新しい Cloud Storage を追加します。
ヘルプコマンド
label-studio-converter import yolo -h usage: label-studio-converter import yolo [-h] -i INPUT [-o OUTPUT] [--to-name TO_NAME] [--from-name FROM_NAME] [--out-type OUT_TYPE] [--image-root-url IMAGE_ROOT_URL] [--image-ext IMAGE_EXT] optional arguments: -h, --help show this help message and exit -i INPUT, --input INPUT directory with YOLO where images, labels, notes.json are located -o OUTPUT, --output OUTPUT output file with Label Studio JSON tasks --to-name TO_NAME object name from Label Studio labeling config --from-name FROM_NAME control tag name from Label Studio labeling config --out-type OUT_TYPE annotation type - "annotations" or "predictions" --image-root-url IMAGE_ROOT_URL root URL path where images will be hosted, e.g.: http://example.com/images or s3://my-bucket --image-ext IMAGE_EXT image extension to search: .jpg, .png
このチュートリアルでは、さらに注釈を追加するために、YOLO 注釈を含むフォルダーを Label Studio にインポートするプロセスを説明します。環境のセットアップ、YOLO 注釈の Label Studio 形式への変換、プロジェクトへのインポートについて説明します。
Label Studio がローカルにインストールされている
YOLO アノテーション付きイメージと、ディレクトリ/yolo/datasets/one
内の対応する .txt ラベル ファイル。
label-studio-converter がインストールされています ( pip install label-studio-converter
経由で入手可能)
Label Studio を開始する前に、次の環境変数を設定して、ローカル ストレージ ファイルの提供を有効にします。
Unix システム:
export LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLED=true export LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=/yolo/datasets label-studio
Windows:
set LABEL_STUDIO_LOCAL_FILES_SERVING_ENABLED=true set LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=C:yolodatasets label-studio
/yolo/datasets
YOLO データセット ディレクトリへの実際のパスに置き換えます。
新しいプロジェクトを作成します。
プロジェクト設定に移動し、 [Cloud Storage] を選択します。
[ソース ストレージの追加]をクリックし、ストレージ タイプオプションからローカル ファイルを選択します。
Windows では、絶対ローカル パスを/yolo/datasets/one/images
またはc:yolodatasetsoneimages
に設定します。
Add storage
をクリックします。
ローカル ストレージの詳細については、ドキュメントを確認してください。
変換されたアノテーションを YOLO からインポートする前に、Label Studio を介してローカル ストレージから画像にアクセスできることを確認してください。新しいブラウザ タブを開き、次の URL を入力します。
http://localhost:8080/data/local-files/?d=one/images/.jpg
one/images/
画像の 1 つへのパスに置き換えます。画像はブラウザの新しいタブに表示されるはずです。イメージを開けない場合は、ローカル ストレージの構成が正しくありません。最も可能性の高い理由は、ローカル ストレージ設定またはLABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT
でPath
を指定したときに間違いがあったことです。
注: ?d=
からの URL パスはLABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT=/yolo/datasets
に対する相対パスである必要があります。つまり、実際のパスは/yolo/datasets/one/images/
となり、この画像はハード上に存在する必要があります。ドライブ。
label-studio-converter を使用して、YOLO 注釈を Label Studio が理解できる形式に変換します。
label-studio-converter import yolo -i /yolo/datasets/one -o output.json --image-root-url "/data/local-files/?d=one/images"
次に、 output.json
ファイルを Label Studio にインポートします。
Label Studio プロジェクトに移動します。
データ マネージャーで、 [インポート]をクリックします。
output.json
ファイルを選択してインポートします。
インポート後、Label Studio で、事前に注釈が付けられた境界ボックスを含む画像が表示されるはずです。注釈が正しいことを確認し、必要な調整を行います。
パスまたはイメージ アクセスに関する問題が発生した場合は、次のことを確認してください。
LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT が正しく設定されています。
変換コマンドの--image-root-url
相対パスと一致します。
`Absolute local path from Local Storage Settings` - `LABEL_STUDIO_LOCAL_FILES_DOCUMENT_ROOT` = `path for --image_root_url`
例えば:
/yolo/datasets/one/images - /yolo/datasets/ = one/images
Label Studio のローカル ストレージは、画像への絶対ローカル パス ( /yolo/datasets/one/images
) を使用して正しく設定されています。
詳細については、事前にアノテーションが付けられたデータのインポートとクラウド ストレージの設定に関するドキュメントを参照してください。
他のモデルへのコンバーターの作成にご協力いただければ幸いです。ご自由にプルリクエストを作成してください。
貢献ガイドライン
行動規範