发布时间:2026/9/2 23:11:56
MediaPipe 迁移指南:从 Legacy Solutions 到 Tasks API,这 4 处改动就够 MediaPipe 迁移指南从 Legacy Solutions 到 Tasks API这 4 处改动就够【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe一个再熟悉不过的开头你项目里是不是还留着import mediapipe as mp后面紧跟mp.solutions.hands的行每次pip install -U都得提心吊胆生怕哪天旧版 Solutions 直接消失。现在可以安心动手了MediaPipe 的官方主线已经切到 Tasks API本文陪你把迁移完整走一遍——不用重写整个项目真正要改的就是配置、入口、结果字段这几处。旧版 Solutions 怎么跑Tasks API 怎么跑MediaPipe 旧版 Solutions 本质是一个封装好的流程式图你调hands.process(image)图计算在内部悄悄跑完然后把一整个 results 对象抛给你。代价是两头都得你自己收拾——进来前手动转 RGB出来后自己翻 proto 字段。Tasks API 把同一套图计算拆成了三个独立的组件BaseOptions管模型和算力。模型路径或内存 buffer、CPU/GPU delegate 都在这里指定HandLandmarkerOptions管任务行为。运行模式、手数上限、三个置信度阈值结果对象强类型 dataclass坐标、手性直接取没有中间层。旧版把这三件事全藏在一个process调用里新版摊开成显式的配置 → 创建 → 调用。最小可运行的新版调用长这样import mediapipe as mp from mediapipe.tasks import python from mediapipe.tasks.python import vision # 先声明任务怎么跑模型文件、运行模式、最多检测几只手 options vision.HandLandmarkerOptions( base_optionspython.BaseOptions(model_asset_pathhand_landmarker.task), running_modevision.RunningMode.IMAGE, num_hands2, ) # 用配置创建检测器with 语句负责用完自动释放 with vision.HandLandmarker.create_from_options(options) as landmarker: # 直接从磁盘构造 mp.Image颜色格式转换不用自己写 image mp.Image.create_from_file(test_photo.jpg) result landmarker.detect(image) print(len(result.hand_landmarks)) # 检测到的手数量下面这张仓库里的示例输出可以当作任务该长什么样的参照参数映射速查旧参数在新版叫什么先把高频参数的对照放在这里迁移时照着抄就行旧版mp.solutions.hands新版HandLandmarkerOptions默认值变化模型随 solution 内置base_options.model_asset_path新增必填运行模式不可选running_mode默认IMAGEmax_num_hands2num_hands1默认值从 2 变 1min_detection_confidence0.5min_hand_detection_confidence0.5仅改名无对应项min_hand_presence_confidence0.5新增min_tracking_confidence0.5min_tracking_confidence0.5不变三个最容易踩的坑一句话症状加一句话解决模型文件打不开旧版 solution 内置的.tflite图不能直接喂给 Tasks API换成.task格式的任务包确认你用的模型在官方模型列表里有对应的 Tasks 版本具体以官方文档为准调错方法直接抛异常running_mode决定调用方式IMAGE 模式用detectVIDEO 模式必须用detect_for_video选错会直接报错视频跑到一半崩掉detect_for_video要求每帧的timestamp_ms严格单调递增丢帧、回帧都算先别慌把时间戳生成逻辑挪到读帧成功之后就行。完整迁移对照一段真实的手部追踪代码下面这段旧代码是典型形态BGR 转 RGB、关writeable、用完手动 close五行里全是胶水。hands mp.solutions.hands.Hands( static_image_modeTrue, max_num_hands2, min_detection_confidence0.5) image cv2.cvtColor(image, cv2.COLOR_BGR2RGB) results hands.process(image) landmarks results.multi_hand_landmarks hands.close()新版等价实现逐行对应上面的每件事from mediapipe.tasks import python from mediapipe.tasks.python import vision # running_mode 选 IMAGE 还是 VIDEO决定后面调 detect 还是 detect_for_video options vision.HandLandmarkerOptions( base_optionspython.BaseOptions( model_asset_pathhand_landmarker.task), running_modevision.RunningMode.VIDEO, num_hands2, min_hand_detection_confidence0.5, min_tracking_confidence0.5, ) with vision.HandLandmarker.create_from_options(options) as landmarker: # mp.Image 收 numpy 数组BGR→RGB 这一步仍由你做 frame cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) mp_image mp.Image(image_formatmp.ImageFormat.SRGB, dataframe) result landmarker.detect_for_video(mp_image, timestamp_ms) # multi_hand_landmarks 改叫 hand_landmarks坐标直接取 for hand in result.hand_landmarks: for pt in hand: x, y int(pt.x * w), int(pt.y * h) cv2.circle(frame, (x, y), 2, (0, 255, 0), -1)结果字段的重命名值得单独记一下results.multi_hand_landmarks变成result.hand_landmarksresults.multi_handedness变成result.handedness每只手多了一个hand_world_landmarks世界坐标旧版没有。绘制环节如果还习惯用solutions.drawing_utils也可以整体切到 Tasks 侧的绘图工具签名以仓库mediapipe/tasks/python/vision/drawing_utils.py里的定义为准。迁移完顺手拿到的三样东西GPU 加速一行开启delegatepython.BaseOptions.Delegate.GPU注意官方注释里写明 GPU 支持目前仅限 Ubuntu 平台其余环境以 CPU 为准一套框架接多模态任务文本、音频、图像走同一套 options 约定摄像头实时流模式result_callback回调也是这条路上顺带的模型自己造仓库自带 Model Maker在公开模型上微调后直接产出.task文件配合官方 benchmark 工具 验证前后差距。今天就做的一步把依赖升到mediapipe0.10.0跑通 examples/ 里的第一个 vision demo确认.task模型能加载、参数名能和上面的表对上一一对应旧代码就算安全落地了。迁移中撞到什么奇怪的报错欢迎贴到仓库 issue 里一起看。【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/9/2 23:11:56

