汾阳网站建设中国能源建设集团网站群

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

汾阳网站建设,中国能源建设集团网站群,seo服务建议,桂林旅游网站制作公司【opencv】windows10下opencv4.8.0-cuda Python版本源码编译教程 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【opencv】windows10下opencv4.8.0-cuda Python版本源码编译教程前言准备工具anaconda/cuda/cudnnanaconda创建环境(选做)安装原…【opencv】windows10下opencv4.8.0-cuda Python版本源码编译教程 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【opencv】windows10下opencv4.8.0-cuda Python版本源码编译教程前言准备工具anaconda/cuda/cudnnanaconda创建环境(选做)安装原生python(选做)cmakeopencv4.8.0opencv_contrib CMake编译VS2019编译可能出现的问题cmake编译过程中可能出现的问题VS2019编译过程中可能出现的问题 测试使用GPU总结 前言 OpenCV是一个开源的计算机视觉库包含了核心模块和扩展模块提供了基础的图像处理和计算机视觉算法以及一些机器学习工具。而OpenCV Contrib是OpenCV社区贡献的一组扩展模块之一包含了一些较为新颖和实用的算法和工具函数提供了一些高级的图像处理和计算机视觉算法。这些功能和算法可能不适合所有用户或者还处于实验性阶段。OpenCV Contrib模块中的代码由社区贡献者开发和维护它们提供了一些在OpenCV核心库中尚未包含的新特性和实验性功能。 准备工具 cmake、vs2019、opencv4.8.0、opencv_contrib-4.8.0、anaconda、cuda、cudnn anaconda/cuda/cudnn 安装cuda、cudnn可以参考此前博主的【深度学习windows10环境配置详细教程】因为对于新手来说需要注意的细节比较多这里不浪费篇幅重复讲述了。 anaconda创建环境(选做) 为了将CUDA版本的opencv安装到虚拟环境中安装到默认环境(base)不需要执行此步骤。

搭建opencv环境

conda create -n opencv_onnx_gpu python3.10.9 -y

激活环境

