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

YOLO社交距离检测调用cv2.dnn.NMSBoxes报Can't parse 'scores'错误求助

错误排查与修复方案

核心错误原因

报错TypeError: Can't parse 'scores'. Input argument doesn't provide sequence protocol是变量名拼写错误导致的参数类型不匹配:
cv2.dnn.NMSBoxes接口的第二个参数要求传入所有检测框对应的置信度列表,你代码中调用该接口时传入的是confidence——这是遍历检测结果时定义的、存储单个检测对象置信度的单浮点变量,而你提前定义的、存储所有检测结果置信度的列表变量名为confidences(复数形式),单值不符合接口要求的序列类型参数规则,所以触发报错。

修复步骤

修改detection.py第58行代码:
原代码:

idxs = cv2.dnn.NMSBoxes(boxes, confidence, MIN_CORP, NMS_THRESH)

修改为:

idxs = cv2.dnn.NMSBoxes(boxes, confidences, MIN_CORP, NMS_THRESH)

修改完成后重新运行程序即可解决该报错。

其他警告的可选处理

运行日志中的两个警告不影响核心功能,如需处理可参考以下方案:

  • CUDA警告:DNN module was not built with CUDA backend; switching to CPU是因为当前安装的OpenCV是默认CPU编译版本,无法调用GPU加速。需要GPU加速可先卸载现有版本pip uninstall opencv-python opencv-python-headless,再安装对应CUDA版本的GPU版OpenCV即可。
  • 视频流警告:terminating async callback是Windows平台默认媒体框架的兼容性问题,可在打开摄像头的代码中指定后端消除警告,例如将cv2.VideoCapture(0)修改为cv2.VideoCapture(0, cv2.CAP_DSHOW)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:18:02