上篇TX2安装完成OpenCV 3.4.0之后,基本软件包已经安装完成,本篇开始安装并运行大名鼎鼎的号称速度最快的目标识别分类算法Yolov3。
Yolov3 是啥啊
Yolov3是一款基于darknet深度学习框架的目标检测开源项目,目前已经发展到第3版本,即V3版本,darknet短小精悍,虽然功能和复用性不如当前如日中天的Tensorflow和Caffe,但由于其源码都是用纯C语言和CUDA底层编写的,所以它的速度超快特点让它在Yolov3项目中大放光彩,能够充分发挥多核处理器和GPU并行运算的功能。本质上说,Yolov3就是一个实现了回归功能的深度卷积神经网络。
然而非常遗憾的是Yolo之父redmon前两天在个人Twitter上宣布,将停止一切CV研究,原因是自己的开源算法已经用在军事和隐私问题上,这对他的道德造成了巨大的考验。这对Yolo的发展来说不是一个好消息,但是redmon以自身退出学术界来为AI道德问题敲响警钟,这种行为还是值得点赞!
工作环境
- TX2 ubuntu 18.04;
- CUDA:10.0;
- cudnn:7.6.3。
安装Yolov3
首先从github下载yolov3的源代码:
$ t clone https://github.com/pjreddie/darknet yolov3
下载完成后,需要修改Makefile文件,以匹配TX2平台。
cd yolov3vim Makefile //打开Makefile文件
#修改Makefile文件,GPU、CUDNN、OPENCV要是用设为1,如果要调试,DEBUG设为1GPU=1CUDNN=1OPENCV=1OPENNMP=0DEBUG=1#ARCH里边增加TX2支持,TX2位62ARCH= -gencode arch=compute_53,code=[sm_53,compute_53] -gencode arch=compute_62,code=[sm_62,compute_62] /#增加TX2支持
make -j8 //编译yolov3
yolov3运行测试
下载预训练模型,后期可以根据检测目标要求,修改训练自己的模型。
cd yolov3wget https://pjreddie.com/media/files/yolov3.weights //wget下载巨慢,而且很容易中断,建议迅雷下载后导入
经典的狗狗识别测试,检测完成后会生成predictons.jpg,并标出分类。
cd yolov3./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg //运行yolov3检测dog.jpg图片