YOLO(暗网):如何检测整个图像目录



使用预先训练的权重检测图像中对象的Darknet指南如下:https://pjreddie.com/darknet/yolo/

要运行的命令是:

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

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

如何使用暗网检测整个图像目录

根据下面提到的链接,可以使用cv2.dnn.readNetFromDarknet模块读取darknet、经过训练的权重和配置文件,在python中创建加载的模型。一旦加载了模型,就可以简单地使用for循环进行预测。请参阅此链接以进一步澄清

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

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

您可以从命令行(将文件夹文件发送到txt(或在Ubuntu上使用Nautilus等GUI工具生成文件列表。

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

有一个技巧可以让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.jpgr";
incr I;
} elseif {$I == 1} {
send "data/kite.jpgr";
incr I;
} else {
exit;
}
exp_continue;
}
}
HEREDOC

另一个解决方案是从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( 编辑新探测器.py

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

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

4b(运行检测器.py

最新更新