运行姿态检测代码遇RET_CHECK失败问题求助(已装依赖)
姿态检测代码报错:RET_CHECK failure(Output tensor range is required)排查与解决
问题描述
运行基于cvzone和mediapipe的姿态检测代码时触发RET_CHECK failure错误,核心提示为Output tensor range is required,已安装相关依赖但问题未解决。
运行代码
import cv2 from cvzone.PoseModule import PoseDetector cap = cv2.VideoCapture('Video.mp4') detector = PoseDetector() while True: success, img = cap.read() img = detector.findPose(img) lmList, bboxInfo = detector.findPosition(img) cv2.imshow("Image", img) cv2.waitKey(1)
完整报错栈
Traceback (most recent call last): File "/Users/chashanefaith.babanto/Desktop/CRYSTHEL/Motion Capture/MotionCap.py", line 6, in <module> detector = PoseDetector() File "/Users/chashanefaith.babanto/Desktop/CRYSTHEL/Motion Capture/.venv/lib/python3.9/site-packages/cvzone/PoseModule.py", line 42, in __init__ self.pose = self.mpPose.Pose(static_image_mode=self.staticMode, File "/Users/chashanefaith.babanto/Desktop/CRYSTHEL/Motion Capture/.venv/lib/python3.9/site-packages/mediapipe/python/solutions/pose.py", line 146, in __init__ super().__init__( File "/Users/chashanefaith.babanto/Desktop/CRYSTHEL/Motion Capture/.venv/lib/python3.9/site-packages/mediapipe/python/solution_base.py", line 248, in __init__ self._graph = calculator_graph.CalculatorGraph( RuntimeError: ValidatedGraphConfig Initialization failed. ImageToTensorCalculator: ; RET_CHECK failure (mediapipe/calculators/tensor/image_to_tensor_calculator.cc:144) ValidateOptionOutputDims(options) returned INTERNAL: ; RET_CHECK failure (./mediapipe/calculators/tensor/image_to_tensor_utils.h:136) options.has_output_tensor_float_range() || options.has_output_tensor_int_range() || options.has_output_tensor_uint_range()Output tensor range is required. InferenceCalculatorCpu: ; RET_CHECK failure (mediapipe/calculators/tensor/inference_calculator_cpu.cc:63) !options.model_path().empty() ^ kSideInModel(cc).IsConnected()Either model as side packet or model path in options is required. SplitDetectionVectorCalculator: The number of output streams should match the number of ranges specified in the CalculatorOptions. ImageToTensorCalculator: ; RET_CHECK failure (mediapipe/calculators/tensor/image_to_tensor_calculator.cc:144) ValidateOptionOutputDims(options) returned INTERNAL: ; RET_CHECK failure (./mediapipe/calculators/tensor/image_to_tensor_utils.h:136) options.has_output_tensor_float_range() || options.has_output_tensor_int_range() || options.has_output_tensor_uint_range()Output tensor range is required. ConstantSidePacketCalculator: ; RET_CHECK failure (mediapipe/calculators/core/constant_side_packet_calculator.cc:64) (cc->OutputSidePackets().NumEntries(kPacketTag))==(options.packet_size())Number of output side packets has to be same as number of packets configured in options. ConstantSidePacketCalculator: ; RET_CHECK failure (mediapipe/calculators/core/constant_side_packet_calculator.cc:64) (cc->OutputSidePackets().NumEntries(kPacketTag))==(options.packet_size())Number of output side packets has to be same as number of packets configured in options. ConstantSidePacketCalculator: ; RET_CHECK failure (mediapipe/calculators/core/constant_side_packet_calculator.cc:64) (cc->OutputSidePackets().NumEntries(kPacketTag))==(options.packet_size())Number of output side packets has to be same as number of packets configured in options. SplitTensorVectorCalculator: The number of output streams should match the number of ranges specified in the CalculatorOptions. SplitNormalizedLandmarkListCalculator: The number of output streams should match the number of ranges specified in the CalculatorOptions. SplitLandmarkListCalculator: The number of output streams should match the number of ranges specified in the CalculatorOptions.
问题原因与解决方法
核心原因
该错误由mediapipe与cvzone版本不兼容导致:新版mediapipe对张量处理的配置参数增加了严格校验,但旧版cvzone的PoseModule未适配这些新要求,导致Pose模型初始化时配置错误。
解决步骤
降级mediapipe到兼容版本
卸载当前版本,安装适配性较好的0.9.0.1版本:pip uninstall mediapipe -y pip install mediapipe==0.9.0.1验证cvzone版本(可选)
若降级mediapipe后仍有问题,可安装稳定版cvzone(如1.5.6):pip install cvzone==1.5.6显式初始化PoseDetector参数(可选)
避免默认参数引发的适配问题,显式传入参数初始化:detector = PoseDetector(staticMode=False, modelComplexity=1, smoothLandmarks=True)检查视频文件路径
确保Video.mp4在代码运行目录下,或使用绝对路径,避免视频读取失败引发后续错误。
内容的提问来源于stack exchange,提问作者Faith
相关产品推荐
相关产品推荐

