darknet框架 训练分类模型及测试图片

darknet 框架的Yolo模型大概已经没什么公司使用了,对于老项目的维护可能新手需要了解下,然而 darknet架构并不十分友好,新手入手门槛比较高,特别是做分类任务时,简直了!!! 博主也是走了不少弯路,再次整理记录下,便于需要的小伙伴查看,同时也供自己日后学习

colne 编译

1.首先在darknetAB项目 make clean,然后再make编译下
2.在myTest下修改下 ./mk.sh  修改两个路径,改为当前项目的绝对路径,在进行./mk.sh运行
3.最后进行验证和测试程序


# 检测任务
nohup ./darknet detector train ./voc.data ./yolov4-tiny.cfg ./yolov4-tiny.conv.29 -dont_show  -gpus 0,1 > train.log 2>&1 &

./darknet detector train ./voc.data ./yolov4-tiny.cfg ./yolov4-tiny.conv.29 -dont_show  -gpus 0

./darknet detector train ./train/broken.data ./train/broken.cfg ./train/yolov4-tiny.conv.29 -dont_show  -gpus 0

# test
./darknet detector test cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_50000.weights 1.jpg


检测效果

在这里插入图片描述


1、darknet 分类模型训练命令

注意!!!
训练的时候需要注意一点,数据的路径中,类别名只能在绝对路径中出现一次,不可以出现多次,否则报错!!!

# 挂起后台训练命令
nohup ./darknet classifier train ../weather/weather.data ../weather/weather.cfg -gpus 0,1 -dont_show >../weather/train.log 2>&1 &

# 前台训练命令
nohup ./darknet classifier train ../weather/weather.data ../weather/weather.cfg -gpus 0,1 -dont_show >../weather/train.log 2>&1 &


2、darknet 分类模型单张图片检测命令

注意!!!
图片路径不正确的情况下,依旧会检测出结果!!!

# 单张图片预测命令
./darknet classifier predict /media/viatorsun/weather/weather.data /media/viatorsun/DataYZ/weather/weather.cfg /media/viatorsun/DataYZ/weather/weather.weights /media/viatorsun/weather/weather/7a964.jpg

检测结果

正确检测结果

错误检测结果


3、darknet 批量测试图片

通过darknet的 ./darknet classifier predict 命令只能对单张图片的进行测试,并且检测结果

#  !/usr/bin/env  python
#  -*- coding:utf-8 -*-
# @Time   :  2023.08
# @Author :  绿色羽毛
# @Email  :  lvseyumao@foxmail.com
# @Blog   :  https://blog.csdn.net/ViatorSun
# @Note   :  将代码保存为 predict.py 放置到 /darknetAB3.0/predict.py


import os


data_path = '/media/viatorsun/DataSet/test'					# 待检测图像路径
save_dir  = "/media/viatorsun/DataSet/test_out"				# 检测结果保存路径


if not os.path.exists(save_dir):
    os.makedirs(save_dir)

score = os.path.basename(data_path)

for img in os.listdir(data_path):

    img_path = os.path.join(data_path, img)

    cmd = 	'./darknet classifier predict ./myTest/0_AI_model/weather/weather.data ' \ 		
    		'./myTest/0_AI_model/weather/weather_test.cfg ' \
          	'./myTest/0_AI_model/weather/weather_100000.weights ' + img_path

    state = "".join(os.popen(cmd).readlines())
    lst = state.replace("\n\n", "\n").split("\n")

   
    if float(lst[-3].split(" ")[-1]) >= float(lst[-2].split(" ")[-1]) :
    	label = lst[-3].split(":")[0] + lst[-3].split(" ")[-1][:4]  
    else:
    	lst[-2].split(":")[0]

    if not label == score:
        save_path = os.path.join(save_dir, img.split(".")[0] + "_" + label + "." + img.split(".")[-1])		# 将预测标签和对应置信度保存到文件名中
        os.system("cp %s %s"%(img_path, save_path))

    # print(state)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ViatorSun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值