zoukankan      html  css  js  c++  java
  • 编译Opencv的GPU,利用CUDA加速

    首先检查自己的机器是否支持,否则都是白搭(仅仅有NVIDIA的显卡才支持。可在设备管理器中查看)

    假设不用GPU。能够直接官网下载预编译好的库


    环境:

    1 VS2013

    2 Opencv2.4.9

    3 CUDA6.5 (仅仅有6.5版本号以上版本号才增加对VS2013的支持。6.0最高支持到2012)

    4 TBB


    --------------下面内容转自网络(增加了自己编译时遇到的问题及解决方式)-----------------


    1. 须要的文件
        1.1 CMAKE 3.0 [http://www.cmake.org/download/
        1.2 CUDA 6.5 [https://developer.nvidia.com/cuda-toolkit
        1.3 OpenCV 源文件 [https://github.com/Itseez/opencv/releases/tag/2.4.9
        1.4 Intel TBB 库 [https://www.threadingbuildingblocks.org/download
        1.5 Python 2.7 (非必须)
        1.6 Eigen 2.0.17 (非必须)
        1.7 Visual Studio 2013 (也能够用其它版本号)

    2. 配置 CMAKE
        2.1 打开 CMAKE
            - 选择 Source Folder 到 OpenCV 的源文件文件夹
            - 选择 Output Folder
            - 勾选 Advanced
     
        2.2 点 Configure。选择编译器
            - 选择 ‘Visual Studio 12 2013 Win64′
        2.3 配置 CUDA 选项
            - 取消 ‘BUILD_DOCS’ and ‘BUILD_EXAMPLES’
            - 取消 ‘CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE’
            - 检查 ‘CMAKE_LINKER’, 保证是 Visual Studio 12.0 (vs2013)
            - 选上 ‘WITH_CUBLAS’, ‘WITH_CUDA’, ‘WITH_OPENGL’, ‘WITH_TBB’
            - 点击 Configure 刷新配置

        2.4 配置 TBB 选项
            - 把 tbb include path 设置好。比如我的是 “D: oolkits bb43_20140724ossinclude”。一定要选到 include目录为止。


            - 点击 Configure 刷新

            - 接着能够看到 tbb 的 library 文件夹自己主动有了,可是可能是错的,须要改到 Debug 和 Release 文件夹的上级文件夹为止。

    比如我的要加上 ‘vc12*,变成 D:/toolkits/tbb43_20140724oss/lib/intel64/vc12〃(不加vc12的话。opencv_core模块都编译只是去,其它的就不用说了)

            - 点击 Configure 刷新


        2.5 直到没有红色条目出现,点击 Generate 生成 OpenCV.sln


    3. 编译 OpenCV.sln
        - 假设 OpenCV,tbb。Python 中的某个安装在 C:Program Files。那么你须要用管理员权限执行 vs2013 才行
        - 我建议先编译 *opencv_core* 和 ‘ opencv_gpu* (右键点击,点 *BUILD*)。

    假设这两个没错。接下来应该都能够编译
        - 右键点击 *ALL_BUILD*,在点 *BUILD*
        - *BUILD* 之后在编译一下 *INSTALL*,来把编译好的文件放在一起到 *<Output Folder>install*
        - 在切换到 Release。反复 *ALL_BUILD* 和 *INSTALL*
        - *Debug* 应该会有一个 error, *Release* 应该会没有 error
        - 编译时间非常长。

    非常长。


     



    3. 使用
        - 使用的时候须要增加TBB的bin和CUDA的bin,否则执行时会报错





  • 相关阅读:
    MSDN仿站
    跟我学android—02.CustomActivity
    iptables redirect outside requests to 127.0.0.1
    linux 查看端口使用情况
    防火墙、Iptables、netfilter/iptables、NAT 概述
    POSTROUTING与PREROUTING区别
    android:layout_gravity和android:gravity的区别
    EasyUI datagrid 分页Json字符串格式
    [转载]easyui datagrid 时间格化(JS 日期时间本地化显示)
    [转载]EasyUI Pagination 分页的两种做法
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5384663.html
Copyright © 2011-2022 走看看