当前位置: 首页 > news >正文

【秣厉科技】LabVIEW工具包——OpenCV 教程(21):CUDA 加速方案

文章目录

  • 前言
  • 一、方案总述
  • 二、改造步骤
  • 三、编程范例
  • 四、应用移植
  • 总结


前言

  1. 需要下载安装OpenCV工具包的朋友,请前往 此处 ;
  2. 系统要求:Windows系统,LabVIEW>=2018,兼容32位和64位。

一、方案总述

  1. 为了保持轻量化与普适性,现行的 OpenCV 工具包以及将来的所有升级版,均不自带 CUDA 加速功能;
  2. 有需要的用户,可以通过 “打补丁” 的方式,将通用版 OpenCV 工具包改造为 CUDA 加速版;
  3. 所谓 “打补丁”,就是获取 OpenCV 带CUDA编译的DLL,并替换工具包安装路径中的同名文件;
  4. 本文会提供几种编译好的 DLL 供用户选择下载,同时也会公开编译的方法,以防提供的DLL不兼容您的电脑环境;
  5. 只有 64位 的 LabVIEW 可以将工具包改造为 CUDA 加速版,并且电脑已安装 CUDA 和 cuDNN。

二、改造步骤

  1. 安装配置 CUDA + cuDNN 环境
    参考教程:【番外】01:Windows 安装配置 CUDA 和 cuDNN 教程

  2. 下载或自己编译带 CUDA 功能的 OpenCV 4.9.0 DLL
    编译教程:【番外】02:Windows 编译带 DNN_CUDA 功能的 OpenCV 动态链接库

下载资源:(注意区分 CUDA 和 cuDNN 版本,以及兼容的显卡算力。如果没有适合您的DLL,请按教程自己编译)

序号CUDAcuDNN显卡算力资源
111.68.9.7兼容算力:6.1;7.5;8.6
支持显卡:GTX10系、GTX1650、RTX20系、RTX30系
下载地址
212.18.9.7兼容算力:7.5;8.6;8.9
支持显卡:GTX1650 、RTX20系、RTX30系、RTX40系
下载地址
  1. 替换 DLL
    打开 <LabVIEW安装路径>/vi.lib/Molitec/OpenCV/_libs 文件夹,将下载或编译的 opencv_world490.dll 拷贝到该路径,同名替换。
    (每次重装OpenCV工具包后,DLL又会被替换成原版,所以建议您备份一下新的DLL)

三、编程范例

  1. 打开范例VI:examples/Molitec/OpenCV/dnn/Net_3 (ONNX_yolov5_Camera).vi
    (改造之后,首次打开 VI 会比较慢)

  2. 在函数选板 >> Addons >> Molitec >> OpenCV >> dnn >> Net 选板中,找到两个函数:setPreferableBackend 和 setPreferableTarget, 位置如下图。
    在这里插入图片描述

  3. 将上述两个函数,插入到范例中的 Net 对象初始化之后,推理之前,并设置参数:
    setPreferableBackend - 设为 DNN_BACKEND_CUDA
    setPreferableTarget - 设为 DNN_TARGET_CUDA
    在这里插入图片描述

  4. 运行VI,测试 CUDA 加速效果。(首次运行,需要较长的加载时间)
    下图为 CUDA11.6 + GTX 1650 显卡运行效果,推理一帧大约20ms。

在这里插入图片描述

  1. 如果按上述操作,未能成功加速推理,或者程序崩溃,说明DLL不适合您的电脑环境,请尝试重新下载或编译。

  2. 如果程序崩溃,会产生较大的错误转储文件(DMP),占用C盘空间。
    可进入如下路径,进行清理:
    C:/Users/<你的用户名>/AppData/Local/CrashDumps/
    在这里插入图片描述

  3. 除了Net类之外,dnn 模块下的 Model 类也有 setPreferableBackend 和 setPreferableTarget,也可以实现 CUDA 加速,用法类似。
    在这里插入图片描述


四、应用移植

  1. 将 VI 打包成 .exe 应用程序,并移植到其他电脑运行,之前已有教程。
    【秣厉科技】LabVIEW工具包——OpenCV 教程(8):生成应用(EXE)

  2. 当您使用 CUDA 加速版打包 .exe 时,移植到其他电脑前,须确保两件事:
    2.1 其他电脑同样要先安装配置 CUDA + cuDNN 环境;
    2.2 拷贝到其他电脑的 opencv_world490.dll ,必须兼容目标电脑的 CUDA、cuDNN 版本以及显卡算力。
    (否则,您需要为目标电脑单独下载或编译一版DLL)


总结

  1. 本系列博文作为LabVIEW工具包—OpenCV的教程,将以专栏的形式陆续发布和更新。
  2. 对工具包感兴趣的朋友,欢迎下载试用:秣厉科技 - LabVIEW工具包 - OpenCV
  3. 各位看官有什么想法、建议、吐槽、批评,或新奇的需求,也欢迎留言讨论。

相关文章:

  • 大型视频学习平台项目问题解决笔记
  • 宇树科技安全漏洞揭示智能机器人行业隐忧
  • 【Python训练营打卡】day23 @浙大疏锦行
  • 亚川科技YCS-7000 建筑设备一体化监控系统选型说明与配置原理
  • 综合实验二之grub2密文加密
  • 英语在进化等级上被认为落后的原因主要包括以下几个方面
  • 防爆手机与普通手机有什么区别
  • Android逆向学习(九) Xposed快速上手(下)
  • 2025/5/7 心得
  • E+H流量计与Profibus DP主站转Modbus RTU/TCP网关通讯
  • 【计算机网络】高频计网面试总结
  • Unity基础学习(十二)核心系统—物理系统之碰撞检测组件篇(1)刚体,碰撞体,材质
  • 密码学--希尔密码
  • 如何更改默认字体:ONLYOFFICE 协作空间、桌面编辑器、文档测试示例
  • 三层交换机,单臂路由(用DHCP自动配置ip+互通+ACL
  • vue3: pdf.js 3.4.120 using javascript
  • LeetCode 513 找树左下角的值 LeetCode 112 路径总和 LeetCode106 从中序与后序遍历序列构造二叉树
  • 单片机-STM32部分:13-1、蜂鸣器
  • AI与IoT携手,精准农业未来已来
  • 接口自动化测试设计思路--设计实战
  • 为惩戒“工贼”,美国编剧工会“痛下杀手”
  • 专访|韩国世宗研究所中国研究中心主任:李在明若上台将推行均衡外交
  • 美国“贸易战”前线的本土受害者:安静的洛杉矶港和准备关门的小公司
  • 专访|日本驻华大使金杉宪治:对美、对华外交必须在保持平衡的基础上稳步推进
  • 欧阳娜娜担任江西吉安文化旅游大使
  • 呼和浩特推进新一轮国企重组整合:杜绝一项目一公司、一业务一公司