VIAME/VIAME
Video and Image Analytics for Multiple Environments
VIAME – DIYコンピュータビジョンツールキット
概要 – VIAME(Vision for Intelligent Analytic Media Extraction)は、AIを活用した動画・画像解析アプリケーションを構築するための、多数のアルゴリズム、パイプライン、ユーザーインターフェースをまとめたオープンソースのコンピュータビジョンフレームワークです。当初は海洋科学コミュニティでの種の解析用に始まりましたが、現在は汎用的で拡張可能なツールキットに成長しています。
主要なアイデア
- パイプライン中心: C++/Pythonノードをマルチスレッドのパイプライン(KitwareのKWIVER上に構築)で接続します。
- プラグインアーキテクチャ: アルゴリズム(検出器、トラッカー、フィルター、測定ツールなど)はプラグインとして提供され、カスタムコードと組み合わせることができます。
- デュアルUI: アノテーション、トレーニング、視覚検査用のデスクトップGUI(VIVIA/DIVE)と、リモート使用用のWebベースバージョンを提供します。
- エンドツーエンドのワークフロー: 生の動画 → データアノテーション → モデルトレーニング → 推論 → 評価 → 検索/モザイク処理までを一貫して行えます。
主な機能
| 機能 | できること |
|---|---|
| 物体検出・追跡 | 事前トレーニング済みの検出器を実行し、新しいモデルをトレーニングし、動画ストリーム全体で物体トラックを生成します。 |
| データアノテーション | バウンディングボックス、ポリゴン、ステレオ測定を描画するための対話型ツール(デスクトップおよびWeb)。 |
| マルチカメラ・ステレオ | フィードを統合し、実世界のサイズを測定し、モザイクを生成します。 |
| 画像強調 | 解析前にフィルター、ノイズ除去、コントラスト向上を適用します。 |
| 高速モデル生成と検索 | 小さなラベル付きセットでモデルを構築し、大規模な動画アーカイブを検索するために使用します。 |
| 評価・スコアリング | 検出・トラックをグラウンドトゥルースのCSV/COCO/JSON形式と比較します。 |
| 拡張可能なパイプライン | C++またはPythonのプロセスを任意に組み合わせ、plugins/ディレクトリに新しいプラグインを追加できます。 |
入手方法
- プリビルドバイナリ – Windows
.zipまたは Linux.tar.gzパッケージ(GPU対応またはCPUのみ)がREADMEにリンクされています。 - Docker – ヘッドレスなコマンドラインコンテナ用に
kitware/viame:gpu-algorithms-defaultをプルします。完全なWeb/デスクトップイメージも提供されています。 - Pythonパッケージ –
pip install viame(Python 3.10〜3.14)。パッケージには、コアツールをラップし、追加モデルをダウンロードできるviameコマンドラインインターフェースが含まれます。 - ソースからビルド – リポジトリをクローンし、サブモジュールを初期化し、CMakeをオプションフラグ(例:
VIAME_ENABLE_PYTORCH、VIAME_ENABLE_CUDA)付きで実行します。正確なコマンドはQuick Buildセクションを参照してください。
典型的なコマンドラインのワークフロー
# 環境のセットアップ(バイナリまたはソースインストール用)
source /opt/noaa/viame/setup_viame.sh
# 動画にパイプラインを実行
viame run my_pipeline.pipe video.mp4
# ラベル付きデータセットで検出器をトレーニング
viame train data/ train_detector.conf
# 結果を評価
viame score detections.csv groundtruth.csv
# 追加モデルの一覧表示とインストール
viame add-ons
同じパイプラインは、viameパッケージ経由でPythonから呼び出したり、基盤となるKWIVERクラスをインポートして使用できます。
インストールのハイライト
- ディスクスペース約8GBが必要です。
- GPUアクセラレーションには、NVIDIA GPU(VRAM 8GB以上、ドライバ≥570.65)が必要です。
- 対応OS: Windows 7/8/10/11(64ビット)、Linux(RHEL、CentOS、Ubuntu)、Webツール用にMacOSの限定的なサポート。
- オプションの依存関係(OpenCV、VXL、PyTorch、CUDA、TensorRT、ONNX、TensorFlow、Darknet、MATLAB)はCMakeフラグで切り替えられます。
ドキュメントとコミュニティ
- クイックスタートガイドと完全なマニュアルは https://viame.github.io/VIAME/ でホストされています。
- 例のパイプライン、チュートリアル、プラグインテンプレートは
examples/とplugins/ディレクトリにあります。 - 公開アノテーションアーカイブとWebアノテーターは https://viame.kitware.com/ で利用できます。
- プロジェクトはBSD-3ライセンスです。引用と謝辞は
docs/citations.mdとdocs/acknowledgements.mdに記載されています。
誰が使うか
- 動画解析用の既製ツールボックスを必要とする研究者(例:野生生物モニタリング、監視、産業検査)。
- GPU対応のC++/Pythonハイブリッドフレームワークを必要とするカスタムAIパイプラインを構築する開発者。
- ラベリング用のGUIとバッチ処理用のヘッドレスCLIの両方を必要とするチーム。
上記の情報はすべてリポジトリのREADMEから直接取得したものであり、追加の機能は推測されていません。
関連
- プロジェクト
- プロジェクト
- Dispatch
- プロジェクト
- プロジェクト