機械学習モデルの精度を高めるためには、高品質で正確なデータセットが不可欠であり、その鍵となるのがデータのアノテーションです。アノテーションデータの品質は、モデルの性能向上や信頼性の確保に直接的に影響するため、効果的かつ高品質なアノテーションを行うためには、柔軟かつ使いやすいツールが必要です。本記事では、多様なデータタイプに対応したオープンソースのアノテーションツール「Label Studio」のDockerを用いた環境構築方法について解説します。
目次
1. 前提条件
本記事の内容はUbuntu 24.04で動作確認を行いましたが、それほど環境にシビアではないと思いますので、Ubuntu 22.04やWindows等の別のOSでも概ね問題なく動作するかと思います。
本記事で使用するLabel StudioおよびML Backend (Segment Anything Model)は使いやすいように若干の修正を加えているため、オリジナルのソースを使用したい方は以下のリポジトリを参照してください。なお、本記事で使用するソースはオリジナルのリポジトリの変更を適時取り込んでいるため、できるだけ都度動作確認をしてはいますが、場合によっては不具合が含まれる場合もある点につきまして予めご了承ください。
本記事で使用しているリポジトリ
オリジナルのリポジトリ
事前にインストールしておく必要があるものと、動作確認を行ったバージョンは以下の通りです。
必須項目
- Docker
docker --version
Docker version 27.3.1, build ce12230
- Docker Compose
docker compose version
Docker Compose version v2.29.7
Segment Anything Modelを使用する場合のみ必須
- NVIDIA-Drivers
nvidia-smi
# 一部抜粋
NVIDIA-SMI 560.35.03
Driver Version: 560.35.03
CUDA Version: 12.6
- NVIDIA Container Toolkit
dpkg -l | grep nvidia-container-toolkit
ii nvidia-container-toolkit 1.16.2-1 amd64 NVIDIA Container toolkit
ii nvidia-container-toolkit-base 1.16.2-1 amd64 NVIDIA Container Toolkit Base
2. Label Studioのインストール
docker networkを作成
docker network create label-studio
ソースをclone
cd /opt
sudo git clone https://github.com/Unvelyze/label-studio.git
Label Studioの起動
cd /opt/label-studio
docker compose -f compose.yaml up -d
動作確認
ブラウザから http://{IP_ADDRESS}:8080
にアクセスできれば完了。
3. Segment Anything Modelのインストール
Segment Anything ModelをLabel Studioと連携させたい場合は以下の設定を行います。
Label Studio ML Backendのclone
cd /opt
sudo git clone https://github.com/Unvelyze/label-studio-ml-backend.git
環境変数の設定
docker-compose.yml
内で以下の2つの環境変数を設定する。
- LABEL_STUDIO_HOST : Label StudioサーバのURLを設定
- LABEL_STUDIO_ACCESS_TOKEN : Label Studioを開いて右上の Account & Settings から取得可能(参考)
sudo vi /opt/label-studio-ml-backend/label_studio_ml/examples/segment_anything_model/docker-compose.yml
...
environment:
...
- LABEL_STUDIO_HOST=http://{IP_ADDRESS}:8080
- LABEL_STUDIO_ACCESS_TOKEN={YOUR_ACCESS_TOKEN}
...
ML Backendの起動
cd /opt/label-studio-ml-backend/label_studio_ml/examples/segment_anything_model
docker compose up -d
動作確認
以下のようなレスポンスが返ってくれば完了。
curl http://localhost:9090/
{"model_class":"SamMLBackend","status":"UP"}
4. Label Studio上での設定の注意事項
Segment Anything Modelを使用するためのLabel Studio上での設定は公式ドキュメントをご確認いただければと思いますが、Dockerを使用している際の注意点を記載しておきます。
Label Studioでプロジェクトを作成して Settings > Model
からML Backendとの接続を設定する際に Backend URL
は以下の画像のようにしてください。
# Backend URL
http://segment_anything_model:9090