VIAME は、物体検出、物体追跡、画像/ビデオ注釈、画像/ビデオ検索、画像モザイク処理、画像強調、サイズ測定、マルチカメラ データ処理、迅速なモデル生成などを含む、DIY 人工知能用に設計されたコンピュータ ビジョン アプリケーションです。 、およびさまざまなアルゴリズムを評価するためのツール。 VIAME はもともと海洋種の分析を対象としていたものですが、現在では多くの一般的なアルゴリズムとライブラリが含まれており、汎用のコンピューター ビジョン ツールキットとしても役立ちます。これには、上記を実現するための多数のスタンドアロン ツール、C/C++、Python、MATLAB ノードをマルチスレッド方式で接続できるパイプライン フレームワーク、およびパイプライン インフラストラクチャ上にある複数のアルゴリズムが含まれています。最後に、アルゴリズムの一部は、さまざまな種類の環境での展開のためにデスクトップと Web ユーザー インターフェイスの両方に統合されており、オープンな注釈アーカイブと Web プラットフォームのサンプルは viame.kitware.com で入手できます。
ユーザーのクイック スタート ガイド、チュートリアル ビデオ、および開発者マニュアルはより包括的ですが、選択したエントリも個々の機能ごとに分類して以下にリストされています。
ドキュメントの概要 <> インストール <> 構築 <> すべての例 <> DIVE インターフェイス <> VIEW インターフェイス <> 検索と高速モデル生成 <> オブジェクト ディテクタ CLI <> オブジェクト トラッカー CLI <> ディテクタ トレーニング CLI <> ディテクタの評価 <> 検出ファイル形式 <> キャリブレーションと画像強調 <> レジストレーションとモザイク <> ステレオ測定と深度マップ <> パイプラインの概要 <> コアクラスとパイプライン情報 <> プラグイン統合 <> プラグイン テンプレートの例 <> C++ での埋め込みアルゴリズム
完全なインストール ガイドと VIAME のさまざまな種類の説明については、上記のクイック スタート ガイドを参照してください。完全なデスクトップ バージョンは、.msi、.zip、または .tar ファイルのいずれかとして提供されます。あるいは、スタンドアロン アノテーター (処理アルゴリズムなし) は、小規模なインストーラー経由で利用できます (下記の DIVE スタンドアロンを参照)。最後に、docker ファイルは VIAME デスクトップと Web の両方で利用できます (下記)。完全なデスクトップ インストールの場合は、バイナリを抽出し、選択したディレクトリ (Linux の場合は /opt/noaa/viame、Windows の場合は C:Program FilesVIAME など) に配置します。 GPU サポートで構築されたパッケージを使用する場合は、十分なビデオ ドライバー (バージョン 465.19 以降) がインストールされていることを確認してください。ドライバーをインストールする最適な方法は、オペレーティング システムによって異なります。手動アノテーターのみ (またはフレーム分類子のみ) を使用する場合、これは必要ありません。バイナリは、複数のデフォルトのモデル ファイルとプログラムが含まれているため、ディスク容量の点で非常に大きくなりますが、必要な機能をソースから構築するだけの場合 (埋め込みアプリなど)、バイナリははるかに小さくなります。
インストール要件:
インストールに関する推奨事項:
Windows フルデスクトップバイナリ:
Linux フルデスクトップバイナリ:
ウェブアプリケーション:
追加のパッケージ:
Docker イメージは https://hub.docker.com で入手できます。コマンドライン経由で実行可能な、コアアルゴリズムだけを備えたデフォルトのコンテナーについては、以下を参照してください。
kitware/viame:gpu-algorithms-latest
このイメージはヘッドレス (つまり、GUI を含まない) であり、フォルダー /opt/noaa/viame に VIAME デスクトップ (Web ではなく) インストールが含まれています。 VIAME-Web Docker コンテナへのリンクについては、インストール ドキュメントの上記のセクションを参照してください。ほとんどのアドオン モデルはインスタンスには含まれていませんが、bin フォルダー内のスクリプト download_viame_addons.sh を実行することでダウンロードできます。
これらの手順は、開発者または最新のリリース ブランチの構築に興味がある人を対象としています。ソフトウェアを変更せずにそのまま実行したい場合は、ソフトウェアのビルドを行わずに、前のセクションにリストされているインストーラーを使用してください。さらに詳細なビルド手順はここにありますが、ソフトウェアは、ほとんどの依存関係をそれ自体と一緒にビルドするスーパー ビルドとしてビルドすることも、スタンドアロンでビルドすることもできます。 VIAME を構築するには、少なくとも Git、CMake、および C++ コンパイラが必要です。 Python と CUDA のインストールも推奨されます。 CUDA を使用する場合は、CUDNN 8 を使用するバージョン 11.7 または 11.6 が推奨されます。他の CUDA または CUDNN バージョンは動作する場合と動作しない場合があります。 Python ディストリビューションの場合、pip がインストールされているとともに、少なくとも Python3.6 以降が必要です。
Linux のコマンド ラインでビルドするには、次のコマンドを使用します。[source-directory] と [build-directory] のみを任意の場所に置き換えます。これらのディレクトリは同じにすることもできますが、「src」チェックアウトを作成し、その横に別の「build」ディレクトリを作成することをお勧めします。
git clone https://github.com/VIAME/VIAME.git [source-directory]
cd [source-directory] && git submodule update --init --recursive
次に、ビルド ディレクトリを作成し、次のcmake
コマンドを実行します (コマンド ライン インターフェイスを使用していない場合は、代わりに cmake GUI を使用します)。
mkdir [build-directory] && cd [build-directory]
cmake -DCMAKE_BUILD_TYPE:STRING=Release [source-directory]
cmake
コマンドが完了したら、「ccmake」または cmake GUI を使用して必要なビルド フラグを構成し、Linux 上で次のコマンドを使用してビルドできます。
make -j8
あるいは、Visual Studio または Windows 上で選択したコンパイラーでビルドすることもできます。 Linux では、「-j8」は 8 スレッドを使用してマルチスレッドで実行するようにビルドに指示します。これはビルドを高速化するのに役立ちますが、エラーが発生した場合はそれを確認するのが難しい場合があります。その場合は「make」だけを実行すると問題が発生する可能性があります。もっと役立つ。 Windows の場合、現在 VS2019 が最もテストされたコンパイラーです。
viame には、ビルドするプラグインを制御するオプションの引数がいくつかあります (以下にリストするものなど)。 OpenCV などの別の依存関係に依存するプラグインが有効になっている場合、依存関係フラグが強制的にオンになります。何をオンにすればよいかわからない場合は、デフォルトの有効フラグと無効フラグをそのままにしておくのが最善です。これにより、ほとんどの (すべてではありませんが) 機能が構築されます。これらは、オンのままにすることをお勧めするコア コンポーネントです。
フラグ | 説明 |
---|---|
VIAME_ENABLE_OPENCV | OpenCV および基本的な OpenCV プロセス (ビデオ リーダー、シンプルな GUI) を構築します。 |
VIAME_ENABLE_VXL | VXL と基本的な VXL プロセス (ビデオ リーダー、画像フィルター) を構築します。 |
VIAME_ENABLE_PYTHON | Python プロセス (複数のアルゴリズム) の使用のサポートをオンにします。 |
VIAME_ENABLE_PYTORCH | すべての pytorch プロセス (検出器、トラッカー、分類器) をインストールします。 |
そして、どのシステム ユーティリティと最適化を構築するかを制御する多数のフラグ。例:
フラグ | 説明 |
---|---|
VIAME_ENABLE_CUDA | すべてのパッケージにわたって CUDA (GPU) の最適化を有効にします。 |
VIAME_ENABLE_CUDNN | すべてのプロセスにわたって CUDNN (GPU) の最適化を有効にします。 |
VIAME_ENABLE_DIVE | DIVE GUI (複数のシーケンスに対するアノテーションとトレーニング) を有効にします。 |
VIAME_ENABLE_VIVIA | VIVIA GUI の構築 (注釈およびビデオ検索のための VIEW および SEARCH) |
VIAME_ENABLE_DOCS | Doxygen クラスレベルのドキュメントを構築します (インストール ツリーに配置します)。 |
VIAME_BUILD_DEPENDENCIES | VIAME をスーパー ビルドとしてビルドし、すべての依存関係をビルドします (デフォルト) |
VIAME_INSTALL_EXAMPLES | 上記のモジュールのサンプルを install/example ツリーにインストールします |
VIAME_DOWNLOAD_MODELS | サンプルとインターフェイスで使用するための事前トレーニング済みモデルをダウンロードします。 |
そして最後に、アルゴリズムを構築したり、より特殊な機能とインターフェースしたりするためのいくつかのフラグがあります。
フラグ | 説明 |
---|---|
VIAME_ENABLE_TENSORFLOW | TensorFlow オブジェクト検出プラグインを構築します |
VIAME_ENABLE_DARKNET | Darknet (YOLO) オブジェクト検出プラグインを構築します |
VIAME_ENABLE_TENSORRT | TensorRT オブジェクト検出プラグインを構築します |
VIAME_ENABLE_BURNOUT | バーンアウトベースのピクセル分類プラグインを構築します |
VIAME_ENABLE_SMQTK | 画像/ビデオのインデックス作成と検索をサポートする SMQTK プラグインを構築します |
VIAME_ENABLE_KWANT | KWANT 検出および追跡評価 (スコアリング) ツールを構築します |
VIAME_ENABLE_LEARN | ローショット学習のための追加メソッドを構築します |
VIAME_ENABLE_SCALLOP_TK | Scallop-TK ベースのオブジェクト検出プラグインを構築します |
VIAME_ENABLE_SEAL | Seal マルチモダリティ GUI を構築 |
VIAME_ENABLE_ITK | ITKクロスモダリティ画像登録を構築 |
VIAME_ENABLE_UW_CLASSIFIER | UW 魚分類プラグインを構築します |
VIAME_ENABLE_MATLAB | すべての Matlab プロセスのサポートを有効にしてインストールします |
VIAME_ENABLE_LANL | 追加の (Matlab) ホタテ貝検出器を構築します |
ヴィアメ §── cmake # サブパッケージ用の CMake 設定ファイル §── docs # ドキュメントファイルとマニュアル(コンパイル前) §── configs # システムで実行可能なすべての設定ファイルとモデル │ §── Pipelines # すべての処理パイプライン構成 │ │ └─ モデル # フラグに基づいてのみダウンロードされるすべてのモデル │ §── prj-linux # デフォルトの Linux プロジェクト ファイル │ └─ prj-windows # デフォルトの Windows プロジェクト ファイル §── サンプル # すべての実行可能なサンプルとサンプル チュートリアル §── パッケージ # システムが使用する外部プロジェクト │ §── kwiver # バックエンドインフラストラクチャの処理 │ §── fletch # 頻繁に変更されないもの用の依存関係ビルダー │ §── kwant # スコアリングおよび検出器評価ツール │ §── vivia # ベースライン デスクトップ GUI (v1.0) │ └── ... # その他の各種パッケージ (通常はアルゴリズム用) §── プラグイン # 外部プロジェクトの統合アルゴリズムまたはラッパー │ └── ... # 各種プラグイン (検出器、深度マップ、フィルターなど) §── ツール # スタンドアロン ツールまたはスクリプト。多くの場合、上記に基づいて構築されます。 ━── README.md # 読んでいるプロジェクト紹介ページ └── RELEASE_NOTES.md # システムの最新アップデートのバージョンごとのリスト
すでに VIAME をチェックアウトしていて、ブランチを切り替えたりコードを更新したい場合は、以下を再実行することが重要です。
git submodule update --init --recursive
ブランチを切り替えた後、ビルド内のサブパッケージの正しいハッシュが存在することを確認します。ごくまれに、次のコマンドも実行する必要がある場合があります。
git submodule sync
サブモジュールのアドレスが変更された場合に備えて。このコマンドを実行する必要があるのは、「ハッシュ #bashid を取得できません」エラーが発生した場合のみです。
VIAME は BSD-3 ライセンスに基づいてリリースされています。
プロジェクト内で使用された関連論文と寄稿者をまとめた非網羅的なリストは、ここにあります。
VIAME は複数の資金源からの資金提供を受けて開発されました。ここに挙げた方々に特に感謝します。