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
    评论
您好!要使用DarknetYOLOv8训练自己的数据集,您可以按照以下步骤进行操作: 1. 数据集准备: - 收集并标记包含您感兴趣对象的图像。 - 创建一个包含图像路径和对应标签的数据集文件(如:train.txt和val.txt)。 2. 配置文件修改: - 在Darknet目录中,复制并重命名YOLOv3模型配置文件,如yolov3-custom.cfg。 - 修改新配置文件中的相关参数: - 将`batch`设置为64或更小(取决于您的显存)。 - 将`subdivisions`设置为16。 - 将`classes`设置为您的目标类别数量。 - 根据您的数据集,将`filters`设置为$(类别数+5)*3$。 - 将配置文件中的预训练权重路径改为`yolov3.weights`(可从Darknet官方网站下载)。 3. 标签和类别文件: - 在Darknet根目录中,创建一个包含您的类别名称的文件,如obj.names。 4. 配置文件调整: - 在Darknet根目录中,创建一个包含类别数量的文件,如obj.data。 - 在obj.data文件中,设置以下参数: - `classes`:类别数量。 - `train`:指向训练数据集文件的路径。 - `valid`:指向验证数据集文件的路径。 - `names`:指向类别文件的路径。 - `backup`:指向模型权重备份目录的路径。 5. 权重准备: - 下载预训练权重文件,如darknet53.conv.74。 - 运行以下命令,将预训练权重文件转换为可用于训练的格式: ``` ./darknet partial yolov3.cfg yolov3.weights yolov3.conv.74 74 ``` 6. 训练模型: - 运行以下命令开始训练模型: ``` ./darknet detector train obj.data yolov3-custom.cfg yolov3.conv.74 ``` 7. 模型评估: - 使用验证数据集评估模型性能: ``` ./darknet detector map obj.data yolov3-custom.cfg backup/yolov3-custom_last.weights ``` 8. 模型推理: - 使用训练好的权重进行目标检测: ``` ./darknet detector test obj.data yolov3-custom.cfg backup/yolov3-custom_best.weights -ext_output < test.txt > result.txt ``` 请注意,以上步骤仅提供了基本的训练流程,您可能要根据自己的具体求进行进一步调整和优化。希望对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值