yolov5自动标注挑选置信度低的测试样本加入训练

yolov5自动标注挑选置信度低的测试样本加入训练


#导入需要的库
import os
import sys
from pathlib import Path
import numpy as np
import cv2
import torch
import torch.backends.cudnn as cudnn
from tqdm import tqdm
import shutil
 
#初始化目录
cwd = os.getcwd()
FILE = Path(cwd).resolve()
ROOT = FILE.parents[0]  # 定义YOLOv5的根目录
if str(ROOT) not in sys.path:
    sys.path.append(str(ROOT))  # 将YOLOv5的根目录添加到环境变量中(程序结束后删除)
ROOT = Path(os.path.relpath(ROOT, Path.cwd()))  # relative
 
from models.common import DetectMultiBackend
from utils.dataloaders import IMG_FORMATS, VID_FORMATS, LoadImages, LoadStreams
from utils.general import (LOGGER, check_file, check_img_size, check_imshow, check_requirements, colorstr,
                           increment_path, non_max_suppression, print_args, scale_boxes, strip_optimizer, xyxy2xywh)
from utils.plots import Annotator, colors, save_one_box
from utils.torch_utils import select_device, time_sync
 
#导入letterbox
from utils.augmentations import Albumentations, augment_hsv, copy_paste, letterbox, mixup, random_perspective
 
 
 
#weights=ROOT / 'yolov5s.pt'  # 权重文件地址   .pt文件
weights = new_dir + "/weights/last.pt"
source=ROOT / 'data/images'  # 测试数据文件(图片或视频)的保存路径
data=ROOT / 'data/coco128.yaml'  # 标签文件地址   .yaml文件
 
imgsz=(640, 640)  # 输入图片的大小 默认640(pixels)
conf_thres=0.25  # object置信度阈值 默认0.25  用在nms中
iou_thres=0.45  # 做nms的iou阈值 默认0.45   用在nms中
max_det=1000  
### YOLOv5训练结果图片解释 YOLOv5 是一种高效的实时目标检测算法,在完成模型训练后,通常会生成一系列用于评估和展示的结果文件以及图像。这些图像主要用来帮助开发者理解模型的表现及其潜在问题。 #### 1. **混淆矩阵(Confusion Matrix)** 混淆矩阵是一种常见的可视化方式,它展示了模型对于不同类别的分类准确性。通过这张图可以直观地看到哪些类别被错误分类得最多,从而发现可能存在的标注不一致或者数据分布不平衡等问题[^2]。 #### 2. **PR曲线(Precision-Recall Curve)** 精度-召回率曲线反映了模型在不同阈值下的表现。高查准率意味着较少的假阳性;而高查全率则表示更多的真阳性能被捕获到。观察这条曲线可以帮助调整置信度阈值来优化最终的应用效果[^3]。 #### 3. **mAP图表(Mean Average Precision Graphs)** 平均精确均值(mAP)是衡量对象检测器整体效能的重要指标之一。不同的IoU交并比标准下计算得出多个mAP值,并绘制成折线图形式呈现出来。这有助于比较同一网络架构但在不同配置条件下的优劣之处[^1]。 #### 4. **损失函数变化趋势图(Loss Function Trend Chart)** 在整个训练过程中记录下来的loss数值会被绘制成为时间序列图形显示给用户查看。理想情况下随着epoch增加training loss应该逐渐减小直至收敛稳定状态附近波动很小为止。如果出现异常如突然增大等情况,则可能是学习率设置不当或者是出现了梯度爆炸现象需要及时处理解决。 #### 5. **验证集上的预测样例(Prediction Examples on Validation Set)** 除了上述统计性质的数据外,YOLO v5还会随机挑选部分来自验证集合中的样本做出具体的目标框定位标记之后保存下来形成jpg/png格式的小幅画面供人们审阅确认实际运行状况如何达到预期目的没有偏离太多范围之外去寻找改进空间继续努力提升质量水平。 ```python import matplotlib.pyplot as plt from pathlib import Path def plot_results(file='path/to/results.txt'): # Load data from file into list of lists with open(str(Path.cwd() / file), 'r') as f: lines = [line.split() for line in f.readlines()] # Extract metrics such as precision, recall etc. p, r, map50, map, *_ = zip(*lines) fig, ax = plt.subplots(2, 2, figsize=(8, 6)) ax[0][0].plot(p); ax[0][0].set_title('Precision') ax[0][1].plot(r); ax[0][1].set_title('Recall') ax[1][0].plot(map50); ax[1][0].set_title('mAP@0.5') ax[1][1].plot(map); ax[1][1].set_title('mAP@0.5:0.95') plt.tight_layout() plt.show() # Example usage plot_results('runs/train/exp/results.txt') ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

绯虹剑心

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

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

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

打赏作者

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

抵扣说明:

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

余额充值