Darkne提供了单张的图像测试与保存命令
./darknet detector test data/voc.data cfg/yolov4-tiny.cfg yolov4-tiny.weights -i 0 -thresh 0.3 xxxx.png
其中
- data/voc.data 为data的路径
- cfg/yolov4-tiny.cfg为网络结构路径
- yolov4-tiny.weights为权重路径
- xxxx.png 为测试图像的路径, 也可以改成 <xxx.txt
使用python实现多张图像的测试与保存
import os
import sys
import shutil
arg = sys.argv
txt_file = arg[1]
with open(txt_file, mode="r") as f:
data = f.readlines()
f.close()
data = [i.split("\n")[0] for i in data]
# print(data)
i = 0
while True:
if i < len(data):
new_name = "results/{}.jpg".format(data[i].split("/")[-1][:-4])
try:
shutil.move("predictions.jpg", new_name)
print(i, end="\r")
i += 1
except Exception as e:
pass
- 执行该脚本就可以实现批量测试与保存了,记得将darknet的可执行文件与脚本同级目录,不在的需要修改cmd变量。
python batch_pred.py xxx.txt
新建立终端
./darknet detector test data/voc.data cfg/yolov4-tiny_xxx.cfg yolov4-tiny-xxx.weights -i 0 -thresh 0.3 <path/xxx.txt
其中xxx.txt 的每行记录的是测试图像的绝对路径
需要同时打开两个终端,
- 执行python终端的作用是移动每次darknet的生成图到指定文件夹并重新命名
- 执行darknet的终端是顺序读取txt路径的图像,同时生成单张prediction.jpg
官方提供的darknet_image.py也提供了测试接口,通过修改这个接口同样可以达到同样目的,然而该脚本预测出来的图像尺寸与原图不一样,resize之后也很丑陋。
注: 笔记无偿分享,对使用结果不负任何责任,不接受无端谩骂