MIVisionX简介
MIVisionX是由AMD开发的一套综合性开源计算机视觉和机器智能工具包。它集成了多个库、实用程序和应用程序,为开发者提供了从原型设计到部署的端到端解决方案。
MIVisionX的核心是一个高度优化的OpenVX实现。OpenVX是Khronos Group制定的开放标准API,专门用于计算机视觉应用。通过MIVisionX,开发者可以利用OpenVX在各种硬件平台上高效地运行计算机视觉算法,包括嵌入式x86 CPU、APU、独立GPU以及异构服务器。
除了OpenVX核心功能,MIVisionX还提供了多个OpenVX扩展模块:
- AMD LoomSL:用于360度全景视频拼接的库
- AMD Media:用于视频编解码的扩展
- AMD MIGraphX:集成AMD的MIGraphX推理引擎
- AMD NN:神经网络扩展
- AMD OpenCV:提供OpenCV功能的OpenVX接口
- AMD RPP:集成ROCm Performance Primitives (RPP)函数
这些扩展极大地丰富了MIVisionX的功能,使其能够支持从图像处理到深度学习推理的各种应用场景。
神经网络模型编译器与优化器
MIVisionX的一个重要组成部分是神经网络模型编译器和优化器。它支持将预训练的神经网络模型转换为MIVisionX的运行时代码,以实现优化推理。
目前支持的模型格式包括:
- ONNX (Open Neural Network Exchange)
- Khronos NNEF (Neural Network Exchange Format)
通过这个工具,开发者可以将使用主流深度学习框架训练的模型导入MIVisionX,并利用AMD GPU进行高效推理。
rocAL图像增强库
ROCm Augmentation Library (rocAL)是MIVisionX中专门用于图像和视频处理的组件。它可以高效地解码和处理各种存储格式的图像和视频,并通过用户可编程的处理图对其进行修改。
rocAL为深度学习训练和推理提供了强大的数据预处理和增强能力。它现在已经作为独立模块发布,但在MIVisionX中仍保留了对其的支持。
MIVisionX工具包
MIVisionX工具包提供了一系列实用工具,涵盖了神经网络开发的整个生命周期:
- 模型创建
- 开发
- 训练
- 量化
- 剪枝
- 再训练
- 推理
这些工具旨在帮助开发者在各种AMD或第三方硬件上部署神经网络,从嵌入式设备到服务器均可支持。
支持的操作系统和硬件
MIVisionX支持多种操作系统和硬件平台:
- Linux:Ubuntu 20.04/22.04、CentOS 7、RedHat 8/9、SLES 15-SP5
- Windows 10/11
- macOS Ventura 13/Sonoma 14
硬件支持:
- CPU:AMD64架构
- GPU:AMD Radeon显卡(可选)
- APU:AMD Radeon移动/嵌入式APU(可选)
虽然部分模块可以仅在CPU上运行,但要充分发挥MIVisionX的性能,建议使用AMD GPU或APU。
安装和使用
MIVisionX提供了多种安装方式:
-
软件包安装:适用于Ubuntu、CentOS/RedHat和SLES系统,可通过包管理器直接安装。
-
源码编译安装:提供了便捷的setup脚本自动安装依赖,支持HIP和OpenCL两种GPU后端。
-
Docker镜像:提供了多个级别的Docker镜像,满足不同的使用需求。
安装完成后,可以使用提供的示例程序验证安装是否成功。例如,可以运行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
开发者支持
AMD为MIVisionX提供了多种支持渠道:
- 技术支持邮箱:mivisionx.support@amd.com
- GitHub Issues:用于提交功能请求和bug报告
- 详细的文档和API参考
MIVisionX是一个活跃的开源项目,欢迎开发者参与贡献。
总结
MIVisionX作为AMD推出的开源计算机视觉和机器智能工具包,为开发者提供了从原型设计到部署的完整解决方案。它不仅提供了高性能的OpenVX实现,还集成了深度学习推理、图像增强等多项功能。凭借对多种操作系统和硬件平台的支持,以及丰富的开发工具,MIVisionX为计算机视觉和AI应用的开发提供了强大而灵活的基础。无论是在嵌入式设备还是大型服务器上,开发者都可以利用MIVisionX来构建高效的视觉AI应用。