yuturuishi/ytlabel

YOLO标注工具,AI自动标注,大模型提示词自动标注,自动采集视频,自动收集数据集

ytlabel – AI 支援ラベリングを備えたオープンソースの画像/動画アノテーションツール

概要

  • 画像(矩形、ポリゴンなど)や動画を手動でラベリングし、YOLO 互換形式で結果をエクスポートするための軽量な Web ベースのアプリケーションです。
  • ユーザーが提供する大規模モデル API(例:LMStudio、vLLM、Ollama、Alibaba Cloud)を呼び出して、AI 自動ラベル を生成することもできます。
  • このツールはデータアノテーションとデータセットエクスポートに焦点を当てています。モデルトレーニングは別のプロジェクト(ytstudio)で処理されます。

主な機能

  • 手動ラベリング – 矩形、ポリゴン、マルチクラスタグ; LabelMe データセットからのインポート。
  • AI 自動ラベリング – 設定した任意のローカルホスト LLM/VLM API 用のプラグイン。外部データは送信されません。
  • データセットエクスポート – YOLO 形式で、train/val/test 分割を設定可能。
  • ファイルマネージャー – 画像とアノテーションファイルの閲覧、アップロード、ダウンロード、削除。
  • オフラインファースト – すべての静的アセットがバンドルされており、サーバーは隔離されたイントラネットで実行できます。
  • キーボードショートカット – Ctrl+S で保存、Ctrl+Shift+D でラベルをクリア。

始め方

# リポジトリをクローンし、仮想環境を作成
python -m venv venv
source venv/bin/activate   # Windows の場合は venv\Scripts\activate

# 依存関係をインストール(清華 PyPI ソースからミラーリング)
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

# Flask サーバーを実行
python app.py --host 0.0.0.0 --port 9924

最新のブラウザで http://127.0.0.1:9924 を開くと、ラベリング UI が表示されます。

プロジェクト構成(概要)

  • app.py – エントリポイント。Flask + SocketIO サーバーを起動します。
  • AiUtils.py – 設定された大規模モデル API に画像を転送し、返されたアノテーションを解析するヘルパークラス。
  • templates/ – HTML ページ(index.html、ai_config.html、file_manager.html)。
  • static/ – CSS、JavaScript、アイコン、およびオフライン使用のためのバンドルされた Socket.IO クライアントライブラリ。
  • uploads/ – アップロードされたメディア、生成されたアノテーションファイル、ユーザー固有の設定のためのランタイムストレージ。

技術スタック

  • バックエンド: Python 3.9+、Flask、Flask-SocketIO。
  • フロントエンド: HTML / CSS / JavaScript、Socket.IO によるリアルタイム更新。
  • 画像処理: OpenCV と Pillow (PIL)。
  • パッケージング: オプションのスタンドアロンバイナリ用 PyInstaller 仕様(ytlabel.spec)。

ライセンス

  • ytlabel 用に書かれたコードは MIT ライセンスでリリースされています。
  • サードパーティのライブラリは元のライセンスを保持します。
  • AI 自動ラベリング機能は、ユーザー制御のモデル API にリクエストを転送するだけです。ytlabel 自体はモデルウェイトを同梱していません。

誰が使うか

  • カスタムコンピュータビジョンデータセットを構築する研究者やエンジニアで、シンプルで自己ホスト型のラベリング UI を必要とする方。
  • データをオンプレミスに保ちながら、画像をクラウドサービスに送信せずに大規模モデルの支援を活用したいチーム。
  • Flask ベースで、クロスプラットフォーム、オフライン展開用にパッケージ化できるラベリングツールを探している方。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト