妙算2编译GPU版本的OpenCV并使用python进行调用

前置知识:

1.妙算2-G上已经预装好了cuda9,所以我没考虑cuda的安装问题,也没有考虑cuda是否和opencv存在版本的对应问题。

2.根据:python+OpenCV+cuda计算光流_dagongji10的博客-CSDN博客

OpenCV3.x/OpenCV2.x的GPU版本仅支持C++编程加速

OpenCV4.1.0之后的GPU版本开始支持Python编程加速

3.直接下载opencv-python包是已经预编译好的CPU版本的opencv,由于预编译的原因,下载时需要注意python版本和opencv-python包的对应关系,若版本不对应则会出现无法调用opencv包的情况。而自己通过cmake编译的话就不需要版本对应了,因为在生成配置文件时会根据系统的版本进行配置。

4.折腾了很久是因为妙算2中原本存在有多个版本的OpenCV(ros自带的opencv、jetpack中自带的OpenCV),导致环境配置的时候一通乱麻一样。最后是把OpenCV全部删除然后思路才慢慢清晰的。

配了这么多环境,感觉最重要的还是把思路捋清楚,有一条主线的话,找问题、搜资料会通透许多,这也是我写前置知识的原因。

一、主体参考:

博客参考:

Nvidia Jetson TX2 配置Cuda 加速的Opencv_tx2安装cuda_YOLOKY的博客-CSDN博客

 (是的,我使用了上面博客中的apt-get auto-remove命令,不建议使用)

 官方参考:OpenCV: Building OpenCV for Tegra with CUDA

二、解决编译过程中报错参考:

——error1:   

/usr/bin/ld: skipping incompatible /usr/local/cuda-9.0/lib64/libcudnn.so when searching for -lcudnn

——由于我不需要用到cudnn,所以直接在cmake命令选项中关掉cudnn的编译:

-D WITH_CUDNN=OFF 

——error2:   

No such file or dirctory

——ubuntu安装opencv_contrib扩展库,附踩坑+测试-云社区-华为云

——error3:   

undefined reference to cv::cuda::SURF_CUDA::SURF_CUDA()

——没找到很好的解决方法,直接在cmake命令选项中关掉EXAMPLES的编译:

-DBUILD_EXAMPLES=OFF

三、最终的cmake命令为:

cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr/local \
    -DBUILD_PNG=OFF \
    -DBUILD_TIFF=OFF \
    -DBUILD_TBB=OFF \
    -DBUILD_JPEG=OFF \
    -DBUILD_JASPER=OFF \
    -DBUILD_ZLIB=OFF \
    -DBUILD_EXAMPLES=OFF \
    -DBUILD_opencv_java=OFF \
    -DBUILD_opencv_python2=ON \ #即可以用python2
    -DBUILD_opencv_python3=ON \ #也可以用python3调用
    -DENABLE_PRECOMPILED_HEADERS=OFF \
    -DWITH_OPENCL=OFF \
    -DWITH_OPENMP=OFF \
    -DWITH_FFMPEG=ON \
    -DWITH_GSTREAMER=OFF \
    -DWITH_GSTREAMER_0_10=OFF \
    -DWITH_CUDA=ON \ #启动GPU版本
    -DWITH_GTK=ON \
    -DWITH_VTK=OFF \
    -DWITH_TBB=ON \
    -DWITH_1394=OFF \
    -DWITH_OPENEXR=OFF \
    -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-9.0 \
    -DCUDA_ARCH_BIN=6.2 \ #对应的硬件算力
    -DCUDA_ARCH_PTX="" \
    -D WITH_CUDNN=OFF \
    -DOPENCV_EXTRA_MODULES_PATH=/home/dji/opencv-4.1.1/opencv_contrib-4.1.1/modules \
    ..

关于使用pkg-config功能:

查看opencv4.x要输入 pkg-config opencv4 --modversion来查找。因为/usr/local/lib/pkgconfig/里的文件是opencv4.pc
但是注意:
csdn博客:OPENCV_GENERATE_PKGCONFIG 强烈建议开启这个 设置为ON, 因为opencv4默认不生成.pc文件,所以加上这句用于生成opencv4.pc文件,支持pkg-config功能。opencv4版本及以上 这里用ON。
而我cmake编译命令中应该是没有编译生成.pc文件,所以不支持pkg-config功能。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值