Label StudioのAPIを利用するとき用のメモになります.下記で出てくる例は物体検出を例にしています.
Taskの一覧の取得
import os
import requests
LABEL_STUDIO_HOST = os.environ["LABEL_STUDIO_HOST"]
LABEL_STUDIO_PROJECT_ID = os.environ["LABEL_STUDIO_PROJECT_ID"]
LABEL_STUDIO_TOKEN = os.environ["LABEL_STUDIO_TOKEN"]
# page_sizeとpageによって取得できるタスクの範囲が変わるため、必要に応じて変更.
tasks = requests.get(
f"{LABEL_STUDIO_HOST}/api/tasks/?project={LABEL_STUDIO_PROJECT_ID}&page_size=1000&page=1",
headers={"Authorization": f"Token {LABEL_STUDIO_TOKEN}"},
).json()
Taskの新規登録
task_info = requests.post(
f"{LABEL_STUDIO_HOST}/api/tasks/?project={LABEL_STUDIO_PROJECT_ID}",
headers={"Authorization": f"Token {LABEL_STUDIO_TOKEN}"},
json={
"data": {"image": str(storage_file_path)}, # storage_file_pathはlocalならlocalのパス、Cloud上ならばCloud上のパス.
"project": LABEL_STUDIO_PROJECT_ID,
"file_upload": 1, # sync済みのdata source上のデータを読み込む場合は1
},
).json()
Pre-Annotationの登録
案件によっては、既存のモデルやシステムからラフなアノテーションが得られるときがあります.このときにはPre-Annotationを利用すると良いでしょう.
