使用预训练权重检测图像中对象的暗网指南在这里:https ://pjreddie.com/darknet/yolo/
要运行的命令是:
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
最后一个参数是文件的路径,我尝试将其更改为data/*.jpg但没有用。
如何使用 Darknet 检测整个目录的图像?
使用预训练权重检测图像中对象的暗网指南在这里:https ://pjreddie.com/darknet/yolo/
要运行的命令是:
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
最后一个参数是文件的路径,我尝试将其更改为data/*.jpg但没有用。
如何使用 Darknet 检测整个目录的图像?
根据下面提到的链接,可以使用 cv2.dnn.readNetFromDarknet 模块来读取暗网、训练的权重和配置文件,以在 python 中制作加载模型。加载模型后,可以简单地使用 for 循环进行预测。 请参阅此链接以获取进一步说明
有一个技巧可以使 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
有一种简单的方法可以检测基于此存储库AlexeyAB/darknet的图像列表中的对象。
./darknet detector test cfg/obj.data cfg/yolov3.cfg yolov3.weights < images_files.txt
您可以从命令行(将文件夹文件发送到 txt)或使用 Ubuntu 上的 Nautilus 等 GUI 工具生成文件列表。
两个额外的标志-dont_show -save_labels将禁用用户交互,并将检测结果保存到文本文件中。
另一种解决方案是从 Python2 加载 Darknet(不是 3,Darknet 使用的是 Python2)。
1a) 如https://pjreddie.com/darknet/yolo/中所述克隆暗网
1b)转到克隆的目录,下载yolov3-tiny.weights并yolov3.weights如https://pjreddie.com/darknet/yolo/中所述
2)复制darknet/examples/detector.py到darknet目录
3) 编辑新的detector.py
cfg/yolov3-tiny.cfg和yolov3-tiny.weightscfg/coco.data4a)通过dn.dectect在detector.py中添加一些行来检测图像中的对象
4b) 运行检测器.py