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

手语检测代码触发RecursionError:超出最大递归深度求助

解决手语检测模型的递归错误问题

问题原因

从错误栈可以明确看到,你的detect函数内部直接递归调用了自身:

def detect(frame):
  data = detect(frame)

这种写法会触发无限递归,Python有默认的递归深度限制,超过后就会抛出RecursionError。另外函数定义上方还存在一行冗余的读取压缩包代码,这行代码不属于函数逻辑,完全没必要保留。

修复方案

  1. 移除递归调用:删除detect函数内的data = detect(frame),替换为实际的手语检测逻辑——比如图像预处理、模型预测、生成数值矩阵的代码。
  2. 清理冗余代码:删掉函数定义外的frame = cv2.imread(r"/content/drive/MyDrive/My folder /IBM data set/conversation engine for deaf and dumb.zip"),你调用detect时已经传入了测试图像,这行代码只会干扰逻辑。

修复后的代码示例

# 修正后的detect函数结构
def detect(frame):
    # 1. 图像预处理(根据你的模型要求调整,比如转灰度、缩放、归一化)
    gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    resized_frame = cv2.resize(gray_frame, (64, 64))
    normalized_frame = resized_frame / 255.0
    input_data = normalized_frame.reshape(1, 64, 64, 1)  # 匹配模型输入形状
    
    # 2. 调用训练好的模型预测
    # 假设你已经加载好模型到model变量中
    prediction_matrix = model.predict(input_data)
    
    # 3. 返回目标数值矩阵
    return prediction_matrix

# 测试代码保持不变
frame = cv2.imread(r"/content/Dataset/test_set/G/1.png")
data = detect(frame)

注意事项

  • 确保detect函数内部执行的是具体检测逻辑,而非自调用。
  • 验证输入图像的格式、形状与模型训练时的预处理流程一致,避免后续出现输入不匹配的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:45:35