1、显卡驱动:
1.1、首先禁用集显,网上教程比较多,一直到 输入

lsmod | grep nouveau

没有输出为止,证明禁用成功。
1.2、集显禁用以后,我是采用 apt-get 的方式直接安装显卡驱动的,没有采用源码编译的方式,因为这样更快更省事,而且没有出错。
可借鉴这篇博文的安装方式

我的安装过程都很顺利,没有报错。若有同学出现错误,请另行寻找其余的解决方式。

2、cuda9安装
cuda9的安装主要借鉴了这篇博文

从博文的第二部分开始,我才用的.run文件进行安装的。其中,安装刚开始时,需要手动回车一直到100%,这是可使用 ctrl+c的命令直接跳过。然后问你安装显卡驱动时,选择no。其余都是yes或者accept。静等安装就可,然后就是配置环境变量。一些按照博文就可。

3、cudnn安装
cudnn是和cuda一起使用的,所以安装cuda后要紧跟着安装cudnn。这里我采用的这篇博文,直接跳跃到安装cudnn那部分,按照指令进行操作即可。

4、opencv4.2.0安装
这一部分比较坑,我一开始直接安装的opencv4.2.0和opencv_contrib4.2.0.但是看到有帖子说道要讲opencv和cuda一起编译,我就卸载了,重新安装。但是带cuda的opencv一直出错。可能是我显卡太久的原因。最终还是放弃带cuda的opencv编译。单独编译的opencv。这里主要借鉴的这篇博文

这里整个的过程和命令我是完全按照博文一步一步来的。其中编译那一步,我是使用cmake-gui编译的,顺道生成了opencv4.pc文件,博文里也提到了。中间出现的错误也是一样的。

全部操作完毕后,opencv就安装完了。此时在/usr/local/lib/pkgconfig文件夹下会生成opencv4.pc文件,将其克隆到/usr/lib/pkgconfig并将移动后的文件重命名一下

sudo cp /usr/local/lib/pkgconfig/opencv4.pc /usr/lib/pkgconfig
sudo mv opencv4.pc opencv.pc

第二步要进到/usr/lib/pkgconfig文件夹下操作。

至此opencv就安装完成了。

5、yolov3配置

配置过程比较简单,其中make之前要修改一下darknet/makefile文件里面的开头那里, opencv=1.
然后再执行make。出现的错误

./src/image_opencv.cpp:12:1: error: ‘IplImage’ 报错

我是借鉴了这篇博文解决的。

make完事以后,就下载yolov3.weight文件,然后别的没动,直接在darknet文件夹下执行的测试命令

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

加载weight之后等一会就会出现图片,代表配置成功。

然后在darknet/makefile文件里面的开头那里,进行修改一下:

GPU=1
CUDNN=1//如果已经安装
OPENCV=1

代表使用gpu,虽然之前没有带cuda的opencv编译,但我修改这里后也能运行。
修改完这里,需要重新对darknet文件进行make,重新make之前要清除一下。

make clean
make

make出现的错误也可以借鉴刚才的那篇博文。
然后再运行测试命令,这时候出现了错误

CUDA error:out of memory
check_error: Assertion `0' failed. 已放弃 (核心已转储)

这意味着显存不够了。我的显存时2G,旧电脑。这里借鉴的这篇博文修改的。

其中还在它的评论里发现,改cfg目录下yolov3.cfg第8、9行height和width值,修改为宽高都为416。修改完后没有出错。大功告成。