You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

YOLOv8在Jupyter Notebook中show=True导致内核崩溃问题求助

YOLOv8在Jupyter Notebook中图像无法关闭的解决办法

Jupyter Notebook的交互环境和本地IDE(如Spyder)存在差异,YOLOv8默认使用OpenCV的imshow接口弹出图像窗口,这种方式在Notebook中会引发线程阻塞,导致窗口无法正常关闭、程序无响应甚至内核崩溃。以下是几种可行的解决方法:

方法1:改用Matplotlib在单元格内显示结果

避免使用show=True弹出独立窗口,改为获取预测结果后用Matplotlib在Notebook单元格内渲染图像,彻底规避窗口阻塞问题。

修改后的代码:

from ultralytics import YOLO
import matplotlib.pyplot as plt

# 加载模型
model = YOLO("yolov8n.pt")  

# 执行预测,不弹出外部窗口
results = model.predict(source="bus.jpg", show=False)

# 获取添加了检测框的图像
result_img = results[0].plot()

# 转换OpenCV的BGR格式为Matplotlib的RGB格式并显示
plt.imshow(result_img[..., ::-1])
plt.axis('off')  # 隐藏坐标轴
plt.show()

方法2:禁用弹出窗口,保存结果到本地

如果不需要实时显示,可直接将检测结果保存到文件,后续在Notebook外部查看:

from ultralytics import YOLO

model = YOLO("yolov8n.pt")  
# 检测结果会自动保存到项目根目录下的runs/detect/predict文件夹
model.predict(source="bus.jpg", show=False, save=True)

方法3:配置OpenCV窗口线程(可选)

在代码开头添加OpenCV线程启动命令,尝试修复窗口阻塞问题,但该方法在部分Jupyter环境中可能无效:

import cv2
cv2.startWindowThread()

from ultralytics import YOLO

model = YOLO("yolov8n.pt")  
model.predict(source="bus.jpg", show=True)

内容的提问来源于stack exchange,提问作者Alan Johnstone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 19:15:33