主要安装docker,编译opencv

1.同一局域网下面,可以这样连接

dock安装samba dock安装opencv_docker


2.1安装docker或者这个

2.2加载镜像文件,在镜像文件夹目录那里

docker load -i docker load -i 18.04-cuda11.1-runtime-Base-image-V201211.tar

dock安装samba dock安装opencv_opencv_02

dock安装samba dock安装opencv_opencv_03


dock安装samba dock安装opencv_opencv_04

docker run -di --name=ubuntu18 dd42bd239451

dock安装samba dock安装opencv_opencv_05

2.3有nvidia的还需要安装nvidia-docker
这个里面的第三步。 2.4确保自己的系统已经成功安装 cmake、g++、gcc
2.5运行

sudo nvidia-docker run -d --privileged -ti -v ~/18.04-11.1-runtime-app:/data -v /etc/timezone:/etc/timezone:ro -v /etc/localtime:/etc/localtime:ro -p 0.0.0.0:8689:8689 --runtime=nvidia --restart unless-stopped --cap-add=SYS_PTRACE -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all --ipc=host --name 18.04_11.1_rumtime_wzw nvidia/cuda:11.1-cudnn8-runtime-ubuntu18.04

解释

-v ~/18.04-11.1-runtime-app:/data#将自己的本地文件夹映射到docker里面的data文件夹 -v的都是文件夹映射

在映射文件夹的时候注意使用绝对路径!如:

-v /home/hzq/docker:/data

222222。将这个名字改为自己想要的名字

--name 18.04_11.1_rumtime_wzw

--name hzq_docker

33333.这个是前面2.2执行后可以通过sudo docker ps来查看

nvidia/cuda:11.1-cudnn8-runtime-ubuntu18.04

我的是

dock安装samba dock安装opencv_opencv_06


所以我需要改为

brifactory/18.04:11.1-runtime-base-ffmpeg

2.6打开容器:BrilliantFactory为自己容器的名称,我的是之前的hzq_docker

sudo nvidia-docker exec -it BrilliantFactory /bin/bash

3.opencv编译(使用cuda加速)

安装之前先检查以下驱动和cuda安装好了没
检查驱动

nvidia-smi
nvcc -V

注意高版本的cudnn安装看下面链接的最后一行
如果都有输出就是安装成功了的。注意这里面的cudnn的安装坑。
3.1编译之前的准备
先在网上搜ubuntu18 opencv 等关键词,将需要的依赖项都提前安装好,如果后面报错了,后面又在补充。
依赖库(都看着弄)
a

b

c

d(这个里面比较详细,但是没有完全按照他的来)
e

f

安装这个:OpenBLAS

sudo apt-get install libopenblas-dev
sudo apt-get install doxygen
sudo apt-get install libgtk-3-dev

dock安装samba dock安装opencv_dock安装samba_07


安装完了过后关机重启!

3.2然后在编译

cmake -D CMAKE_INSTALL_PREFIX=install -D OPENCV_EXTRA_MODULES_PATH="/data/18.04-cuda11.1-devel-Base-source-v201210/source/opencv_contrib-4.5.0/modules" -D WITH_CUDA=ON -D WITH_FFMPEG=ON -D ENABLE_CXX11=ON -LA ..

只需要改以下路径就可以了,运行这个命令是在opencv-4.5… 里面的build文件夹下面运行的。

在cmake的时候看一下输出中的cuda是否为YES(这个在中间位置)

dock安装samba dock安装opencv_dock安装samba_08


还需要查看cmake的输出,重头到下面这个图

dock安装samba dock安装opencv_opencv_09


都一行一行的看,主要看有没有报错,有没有失败或者错误的,然后在一个一个的百度,找方法,因为我的错误太多了,就没有记录。(人生第一次知道,原来一长串的输出还需要看一的。mmp)

感觉差不多(也就百度得不能再百度了),就执行下面一个步骤。

3.3然后在make -j8或者make -j4都可以,建议用j4。 (自己用的是make install)
漫长的等待
(警告不管,错误伤心,得返回找cmake的错误,再重新cmake)
补充:还可以使其在后台编译:nohup make -j4 &,使用这个的原因是因为自己是ssh链接的设备,没有使用显示屏之类的,所以自己要是下班了,把ssh强行断开后,make就自动停止了,不是用这个就需要自己一直ssh连着。
3.4还是在编译
sudo make install
3.5这是防止后面测试出问题
安装1安装2 3.6安装好了过后将库添加到路径或者参考这个 3.6.1添加后还是出错
解决方案1 3.6.2
问题://usr/lib/x86_64-linux-gnu/libblas.so.3:对‘gotoblas’未定义的引用解决方案。 4.验证,从里面的第二步开始看,应该是这样的。
(5.22未成功)
(5.23成功(但是摄像头未一直是打开的状态))
拯救
1这个里面创建的opencv.pc文件那里开始:还是不行
打算卸载cuda重新安装一次

5.24补充
又把前面的有些步骤删除了 因为在运行这些里面的代码的时候,不删除又会有问题