activate opencv_onnx_gpu虚拟环境中需要安装numpy后续的编译过程中需要。 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy安装原生python(选做) 在使用 CMake 为 Anaconda 新建的虚拟环境安装 OpenCV 时需要在主机上安装一个与虚拟环境中的 Python 版本一致的原生环境这是由于CMake 需要在构建过程中使用与虚拟环境中的 Python 版本一致的 Python 解释器来生成适用于该版本的 Python 绑定。 博主在anaconda创建的虚拟环境python为3.10因此需要安装了python3.10原生版本否则即使通过编译但始终无法使用opencv-python。 原生python官网下载地址选择Windows版本。 这里通过激活虚拟环境查看安装对应的版本博主不确定这种微小版本的差异会不会影响后续编译测试所以最好都保持一致。 勾选加入系统环境后直接安装。 配置环境变量这里可能出现cmd使用的python版本还是使用anaconda的base环境的情况这是因为在环境变量Path中anaconda的顺序排在原生Python的前面调整原生python的路径在anaconda的base之前即可。
cmake CMake官方下载地址下载cmake-3.27.7-windows-x86_64.msi。 添加到环境和安装路径博主根据自身情况作出了修改其他都是默认安装。 出现以下界面安装成功。
opencv4.8.0 Opencv官方下载地址下载OpenCV – 4.8.0 Sources下载解压opencv-4.8.0.zip。
opencv_contrib opencv_contrib官方下载地址选择opencv对应的contrib版本例如opencv4.8.0对应就是opencv_contrib-4.8.0.zip。下载后直接解压。 CMake编译 打开CMakewhere is the source code是Opencv sources(博主是opencv-4.8.0)的文件夹位置where to build the binaries是编译opencv保存的文件夹位置(自定义)在左下角第一次点击Configure。 选择对应vs的版本(博主是vs2019)系统选择x64最后点右下角Finish显示Configuring done。安装到默认环境(base)不需要执行此步骤该步骤步骤的目的是安装cuda版本opencv到用户自定义的虚拟环境中分别将路径指向自定义虚拟环境的对应位置 : PYTHON3_EXECUTABLE、PYTHON3_INCLUDE_DIR、PYTHON3_LIBRARY、PYTHON3_NUMPY_INCLUDE_DIRS(需要安装numpy)、PYTHON3_PACKAGES_PATH。 4.在Search搜索框搜索带cuda的关键字全部勾选。 Search搜索框搜索OPENCV_EXTRA_MODULES_PATH添加解压的opencv_contrib中的modules的路径再搜索并勾选OPENCV_ENABLE_NONFREE选项。 将build_opencv_world选上这可以将所有opencv的库都编译在一起不需要自己手动选择添加每个小模块但是具体的工程又不建议这种全家桶。对于java、js、tests相关选项的选择用Search搜索框分别搜索“java”“js”“tests”根据需要选中和取消相关选项默认都是选中博主都取消了必须勾选BUILD_opencv_python3决定了能否在python中使用GPU加速第二次点击Configure。显示Configuring done后将CUDA_ARCH_BIN显卡算力内容改成自己显卡的算力。官网查看显卡算力地址删除小于自己显卡算力的部分再搜索并勾选ENABLE_FAST_MATH选项第三次点击Configure。 显示Configuring done后点击generate显示generating done成功完成cmake编译在输出的opencv保存文件夹位置中存在就生成了OpenCV.sln文件。
cmake编译过程是会从githup上下载数据但是一般都会出现下载失败的情况这里建议读者先跳到【可能出现的问题】这一小节来确认是不是自己也出现了下载失败的情况。 VS2019编译 确保在解决方案的bindings这个目录下有opencv_python3否则即使编译成功仍然不能使用CUDA加速。使用VS2019 (以管理员方式运行) 打开刚刚编译工程OpenCV.sln在release|x64模式下在解决方案资源管理器—CMakeTargets—右键点击ALL_BUILD–生成。 同样在release|x64模式下在解决方案资源管理器—CMakeTargets—右键点击INSTALL–生成。
没有任何报错信息就是编译完成在XXX\lib\python3\Release文件夹下可以看到cv2.cpxxx-win_amd64.pyd文件。 XXX是编译opencv保存的文件夹位置(博主是opencv-4.8.0-vs2019-64)cpxx是python版本(博主是cp310) 同时在虚拟环境中可以在路径Lib\site-packages下看到cv2文件夹 进入cv2目录打开config.py可以看到虚拟环境opencv_onnx_gpu依赖于cmake编译的opencv(where to build the binaries)。 博主将依赖的opencv拷贝到了虚拟环境中并修改了依赖的路基。 可能出现的问题 cmake编译过程中可能出现的问题 cmake编译出现Download failed的问题。
在where to build the binaries位置里面有个CMakeDownloadLog.txt将里面下载链接复制到浏览器进行下载 将其和where is the source code里面的.cache文件夹里面内容相对应下图是下载失败时候文件大小是0KB手动下载完成后进行替换。 注意用来替换的文件的名称要与对应空文件的名称保持一致。 对于部分文件则需要将网页以另存为的方式进行替换注意一定不要以复制网页内容粘贴到空文件的方式进行替换这是无效的的。 将整个.cache都用同样的方式进行处理。 强调一点出现这种问题可以暂时先走完CMake编译过程因为每一次Configuring都会有新的下载内容然后再一次性将.cache的内容进行完整的替换最后进行Configuring和Generate。 VS2019编译过程中可能出现的问题 通常是对于部分资源vs2019没有管理员操作权限因此只需要用管理员身份重新打开进行操作即可。 测试使用GPU 这里用一段简单的python代码验证安装完成的opencv是否支持gpu设备。 import cv2

检查是否支持CUDA

if cv2.cuda.getCudaEnabledDeviceCount():print(检测到支持CUDA的设备数量:, cv2.cuda.getCudaEnabledDeviceCount()) else:print(未检测到支持CUDA的设备)验证成功oepncv-cuda版本源码编译成功。 总结 尽可能简单、详细的介绍windows10下Python版本opencv4.8.0-cuda版本用源码进行编译的详细流程。