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。其他 CUDA 或 CUDNN 版本可能会也可能不会工作。对于 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 的开发得到了多个来源的资助,特别感谢此处列出的资金。