参考
准备
- 安装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
测试
- opencv官方使用yolo的例子
- darknet官网下载yolo权重
- 编辑test.sh, 注意下载的权重与
classes
要对应,tiny-yolov2是在coco数据集上训练,相应的classes
要用coco
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