yolov8将val.py最后的结果输出到文件中

yolov8的val.py的结果默认只在控制台显示,其中主要包括

Class     Images  Instances      Box(P          R      mAP50     mAP50-95)

本文就是要将这些个信息都输出到指定文件(***.log文件)中保存,就不用每次要看数据都运行val.py了

原理:

就是将官方用logging模块输出到控制台的所有信息全部再输出到.log文件中,步骤一解决的是输出问题,步骤二是往log文件添加提示信息,步骤三解决的是.log文件的文件名字问题

步骤一:修改ultralytics-8.1.9-final/ultralytics/utils/__init__.py文件

定位到函数:def set_logging(name=LOGGING_NAME, verbose=True):

    # ---------------将日志结果输出到文件中-----------------#
    log_path = os.path.dirname(os.getcwd()) + '/ultralytics-8.1.9-final/runs/val/'#指定文件夹路径
    from val import result_name
    logfile = log_path + result_name+'.log'#“result_name”是和val.py运行生成的“文件夹的名称”一致方便一一对应
    print_handler = logging.FileHandler(filename=logfile,encoding='utf-8') # 定义输出的文件名字
    formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")  # 是否加入时间
    print_handler.setFormatter(formatter)  # 设置屏幕上显示的格式为formatter,和上一句一起使用
    logger.addHandler(print_handler)#往上面定义的logger对象中添加输出方式(print_handler这一个往文件输出的输出方式)
    # ---------------将日志结果输出到文件中-----------------#

 步骤二:修改ultralytics/models/yolo/detect/val.py

步骤二目的:这个步骤是让结果文件中出现

  Class     Images  Instances      Box(P          R      mAP50      mAP75  mAP50-95)

如果你不介意少了这个只有数据那就不用,直接步骤三

具体操作:定位到函数:def get_desc(self):

添加

由于我是添加了map75的,所以我的和你们的不一样,因此

直接用你们代码里面的绿框替换黄框

步骤三:调整我们跑验证的val.py文件

有些人可能并没有用单独的val来跑,用官方的val或者命令行来跑,不过添加方法也是一样的,先来看看用自己单独的val.py跑的如何添加

①用自己的val.py跑

自己原始的val.py

import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO

if __name__ == '__main__':
    model = YOLO('runs/train/yolov8/weights/best.pt')
    model.val(data='ultralytics/cfg/datasets/mydata2021bbox.yaml',
              split='val',
              imgsz=640,
              batch=16,
              iou=0.6,
              conf=0.001,
              # rect=False,
              # save_json=True, # if you need to cal coco metrice
              project='runs/val/yolov8',
              name='exp',
              workers=0,
              )

修改后的val.py

黄框的这个引用的位置调整是为了防止步骤一的那个文件引用result_name这个路径变量的时候再一次import了yolo报错

红框就是添加的部分,如果是最后val.py所有图片和结果的文件夹名字,不但给本文件使用,而且给日志的输出文件使用

②用官方的val.py跑

这个也一样,就是把红框的部分改变一模一样的改到官方的val.py中

结果:

运行val.py后生成了红框的两个文件

下面的红框的文件就是本文所要的文件

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值