在Ubuntu上搭建OpenVINO™C++程序开发环境|开发者实战

OpenCV学堂 2023-08-08 20:26

点击上方↑↑↑OpenCV学堂”关注我

来源:公众号 英特尔物联网 授权


在应用 Anomalib 和 OpenVINO™ 实现瑕疵检测的过程中,经常会在 Ubuntu 下训练并部署 AI 模型。笔者一直在 Windows 上开发程序,比较喜欢 Visual Studio 这种集成开发环境,为了在 Ubuntu 上也能拥有类似 Visual Studio 的开发体验,笔者探索出基于 Anaconda 和 VS Code,搭建 OpenVINO™ C++ 程序开发环境的方式。


在搭建 C++ 程序开发环境前,请参考《英特尔开发者套件 + OpenVINO™ (Anomalib)搭建 AI 缺陷检测开发环境》安装 Anaconda 和 VS Code。


整个搭建过程分为五步,本文依次介绍:


1. 安装 GCC 编译器

2. 安装 C/C++ Extension Pack 插件

3. 安装 OpenVINO™ Runtime

4. 为 IntelliSense 配置 Include path

5. 基于 CMake 编译和构建 OpenVINO™ C++ 程序


01

安装 GCC 编译器


GCC 是 Linux 平台上广泛使用的 C++ 编译器,请使用命令完成 GCC 安装:


sudo apt updatesudo apt install build-essential gdb


运行: gcc --version, 确认 GCC 已经安装成功,如图1-1所示。


图1-1 GCC已安装成功


02

安装 C/C++ Extension Pack 插件


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++ 插件


配置 C++ 调试环境


第一步,请新建一个名叫 ov_cpp 的文件夹,并新建一个名叫 hello_world.cpp 文件,如图1-3所示。


图1-3 新建 hello_world.cpp 文件


第二步,在行号左边的空白处单击鼠标左键,添加一个断点,然后使用快捷键“F5”启动调试,若出现调试工具栏,并能单步运行程序,如图1-4所示,说明 C++ 调试环境已由 VS Code 自动配置成功。


图1-4 启动调试


03

安装 OpenVINO™ Runtime


在 Linux 平台,OpenVINO™ Runtime 提供 Conda 方式便捷安装 OpenVINO™ Runtime,假设读者已按照《英特尔开发者套件 + OpenVINO™ (Anomalib)搭建 AI 缺陷检测开发环境》创建并激活了名叫 ov 虚拟环境,使用命令完成 OpenVINO™ Runtime 安装,如图1-5所示:


conda update --allconda install -c conda-forge openvino


图1-5 安装OpenVINO™ Runtime


04

为 IntelliSense 配置 Include path


IntelliSense 是 VS Code 中的代码自动补全工具,安装完OpenVINO™ 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


05

基于 CMake 编译和

构建 OpenVINO™ C++ 程序


在 Linux 平台上,用 CMake 来配置 C++ 程序的编译和构建过程是最方便的。首先使用命令,安装 cmake:


sudo apt updatesudo apt install cmake


参考《Get started with CMake Tools on Linux》(复制网址到浏览器打开):

https://code.visualstudio.com/docs/cpp/CMake-linux


通过快捷键:Ctrl+Shift+P,启动命令面板,然后运行命令:CMake: Quick Start,快速创建一个带 CMakeLists.txt 和 build 文件夹的项目,并在 CMakeLists.txt 添加 OpenVINO™ Runtime 库,如图1-9所示。


图1-9 在 CMakeLists.txt 中添加 OpenVINO™ Runtime 库


接着,新建 main.cpp 文件,依次点击状态栏中的 Build  和 运行 完成 OpenVINO™ C++ 程序的编译,可执行文件生成和运行,如图1-10所示。


程序清单 1-1 main.cpp

#include #include 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::vectorstring> 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;    }}

向右滑动查看完整代码

图1-10 构建并运行 OpenVINO™ C++ 程序


06

