资讯详情

资讯详情

换成 T1 Pro,手势模型要重训吗?MobileNetV3 跨机型复用与交互适配

TOC你好这里是 晓雨的笔记本在所有感兴趣的领域扩展知识感谢你的陪伴与支持~ 欢迎添加好友 is_yu_ei不定期掉落福利资讯写在最前面版权声明本文为原创技术实践稿遵循 CC 4.0 BY-SA 协议。转载请注明出处。涉及官方 SDK 的接口描述及开源项目代码请以所链接的官方资料和仓库许可证为准。在 Q1 项目里张开手掌已经对应一个交互意图。换成 T1 Pro 后这套识别模型是不是也得从头训练先看它真正接收和输出的东西输入是一张 RGB 图输出是四个手势类别的概率。机器人型号没有写进这条分类计算里首先值得检查的是相机画面和意图后面的反馈接口。[1]因此我们先保留原 MobileNetV3-Small checkpoint把输入端接向 T1 的一路相机把输出端映射成问候、查询电量和确认。本文提供单图推理与事件回放两条验证路径再说明如何将它们衔接到 T1 的相机和语音服务。[1][2]图 1迁移工作的分工模型网络、标签与归一化沿用原项目输入改为 T1 图像输出对接语音和状态反馈。先回答“怎么接”再判断“要不要训”T1 已公开 JPEG / RTSP 视觉入口与 PlayTts 服务可承接这条应用链路。先用原权重检查 T1 视角样本上的表现如果误判集中在尺度、光照或背景再有针对性地补数据与微调。这样能把接口适配和模型效果分开处理。[2][3]1 模型可以复用输入约定也要一起带走组成复用或调整方式模型网络与 checkpoint复用原 MobileNetV3-Small 及其 checkpoint标签顺序保持 Fist、OpenPalm、PeaceSign、ThumbsUp图像预处理保持 RGB、224×224 整图缩放、原均值与标准差图像来源由公开图片换成 T1 左目或右目图像方向处理按实际相机与形态检查必要时旋转 180°反馈映射映射为问候、查询电量、确认和本次静默处理迁移时先读取 checkpoint 中的 labels而不是重新排列类别名。模型的第一个概率对应 Fist第二个对应 OpenPalm若推理端改变顺序后面的意图映射就会跟着错位。配套脚本在加载时检查四个标签及其顺序。预处理也属于模型的一部分。原训练使用整图 Resize(224,224) 和 ImageNet 归一化初次接入保持一致。手部检测可以先提供“画面中有有效手部”的信号是否将裁剪后的 ROI 送入分类器再用同一批 T1 视角样本做对照。让 ROS 和模型各自待在熟悉的环境里ROS 2 Humble 客户端使用系统 Python原模型使用独立 PyTorch 环境。首版用图片文件作为交接点ROS 进程抓拍保存模型进程加载同一文件。拿到图像后可以先检查它再推理环境问题和识别问题也就有了各自的排查入口。[1][2]先复用权重检查输入输出再用 T1 视角样本评估距离、手部尺度和光照的影响。2 拿一张 T1 图像先走通原模型原 Q1 手势项目的 AtomGit 仓库提供数据下载和训练步骤可按流程生成 best.pt也可使用此前保留的同结构 checkpoint。T1 仓库负责相机、推理入口和反馈适配。下面两条命令分属 ROS 与模型环境均在 T1 示例仓库根目录执行。[1]## 在 ROS 环境中取得图像完整环境步骤见 SDK 入门篇python3 camera_capture.py--live\--camera-id head_stereo_left--rotate0--outresults/t1.jpg## 切换至原模型 PyTorch 环境仍在本仓库根目录python gesture_infer.py\--checkpoint/path/to/pilot_partial_30/best.pt\--imageresults/t1.jpg--rotate0将 checkpoint 路径换成实际文件。相机脚本已经校正方向时推理端使用 --rotate 0。需要旋转的左目画面则统一在输入层校正一次再保存给模型便于复查原始画面和处理结果。[3]ckpt torch.load(path, map_location‘cpu’, weights_onlyTrue)labels ckpt[‘labels’]model models.mobilenet_v3_small(weightsNone)model.classifier[-1] torch.nn.Linear(model.classifier[-1].in_features, len(labels))model.load_state_dict(ckpt[‘state_dict’])model.eval()preprocess transforms.Compose([transforms.Resize((224, 224)), transforms.ToTensor(),transforms.Normalize([.485, .456, .406], [.229, .224, .225]),])with torch.inference_mode():probabilities model(preprocess(image).unsqueeze(0)).softmax(1)gesture_infer.py 运行单图 CPU 推理输出 label、confidence 和四类分数。先检查同一图片能否稳定加载与识别再收集不同距离、背景和光照的 T1 样本。这里最有用的记录是“哪张图、怎样预处理、输出了哪些概率”。3 举着手别一直问候给交互加一个触发器假设连续十帧都识别出 OpenPalm用户通常只是在保持同一个手势。GestureGate 先要求有效手部信号、分数达标、不同帧连续确认触发后锁存等手离开再重新允许触发。默认参数为 0.85 分数阈值、三帧确认、1 秒新鲜度、0.5 秒帧间隔与 3 秒冷却。图 2八帧合成分数回放三帧手掌产生一次问候持续保持不重复释放并经过冷却后再产生一次确认。事件字段作用frame_id标识具体图像帧重复帧不增加投票label / confidence保留模型类别和分数captured_at输入采集时间用于新鲜度与顺序检查hand_present由上游检测器或人工审核夹具提供的手部有效信号这些默认值集中在 GestureGate 的构造参数中后续可结合视频节奏调整。hand_present 由上游手部检测器提供四分类器继续负责区分类别。把“有没有手”和“是什么手势”分开能够分别检查检测、分类和触发规则。4 先做问候与电量查询反馈更容易看清识别类别应用意图T1 首版反馈OpenPalmgreet问候一句返回 TTS 回执PeaceSignbattery_status订阅并等待一条新电量消息组织文本后播报ThumbsUpconfirm播报“已收到确认手势”Fistcancel_feedback本次事件静默处理已提交的 TTS 保持原状态意图名称由应用定义反馈适配层将它转换为 BMS 查询或 TTS 请求。Fist 沿用仓库中的 cancel_feedback 名称当前实现是让本次事件保持静默不撤销已经提交的 TTS。问候、查电量和确认都有明确文本便于将意图日志与服务回执逐项对照。gitclone https://atomgit.com/WTYuong/t1-pro-sdk-demos.gitcdt1-pro-sdk-demosgitcheckout 3a62e33 python3-mpipinstall-rrequirements-core.txt python3 gesture_bridge.py--mock## 在 ROS 环境中消费实际采集的新鲜 JSONL 事件python3 gesture_bridge.py--eventsrecent_events.jsonl## 再开启声音反馈python3 gesture_bridge.py--eventsrecent_events.jsonl--speak–events 读取一批 JSONL 事件并加载 ROS 适配层。captured_at 使用采集时刻的 UNIX 时间生产端与消费端需对时过期事件会被过滤。单图推理脚本只输出分类结果接连续视频时再由生产端补齐帧 ID、采集时间和手部信号。本轮重新运行八帧 mock 回放得到一次 greet 和一次 confirm与预期一致。40 项单元测试中12 项覆盖手势触发规则检查重复帧、乱序、过期、低分、持续保持和释放重触发。模型识别效果则在 T1 视角图片上另行记录两组结果分开看。5 现场联调按四层顺着看先看相机确认 ID、方向、分辨率与 RGB保存几张实际样本。再看分类对照图片检查四类概率。随后看事件保持手势只触发一次移开后能重新允许触发。最后看 TTS将意图文本、trace_id、服务回执和实际声音对应起来。[2][3][4]观察到的问题先改哪一层离线图片正常T1 画面误判方向、颜色和输入分布必要时补 T1 视角训练数据类别正确但一直重复问候帧 ID、释放条件、冷却与锁存规则意图日志正确但没声音TTS 服务、静音、音量和回执断流后仍出现旧指令时间戳、缓存长度和新鲜度检查结语换机型时先沿着模型的输入输出检查往往比立即启动训练更划算。本篇保留视觉模型和标签约定把新增工作放在 T1 图像输入、事件触发和语音反馈上。下一步用实际样本定位误差再决定补哪类数据、更新哪些层微调才有明确目标。源码与复现公开仓库WTYuong/t1-pro-sdk-demos | 本文示例版本3a62e33复现版本git checkout 3a62e33克隆并进入仓库后执行。本篇代码gesture_infer.py · gesture_bridge.py · core.py复现命令仓库根目录python3 gesture_bridge.py --mock # 8 帧合成分数事件与两次反馈意图两个仓库各司其职Q1 仓库负责模型训练与权重生成T1 仓库负责相机适配、单图推理、事件触发和反馈示例。原模型训练与权重生成Q1 手势微调开源仓库资料与代码来源[1] 已公开的 Q1 手势微调代码仓库 查看原文[2] T1 SDK 快速入门与集成指南 查看原文[3] T1 视觉采集与相机方向说明 查看原文[4] PlayTts语音服务及返回结构 查看原文[5] 配套实现gesture_infer.py、gesture_bridge.py、core.py代码版本 3a62e33离线回放日期 2026-10-20。技术资料核对日期2026-10-20。配图展示迁移分工与合成分数事件的触发过程。继续开发时可到启元机器人开发者社区https://dev.primebot.com/查阅 SDK、接口文档与开发案例也欢迎分享自己的复现记录和改进思路。hello这里是 晓雨的笔记本。如果你喜欢我的文章欢迎三连给我鼓励和支持点赞 关注 评论我会给大家带来更多有用有趣的文章。原文链接 【发布后更新】欢迎大家点开下面名片添加好友交流。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →