【问题标题】:YOLO (Darknet): How to detect a whole directory of images?YOLO(暗网):如何检测整个目录的图像?
【发布时间】:2020-06-10 06:49:49
【问题描述】:

使用预训练权重检测图像中对象的暗网指南在这里:https://pjreddie.com/darknet/yolo/

要运行的命令是:

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

最后一个参数是文件的路径,我尝试将其更改为data/*.jpg,但没有成功。

如何使用暗网检测整个目录的图片?

【问题讨论】:

    标签: machine-learning computer-vision object-detection yolo darknet


    【解决方案1】:

    根据下面提到的链接,可以使用 cv2.dnn.readNetFromDarknet 模块来读取暗网、训练的权重和配置文件,以在 python 中制作加载模型。加载模型后,可以简单地使用 for 循环进行预测。 Please refer this link for further clarification

    【讨论】:

    • 如何使用循环进行预测?
    【解决方案2】:

    有一个技巧可以让 Darknet 可执行加载权重一次并推断多个图像文件。使用expect 来解决问题。

    安装expect:

    sudo yum install expect -y
    #sudo apt install expect -y
    

    对多个图像进行对象检测:

    expect <<"HEREDOC"
      puts "Spawning...";
      spawn ./darknet detect cfg/yolov3-tiny.cfg yolov3-tiny.weights;
      set I 0;
    
      expect {
        "Enter Image Path" {
          set timeout -1;
    
          if {$I == 0} {
            send "data/dog.jpg\r";
            incr I;
          } elseif {$I == 1} {
            send "data/kite.jpg\r";
            incr I;
          } else {
            exit;
          }
    
          exp_continue;
        }
      }
    HEREDOC
    

    【讨论】:

      【解决方案3】:

      有一种简单的方法可以检测基于此存储库AlexeyAB/darknet 的图像列表中的对象。

      ./darknet detector test cfg/obj.data cfg/yolov3.cfg yolov3.weights < images_files.txt
      

      您可以从命令行 (Send folder files to txt ) 或使用 Ubuntu 上的 Nautilus 等 GUI 工具生成文件列表。

      两个额外的标志-dont_show -save_labels 将禁用用户交互,并将检测结果保存到文本文件中。

      【讨论】:

        【解决方案4】:

        另一种解决方案是从 Python2 加载 Darknet(不是 3,Darknet 使用的是 Python2)。

        1a) 如https://pjreddie.com/darknet/yolo/中所述克隆暗网

        1b) 转到克隆目录,下载yolov3-tiny.weightsyolov3.weights,如https://pjreddie.com/darknet/yolo/ 中所述

        2) 将darknet/examples/detector.py 复制到darknet 目录

        3) 编辑新的detector.py

        • 更改 .load_net 行以使用:cfg/yolov3-tiny.cfgyolov3-tiny.weights
        • 更改 .load_meta 行以使用:cfg/coco.data

        4a) 通过在detector.py 中添加一些dn.dectect 行来检测图像中的对象

        4b) 运行检测器.py

        【讨论】:

          猜你喜欢
          • 2020-11-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-31
          • 1970-01-01
          • 2021-04-28
          • 1970-01-01
          相关资源
          最近更新 更多