如何使用CUDA GPU支持从源代码构建OpenCV?
验证OpenCV正确构建
假设构建正确完成,我们可以验证OpenCV现在可以正常工作了。你将要打开另一个“命令提示符”实例,并cd到你的OpenCV_Build文件夹。进入该文件夹后,你需要在命令提示符下输入以下几行:call set_env_paths.batset path=%openCvBuild%installdc16in;%path%ipython然后将下一位复制粘贴到命令窗口中。import numpy as np
import cv2 as cv
npTmp = np.random.random((1024, 1024)).astype(np.float32)
npMat1 = npMat2 = npMat3 = npDst = np.stack([npTmp,npTmp],axis=2)
cuMat1 = cuMat2 = cuMat3 = cuDst = cv.cuda_GpuMat(npMat1)
%timeit cv.cuda.gemm(cuMat1, cuMat2,1,cuMat3,1,cuDst,1)
完成此操作后,按Enter键,你应该会看到以下内容:2.79 ms ± 63.8 ?s per loop (mean ± std. dev. of 7 runs, 1 loop each)好的,很酷。因此,现在我们知道可以使用Python来访问OpenCV模块了。接下来,让我们确保它在我们的Conda环境里。在同一窗口中,粘贴:dir "%USERPROFILE%Anaconda3envspy38Libsite-packagescv2*"
这个输出应该是:05/15/2021 | 12:26 PM | 9,133,056 | cv2.cp38-win_amd64.pyd如果不是,请在命令提示符下键入:dir "%openCvBuild%libpython3cv2.cp38-win_amd64.pyd"以检查我们的Python绑定。它应该定位到文件。如果找到该文件,则需要确保env的conda site-packages文件夹中包含该cv2.cp38-win_amd64.pyd文件。
如果不是,你可以:1.从以下位置手动复制/粘贴文件:OpenCV_Buildopencv-4.5.2uildlibpython3并将其粘贴到conda文件夹位置:C:UsersYOUR_NAMEnaconda3envsYOUR_ENV_NAMELibsite-packages。然后重新运行dir "%USERPROFILE%Anaconda3envspy38Libsite-packagescv2*"命令。2.使用以下cmd:copy "%openCvBuild%/lib/python3/cv2.cp38-win_amd64.pyd" "%USERPROFILE%/Anaconda3/envs/py38/Lib/site-packages/cv2.cp38-win_amd64.pyd"
测试OpenCV版本
在同一cmd提示符下,键入:set path=%openCvBuild%installdc16in;%path%
python -c "import cv2; print(f'OpenCV: {cv2.__version__} for python installed and working')"
它应该输出类似以下内容:OpenCV: 4.5.2 for python installed and working。
确认CUDA配置正确
最后,如果其他所有方法都获得成功,则还应确认CUDA的配置正确:"%openCvBuild%installdc16inopencv_perf_cudaarithm.exe" --gtest_filter=Sz_Type_Flags_GEMM.GEMM/29
在输出的底部,你应该看到绿色的内容:[ PASSED ] 1 test.如果仍然遇到麻烦,请查看下面的“Credits”部分,并查看JamesBowley的文章。在故障排除方面,他比我更深入。
PyCharm故障排除
如果你像我一样使用PyCharm,你会发现,尽管OpenCV现在可以在PyCharm之外运行,但在PyCharm中打开项目时却无法使用。造成这种情况的原因有很多,但是我发现实际可行的解决方案是Stackoverflow和Github问题跟踪器提供的答案的组合。
1.将OpenCV_Build添加到你的环境路径
按下Windows键,然后键入env,会弹出一个选项来编辑系统环境变量。打开窗口,单击右下角的“环境变量”。该窗口有两个部分。一个标题为“用户名的用户变量”,另一个标题为“系统变量”。在“用户名的用户变量”部分中,双击名为“ Path”的变量。然后单击“新建”以添加新条目。然后复制并粘贴opencv-4.5.2uildinstalldc16in文件夹位置。它应该位于你的OpenCV_Build文件夹中。与以前不同,请确保在此处使用反斜杠(“ ”)而不是斜杠(“ /”)。在“系统变量”部分中执行相同的操作。检查PyCharm现在是否可以运行,如果没有,请继续下一步。
2.将anaconda symlink文件夹添加到Anaconda3
这显然不是必需的步骤,但PyCharm仍然存在一些错误,它寻找一个不存在的文件夹anaconda而不是anaconda3,所以我们将继续将它们符号链接。mklink /D C:UsersBengenaconda C:UsersBengeAnaconda3
仔细检查PyCharm(可能仍然无法使用)。如果没有,请继续下一步。
3.将构建文件夹SymLink添加到Conda站点包
你将要创建另一个符号链接,但不是anaconda,而是要将opencv-4.5.2uildinstalldc16in文件夹链接到anaconda3 site-packages文件夹。mklink /D E:OpenCV_Buildopencv-4.5.2uildinstalldc16in C:UsersBengenaconda3envspy38libsite-packages
很明显,把它改成你的conda env的名字和位置,而不是像我给它取名叫做py38。PyCharm警告
你的项目应该可以在启用了自定义CUDA的OpenCV上正常运行,但是你可能会注意到PyCharm在该行下仍然显示红色的import cv2。我不知道为什么它坚持认为尽管存在该软件包并且它可以正确运行,但仍然找不到该软件包。这只是PyCharm中的一个烦人的bug,我发现没有什么东西可以修复它。
Credits:之所以能够启动并运行OpenCV,很大一部分原因是依赖了JameBowley的指南。
JameBowley的指南:https://jamesbowley.co.uk/accelerate-opencv-4-4-0-build-with-cuda-and-python-bindings/#troubleshooting它非常有用,但我发现它有点混乱并且没有包括我发现的一些步骤,这些步骤对于在PyCharm的Conda env内构建和运行OpenCV是必需的。
向M. Haroon Shakeel欢呼,以获取有关使用CUDA构建OpenCV的简明指南(但不幸的是,尚未完成)。他是第一本深入探讨在Windows上构建OpenCV的实际指南,而不仅仅是说要使用Linux。
M. Haroon Shakeel:https://haroonshakeel.medium.com/build-opencv-4-4-0-with-cuda-gpu-support-on-windows-10-without-tears-aa85d470bcd0
感谢Stackoverflow的Miki帮了我的忙,并最终指引我查看 JameBowley 的指南。
Miki:https://stackoverflow.com/questions/67537383/how-do-i-access-opencv-source-compiled-package-from-my-python-project-venv-on-wi?noredirect=1#comment119377208_67537383
图片新闻
最新活动更多
-
11月22日立即报名>> 【线下论坛】华邦电子与莱迪思联合技术论坛
-
即日-11.30免费预约申请>>> 燧石技术-红外热成像系列产品试用活动
-
11月30日立即试用>> 【有奖试用】爱德克IDEC-九大王牌安全产品
-
即日-12.26火热报名中>> OFweek2024中国智造CIO在线峰会
-
限时免费下载立即下载 >>> 2024“机器人+”行业应用创新发展蓝皮书
-
即日-2025.8.1立即下载>> 《2024智能制造产业高端化、智能化、绿色化发展蓝皮书》
推荐专题
- 1 同源共创 模式革新 | 华天软件皇冠CAD(CrownCAD)2025新品发布会圆满举行
- 2 上海国际嵌入式展暨大会(embedded world China )与多家国际知名项目达成合作
- 3 iEi威强电新品丨IMBA-AM5:工业计算的强劲引擎
- 4 史上首次,大众终于熬不住开启40亿降本计划!关3个工厂,裁员万名...
- 5 守护绿色学习空间,EK超低温热泵服务对外经济贸易大学图书馆
- 6 颜值高 有“门”道|贝特威汽车门板内饰AI视觉检测解决方案
- 7 观众登记启动 优解制造未来,锁定2025 ITES深圳工业展
- 8 “秸”尽全力,防患未“燃” | 秸秆焚烧智能监控解决方案
- 9 揭秘:「全球知名跨境电商」构建核心竞争力的“独门绝技”是?
- 10 3大场景解读 | 红外热像仪赋能科研智造创新应用
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论