如何为资源受限ARM平台交叉编译OpenVINO
完全可以通过跨架构交叉编译或者同架构高内存设备预编译的方式实现,以下是具体可行的方案和注意事项:
方案一:使用Raspberry Pi 4B同架构预编译(操作门槛更低)
- 首先建议将你手上的树莓派4B系统更换为和目标平台一致的Ubuntu 18.04,避免因Ubuntu 20.04自带的更高版本glibc库导致编译出的二进制在目标平台无法运行
- 编译时添加架构适配参数,指定目标指令集为
armv8-a,关闭针对Cortex-A72的专属优化,保证生成的二进制完全兼容Cortex-A53处理器 - 编译选项务必开启MYRIAD插件编译,确保可支持Neural Compute Stick 2调用;Python API编译时指定匹配3.6版本的开发库,避免ABI兼容问题
- 编译完成后将整个OpenVINO生成的install目录整体打包,复制到目标平台后,配置好对应环境变量、安装libusb等基础依赖、添加NCS2对应的udev规则即可正常使用
方案二:使用x86_64桌面端交叉编译(兼容性更稳定)
- 先在桌面端安装版本为7.5的aarch64-linux-gnu交叉编译工具链,和目标平台GCC版本完全匹配
- 编译OpenVINO时指定交叉编译配置,目标架构设为aarch64,同时提前导入目标平台的Python 3.6.9头文件与库文件路径,确保Python API可正常交叉编译生成
- 该方案优势在于桌面端系统和目标平台均为Ubuntu 18.04,系统基础库版本完全一致,不会出现迁移后的依赖缺失或版本不兼容问题
额外注意事项
- 目标平台2GB内存完全可以支撑OpenVINO runtime运行,Neural Compute Stick 2的推理负载主要在计算棒本身运行,对主机内存占用极低
- 迁移完成后可先运行设备查询指令验证环境:
./hello_query_device,正常情况下可识别到MYRIAD设备即代表环境配置成功
内容的提问来源于stack exchange,提问作者yeshuanova
相关产品推荐
相关产品推荐

