在Ubuntu 18.04下测试了YOLO的方案。选择安装的是CUDA 11.4和cuDNN 8.2,在测试v3版本时遇到了编译的问题。所以选择v4版本。
参考链接:https://pjreddie.com/darknet/yolo/,其中项目下载替换为下载AlexeyAB的v4版本,其它操作相同。
项目下载
$ git clone https://github.com/AlexeyAB/darknet
(这个是v4版本,原项目版本https://github.com/pjreddie/darknet也可以下载编译运行,不过在使用GPU选项进行编译时会产生问题)
在当前目录下产生darknet目录。国内通过git连接github克隆项目不是很顺的情况下也可以试试zip下载,之后解压。进入darknet目录。
$ cd darknet
进行编译
$ make -j4
之后下载网络的权重文件
$ wget https://pjreddie.com/media/files/yolov3.weights
可以以这个权重文件运行目标识别示例程序
$ ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
程序的目的是识别data目录下的dog.jpg文件,里面包含狗、自行车、汽车等内容。运行结果显示类似如下
用了8秒多时间,识别结果产生在darknet目录下的predictions.jpg文件,如下
识别出了狗、自行车、卡车等内容以及各自的自信程度。
YOLO项目默认编译配置是不使用GPU的,上述运行用了8秒多时间,如果使用GPU,则修改darknet目录下的Makefile文件。
$ gedit Makefile
把前面两行的配置修改为
GPU=1
CUDNN=1
再重新进行编译
$ make clean
$ make -j4
然后运行识别程序
$ ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
出现结果
显示使用了0.418秒的时间,大大加速了运算速度。运算结果同样出现在predictions.jpg文件中,与前面一样。说明GPU大大加强了计算性能。
根据说明,也可以尝试Tiny YOLOv3的配置。经测试速度加快很多,但是识别准确率差别较大。
评论(0)
您还未登录,请登录后发表或查看评论