Yolo目标检测和识别(第一课)

Darknet:目标检测和识别的一些小结

引用地址:

https://pjreddie.com/darknet/yolo/

安装步骤及使用预训练权重测试图片

  1. 在Ubuntu终端输入如下命令:
    Yolo目标检测和识别(第一课)_第1张图片
    git clone https://github.com/pjreddie/darknet.git: 用于下载darknet安装包(下载完成后,如果想要调用GPU/CUDNN/OPENCV,可以将makefile中将它们幅值结果从0改为1。如果没有可以不改动)
    cd darknet: 定位到下载的darknet文件夹
    make: 对安装包进行编译
    【笔者在尝试修改makefile后发现,重新使用make clean和make后,编译会报错。最后只能重新将GPU等赋值为0!】

  2. 下载权重文件
    使用命令:wget https://pjreddie.com/media/files/yolov3.weights

  3. 测试图片
    使用命令:./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
    (其中,./darknet detect为运行指令;cfg/yolov3.cfg为网络配置文件,里面有各种网络层结构;yolov3.weights是刚刚下载的权重文件;data/dog.jpg是要测试的图片)
    随后终端会显示各种层的输出,该配置文件中共包含106层,最终会显示这张图片中检测到的各种类及其准确率。显示结果不会弹出,结果保存在darknet文件夹中,名为predictions.jpg。
    Yolo目标检测和识别(第一课)_第2张图片
    测试效果图为:https://pjreddie.com/media/image/Screen_Shot_2018-03-24_at_10.48.42_PM.png

Note: detect是更常用的命令,我们也可以使用如下命令进行测试:

./darknet detector test cfg/coco.data cfg/yolo.cfg yolo.weights data/dog.jpg

测试多张图片

上述命令只能用于单张图片的目标检测。要想测试多张图片,可用如下命令:

./darknet detect cfg/yolov3.cfg yolov3.weights

最后出现Enter Image Path: 就可以再输入新的一张图片。但是,测试结果每次都会覆盖上一次的结果,因为检测名称均为predcitions.jpg。
下图为测试多张图片时的界面。当不想继续输入图片时,按下ctrl+C可退出该命令。
Yolo目标检测和识别(第一课)_第3张图片

更改检测阈值

默认情况下,Yolo使用置信度为0.25或更高的数来显示检测的目标。我们可以在检测命令后添加 -thresh 主动设置阈值。比如,如果你想要显示所有的检测结果,那么阈值可以设为0,用如下命令:

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg -thresh 0

实时检测

要实时检测需要将Makefile中的opencv=1,否则会报错。修改后使用如下命令调用摄像头:

./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights

如果修改后依然报错,则说明opencv配置有问题。(笔者就报错了Orz…然后在正在重装opencv,崩溃O^O)
我们也可以对本地视频进行目标检测和识别:

./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights 

由于使用预训练模型可能不是针对自己的数据的。我们可能只想要识别几个类别,但这个模型通常包含很多类,因此下章将记录如何训练自己的数据。

你可能感兴趣的:(学习)