ubuntu16.04 build opencv4.5.0 from source with cuda11.1 support

14 篇文章 0 订阅

参考

准备

  • 安装cuda并测试nvidia-smi
➜  nvidia-smi 
Wed Nov 11 10:58:43 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 455.32.00    Driver Version: 455.32.00    CUDA Version: 11.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce RTX 208...  On   | 00000000:17:00.0 Off |                  N/A |
| 26%   34C    P8     1W / 260W |      1MiB / 11019MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  GeForce RTX 208...  On   | 00000000:65:00.0 Off |                  N/A |
| 26%   35C    P8     5W / 260W |      1MiB / 11016MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
  • 安装cmake,wget等基本工具,可以下载cmake-gui或者cmake-curses-gui,其中cmake-gui为窗口图形界面,ccmake为命令行界面
  • 安装一些基本库,如图形界面库sudo apt install libgtk2.0-dev,装gtk-3.0也可以。

下载

version=4.5.0
echo "$version"
wget https://github.com/opencv/opencv_contrib/archive/${version}.zip -O opencv_contrib_${version}.zip
unzip opencv_contrib_${version}.zip
wget https://github.com/opencv/opencv/archive/${version}.zip
unzip ${version}.zip

配置与编译

ccmake为例,新手推荐用cmake-gui,图像界面更友好。
确保环境变量LD_LIBRARY_PATH是空白的,否则cmake有些库找的路径可能受影响。如libgthread与libglib

cd opencv-${version}
mkdir build
cd build 
ccmake ..

运行后有如下界面

                                                    Page 1 of 19
 ANT_EXECUTABLE                   ANT_EXECUTABLE-NOTFOUND                                                                                                                                               
 Atlas_BLAS_LIBRARY               /usr/lib/libatlas.so                                                                                                                                                  
 Atlas_CBLAS_INCLUDE_DIR          /usr/include                                                                                                                                                          
 Atlas_CBLAS_LIBRARY              /usr/lib/libcblas.so                                                                                                                                                  
 Atlas_CLAPACK_INCLUDE_DIR        Atlas_CLAPACK_INCLUDE_DIR-NOTFOUND                                                                                                                                    
 Atlas_LAPACK_LIBRARY             /usr/lib/liblapack_atlas.so                                                                                                                                           
 BUILD_CUDA_STUBS                 ON                                                                                                                                                                    
 BUILD_DOCS                       OFF                                                                                                                                                                   
 BUILD_EXAMPLES                   ON                                                                                                                                                                    
 BUILD_IPP_IW                     ON                                                                                                                                                                    
 BUILD_ITT                        ON                                                                                                                                                                    
 BUILD_JASPER                     OFF                                                                                                                                                                   
 BUILD_JAVA                       ON                                                                                                                                                                    
 BUILD_JPEG                       ON                                                                                                                                                                    
 BUILD_LIST                                                                                                                                                                                             
 BUILD_OPENEXR                    OFF                                                                                                                                                                   

ANT_EXECUTABLE: Path to a program.                                                                                                                                                                       
Press [enter] to edit option                                                                                                                                                          CMake Version 3.5.1
Press [c] to configure
Press [h] for help           Press [q] to quit without generating
Press [t] to toggle advanced mode (Currently Off)

输入/搜索cuda,用n找下一个,将WITH_CUDA 设置为ON,BUILD_EXAMPLES 设置为ON,CUDA_ARCH_BIN可以将5.2之前的都去掉,避免报过时的警告。OPENCV_EXTRA_MODULES_PATH就设置为opencv_contrib的目录../../opencv_contrib-4.5.0/modules
然后输入c进行configure,带*的选项表示还没有配置好,一直按c直到全部配置好,再按g生成makefile再退出

make -j8
sudo make install

如果因为墙的原因无法下载ippicv,可以通过其它手段下载后放到对应目录,并重命名为相同的文件名。

../opencv-${version}/.cache/ippicv 
7421de0095c7a39162ae13a6098782f9-ippicv_2020_lnx_intel64_20191018_general.tgz

测试

version=4.5.0
echo "using yolo/yolo$1.cfg"
opencv-${version}/build/bin/example_dnn_object_detection --config=yolo/yolo$1.cfg --model=yolo/yolo$1.weights --classes=opencv-${version}/samples/data/dnn/object_detection_classes_coco.txt --width=416 --height=416 --scale=0.00392 --rgb  --input=xxx.mp4
  • 进入根目录,运行
    本例采用目录如下:
.
├── opencv-4.5.0
├── opencv_contrib-4.5.0
└── yolo

进入根目录

chmod +x test.sh
mkdir yolo
cd yolo
wget https://pjreddie.com/media/files/yolov2-tiny.weights
wget https://raw.githubusercontent.com/pjreddie/darknet/master/cfg/yolov2-tiny.cfg
./test.sh v2-tiny

找个小视频进行测试,输出结果为camera 531fps, network 50fps, skipped frame 337

问题总结

  • gtk等一些库找不到,解决办法:进行安装再重新configure
  • cudnn等安装了也找不到,确保安装成功,先装runtime,再装dev;然后自己找到libcudnn.so的位置,在cmake-gui中进行指定。详情可以参考opencv: couldnot find cudnn
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值