人体姿势检索实战指南:用 Pose-Search 三步从海量图片中找出指定动作
人体姿势检索实战指南用 Pose-Search 三步从海量图片中找出指定动作【免费下载链接】pose-searchx6ud.github.io/pose-search项目地址: https://gitcode.com/gh_mirrors/po/pose-search本次文章采用动手实战式结构以一次真实的找动作图片经历开场引出项目随后依次讲解姿势识别原理、环境搭建、完整检索体验、匹配机制拆解和扩展方向章节顺序与原文完全不同叙述视角改为第一人称体验视角。先说一个让人抓狂的场景做运动类内容的朋友大概都有过这种经历素材库里有几千张图片想找一张左腿抬起、右臂向后摆的照片却只能一张张翻。翻到最后眼睛都快花了还得不到满意的结果。想用文字搜右腿弯曲45度、身体前倾30度这种描述搜索引擎根本听不懂。这就是 Pose-Search 想解决的问题——它是一款基于骨骼关键点的人体姿势检索引擎让你像拖拽一个3D小人摆动作那样定义目标姿势然后从图片库里自动筛出最接近的照片。这套人体姿势检索方案把只能靠肉眼和关键词的活儿变成了一个可计算的数学问题。别被计算机视觉吓到原理其实很直白你可能会问图片又不是文字机器怎么知道我摆的是什么动作答案藏在每个画面里的骨架上。Pose-Search 借助 Google 的 MediaPipe Pose 模型对每张图片做一次透视把人体的肩、肘、腕、髋、膝、踝等关节位置统统定位出来一共提取33 个骨骼关键点。每个关键点不仅有平面坐标还带着深度信息和可见度评分相当于给每个人体建了一张三维数字名片。这一步对应源码里的src/utils/detect-pose.ts。它把检测结果分成两套数据一套是归一化后的画面坐标对应你在图上看到的红点标注另一套是真实空间中的世界坐标对应三维信息。两套数据都被存进landmarks.dat配合photos.json里的图片元数据就构成了一个骨骼点图片的检索数据库。说白了检索的本质不再是看图而是比骨架。动作像不像取决于两组骨骼点之间的几何关系接近不接近。三步完成环境搭建跟着做就能跑起来别急部署这套姿势检索工具比你想象的简单不需要懂模型训练只需要 Node.js 环境。第一步拉取仓库并安装依赖git clone https://gitcode.com/gh_mirrors/po/pose-search cd pose-search npm install第二步启动开发服务npm run dev浏览器打开本地地址就能进入界面。如果想打包成生产版本执行npm run build即可构建过程会自动做类型检查并压缩资源。第三步导入你的图片数据系统默认图片来自 Unsplash。你只需到 Unsplash 开放平台申请一个应用密钥App Key然后访问/#/editor编辑器页面把密钥粘贴到弹出的输入框里系统就会自动拉取图片并完成骨骼关键点标注。整个标注过程由 MediaPipe 在浏览器本地完成所有检测结果会写回landmarks.dat和photos.json下次启动直接读取不需要重复计算。效果最直观的姿势检索方式拖拽3D小人环境跑起来之后就到了最有意思的环节。编辑器界面里会有一个可拖拽的 3D 人体模型——这就是你的姿势模板。你可以用鼠标转动视角、扳动各个关节把它摆成你想要的姿势比如让滑板运动员做一个腾空抓板动作。摆好姿势后从下拉框里选择要匹配的身体部位比如Left Elbow或Right Knee再点一下搜索按钮系统就会遍历整个图片库按相似度从高到低返回前 100 个结果这个数量上限可以在配置里改。点击任意一张缩略图还能放大查看原图验证匹配效果。这里有个很贴心的细节搜索结果左上角会带翻转标记。因为人体动作天然有左右对称性系统遇到左手动作但图片里是右手完成的情况会通过水平翻转来处理保证左叉腰也能匹配到右叉腰的照片。凭什么匹配得准拆开匹配器给你看搜索准不准全靠src/Search/impl/目录下那一排专用匹配器。每个匹配器都实现同一个PoseMatcher接口只有两个核心方法prepare()负责读取你摆好的 3D 模板姿势算出它的角度特征match()负责拿这些特征去和图片库里的每张照片逐一比对算出相似度分数分数越高越靠前。为什么拆成这么多个文件因为局部匹配比整体匹配聪明得多。全身一起比头发、衣服、背景都会干扰判断而单独比较肘部弯曲角度、肩部旋转方向、膝盖的夹角每个部位都能用最合适的几何算法误差自然更小。比如MatchElbow会同时比较上臂和前臂的朝向角、肘部弯折角、以及手臂相对躯干的方位多个角度误差相乘得到总分——只要某一项差太多总分就会迅速拉低保证不滥竽充数。更妙的是相机无关匹配器MatchShoulderCameraUnrelated这类文件。普通的 2D 角度会受拍摄角度影响同一个动作从正面拍和从侧面拍画面里的夹角完全不同。这类匹配器只用世界坐标计算关节相对躯干的方向把拍摄视角的影响抹掉这就是系统宣传的视角无关能力。另外每个匹配器都很自觉如果某张照片里目标部位的可见度太低低于配置里的LANDMARK_VISIBILITY_ACCEPTABLE_THRESHOLD默认 0.4它直接返回空结果宁可不出现在列表里也不拿噪音数据凑数。除了搜图它还能用在哪儿把检索能力搭好之后应用场景其实比想象中宽体育训练分析教练把标准技术动作存进库里运动员想练手臂完全伸展、身体成直线的空中姿态直接拖 3D 模型搜出参考图。康复动作核对治疗师可以检索膝关节弯曲 90~120 度的示范图让患者照着标准执行方便又直观。动画制作找参考动画师需要奔跑中左腿前摆、右腿后蹬的中间帧过去翻素材库半小时现在几秒钟出结果。行为异常监测建立一个正常姿态基准库凡是偏离基准太多的姿势都会被标记出来可用于特定场景的安防辅助。如果以后想接入自己的图片数据源也留好了口子PhotoDataset负责数据读写图片库里每一张图的元数据和骨骼点都能通过它增删改查替换数据源不需要动匹配逻辑。给想动代码的人留的几条路这套项目最大的优点就是模块化想改哪里都很清楚新增一个身体部位的匹配器在src/Search/impl/下新建类实现PoseMatcher接口再在Search.ts的匹配器注册表里登记一下界面上立刻多一个可选项。自定义3D可视化src/components/SkeletonModelCanvas/里加载了头部、躯干、四肢等一组 OBJ 模型文件可以替换成你自己的骨骼模型。调整检索体验src/config.ts里MAX_NUM_OF_SEARCH_RESULTS控制返回数量LANDMARK_VISIBILITY_ACCEPTABLE_THRESHOLD控制关键点可信度门槛改这两个数就能在召回更多和结果更准之间找平衡。现在该轮到你动手了回顾一下Pose-Search 用 33 个骨骼关键点把姿势变成可计算的数据用分部位匹配器和视角无关算法保证精度再用 3D 模型拖拽提供最直观的姿势定义方式——整套流程环环相扣却只靠浏览器就能跑起来。与其对着这篇文章想象不如现在就git clone下来npm install之后去编辑器里拖两下 3D 小人搜一把自己最想要的那个动作。你会发现找一张姿势对的图从来没这么痛快过。【免费下载链接】pose-searchx6ud.github.io/pose-search项目地址: https://gitcode.com/gh_mirrors/po/pose-search创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

SDC命令详解:使用current_design命令设置当前设计

SDC命令详解:使用current_design命令设置当前设计

相关阅读 SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482 current_design命令用于设置当前设计,当前设计以及当前实例是许多命令的默认目标对象,关于当前实例,可以参考下面的博客。 SD…

2026/10/24 1:20:39 阅读更多 →
避坑指南:Mid360激光雷达ROS节点运行无点云输出的排查实录

避坑指南:Mid360激光雷达ROS节点运行无点云输出的排查实录

一、 问题现象与排查思路在部署MID-360激光雷达的过程中,开发者常会遇到雷达初始化失败或ROS节点启动后无数据输出的问题。如下图所示。针对此类故障,核心排查逻辑应遵循“先物理链路,后软件配置”的原则。首先,我们需要绕过ROS环…

2026/10/26 8:59:18 阅读更多 →
HTML转Figma实战:3步把任意网页变成可编辑的设计稿

HTML转Figma实战:3步把任意网页变成可编辑的设计稿

HTML转Figma实战:3步把任意网页变成可编辑的设计稿 【免费下载链接】figma-html Convert any website to editable Figma designs 项目地址: https://gitcode.com/gh_mirrors/fi/figma-html 周五下午六点,设计师小周收到一条消息:明天…

2026/10/26 12:18:11 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/27 17:33:32 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/27 4:06:49 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/27 7:21:53 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/27 18:20:50 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/27 6:20:47 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/27 4:06:50 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 13:55:19 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 7:21:50 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 19:19:37 阅读更多 →