zoukankan      html  css  js  c++  java
  • YOLO---Darknet下使用YOLO的常用命令

    Darknet下使用YOLO的常用命令

    整理了一下,随手记一下。

    在终端里,直接运行时Yolo的Darknet的各项命令,/home/wp/darknet/cfg/coco.data文件,使用原件:
    =======================================coco.data=====================================================
    classes= 80
    train  = /home/pjreddie/data/coco/trainvalno5k.txt
    valid  = coco_testdev
    #valid = data/coco_val_5k.list
    names = data/coco.names
    backup = /home/pjreddie/backup/
    eval=coco
    ====================================================================================================

    (1)检测一张图片
    wp@wp-MS-7519:~/darknet$ ./darknet detect cfg/yolov3.cfg wp_data/yolov3.weights data/dog.jpg

    出现问题:
    ./darknet detector test cfg/yolov3.cfg wp_data/yolov3.weights data/dog.jpg报错names: Using default 'data/names.list'。。。Couldn't open file: data/names.list
    ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg 没有结果出来。

    (2)检测一段视频
    接好usb后,直接运行usb视频检测
    wp@wp-MS-7519:~/darknet$ ./darknet detector demo /home/wp/darknet/cfg/coco.data /home/wp/darknet/cfg/yolov3.cfg /home/wp/darknet/weights/yolov3.weights
    说明:在CPU下,运行的特别卡。"直接接USB,然后执行:./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights就可以了啊,

    官网https://pjreddie.com/darknet/yolo/说的很详细的。"

    ++++++++++++++++++++++++++++++++++++YOLO V3常用命令总结++++++++++++++++++++++++++++++++++++++++++++++
    参考@http://www.cnblogs.com/pprp/p/9525508.html
    (1)在GPU下训练自己的模型
        1.1 单GPU训练:./darknet -i <gpu_id> detector train <data_cfg> <train_cfg> <weights>
    $ ./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74

        1.2 多GPU训练,格式为0,1,2,3:./darknet detector train <data_cfg> <model_cfg> <weights> -gpus <gpu_list>
    $ ./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74 -gpus 0,1,2,3

    (2)单张测试命令:
    $ ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

    添加阈值:阈值范围0~1,By default, YOLO only displays objects detected with a confidence of .25 or higher. You can change this by passing the -thresh <val> flag to the yolo command. For example, to display all detection you can set the threshold to 0:
    $ ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg -thresh 0

    (3)批量测试图片
        官网的测试命令,只能单张测试,如果需要批量测试则yolov3-voc.cfg(cfg文件夹下)文件中batch和subdivisions两项必须为1,并修改detector.c文件中的相关地方,重新进行编译make clean,make。
        开始批量测试:
    $ ./darknet detector test cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_20000.weights
        接着在终端中,输入Image Path(所有的测试文件的路径,可以复制voc.data中valid后边的路径):
    /home/learner/darknet/data/voc/2007_test.txt # 完整路径。
        结果都保存在./data/out(detector.c中设定路径)文件夹下。


    (4)生成预测结果:
    $ ./darknet detector valid <data_cfg> <test_cfg> <weights> <out_file>
        yolov3-voc.cfg(cfg文件夹下)文件中batch和subdivisions两项必须为1。
        结果生成在<data_cfg>的results指定的目录下以<out_file>开头的若干文件中,若<data_cfg>没有指定results,那么默认为<darknet_root>/results。
        执行语句如下:在终端只返回用时,在./results/comp4_det_test_[类名].txt里保存测试结果
    $ ./darknet detector valid cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_20000.weights

    (5)官网的测试命令作为入口 @https://pjreddie.com/darknet/yolo/
    5.1 单张测试命令:
    $ ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
    ./darknet 是执行当前文件下面已经编译好的darknet文件
    detect 是命令 后面三个分别是参数: 网络模型 网络权重 需要检测的图片
    命令“ ./darknet detect ”等同于“ ./darknet detector test ”,The detect command is shorthand for a more general version of the command. It is equivalent to the command:
    $ ./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/dog.jpg
     
    5.2 多张测试命令:
    $ ./darknet detect cfg/yolov3.cfg yolov3.weights
    Enter Image Path: data/dog1.jpg
    Enter Image Path: data/dog2.jpg

    5.3 改变阈值
    YOLO默认阈值0.25,可以自行设定:
    $ ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg -thresh 0


    5.4 Real-Time Detection on a Webcam
    实时视频检,测需要Darknet with CUDA and OpenCV,-c <num>,OpenCV默认为0:
    $ ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights

    本地视频检,直接输入视频:
    $ ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights <video file>

    5.5 在预训练的模型上继续训练
    在 CPU  下训练:$ ./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74
    在 多GPU下训练:$ ./darknet detector train cfg/coco.data cfg/yolov3.cfg darknet53.conv.74 -gpus 0,1,2,3
    从定点继续训练:$ ./darknet detector train cfg/coco.data cfg/yolov3.cfg backup/yolov3.backup -gpus 0,1,2,3

    5.6 测试公开数据
    $ ./darknet detector test cfg/openimages.data cfg/yolov3-openimages.cfg yolov3-openimages.weights

    =====================================================
    (6)对  视频 进行测试命令:
    对本地视频进行测试 命令:
    >>>Darknet环境中,$ ./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/xxx.mp4
    >>>OpenCV 环境中, $ python3 object_detection_yolo.py --video=run.mp4
    【a single image:
        python3 object_detection_yolo.py --image=bird.jpg
     a video file:
        python3 object_detection_yolo.py --video=run.mp4 】

    对USB摄像头视频进行测试 命令:
    >>>Darknet环境中,$ ./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights
    >>>OpenCV 环境中, $ (暂略)

    对WebCam网络视频(比如大华、海康相机)进行测试 命令:
    这里使用命令前需要作相应的修改,需要相机+电脑在同一局域网,这样才能访问。首先,要知道相机的IP,然后在电脑里添加相机的六段IP地址,在IPv4中添加类似:192.168.6.111,前二位表示在同一局域网,第三位1表示1段的IP、6表示6段的IP。接着获取相机的用户名、密码。这样才能使用 添加摄像机 命令,
    $ ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights  rtsp://admin:hik12345@30.14.199.6:554/h265/ch1/main/av_stream
    $ ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights  rtsp://admin:abcd12345@30.14.6.192:554/Streaming/Channels/1/
    $ ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights  rtsp://admin:abcd12345@30.14.6.192:554/Streaming/Channels/101/

    +++++++++++++++++++++++++++++++++《摄像机Rtsp地址格式大全》++++++++++++++++++++++++++++++
    @https://www.cnblogs.com/dpf-10/p/5533698.html
    @http://www.mamicode.com/info-detail-2190692.html
    @https://blog.csdn.net/viola_lulu/article/details/53330727
     一. 海康、中威摄像机
         格式1
             主码流:rtsp://admin:12345@192.168.1.64:554/Streaming/Channels/1
             子码流:rtsp://admin:12345@192.168.1.64:554/Streaming/Channels/2
           第三码流:rtsp://admin:12345@192.168.1.64:554/Streaming/Channels/3
         格式2

            rtsp://admin:12345@192.168.1.64:554/ch1/main/av_stream

    如果摄像机密码是a12345678,IP是192.168.1.64,RTSP端口默认554未做改动,是H.264编码,那么
    主码流取流:
    rtsp://admin:a12345678@192.168.1.64:554/h264/ch1/main/av_stream
    子码流取流:
    rtsp://admin:a12345678@192.168.1.64:554/h264/ch1/sub/av_stream
    【如果是H.265编码的,那么将H.264替换成H.265即可】

     二. 大华
          rtsp://admin:12345@192.168.1.64:554/cam/realmonitor?channel=1&subtype=0
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

     

  • 相关阅读:
    JS Map的使用
    C# 创建Windows服务
    Oracle 表空间不足解决办法
    C# 企业微信API开发(获取Token,给用户发送消息)
    企业微信API开发笔记
    css实现div不定宽高垂直水平居中解决方案
    前端面试题目大全(附答案)
    移动Web开发
    jquery 给iframe里的元素添加事件
    Jquery实现可拖动进度条demo
  • 原文地址:https://www.cnblogs.com/carle-09/p/10570347.html
Copyright © 2011-2022 走看看