总结


本文详细介绍了在 Ubuntu22.04 LTS 下安装OpenVINO™ Runtime、CMake 和 VS Code 工具的全过程,并完成了 OpenVINO™ C++ 代码开发环境的搭建。通过 VS Code 和 CMake 工具,开发者可以快速实现 OpenVINO™ C++ 代码的编写、编译、调试和运行。


读者有进一步的需求,欢迎点击阅读原文进入广东荣旭智能技术有限公司官网了解详细信息


OpenCV学堂 专注计算机视觉开发技术分享,技术框架使用,包括OpenCV,Tensorflow,Pytorch教程与案例,相关算法详解,最新CV方向论文,硬核代码干货与代码案例详解!作者在CV工程化方面深度耕耘15年,感谢您的关注!
评论 (0)
  • 浪潮之上:智能时代的觉醒    近日参加了一场课题的答辩,这是医疗人工智能揭榜挂帅的国家项目的地区考场,参与者众多,围绕着医疗健康的主题,八仙过海各显神通,百花齐放。   中国大地正在发生着激动人心的场景:深圳前海深港人工智能算力中心高速运转的液冷服务器,武汉马路上自动驾驶出租车穿行的智慧道路,机器人参与北京的马拉松竞赛。从中央到地方,人工智能相关政策和消息如雨后春笋般不断出台,数字中国的建设图景正在智能浪潮中徐徐展开,战略布局如同围棋
    广州铁金刚 2025-04-30 15:24 315浏览
  • 在全球制造业加速向数字化、智能化转型的浪潮中,健达智能作为固态照明市场的引领者和智能电子以及声学产品的创新先锋,健达智能敏锐捕捉到行业发展的新机遇与新挑战,传统制造模式已难以满足客户对品质追溯、定制化生产和全球化布局的需求。在此背景下, 健达智能科技股份有限公司(以下简称:健达智能)与盘古信息达成合作,正式启动IMS数字化智能制造工厂项目,标志着健达智能数字化转型升级迈入新阶段。此次项目旨在通过部署盘古信息IMS系统,助力健达实现生产全流程的智能化管控,打造照明行业数字化标杆。行业趋势与企业挑战
    盘古信息IMS 2025-04-30 10:13 74浏览
  • 随着电子元器件的快速发展,导致各种常见的贴片电阻元器件也越来越小,给我们分辨也就变得越来越难,下面就由smt贴片加工厂_安徽英特丽就来告诉大家如何分辨的SMT贴片元器件。先来看看贴片电感和贴片电容的区分:(1)看颜色(黑色)——一般黑色都是贴片电感。贴片电容只有勇于精密设备中的贴片钽电容才是黑色的,其他普通贴片电容基本都不是黑色的。(2)看型号标码——贴片电感以L开头,贴片电容以C开头。从外形是圆形初步判断应为电感,测量两端电阻为零点几欧,则为电感。(3)检测——贴片电感一般阻值小,更没有“充放
    贴片加工小安 2025-04-29 14:59 352浏览
  • 在智能硬件设备趋向微型化的背景下,语音芯片方案厂商针对小体积设备开发了多款超小型语音芯片方案,其中WTV系列和WT2003H系列凭借其QFN封装设计、高性能与高集成度,成为微型设备语音方案的理想选择。以下从封装特性、功能优势及典型应用场景三个方面进行详细介绍。一、超小体积封装:QFN技术的核心优势WTV系列与WT2003H系列均提供QFN封装(如QFN32,尺寸为4×4mm),这种封装形式具有以下特点:体积紧凑:QFN封装通过减少引脚间距和优化内部结构,显著缩小芯片体积,适用于智能门铃、穿戴设备
    广州唯创电子 2025-04-30 09:02 345浏览
  • 多功能电锅长什么样子,主视图如下图所示。侧视图如下图所示。型号JZ-18A,额定功率600W,额定电压220V,产自潮州市潮安区彩塘镇精致电子配件厂,铭牌如下图所示。有两颗螺丝固定底盖,找到合适的工具,拆开底盖如下图所示。可见和大部分市场的加热锅一样的工作原理,手绘原理图,根据原理图进一步理解和分析。F1为保险,250V/10A,185℃,CPGXLD 250V10A TF185℃ RY 是一款温度保险丝,额定电压是250V,额定电流是10A,动作温度是185℃。CPGXLD是温度保险丝电器元件
    liweicheng 2025-05-05 18:36 157浏览
  •  一、‌核心降温原理‌1、‌液氮媒介作用‌液氮恒温器以液氮(沸点约77K/-196℃)为降温媒介,通过液氮蒸发吸收热量的特性实现快速降温。液氮在内部腔体蒸发时形成气-液界面,利用毛细管路将冷媒导入蒸发器,强化热交换效率。2、‌稳态气泡控温‌采用‌稳态气泡原理‌:调节锥形气塞与冷指间隙,控制气-液界面成核沸腾条件,使漏热稳定在设定值。通过控温仪调整加热功率,补偿漏热并维持温度平衡,实现80K-600K范围的快速变温。二、‌温度控制机制‌1、‌动态平衡调节‌控温仪内置模糊控制系统,通过温度
    锦正茂科技 2025-04-30 11:31 63浏览
  • 想不到短短几年时间,华为就从“技术封锁”的持久战中突围,成功将“被卡脖子”困境扭转为科技主权的主动争夺战。众所周知,前几年技术霸权国家突然对华为发难,导致芯片供应链被强行掐断,海外市场阵地接连失守,恶意舆论如汹涌潮水,让其瞬间陷入了前所未有的困境。而最近财报显示,华为已经渡过危险期,甚至开始反击。2024年财报数据显示,华为实现全球销售收入8621亿元人民币,净利润626亿元人民币;经营活动现金流为884.17亿元,同比增长26.7%。对比来看,2024年营收同比增长22.42%,2023年为7
    用户1742991715177 2025-05-02 18:40 143浏览
  • 文/Leon编辑/cc孙聪颖‍2023年,厨电行业在相对平稳的市场环境中迎来温和复苏,看似为行业增长积蓄势能。带着对市场向好的预期,2024 年初,老板电器副董事长兼总经理任富佳为企业定下双位数增长目标。然而现实与预期相悖,过去一年,这家老牌厨电企业不仅未能达成业绩目标,曾提出的“三年再造一个老板电器”愿景,也因市场下行压力面临落空风险。作为“企二代”管理者,任富佳在掌舵企业穿越市场周期的过程中,正面临着前所未有的挑战。4月29日,老板电器(002508.SZ)发布了2024年年度报告及2025
    华尔街科技眼 2025-04-30 12:40 322浏览
  • 某国产固态电解的2次和3次谐波失真相当好,值得一试。(仅供参考)现在国产固态电解的性能跟上来了,值得一试。当然不是随便搞低端的那种。电容器对音质的影响_电子基础-面包板社区  https://mbb.eet-china.com/forum/topic/150182_1_1.html (右键复制链接打开)电容器对音质的影响相当大。电容器在音频系统中的角色不可忽视,它们能够调整系统增益、提供合适的偏置、抑制电源噪声并隔离直流成分。然而,在便携式设备中,由于空间、成本的限
    bruce小肥羊 2025-05-04 18:14 70浏览
  • 一、gao效冷却与控温机制‌1、‌冷媒流动设计‌采用低压液氮(或液氦)通过毛细管路导入蒸发器,蒸汽喷射至样品腔实现快速冷却,冷却效率高(室温至80K约20分钟,至4.2K约30分钟)。通过控温仪动态调节蒸发器加热功率,结合温度传感器(如PT100铂电阻或Cernox磁场不敏感传感器),实现±0.01K的高精度温度稳定性。2、‌宽温区覆盖与扩展性‌标准温区为80K-325K,通过降压选件可将下限延伸至65K(液氮模式)或4K(液氦模式)。可选配475K高温模块,满足材料在ji端温度下的性能测试需求
    锦正茂科技 2025-04-30 13:08 480浏览
  • 这款无线入耳式蓝牙耳机是长这个样子的,如下图。侧面特写,如下图。充电接口来个特写,用的是卡座卡在PCB板子上的,上下夹紧PCB的正负极,如下图。撬开耳机喇叭盖子,如下图。精致的喇叭(HY),如下图。喇叭是由电学产生声学的,具体结构如下图。电池包(AFS 451012  21 12),用黄色耐高温胶带进行包裹(安规需求),加强隔离绝缘的,如下图。451012是电池包的型号,聚合物锂电池+3.7V 35mAh,详细如下图。电路板是怎么拿出来的呢,剪断喇叭和电池包的连接线,底部抽出PCB板子
    liweicheng 2025-05-06 22:58 69浏览
  • ‌一、高斯计的正确选择‌1、‌明确测量需求‌‌磁场类型‌:区分直流或交流磁场,选择对应仪器(如交流高斯计需支持交变磁场测量)。‌量程范围‌:根据被测磁场强度选择覆盖范围,例如地球磁场(0.3–0.5 G)或工业磁体(数百至数千高斯)。‌精度与分辨率‌:高精度场景(如科研)需选择误差低于1%的仪器,分辨率需匹配微小磁场变化检测需求。2、‌仪器类型选择‌‌手持式‌:便携性强,适合现场快速检测;‌台式‌:精度更高,适用于实验室或工业环境。‌探头类型‌:‌横向/轴向探头‌:根据磁场方向选择,轴向探头适合
    锦正茂科技 2025-05-06 11:36 213浏览
  • 网约车,真的“饱和”了?近日,网约车市场的 “饱和” 话题再度引发热议。多地陆续发布网约车风险预警,提醒从业者谨慎入局,这背后究竟隐藏着怎样的市场现状呢?从数据来看,网约车市场的“过剩”现象已愈发明显。以东莞为例,截至2024年12月底,全市网约车数量超过5.77万辆,考取网约车驾驶员证的人数更是超过13.48万人。随着司机数量的不断攀升,订单量却未能同步增长,导致单车日均接单量和营收双双下降。2024年下半年,东莞网约出租车单车日均订单量约10.5单,而单车日均营收也不容乐
    用户1742991715177 2025-04-29 18:28 306浏览
  • 你是不是也有在公共场合被偷看手机或笔电的经验呢?科技时代下,不少现代人的各式机密数据都在手机、平板或是笔电等可携式的3C产品上处理,若是经常性地需要在公共场合使用,不管是工作上的机密文件,或是重要的个人信息等,民众都有防窃防盗意识,为了避免他人窥探内容,都会选择使用「防窥保护贴片」,以防止数据外泄。现今市面上「防窥保护贴」、「防窥片」、「屏幕防窥膜」等产品就是这种目的下产物 (以下简称防窥片)!防窥片功能与常见问题解析首先,防窥片最主要的功能就是用来防止他人窥视屏幕上的隐私信息,它是利用百叶窗的
    百佳泰测试实验室 2025-04-30 13:28 584浏览
  • 5小时自学修好BIOS卡住问题  更换硬盘故障现象:f2、f12均失效,只有ESC和开关机键可用。错误页面:经过AI的故障截图询问,确定是机体内灰尘太多,和硬盘损坏造成,开机卡在BIOS。经过亲手拆螺丝和壳体、排线,跟换了新的2.5寸硬盘,故障排除。理论依据:以下是针对“5小时自学修好BIOS卡住问题+更换硬盘”的综合性解决方案,结合硬件操作和BIOS设置调整,分步骤说明:一、判断BIOS卡住的原因1. 初步排查     拔掉多余硬件:断开所有外接设备(如
    丙丁先生 2025-05-04 09:14 53浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