【OpenVINO 】在 MacOS 上编译 OpenVINO C++ 项目
前言英特尔公司发行的模型部署工具OpenVINO™模型部署套件,可以实现在不同系统环境下运行,且发布的OpenVINO™ 2023最新版目前已经支持MacOS系统并同时支持在苹果M系列芯片上部署模型。在该项目中,我们将向大家展示如何在MacOS系统、M2芯片的Macbook Air电脑上,展示使用OpenVINO™ C++ API 部署深度学习模型。
目录
[*]1. OpenVINO™
[*]2. OpenVINO™ 下载
[*]3. 代码实现
[*]4. 项目编译运行
[*]5. 总结
1. OpenVINO™
英特尔发行版 OpenVINO™ 工具套件基于 oneAPI 而开发,可以加快高性能计算机视觉和深度学习视觉应用开发速度工具套件,适用于从边缘到云的各种英特尔平台上,帮助用户更快地将更准确的真实世界结果部署到生产系统中。通过简化的开发工作流程,OpenVINO™ 可赋能开发者在现实世界中部署高性能应用程序和算法。
https://img2024.cnblogs.com/blog/2933426/202401/2933426-20240112120540838-1811411318.png
OpenVINO™ 2023.2 于 2023 年 11 月 16 日发布,该工具包带来了挖掘生成人工智能全部潜力的新功能。更多的生成式 AI 覆盖和框架集成,以最大限度地减少代码更改,并且扩展了对直接 PyTorch 模型转换的模型支持。支持更多新的模型,包括 LLaVA、chatGLM、Bark 和 LCM 等著名模型。支持更广泛的大型语言模型(LLM)和更多模型压缩技术,支持运行时推理支持以下 Int4 模型压缩格式,通过神经网络压缩框架(NNCF) 进行本机 Int4 压缩等一系列新的功能。
https://img2024.cnblogs.com/blog/2933426/202401/2933426-20240112120554604-1844632538.png
通过OpenVINO™官网信息,我们可以看出,目前OpenVINO™已经能够在苹果MacOS系统、M系列芯片上运行,这为使用MacOS系统的开发者提供了很好的工具。因此在此处,我们将在MacOS系统、M2芯片的Macbook Air电脑上,展示使用 OpenVINO™ C++ API 部署深度学习模型的详细流程。
2. OpenVINO™ 下载
官方在发布版本中已经提供MacOS系统的编译库,因此在此处我们只需要下载官方编译库即可
首先访问OpenVINO™网站,依次选择版本号、操作系统、安装方式等内容,然后点击下载,如下图所示:
https://img2024.cnblogs.com/blog/2933426/202401/2933426-20240112120603813-28744315.png
下面是官方编译的文件,此处主要提供了两个版本,一个是适用于苹果电脑之前的版本,主要是MacOS 10以及之前的版本系统并且使用的是Intel CPU,另一个是使用了苹果的M系列芯片的新版本电脑,主要是MacOS 11 之后的系统。大家可以根据自己的电脑进行选择:
https://img2024.cnblogs.com/blog/2933426/202401/2933426-20240112120613764-15627496.png
下载完后,将该文件解压到任意文件夹,在此处为了方便后续使用一集更新,将其解压到用户文件夹,如下图所示:
https://img2024.cnblogs.com/blog/2933426/202401/2933426-20240112120621384-1269446320.png
后续我们会使用CMake进行项目编译,因此我们此处无需再做其他的设置。
其他环境配置:
[*]MacOS:14.2.1
[*]CMake:3.28
[*]Make:3.81
[*]编译软件:Visual Studio Code
[*]OpenCV:4.8.0
其他环境配置此处不做过多赘述,OpenCV环境安装可以参考下述文章实现:
3. 代码实现
此处我们以Yolov8图片分类模型为例进行项目测试,由于该模型之前我们已经多次使用,所以在此处不在做耕作的阐述,具体代码如下所示:
#include #include #include #include #include #include "openvino/openvino.hpp" //openvino header file#include "opencv2/opencv.hpp" //opencv header fileint main(int argc, char* argv[]){ ov::Version version = ov::get_openvino_version(); std::cout
页:
[1]