Darknet Yolov4实现批量测试图像并且保存(无需修改与编译源码) python实现

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之后也很丑陋。

注: 笔记无偿分享,对使用结果不负任何责任,不接受无端谩骂

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值