伍增 邓书梦 广东荣旭智能技术有限公司
在应用 Anomalib和OpenVINO实现瑕疵检测 的过程中,经常会在Ubuntu下训练并部署AI模型。笔者一直在Windows上开发程序,比较喜欢 Visual Studio 这种集成开发环境,为了在Ubuntu上也能拥有类似Visual Studio的开发体验,笔者探索出 基于 Anaconda和VS Code ,搭建OpenVINO TM C++程序开发环境的方式。
在搭建C++程序开发环境前,请参考《 英特尔开发者套件 + OpenVINO™ (Anomalib)搭建 AI 缺陷检测开发环境 》安装Anaconda和VS Code。
整个搭建过程分为五步,本文依次介绍:
1. 安装GCC编译器
2. 安装C/C++ Extension Pack插件
3. 安装OpenVINOTM Runtime
4. 为IntelliSense配置Include path
5. 基于CMake编译和构建OpenVINO C++程序
GCC是Linux平台上广泛使用的C++编译器,请使用命令完成GCC安装:
sudo apt update
sudo apt install build-essential gdb
运行: gcc --version , 确认GCC已经安装成功,如图1-1所示。
图1- 1 GCC已安装成功
C/C++ Extension Pack是微软官方发布的用于C/C++程序开发、编译和调试的VS Code插件,它包含C/C++, C/C++ Themes, CMake和CMake Tools四个插件。
首选切换到 Extensions ,然后搜索“C/C++”,找到 C/C++ Extension Pack 插件后,点击“Install”按钮,完成安装,如图1-2所示。
图1- 2 查找并安装C/C++插件
第一步 ,请新建一个名叫 ov_cpp 的文件夹,并新建一个名叫hello_world.cpp文件,如图1-3所示。
图1- 3 新建hello_world.cpp文件
第二步 ,在行号左边的空白处单击鼠标左键,添加一个断点,然后使用快捷键“F5”启动调试,若出现调试工具栏,并能单步运行程序,如图1-4所示,说明C++调试环境已由VS Code自动配置成功。
图1- 4 启动调试
在Linux平台,OpenVINO TM Runtime提供Conda方式便捷安装OpenVINO TM Runtime,假设读者已按照《 英特尔开发者套件 + OpenVINO™ (Anomalib)搭建 AI 缺陷检测开发环境 》创建并激活了名叫 ov 虚拟环境,使用命令完成OpenVINO TM Runtime安装,如图1-5所示:
conda update --all
conda install -c conda-forge openvino
图1- 5 安****> OpenVINO TM Runtime
IntelliSense是VS Code中的代码自动补全工具,安装完OpenVINO TM Runtime后,需要将OpenVINO Runtime的头文件路径填入"Include path",IntelliSense才能自动补全OpenVINO Runtime API函数。
首先 ,请用locate命令查看openvino.hpp和libopenvino.so的位置,如图1-6所示。
图1- 6 查看openvino.hpp和libopenvino.so的位置
然后 ,将OpenVINO Runtime的头文件路径加入VS Code中"Include path",如图1-7所示。
图1- 7 IntelliSense的搜索路径
使用快捷键“ctrl+shift+p”启动命令面板,然后搜索“c/c++ edit configuration(UI)”,把"/home/ov/anaconda3/envs/ov/include"添加到"Include path",如图1-8所示。
图1- 8 添加openvino runtime头文件路径到 Include path
在Linux平台上,用CMake来配置C++程序的编译和构建过程是最方便的。首先使用命令,安装cmake:
sudo apt update sudo apt install cmake
参考《 Get started with CMake Tools on Linux 》,通过快捷键:Ctrl+Shift+P,启动命令面板,然后运行命令:CMake: Quick Start,快速创建一个带CMakeLists.txt和build文件夹的项目,并在CMakeLists.txt添加OpenVINO TM Runtime库,如图1-9所示。
图1- 9 在CMakeLists.txt中添加OpenVINO TM Runtime库
接着,新建main.cpp文件,依次点击状态栏中的 Build 和 运行 完成OpenVINO C++程序的编译,可执行文件生成和运行,如图1-10所示。
程序清单 1- 1 main.cpp
#include <iostream> #include <openvino> int main(int, char**){ // -------- Get OpenVINO runtime version -------- std::cout << ov::get_openvino_version().description << ':' << ov::get_openvino_version().buildNumber << std::endl; // -------- Step 1. Initialize OpenVINO Runtime Core -------- ov::Core core; // -------- Step 2. Get list of available devices -------- std::vector<:string> availableDevices = core.get_available_devices(); // -------- Step 3. Query and print supported metrics and config keys -------- std::cout << "Available devices: " << std::endl; for (auto&& device : availableDevices) { std::cout << device << std::endl; }</:string></openvino></iostream>
图1- 10 构建并运行OpenVINO C++程序
本文详细介绍了在Ubuntu22.04 LTS下安装OpenVINO TM Runtime、CMake和VS Code工具的全过程,并完成了OpenVINO TM C++代码开发环境的搭建。通过VS Code和CMake工具,开发者可以快速实现OpenVINO TM C++代码的编写、编译、调试和运行。读者有进一步的需求,欢迎随时联系我。
广东荣旭智能技术有限公司官网: https://www.gdro**art.com/
51OpenLab是一站式ICT创新服务平台,以“共学、共研、共创”为使命,连接和服务ICT产学研链条,提供实验平台、培训认证、测试验证、项目对接、众包研发、成果转化等多元服务,促进基础设施、信息、人才和技术等资源的流通、共享和合作,构筑开放融合的产业创新生态。
SDNLAB
未来网络学院
紫金山实验室
江苏省未来网络创新研究院
微信:18021416632
邮箱:[email protected]