环境:虚拟机下的ubuntu,所以就别想着什么CUDA了,折腾了半天才安装了了个opencv。
哦,不对,还是需要先说说怎么安装吧,虽然很简单。
YOLO: 是实现实时物体检测的系统,Darknet是基于YOLO的框架
darknet非常容易安装,它只有2个可选择的依赖:
Opencv: 能支持更多格式的图像,并且得到实时的显示,我安装了这个,但是自己电脑原因效果不好。
GPU: 利用GPU计算,能大大提升YOLO的识别帧率,画面更加流畅
安装这两个依赖都必须要
先安装基础版yolo
---安装基础版yolo---
$ git clone https://github.com/pjreddie/darknet.git
$ cd darknet
$ make
如果正确执行的话,会看到以下内容:
![](https://i-blog.csdnimg.cn/blog_migrate/e9b520e6ae321159d6ade152b5848c90.png)
运行以下命令:
$ ./darknet
看到以下效果,即为安装成功:
![](https://i-blog.csdnimg.cn/blog_migrate/7d2e5df47314071bccb24171658deadf.png)
---基础版yolo测试---
完成上面的操作后,我们可以看到 cfg/目录下已经有了YOLO的配置文件了.
现在为了测试我们的yolo,需要下载官方训练完毕的权重(237MB),或者运行以下命令: 权重可以自己随便找
我们没有使用OpenCV编译Darknet,因此无法直接显示检测结果。相反,它将它们保存在/darknet/predictions.png中。您可以打开它来查看检测到的对象。由于我们在CPU上使用Darknet,每个图像需要大约6-12秒。如果我们使用GPU版本,速度会更快.
在data/目录下还有其他的测试图片,可以尝试一下
./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg
![](https://i-blog.csdnimg.cn/blog_migrate/a8c110b16738e83dd13a2da47b1ebe4b.png)
在我尝试利用摄像头进行实时检测的时候,发现识别的速度特别慢,因为此时的程序还是使用的CPU,一帧图像都得要处理6-7秒.所以我们需要给用CUDA+Opencv编译yolo,使之能通过GPU显卡运算,这样速度会提高很多很多.
到此,你就会明白了接下来为啥会安装opencv库了,不再废话了,cuda的安装请参考原文作者的帖子:
---安装opencv---
安装opencv过程也很简单,但是容易出错,因为安装完成后需要就行一些配置和测试
这是一篇不错的博客,照着敲下来基本就ok了。
https://blog.csdn.net/cocoaqin/article/details/78163171
另外你可能跑到 exemple 文件夹下的 python库中测试,但是这个时候你会发现 what?
不能导入 cv2,也就是在python中不能用,这个时候很简单,
pip install opencv-python
就可以用了。