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 ベースで、クロスプラットフォーム、オフライン展開用にパッケージ化できるラベリングツールを探している方。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト