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

重装NVIDIA驱动后TensorFlow视频检测程序cv2.imshow无显示问题求助

可行解决方案

1 先定位程序卡住的位置

在对应代码行后添加打印语句确认卡段:

  • model = models.load_model(model_path) 后加 print("模型加载完成")
  • while(vid.isOpened()): 下第一行加 print("进入循环,ret返回值:", ret)
    运行后观察打印输出:
  • 如果连「模型加载完成」都没有输出:说明模型加载时卡死,属于TensorFlow和CUDA/驱动适配问题,参照第2步处理
  • 如果模型加载完成但没有循环相关打印:说明VideoCapture读取视频失败,优先检查视频路径是否正确,路径中的空格、中文都可能导致OpenCV读取异常,可尝试将视频移动到无空格无中文的路径下测试

2 排查CUDA与驱动兼容性问题

你当前使用的CUDA 11要求NVIDIA驱动版本≥450.80.02,可打开NVIDIA控制面板查看当前驱动版本,若版本不符合要求,降级驱动到适配CUDA 11的版本即可。

3 排查显存不足问题

你的NVIDIA 920MX仅2G显存,日志显示初始化已占用1.3G左右,模型预测时很容易出现显存不足卡死的情况,可在导入TensorFlow后添加如下代码强制使用CPU运行,验证是否是GPU侧问题:

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"

如果CPU运行时程序有正常打印、OpenCV窗口能正常弹出,就确认是GPU侧问题,可尝试升级驱动/更换更小的模型解决。

4 排查OpenCV本身故障

将所有TensorFlow相关代码注释,仅保留最简的视频读取播放逻辑:

import cv2
vid = cv2.VideoCapture("你的视频路径")
while(vid.isOpened()):
    ret, frame = vid.read()
    if ret:
        cv2.imshow('test', frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
vid.release()
cv2.destroyAllWindows()

如果上述代码无法正常运行,说明重装驱动时破坏了OpenCV的依赖,执行如下命令重装即可:

pip uninstall -y opencv-python opencv-python-headless
pip install opencv-python

5 修正代码逻辑错误

你现有代码中存在两处会导致运行异常的逻辑:

  • vid.set(3,480)、vid.set(4,240)两行写在循环内,每次读帧都会重新设置分辨率,严重拖慢运行速度甚至卡死,需要移到vid = cv2.VideoCapture(...)之后、循环之前
  • 你将resize后的视频帧直接用frame_set=np.arange(10*width*height*3).reshape(10,width, height, 3)覆盖,实际输入模型的是随机生成的数组,根本不是视频帧内容,需要自行修改为累计存储最近10帧的逻辑,才能符合你模型10帧输入的要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:18:03