问题背景

使用 YOLO v8 推理时,每次推理都会在控制台输出日志,大批量推理时会把自己打印的日志给冲掉,现想关闭 YOLO v8 的推理日志。

解决方案

方案一:

在预测接口的参数列表里加上 verbose=False 即可关闭控制台输出日志。

model.predict(image_list, max_det=1, conf=0.6, device='cuda', verbose=False)

方案二:

在导入ultralytics 之前,将 YOLO_VERBOSE 配置为 False,使用如下:

import os
os.environ['YOLO_VERBOSE'] = str(False)
from third_source.ultralytics import YOLO

参考 ultralytics 的源文件 41 行:

ultralytics/ultralytics/yolo/utils/__init__.py
...
VERBOSE = str(os.getenv("YOLO_VERBOSE", True)).lower() == "true"  # global verbose mode

# 或修改改行为:
VERBOSE = str(os.getenv("YOLO_VERBOSE", False)).lower() == "true"  # global verbose mode
...

方案三:

在源码中注掉日志输出代码

ultralytics\engine\predictor.py
搜索:LOGGER.info 如:
# line 291
LOGGER.info(
                f"Speed: %.1fms preprocess, %.1fms inference, %.1fms postprocess per image at shape "
                f"{(min(self.args.batch, self.seen), 3, *im.shape[2:])}" % t
            )

如果只需关闭推理日志,建议使用方案一,不用修改源码

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