Ryujinx Switch 模拟器上手教程:3 步在 PC 上运行游戏

Ryujinx Switch 模拟器上手教程:3 步在 PC 上运行游戏 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx Ryujinx 是一款用 C# 编写的开源 Nintendo Switch 模拟器。它把主机上…

2026/9/2 23:11:56

yuzu模拟器上手指南:3步在电脑里跑起Switch游戏

yuzu模拟器上手指南:3步在电脑里跑起Switch游戏 【免费下载链接】yuzu 任天堂 Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu yuzu 是一款开源的任天堂 Switch 模拟器,装在电脑上后,你可以直接运行自己 Switc…

2026/9/2 23:11:56

模拟IC电源设计秋招指南:LDO与DC-DC核心考点全解析

很多准备秋招的同学一听到“模拟IC设计”就下意识觉得门槛高,再叠加“电源管理芯片”这个方向,更是一头雾水。实际上,在模拟IC的众多细分赛道里,电源管理芯片(Power Management IC,简称PMIC)恰恰…

2026/9/2 23:27:03

电工电子技术应用:电路分析、元器件识别与万用表实操指南

很多刚接触电工电子技术的初学者,都会陷入同一个困惑:课本上的基尔霍夫定律、戴维南定理、正弦交流电明明都学过了,题目也会做,可拿到一块实际电路板,面对密密麻麻的元器件和万用表时,却不知道从哪里下手。…

2026/9/2 23:27:03

大学生HTML期末大作业——HTML+CSS+JavaScript美食网站(西餐)

HTMLCSSJS【美食网站】网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计💥 文章目录一、🏁 网站题目二、🚩 网站描述三、🎌 网站介绍四、🏴 网站效果五、🏳️ 网站代码六、&#x1f3f3…

2026/9/2 23:27:03

小红书X-s/X-T签名逆向全解析:从JS定位到Python实现

简介:一份聚焦小红书X-s/X-T参数生成逻辑的JavaScript逆向工程可运行源码包,面向JS逆向初学者和有前端加密分析需求的开发者,尤其适合希望通过真实站点练习抓包、Hook、插桩和补环境技术的读者。压缩包内共3个文件,以HTML页面、in…

2026/9/2 23:27:03

电工电子技术应用(上)学习路径:从直流电路到万用表实操

电工电子技术应用(上)在多数课程体系中,属于从物理理论过渡到工程实践的第一道门槛。它不要求你用公式推导复杂的电磁场模型,但要求你看到一块色环电阻时能读出阻值,看到一张电路图时能判断元件之间是串联还是并联&…

2026/9/2 23:21:57

运维概念 - 服务器分类极简理解

塔式服务器塔式服务器外形类似于电脑主机机箱,它的特点有易于维护、灵活性高、噪音低、无需专门的机架塔式服务器适用于中小型企业或办公室等环境刀片服务器刀片服务器是在标准高度的机架式机箱内可插装多个卡式的服务器单元,它的特点是高可用性、低功耗…

2026/9/1 16:02:17

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/9/2 9:00:32

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/9/2 8:41:06

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/2 0:03:41

单片机毕业设计-基于单片机与蓝牙通讯的输液状态监测终端设计与开发 基于 STM32 或 51 单片机的液位‑滴速‑温度多参数输液监护装置设计(024005)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/9/2 0:03:41

DeepSeek字幕翻译实战:从API调用到批量SRT转中文的完整方案

这次我们来看一个很实用的 DeepSeek 落地场景:用 DeepSeek 把英文视频字幕自动翻译成中文。具体案例是《恶魔君》1989 年第 28 集的英转中字幕任务,标题写得很直白,但背后其实是一整套可以复用的技术流程:字幕解析、模型调用、批量…

2026/9/2 0:03:41

用Python搭建搞笑语音助手:从语音识别到语音合成全教程

当你家里摆着一台天猫精灵,却总希望语音助手偶尔“不正经”一点,不用官方腔回答问题,而是张口就接几句搞笑段子,会是什么体验?我最近动手验证了一下这个想法——没有去改装任何市面上现有的智能音箱,而是直…

2026/9/2 1:15:22

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/2 1:15:22

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/2 1:15:20

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…