x86 CPU
Windows x64、Linux x86_64 和 Intel macOS 可使用 CPU SDK,搭配 Pikachu、Megatron 等通用模型包。图像准备、模型推理和特征比较都会占用每帧的处理时间,调优时可以分别测量。
| Platform | SDK setup | Build from source |
|---|---|---|
| Windows x64 | C/C++ 与 Python | Windows 构建 |
| Linux x86_64 | C API · C++ · Python | Linux 构建 |
| Intel macOS | macOS 接入 · Python | macOS 构建 |
选择与进程架构一致的库。Apple Silicon 上的原生 arm64 应用使用 ARM 路径;通过 Rosetta 运行的 x86_64 应用需要 x86_64 库。
图像处理与预处理
InspireCV 提供推理前的 CPU 图像处理能力。近期源码扩展了 Image 操作和 Task 预处理的 SSE/AVX2 加速范围,沿用现有 API 调用即可使用适用的优化路径。
| Stage | 加速覆盖的操作 | 常见用途 |
|---|---|---|
| Geometry | 缩放、仿射采样、旋转和翻转 | 缩放预览、调整相机方向、对齐人脸 |
| Pixel operations | 通道转换、像素运算、阈值处理和混合 | 调整通道顺序与像素值 |
| Tensor output | 浮点转换、归一化和布局转换 | 将模型输入写入应用提供的内存 |
具体路径取决于操作、像素类型、通道数和 CPU。输入格式、坐标变换和内存使用方式见 Image 与 Task 示例。
源码版本
以上新增路径适用于本次文档对应的独立 InspireCV 源码。当前 InspireFace 的依赖尚未包含这些改动。自行构建 InspireFace SDK 时,请确认所用的依赖版本;仅凭 SDK 版本号不能判断其中包含哪些图像处理路径。
AVX2 构建选项
单独构建 InspireCV、需要在多种 CPU 上分发时,建议保留 INSPIRECV_ENABLE_AVX2 的默认值 OFF。
| Setting | Behavior |
|---|---|
OFF — default | 将 AVX2 内核与其他代码分开编译。运行时确认 CPU 和操作系统支持后,适用的操作仍会使用 AVX2。 |
ON | 为所有 C++ 源文件启用 AVX2;GCC 和 Clang 还会启用 FMA。所有目标机器都必须支持该构建使用的指令。 |
OFF 不代表完全禁用 AVX2。运行时选择加速路径的机制此前已存在,这次扩展了它覆盖的操作。其他 x86 路径仍有各自的指令要求,例如 Task 使用 SSE4.1;分发前应在计划支持的最低配置 CPU 和操作系统上测试。不要假定使用 ON 构建的库可以在 Rosetta 下运行。
InspireCV 构建说明介绍了如何设置这个选项。应用无法在运行时改变预编译 SDK 的编译选项。
测量实际应用
- 复用会话和缓冲区。 每路有序视频流保留独立会话;尺寸不变时,复用 Task Pipeline 和输出内存。
- 只启用需要的输出。 检测、识别和可选分析分别消耗时间,比较不同构建时保持处理内容一致。
- 计入整帧流程。 相机格式转换、内存复制、排队和显示也会带来延时,不能只统计 SDK 调用。
图像处理性能提供在本机测量 Image 和 Task 公开接口的方法;SDK 性能测量覆盖检测、跟踪和特征提取。比较时保持输入、编译配置和预热方式一致,单个图像操作的耗时不能直接代表整个应用的帧率。
