opencv编译cuda
1. 如何编译OpenCV-2.3.x/OpenCV-2.4.x使其支持GPU-CUDA高速运算
下载完成后并安装,确保CUDA SDK的bin目录(“C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK4.2\C\common\bin”)已经添加到环境变量中后,我们就开始编译支持CUDA高速运算的OpenCV。
2. vs编译cv4.5必须要cuda环境嘛
先说一下我的需求:在win10中,显卡是3070的机器上,使用的IDE是Qt,实现基于open pose的旗语的检测。说白了就是自己编译一个能使用cuda加速的一个opencv,利用opencv的dnn模块的接口实现对深度学习模型的调用。在这里只记录一个环境配置的过程。
本机环境:win10 RTX3070 Qt 5.9.2 msvc编译器
下面只记录比较重要的一些过程,给大家一些参考。
1、第一步,先安装QT。大部分安装Qt,就自带了里面的mingw编译器,但是想要编译能用cuda加速的opencv,我使用mingw编译器,没有把opencv编译成功。我猜大概是mingw搞定不了opencv +cuda的编译(不确定,猜想)。所以就安装vs了。肯定需要安装vs2015及其以上的版本,15,17,19三个版本中,查看了很多资料,了解到应该是2017在编译opencv中最不容易出现问题。最好是用vs2017。
如果你在安装QT过程中没有选择msvc2017的话,就应该得重新安装一下了。Qt配置msvc编译器的教程网络一下就可以。安装完记得配置一下QT 的环境变量。记住根据自己的Qt安装位置来配置。然后运行一下Qt能用说明第一步就完成了。
3. opencv_python4.1如何GPU加速,需不需要重新编译之类的
需要重新编译opencv 的,最后getCudaEnabledDeviceCount();这个函数返回值大于零才行 // first.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include "opencv2/opencv.hpp" #include "opencv2/gpu/gpu.hpp" #pragma co..
4. 如何结合OPENCV2.2 和 CUDA
这里假设CUDA已经装好,但是估计装好CUDA的人是没有下载NPP的,就是这个: NVIDIA Performance Primitives (NPP) library下载地址:http://developer.nvidia.com/cuda-toolkit-32-downloads下载下来后解压随便到哪,就一个文件夹SDK然后开始配置opencv2.2, 勾选WITH_CUDA,点configure,这时候一般会找不到NPP,需要手动配置其路径找到CUDA_NPP_LIBRARY_ROOT_DIR, 修改其路径为NPP的根目录,比如我为D:/SDK。 上面两项:CUDA_NPP_INCLUDE和CUDA_NPP_LIBRARY不用手动指定,然后再点configure,这时候cmake就能找到NPP了,上面两项也有了正确路径。在Generate就OK了
接着就是标准步骤各种编译最后opencv2.2中lib名字改了,转自http://blog.csdn.net/sweetrryy/archive/2010/12/11/6069725.aspx<release>
opencv_calib3d220.lib
opencv_contrib220.lib
opencv_core220.lib
opencv_features2d220.lib
opencv_ffmpeg220.lib
opencv_flann220.lib
opencv_gpu220.lib
opencv_highgui220.lib
opencv_imgproc220.lib
opencv_legacy220.lib
opencv_ml220.lib
opencv_objdetect220.lib
opencv_ts220.lib
opencv_video220.lib
<debug>
opencv_calib3d220d.lib
opencv_contrib220d.lib
opencv_core220d.lib
opencv_features2d220d.lib
opencv_ffmpeg220d.lib
opencv_flann220d.lib
opencv_gpu220d.lib
opencv_highgui220d.lib
opencv_imgproc220d.lib
opencv_legacy220d.lib
opencv_ml220d.lib
opencv_objdetect220d.lib
opencv_ts220d.lib
opencv_video220d.lib
5. opencv支持cuda加速吗
支持。编译opencv的时候加上CUDA支持就可以了。
6. 如何用CUDA转换并提速,用openCV编的一些关于矩阵的程序
这个你得自己想,并行都得用专用算法,基本就是分割矩阵,然后
cudaMalloc
开辟显存空间,cudaMemcpy
复制到显存空间,执行设备端代码
,cudaMemcpy
复制回结果。
7. 怎么使用opencv的stitch进行cuda加速
做过相关实验,其实opencv对于cuda的优化并不是特别好,也可能是我用的显卡性能不行。实验结果是并没有比cpu快多少。opencv的cuda编程的程序,主要处理时间都浪费在从内存向显存中拷贝数据以及从显存向内存拷贝数据了。要想写出高效的cuda程序,需要注意的东西很多。
8. Opencv2.4.5 CUDA5.0 的gpu配置问题
这个是说你的OpenCV库是编译的不支持CUDA或者说不支持GPU加速的版本