【问题标题】:cv2 is not found at site-package folder of Python after cmake build在 cmake 构建后,在 Python 的 site-package 文件夹中找不到 cv2
【发布时间】:2021-12-07 10:15:51
【问题描述】:

我正在尝试在 Python 3.9.6 上使用 CUDA 函数构建 opencv
我在没有 Python3_LIBRARY_DEBUG 的情况下设置了与 Python3 相关的路径,并使用 cmake 检查它们是否正确。
opencv 的构建(具有 CUDA 的功能)正常工作。

cmake --build "fullpath to build folder" --target INSTALL --config Release

但是cmake构建后在Python的site-package文件夹中找不到“cv2”文件夹,并且在构建文件夹中找不到“install”文件夹(在cmake上的“构建二进制文件的位置”设置)

【更新】cmake设置

PYTHON3_EXECUTABLE C:/Users/user/AppData/Local/Programs/Python/Python39/python.exe
PYTHON3_INCLUDE_DIR C:/Users/user/AppData/Local/Programs/Python/Python39/include
PYTHON3_LIBRARY C:/Users/user/AppData/Local/Programs/Python/Python39/libs/python39.lib
PYTHON3_NUMPY_INCLUDE_DIRS C:/Users/user/AppData/Local/Programs/Python/Python39/lib/site-packages/numpy/core/include
PYTHON3_PACKAGES_PATH C:/Users/user/AppData/Local/Programs/Python/Python39/Lib/site-packages
CMAKE_PREFIX_INSTALL C:/Users/user/Desktop/build_4.5.0-2/install

【更新】cmake构建后构建文件夹

├3rdparty/
├apps/
├bin/
├CmakeFiles/
├configured/
├data/
├doc/
├downloads/
├include/
├lib/
├modules/
├opencv2/
├python_loader/
├testdata/
├test-reports/
├tmp/
├win-install/

・操作系统:Windows 10 Pro for Workstation
・Python:3.9.6
・Cmake(GUI):3.20.5,生成器:Visual Studio 16 2019
・opencv:4.5.3,opencv_contrib:4.5.3

【问题讨论】:

    标签: python c++ windows opencv cmake


    【解决方案1】:

    第 0 步:先决条件

    • 下载并安装 CUDA 和 cuDNN。
    • 下载并安装 CmakeGUI。
    • 下载并安装 Visual Studio 社区版。 使用 Desktop Development for C++ 选项安装。
    • 下载 OpenCV 源代码。
    • 下载 OpenCV 贡献。确保版本与 OpenCV。
    • 解压 OpenCV 和 OpenCV contrib zip 文件。
    • 创建一个名为 build 的空文件夹。

    第 1 步:使用 CMake GUI 构建 OpenCV

    • 打开 CMake GUI 并浏览 OpenCV 源文件夹。
    • 浏览 wGo 以构建文件夹并使用 Visual Studio 打开 OpenCV.sln 文件的 make 文件夹。 e 在上面创建。
    • 单击配置并选择 X64 平台并单击完成。
    • 新选项将在 CMake 中以红色显示。勾选这些复选框 那里:WITH_CUDA、OPENCV_DNN_CUDA、ENABLE_FAST_MATH
    • 在同一窗口中,转到 OPENCV_EXTRA_MODULES_PATH 并浏览 OpenCV contrib 目录并指向 modules 子文件夹。
    • 再次点击配置。您将看到红色的新选项。打钩 CUDA_FAST_MATH 复选框。从 CUDA_ARCH_BIN 属性中,删除任何 您的 nVidia GPU 型号不支持的计算架构。 您可以找到适合您的兼容计算架构的列表 GPU 型号。
    • 点击配置,然后点击生成。

    第 2 步:使用 Visual Studio 制作 OpenCV

    • 转到 build 文件夹并使用 Visual Studio 打开 OpenCV.sln 文件。
    • 打开后,从顶部将 Debug 更改为 Release。
    • 在右侧面板上,展开 Cmake Targets。
    • 右键单击 ALL_BUILD 并单击构建。
    • 完成后,右键单击安装并单击构建。

    验证 GPU 计算加速

    这是一个小代码,它在 CPU 上使用 NumPy 和在 GPU 上使用 OpenCV 执行简单的矩阵乘法。

    import numpy as np
    import cv2 as cv
    
    npTmp = np.random.random((1024, 1024)).astype(np.float32)
    
    npMat1 = np.stack([npTmp,npTmp],axis=2)
    npMat2 = npMat1
    
    cuMat1 = cv.cuda_GpuMat()
    cuMat2 = cv.cuda_GpuMat()
    cuMat1.upload(npMat1)
    cuMat2.upload(npMat2)
    
    print(%timeit cv.cuda.gemm(cuMat1, cuMat2,1,None,0,None,1))
    print(%timeit cv.gemm(npMat1,npMat2,1,None,0,None,1))
    

    【讨论】:

    • 通过使用 cmake(CUI) 和 Ninja 构建解决了问题。 CV2 文件夹已成功添加到 site-packages 文件夹中。
    猜你喜欢
    • 2018-12-20
    • 1970-01-01
    • 2020-10-27
    • 2016-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2019-07-09
    相关资源
    最近更新 更多