恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

MediaPipe 图运行报 No registered calculator found 怎么排查?

  • 首页
  • 资讯中心
  • /
  • MediaPipe 图运行报 No registered calculator found 怎么排查?

相关资讯

Polars 如何安装后创建 DataFrame 并通过 select 与 filter 表达式完成第一个查询? 2026/9/12 9:24:37
Tabby 在 ROCm 下提示 AMD 设备不受支持怎么解决? 2026/9/12 9:24:37
手把手装好 lm-evaluation-harness:语言模型评测与安装配置速通 2026/9/12 9:24:37

最新资讯

SAR欺骗干扰原理与MATLAB仿真:从延时移频到假目标成像
微软运行库合集:解决DLL缺失问题的完整指南
大数据分析全链路解析:从SQL基础到Spark集群部署与面试实战
Goldie:用编码Agent自动生成App Store截图与预览视频
Midscene.js:用自然语言驱动 E2E 自动化测试,不必写选择器
ruflo 集体智能协调器:基于拜占庭容错共识与注意力机制的蜂群决策实战指南

今日推荐

MATLAB仿生优化框架:长鼻浣熊算法多策略融合实现
【JAVA毕设源码分享】基于 JavaWeb 的校园一卡通管理系统的设计与实现 基于 JavaWeb 的校园卡业务管理系统(程序+文档+代码讲解+一条龙定制)
【JAVA毕设源码分享】基于 Java 的图书馆借阅管理平台的搭建与实现 基于 Java 的图书馆综合管理系统(程序+文档+代码讲解+一条龙定制)

本周热门

超人会飞不算本事:系统稳定依赖清晰规则与边界设计
超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论
基于CNN的调制信号识别:MATLAB实现时频图分类实战

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

MediaPipe 图运行报 No registered calculator found 怎么排查?

发布时间:2026/9/12 9:24:37
MediaPipe 图运行报 No registered calculator found 怎么排查? MediaPipe 图运行报 No registered calculator found 怎么排查【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe在 MediaPipe 中用 Bazel 或 Python 组装 calculator graph 时如果图配置里引用了一个运行环境中找不到的 calculator图初始化会直接失败日志中出现No registered object with name: OurNewCalculator; Unable to find Calculator OurNewCalculator这是 Troubleshooting 文档中 No registered calculator found 一节描述的错误。它发生在 C 应用链接完、运行期加载CalculatorGraphConfig的阶段意味着图配置里的 calculator 名没有出现在运行时注册表中。排查的核心只有一条主线确认这个 calculator 的库是否真的被链接进了当前应用二进制以及图里写的是否是注册时使用的完整名称。先理解错误从哪里来MediaPipe 的图不直接引用 calculator 的 C 类型而是通过CalculatorGraphConfig::Node的calculator字段按名字查找。calculator 库被链接进应用二进制后会由 REGISTER_CALCULATOR 宏 自动按名字完成注册注册表实现在 registration.h。两个报错片段分别来自框架中的两处代码No registered object with name: ...注册表按名字查不到工厂函数时返回的NotFoundError见 registration.h 中FunctionRegistry::Invoke约第 218-221 行Unable to find Calculator ...图校验阶段调用CalculatorBaseRegistry::CreateByNameInNamespace失败时拼接的前缀见 validated_graph_config.cc。所以这个错误的特征是编译、链接都能通过只有在运行期真正实例化图里的某个节点时才暴露——calculator 的注册代码没有被带进最终二进制是首要怀疑对象。排查路径1. 检查 calculator 的库是否加进了应用目标的依赖按文档说明当你把一个新 calculator 加入 calculator graph 时必须同时把它作为构建依赖加到使用这张图的应用目标上。如果应用cc_binary/cc_test的deps里没有对应 calculator 的 Bazel target或间接依赖不到它链接出来的二进制里就没有它的注册静态变量运行期必然报这个错。对照仓库里现成的写法calculators/core/BUILD 中end_item_loop_calculator这样的cc_library目标图配置引用它之前使用方的目标必须先依赖它。2. 自建 calculator确认 BUILD 目标带 alwayslink True如果你自己写了这个 calculator文档明确要求在其 BUILD target 上加alwayslink True示例如下cc_library( name our_new_calculator, srcs [our_new_calculator.cc], deps [ ... ], alwayslink True, )原因是注册发生在静态初始化代码里这些符号不会被应用代码直接引用链接器在优化时可能把整个翻译单元连同注册裁掉。alwayslink True强制链接器保留整个库。文档同时指出缺了这一项时 calculator including the registration, may get removed by the linker。仓库中mediapipe/calculators/core/BUILD的多处 calculator target如第 273、289 行的begin_item_loop_calculator、end_item_loop_calculator都带有该属性可参照这些 target 的srcs与deps组织方式核对自建目标。3. 核对图里写的名字与注册时的命名空间前缀文档还给了一个容易漏掉的点REGISTER_CALCULATOR可以带命名空间前缀注册 calculator前缀与其 C namespace 相同。这种情况下calculator graph 中calculator字段也必须使用同样的命名空间前缀。核对方式在报错日志里取出No registered object with name:后面的完整名字与 calculator 源码中的 C namespace、以及注册宏里传入的名字比对确保图配置里的calculator字段与注册名完全一致包括前缀。验证方式复现错误并确认修复仓库的 Python 测试 calculator_graph_test.py 展示了如何精确复现这个错误在图配置里引用一个未注册的 calculator 名构造图时就会得到对应报错text_config node { calculator: SomeUnknownCalculator input_stream: in output_stream: out } config_proto calculator_pb2.CalculatorGraphConfig() text_format.Parse(text_config, config_proto) with self.assertRaisesRegex( RuntimeError, Unable to find Calculator \SomeUnknownCalculator\): CalculatorGraph(graph_configconfig_proto)也就是说用测试里同一个未注册的名字可以稳定复现该错误。修复补依赖、加alwayslink True、改正名字后重新构建并运行同一份图配置初始化时不再出现Unable to find Calculator报错即为验证通过。如果问题出现在 iOS SPM 打包场景仓库里的 MediaPipeTasksSPMSmokeTest 正是针对calculator 被裁掉这类问题的冒烟测试它用不存在的模型路径构造任务期望在模型加载阶段报 error code 3InvalidArgumentError或 5NotFoundError——这说明 C calculator 已注册、图初始化走到了加载模型一步而 calculator 被剥离时则报 code 2Unknown或 9FailedPrecondition。可以按同样的思路判断 SPM 产物里注册代码是否完整。需要排除的另一类根因静态注册被整体禁用registration.h 头部注释说明定义MEDIAPIPE_DISABLE_STATIC_REGISTRATION会禁用所有基于REGISTER_FACTORY_FUNCTION_QUALIFIED等宏的静态注册calculator 是受影响对象之一——此时即使依赖和alwayslink都正确运行期同样查不到 calculator。该头文件同时提供了MEDIAPIPE_ENABLE_STATIC_REGISTRATION_DRY_RUN以 Dry-Run 模式构建会打印本应执行的注册语句用于在禁用静态注册时核对需要手动补注册的名字。如果你的构建系统如某些精简打包流程定义过这些宏先确认它们的状态再回到前面的依赖与alwayslink检查。排查顺序建议为先比对错误中的完整名字与注册名第 3 条成本最低再检查应用依赖与alwayslink True最后确认构建没有禁用静态注册。【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号