VIAME 是一款專為DIY 人工智慧而設計的電腦視覺應用程序,包括物件偵測、物件追蹤、影像/視訊註釋、影像/視訊搜尋、影像拼接、影像增強、尺寸測量、多相機資料處理、快速模型生成,以及用於評估不同演算法的工具。 VIAME 最初針對海洋物種分析,現在包含許多常見演算法和函式庫,也可用作通用電腦視覺工具包。它包含許多用於完成上述任務的獨立工具、一個可以以多執行緒方式將 C/C++、Python 和 Matlab 節點連接在一起的管道框架,以及基於管道基礎設施之上的多種演算法。最後,部分演算法已整合到桌面和 Web 使用者介面中,以便在不同類型的環境中部署,並在 viame.kitware.com 上提供開放註釋存檔和 Web 平台範例。
使用者快速入門指南、教學影片和開發人員手冊更加全面,但以下也列出了按各個功能細分的精選條目:
文件概述<> 安裝<> 建置<> 所有範例<> 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-演算法-最新
該映像是無頭的(即,它不包含 GUI),並且在 /opt/noaa/viame 資料夾中包含 VIAME 桌面(不是 Web)安裝。有關 VIAME-Web docker 容器的鏈接,請參閱安裝文件中的上述部分。大多數附加模型不包含在實例中,但可以透過執行 bin 資料夾中的腳本 download_viame_addons.sh 來下載。
這些說明適用於開發人員或有興趣建立最新版本分支的人員。任何有興趣按原樣運行軟體而不對其進行修改的人都應該使用上一節中列出的安裝程序,而無需進行軟體建置。可以在此處找到更深入的構建說明,但該軟體可以構建為超級構建(它會與自身一起構建其大部分依賴項),也可以獨立構建。要建置 VIAME,至少需要 Git、CMake 和 C++ 編譯器。也建議安裝 Python 和 CUDA。如果使用 CUDA,則首選版本 11.7 或 11.6,並使用 CUDNN 8。對於 python 發行版,至少需要 Python3.6 或更高版本,同時安裝 pip。
要在 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(用於註釋和影片搜尋的檢視和搜尋) |
VIAME_ENABLE_DOCS | 建置 Doxygen 類別級文件(放入安裝樹中) |
VIAME_BUILD_DEPENDENCIES | 將 VIAME 構建為超級構建,構建所有依賴項(預設) |
VIAME_INSTALL_EXAMPLES | 將上述模組的範例安裝到 install/examples 樹中 |
VIAME_下載_模型 | 下載預先訓練的模型以與範例和介面一起使用 |
最後,一些建構具有更專業功能的演算法或介面的標誌:
旗幟 | 描述 |
---|---|
VIAME_ENABLE_TENSORFLOW | 建構 TensorFlow 物件偵測器插件 |
VIAME_ENABLE_DARKNET | 建置 Darknet (YOLO) 物件偵測器插件 |
VIAME_ENABLE_TENSORRT | 建構 TensorRT 物件偵測器插件 |
VIAME_ENABLE_BURNOUT | 建立基於 Burn-Out 的像素分類器插件 |
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 | 建構華盛頓大學魚類分類器插件 |
VIAME_ENABLE_MATLAB | 開啟對所有 matlab 進程的支援並安裝 |
VIAME_ENABLE_LANL | 建立額外的 (Matlab) 扇貝檢測器 |
維亞美 ├── cmake # 子包的CMake配置文件 ├── docs # 文件檔案與手冊(預編譯) ├── configs # 所有系統可運行的設定檔和模型 │ ├── pipelines # 所有處理管道配置 │ │ └── models # 所有模型,僅依據flags下載 │ ├── prj-linux # 預設linux工程文件 │ └── prj-windows # 預設windows工程文件 ├── Examples # 所有可運行的範例和範例教程 ├── packages # 系統所使用的外部項目 │ ├── kwiver # 處理後端基礎設施 │ ├── fletch # 不常改變的東西的依賴建構器 │ ├── kwant # 評分與偵測器評估工具 │ ├── vivia # 基準桌面 GUI (v1.0) │ └── ... # 各種其他套件(通常用於演算法) ├── 外掛程式 # 外部專案的整合演算法或包裝器 │ └── ... # 各種插件(偵測器、深度圖、濾鏡等) ├── tools # 獨立的工具或腳本,通常基於上述工具或腳本構建 └── README.md # 您正在閱讀的專案介紹頁面 └── RELEASE_NOTES.md # 每個版本系統最新更新列表
如果您已經簽出 VIAME 並想要切換分支或更新程式碼,重新運行非常重要:
git submodule update --init --recursive
切換分支後,確保建置中的子包具有正確的雜湊值。在極少數情況下,您可能還需要運行:
git submodule sync
以防萬一子模組的位址發生變化。僅當出現“cannot fetch hash #hashid”錯誤時才需要執行此命令。
VIAME 是根據 BSD-3 許可證發布的。
可以在此處找到專案中與貢獻者一起使用的相關論文的非完整清單。
VIAME 的開發得到了多個來源的資助,特別感謝此處列出的資金。