问题背景
使用 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
)
如果只需关闭推理日志,建议使用方案一,不用修改源码