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

使用TensorFlow的React对象检测应用识别错误、换模型报错求助

问题1:所有物体都被识别为Kangaroo的解决方法

原因

你加载的是专门训练的袋鼠检测专用预训练模型,该模型仅针对袋鼠类别做了特征训练,没有针对你定义的Other类做任何负样本训练,不会输出Other类的预测结果。同时如果你的置信度阈值设置过低,模型会把所有低置信度的袋鼠预测结果直接作为最高优先级输出,导致所有物体都被识别为袋鼠。

解决步骤

  • 调整检测置信度阈值到0.5以上,所有得分低于阈值的预测结果统一归类为Other,不要直接取所有预测结果中的最高得分类别
  • 如果需要实现准确的袋鼠/非袋鼠二分类效果,需要自行准备包含非袋鼠样本的数据集,重新训练目标检测模型,不能直接使用现有的袋鼠专用预训练模型
问题2:更换通用检测模型后报arraySync未定义错误的解决方法

原因

不同TensorFlow.js目标检测模型的输出张量顺序、结构完全不同,你当前使用的索引[4]/[5]/[6]是袋鼠专用模型的输出顺序,谷歌官方的ssdlite_mobilenet_v2通用模型的输出张量数量更少,不存在索引为4的张量,调用属性自然会报错。

解决步骤

  • 先在预测代码后添加console.log(predictions)打印输出张量列表,确认各张量对应的含义,官方ssdlite_mobilenet_v2的输出顺序通常为:predictions[0]对应检测框、predictions[1]对应置信度得分、predictions[2]对应类别ID、predictions[3]对应检测到的物体数量
  • 修改你的预测结果提取代码为对应索引:
//Getting predictions
const boxes = predictions[0].arraySync();
const scores = predictions[1].arraySync();
const classes = predictions[2].dataSync();
  • 同步替换类别映射表,通用模型基于COCO数据集训练,共有90个类别,你现有的两类classesDir无法匹配通用模型的输出结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:06:05