ROCm/MIVisionX

GitHub: ROCm/MIVisionX

AMD 推出的开源计算机视觉工具包,基于 OpenVX 1.3 规范,在 CPU、HIP 和 OpenCL 后端上提供高性能视觉图计算与图像处理能力。

Stars: 216 | Forks: 90

[![MIT 许可](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT) [![文档](https://img.shields.io/badge/doc-readthedocs-blueviolet)](https://rocm.docs.amd.com/projects/MIVisionX/en/latest/) [![GitHub 标签 (最新 SemVer)](https://img.shields.io/github/v/tag/ROCm/MIVisionX)](https://github.com/ROCm/MIVisionX/releases)

AMD MIVisionX 是一个计算机视觉工具包,它基于高度优化且符合规范的 Khronos OpenVX™ 1.3 规范开源实现构建。自 `4.0.0` 版本起,MIVisionX 包含三个组件:[AMD OpenVX™](amd_openvx/README.md) 引擎、[AMD RPP](amd_openvx_extensions/amd_rpp/README.md) OpenVX 扩展,以及 [RunVX](utilities/runvx/README.md#amd-runvx) graph executor —— 跨越 `CPU`、`HIP` 和 `OpenCL` 后端。 ## AMD OpenVX™ 扩展 OpenVX 框架为供应商提供了一种添加新视觉功能的机制。MIVisionX 在 [AMD OpenVX™](amd_openvx/README.md) 核心引擎之上提供了以下扩展: * [amd_rpp](amd_openvx_extensions/amd_rpp/README.md):通过 [rocAL](https://github.com/ROCm/rocAL) 接入 [ROCm Performance Primitives](https://github.com/ROCm/rpp) (RPP) 以进行图像/tensor 增强 ## 实用工具 * [RunVX](utilities/runvx/README.md#amd-runvx):用于执行 GDF 文本文件中描述的 OpenVX graph 的命令行实用工具 ## 应用程序 基于 AMD OpenVX™ 和 OpenCV 构建的示例[应用程序](apps/README.md#applications)(需基于已安装的 MIVisionX 单独构建): * [bubble_pop](apps/bubble_pop):使用 OpenVX 和 OpenCV 创建并戳破气泡和甜甜圈 * [optical_flow](apps/optical_flow/README.md#openvx-samples):使用 OpenVX graph 在视频/实时流上运行光流 ## 前置条件 ### 硬件 * **CPU**:AMD64 * **GPU**:[AMD Radeon™ 显卡 / AMD Instinct™ 加速器](https://rocm.docs.amd.com/en/7.13.0-preview/compatibility/compatibility-matrix.html) [可选] * **APU**:[AMD Radeon™ 移动/嵌入式](https://rocm.docs.amd.com/en/7.13.0-preview/compatibility/compatibility-matrix.html) [可选] ### 操作系统 | 平台 | 支持版本 | |----------|--------------------| | Linux (Ubuntu) | `22.04` / `24.04` | | Linux (RedHat) | `8` / `9` | | Linux (SLES) | `15-SP7` | | Windows | `10` / `11` | | macOS | Ventura `13` / Sonoma `14` / Sequoia `15` | ### 库 **ROCm Core SDK**(ROCm `7.13` 或更高版本)提供了构建 MIVisionX 所需的一切:HIP 和 OpenCL 运行时、`amdclang++` 编译器、OpenMP、`half` (float16) 库,以及 `RPP`(`3.1.0` 或更高版本)。其他依赖项: | 包 | 最低版本 | 说明 | |---------|----------------|-------| | CMake | `3.10` | 从您的发行版包管理器安装 | | OpenCV | `3.X` / `4.X` | 可选 — 仅被 `RunVX` 用于图像/视频显示 | | OpenSSL / libcrypto | 任意 | 可选,仅限 Linux — 在 `RunVX` `compare` 命令中启用 MD5 校验和;缺失时使用内置的备选方案(Windows 自动使用 `wincrypt.h`) | ## 安装说明 ### Linux #### 安装 ROCm Core SDK 请根据您的 GPU 和操作系统遵循 [ROCm 安装指南](https://rocm.docs.amd.com/en/7.13.0-preview/install/rocm.html)。在继续之前,请确认您的硬件在[兼容性矩阵](https://rocm.docs.amd.com/en/7.13.0-preview/compatibility/compatibility-matrix.html)中。 #### 包安装 适用于 **ROCm `7.2.x` 及更低版本**。安装运行时库、开发头文件和 ctest 验证模块。 | 发行版 | 命令 | |--------|---------| | Ubuntu | `sudo apt-get install mivisionx mivisionx-dev mivisionx-test` | | RedHat | `sudo yum install mivisionx mivisionx-devel mivisionx-test` | | SLES | `sudo zypper install mivisionx mivisionx-devel mivisionx-test` | #### 源码安装 ``` sudo apt install cmake # or equivalent for your distro git clone https://github.com/ROCm/MIVisionX.git cd MIVisionX mkdir build-hip && cd build-hip cmake ../ # HIP backend (default); use -DBACKEND=OCL for OpenCL, -DGPU_SUPPORT=OFF for CPU make -j$(nproc) sudo make install ``` ### Windows * Windows SDK + C++17 工具链(Visual Studio 2019 或更高版本) * [CMake](https://cmake.org/download/) `3.10` 或更高版本 * 最新版 AMD [驱动程序](https://www.amd.com/en/support) * [OpenCL SDK](https://github.com/GPUOpen-LibrariesAndSDKs/OCL-SDK/releases/tag/1.0)(用于 OpenCL 后端) Windows 的默认后端是 `OpenCL`。在命令行中使用 CMake 进行构建,或者在 Visual Studio 中打开生成的解决方案: ``` git clone https://github.com/ROCm/MIVisionX.git cd MIVisionX # OpenCL backend(默认 — 需要 OpenCL SDK) cmake -B build cmake --build build --config Release # 仅 CPU(不需要 GPU 或 OpenCL SDK) cmake -B build -DGPU_SUPPORT=OFF cmake --build build --config Release ``` ### macOS 请参阅 [macOS 构建说明](https://github.com/ROCm/MIVisionX/wiki/macOS#macos-build-instructions) wiki 页面。 ## 验证安装 ### Linux / macOS 安装程序将文件复制到 `/opt/rocm`: | 路径 | 内容 | |------|----------| | `/opt/rocm/bin` | 可执行文件 (`runvx`) | | `/opt/rocm/lib` | 库 (`libopenvx.so`, `libvxu.so`, `libvx_rpp.so`) | | `/opt/rocm/include/mivisionx` | 头文件 | | `/opt/rocm/share/mivisionx` | 示例 | | `/opt/rocm/share/doc/mivisionx` | 文档 | **Canny 边缘检测示例:**

``` export PATH=$PATH:/opt/rocm/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/rocm/lib runvx /opt/rocm/share/mivisionx/samples/gdf/canny.gdf ``` **ctest 验证**(安装 `mivisionx-test` 包或从源码构建后): ``` mkdir mivisionx-test && cd mivisionx-test cmake /opt/rocm/share/mivisionx/test/ ctest -VV ``` ### Windows 使用 `RunVX` 验证构建输出。从 repo 根目录开始: ``` .\build\bin\Release\runvx.exe samples\gdf\skintonedetect.gdf ``` ## 文档 * [已发布的文档](https://rocm.docs.amd.com/projects/MIVisionX/en/latest/) 本地构建: ``` cd docs pip3 install -r sphinx/requirements.txt python3 -m sphinx -T -E -b html -d _build/doctrees -D language=en . _build/html ``` Doxygen API 文档: ``` cd docs/doxygen && doxygen Doxyfile ``` ## 技术支持 请在 [GitHub issues](https://github.com/ROCm/MIVisionX/issues) 上提交 bug,或发送电子邮件至 `mivisionx.support@amd.com`。 ## 发行说明 请查看最新版本的所有重要[变更](CHANGELOG.md#changelog)。 ### 测试过的配置 | 组件 | 版本 | |-----------|---------| | ROCm | `7.13` 或更高版本 (ROCm Core SDK) | | RPP | `3.1.0` | | OpenCV | `4.5.4` / `4.6`(可选,仅用于 RunVX 显示) |
标签:AMD, Bash脚本, OpenVX, ROCm, Veh, 图像处理, 安全工具测试, 开发工具包, 计算机视觉