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

使用TensorFlow JS摄像头检测时遇[0x0]无效纹理尺寸错误求助

可能引发该错误的其他原因
  • 视频流未完成初始化:即便设置了video元素的宽高,若摄像头视频流还未加载完成(未触发loadeddata事件、未开始播放),video的实际帧尺寸仍可能为0x0。需确保调用model.detect前,video已处于播放状态,可通过监听loadeddata事件,在回调内执行检测逻辑。

  • 摄像头权限异常:用户拒绝摄像头权限、浏览器无法获取摄像头时,video元素无实际视频流,内部尺寸会变为0。获取媒体流时需添加错误捕获,确认流成功绑定到video上。

  • 视频像素格式不兼容:部分浏览器返回的视频流格式(如非RGBA/YUV类)可能导致TFJS无法正确读取尺寸。可先将video帧绘制到canvas,再用canvas作为model.detect的输入,绕开纹理创建问题,示例代码:

    const canvas = document.createElement('canvas');
    canvas.width = video.videoWidth;
    canvas.height = video.videoHeight;
    const ctx = canvas.getContext('2d');
    ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
    const predictions = await model.detect(canvas);
    
  • 模型未加载完成:若在模型加载未完成时调用model.detect,会触发异常。需确保await model.load()(或对应加载Promise)执行完成后,再启动检测逻辑。

  • WebGL硬件加速兼容性问题:部分浏览器的WebGL硬件加速存在兼容bug,导致TFJS无法创建有效纹理。可尝试禁用浏览器硬件加速,或初始化时指定TFJS使用CPU后端:

    await tf.setBackend('cpu');
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:05:20