• Darknet--YOLO的基本使用


    安装Darknet

    Darknet--YOLO的基本使用

    测试图片

    Joseph大佬已经训练好了一个权重, 我们要拿来用吧。

    wget https://pjreddie.com/media/files/yolov3.weights # yolov3权重
    wget https://pjreddie.com/media/files/yolov3-tiny.weights  # 小的yolov3权重
    

    由于一些原因,下载速度可能非常慢,我保存了。
    链接: https://pan.baidu.com/s/1rX5IY-FtBIrNABObzsLp-A 提取码: 2us8
    虽然百度云也慢的不行。。链接失效了, 嫌百度云速度慢,留个邮箱吧。

    检测一张图片吧,注意权重文件的路径

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

    cpu上一张图片大概十秒吧,GPU就快得很了。
    如果没有编译opencv, 那么最终结果是这样的

    layer     filters    size              input                output
        0 conv     32  3 x 3 / 1   416 x 416 x   3   ->   416 x 416 x  32  0.299 BFLOPs
        1 conv     64  3 x 3 / 2   416 x 416 x  32   ->   208 x 208 x  64  1.595 BFLOPs
        .......
      105 conv    255  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 255  0.353 BFLOPs
      106 detection
    truth_thresh: Using default '1.000000'
    Loading weights from yolov3.weights...Done!
    data/dog.jpg: Predicted in 0.029329 seconds.
    dog: 99%
    truck: 93%
    bicycle: 99%
    

    结果保存在了predictions.png。编译了opencv才会直接显示图片, 中间出现了一堆窗口?那就对了!让你看懂YOLO咋工作的。

    还可以这样做。

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

    然后会提示让你输入图片的路径。

    ./darknet detect cfg/yolov3.cfg yolov3.weights
    layer     filters    size              input                output
        0 conv     32  3 x 3 / 1   416 x 416 x   3   ->   416 x 416 x  32  0.299 BFLOPs
        1 conv     64  3 x 3 / 2   416 x 416 x  32   ->   208 x 208 x  64  1.595 BFLOPs
        .......
      104 conv    256  3 x 3 / 1    52 x  52 x 128   ->    52 x  52 x 256  1.595 BFLOPs
      105 conv    255  1 x 1 / 1    52 x  52 x 256   ->    52 x  52 x 255  0.353 BFLOPs
      106 detection
    Loading weights from yolov3.weights...Done!
    Enter Image Path:
    

    输入图片路径就可以啦。

    关于Thresh, YOLO只会展示确信值高于0.25的对象。

    ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg -thresh 0 # 你可以设置为0, 或者任意0-1的值
    

    测试视频

    测试视频必须要编译opencv了。把Makefile中的opencv=0 改成 opencv = 1。
    这是我[安装opencv c++的过程] (https://www.cnblogs.com/hichens/p/12665897.html)
    最好再GPU下测试, CPU, 嘿嘿,谁试谁知道。

    ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights <video file> # <video file>是视频问价的路径
    ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights -c num # num 是电脑摄像头(webcam)的代号, 默认为 0
    

    参考

    YOLO: Real-Time Object Detection

  • 相关阅读:
    Nodejs与ES6系列3:generator对象
    Nodejs与ES6系列2:Promise对象
    Nodejs与ES6系列1:变量声明
    Nodejs与ES6系列4:ES6中的类
    angular单元测试与自动化UI测试实践
    javascript 异步模块加载 简易实现
    javascript模式 (3)——工厂模式和装饰模式
    TP手册学习第四内置天
    TP手册学习第三天
    tp5命令行基础
  • 原文地址:https://www.cnblogs.com/hichens/p/12861370.html
Copyright © 2020-2023  润新知